Accepting request 740994 from home:ecsos:monitoring
Update to 6.4.3. Rebase grafana.spec. See grafana.changes. OBS-URL: https://build.opensuse.org/request/show/740994 OBS-URL: https://build.opensuse.org/package/show/server:monitoring/grafana?expand=0&rev=27
This commit is contained in:
parent
f2c60d0f61
commit
a647090d27
13
001-login-oauth-use-oauth2-exchange.patch
Normal file
13
001-login-oauth-use-oauth2-exchange.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/pkg/api/login_oauth.go b/pkg/api/login_oauth.go
|
||||||
|
index a46c97238..76fc8480c 100644
|
||||||
|
--- a/pkg/api/login_oauth.go
|
||||||
|
+++ b/pkg/api/login_oauth.go
|
||||||
|
@@ -125,7 +125,7 @@ func (hs *HTTPServer) OAuthLogin(ctx *m.ReqContext) {
|
||||||
|
oauthCtx := context.WithValue(context.Background(), oauth2.HTTPClient, oauthClient)
|
||||||
|
|
||||||
|
// get token from provider
|
||||||
|
- token, err := connect.Exchange(oauthCtx, code)
|
||||||
|
+ token, err := connect.Exchange(oauthCtx, code, oauth2.AccessTypeOnline)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Handle(500, "login.OAuthLogin(NewTransportWithCode)", err)
|
||||||
|
return
|
208
002-remove-jaeger-tracing.patch
Normal file
208
002-remove-jaeger-tracing.patch
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
diff --git a/pkg/cmd/grafana-server/server.go b/pkg/cmd/grafana-server/server.go
|
||||||
|
index 85d6db43e..6de99b58b 100644
|
||||||
|
--- a/pkg/cmd/grafana-server/server.go
|
||||||
|
+++ b/pkg/cmd/grafana-server/server.go
|
||||||
|
@@ -23,7 +23,6 @@ import (
|
||||||
|
_ "github.com/grafana/grafana/pkg/infra/metrics"
|
||||||
|
_ "github.com/grafana/grafana/pkg/infra/remotecache"
|
||||||
|
_ "github.com/grafana/grafana/pkg/infra/serverlock"
|
||||||
|
- _ "github.com/grafana/grafana/pkg/infra/tracing"
|
||||||
|
_ "github.com/grafana/grafana/pkg/infra/usagestats"
|
||||||
|
"github.com/grafana/grafana/pkg/login"
|
||||||
|
"github.com/grafana/grafana/pkg/login/social"
|
||||||
|
diff --git a/pkg/infra/tracing/tracing.go b/pkg/infra/tracing/tracing.go
|
||||||
|
deleted file mode 100644
|
||||||
|
index d1511a533..000000000
|
||||||
|
--- a/pkg/infra/tracing/tracing.go
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,148 +0,0 @@
|
||||||
|
-package tracing
|
||||||
|
-
|
||||||
|
-import (
|
||||||
|
- "context"
|
||||||
|
- "fmt"
|
||||||
|
- "io"
|
||||||
|
- "strings"
|
||||||
|
-
|
||||||
|
- "github.com/grafana/grafana/pkg/infra/log"
|
||||||
|
- "github.com/grafana/grafana/pkg/registry"
|
||||||
|
- "github.com/grafana/grafana/pkg/setting"
|
||||||
|
-
|
||||||
|
- opentracing "github.com/opentracing/opentracing-go"
|
||||||
|
- jaegercfg "github.com/uber/jaeger-client-go/config"
|
||||||
|
- "github.com/uber/jaeger-client-go/zipkin"
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-func init() {
|
||||||
|
- registry.RegisterService(&TracingService{})
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-type TracingService struct {
|
||||||
|
- enabled bool
|
||||||
|
- address string
|
||||||
|
- customTags map[string]string
|
||||||
|
- samplerType string
|
||||||
|
- samplerParam float64
|
||||||
|
- log log.Logger
|
||||||
|
- closer io.Closer
|
||||||
|
- zipkinPropagation bool
|
||||||
|
- disableSharedZipkinSpans bool
|
||||||
|
-
|
||||||
|
- Cfg *setting.Cfg `inject:""`
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (ts *TracingService) Init() error {
|
||||||
|
- ts.log = log.New("tracing")
|
||||||
|
- ts.parseSettings()
|
||||||
|
-
|
||||||
|
- if ts.enabled {
|
||||||
|
- ts.initGlobalTracer()
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return nil
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (ts *TracingService) parseSettings() {
|
||||||
|
- var section, err = ts.Cfg.Raw.GetSection("tracing.jaeger")
|
||||||
|
- if err != nil {
|
||||||
|
- return
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- ts.address = section.Key("address").MustString("")
|
||||||
|
- if ts.address != "" {
|
||||||
|
- ts.enabled = true
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- ts.customTags = splitTagSettings(section.Key("always_included_tag").MustString(""))
|
||||||
|
- ts.samplerType = section.Key("sampler_type").MustString("")
|
||||||
|
- ts.samplerParam = section.Key("sampler_param").MustFloat64(1)
|
||||||
|
- ts.zipkinPropagation = section.Key("zipkin_propagation").MustBool(false)
|
||||||
|
- ts.disableSharedZipkinSpans = section.Key("disable_shared_zipkin_spans").MustBool(false)
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (ts *TracingService) initGlobalTracer() error {
|
||||||
|
- cfg := jaegercfg.Configuration{
|
||||||
|
- ServiceName: "grafana",
|
||||||
|
- Disabled: !ts.enabled,
|
||||||
|
- Sampler: &jaegercfg.SamplerConfig{
|
||||||
|
- Type: ts.samplerType,
|
||||||
|
- Param: ts.samplerParam,
|
||||||
|
- },
|
||||||
|
- Reporter: &jaegercfg.ReporterConfig{
|
||||||
|
- LogSpans: false,
|
||||||
|
- LocalAgentHostPort: ts.address,
|
||||||
|
- },
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- jLogger := &jaegerLogWrapper{logger: log.New("jaeger")}
|
||||||
|
-
|
||||||
|
- options := []jaegercfg.Option{}
|
||||||
|
- options = append(options, jaegercfg.Logger(jLogger))
|
||||||
|
-
|
||||||
|
- for tag, value := range ts.customTags {
|
||||||
|
- options = append(options, jaegercfg.Tag(tag, value))
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if ts.zipkinPropagation {
|
||||||
|
- zipkinPropagator := zipkin.NewZipkinB3HTTPHeaderPropagator()
|
||||||
|
- options = append(options,
|
||||||
|
- jaegercfg.Injector(opentracing.HTTPHeaders, zipkinPropagator),
|
||||||
|
- jaegercfg.Extractor(opentracing.HTTPHeaders, zipkinPropagator),
|
||||||
|
- )
|
||||||
|
-
|
||||||
|
- if !ts.disableSharedZipkinSpans {
|
||||||
|
- options = append(options, jaegercfg.ZipkinSharedRPCSpan(true))
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- tracer, closer, err := cfg.NewTracer(options...)
|
||||||
|
- if err != nil {
|
||||||
|
- return err
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- opentracing.InitGlobalTracer(tracer)
|
||||||
|
-
|
||||||
|
- ts.closer = closer
|
||||||
|
-
|
||||||
|
- return nil
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (ts *TracingService) Run(ctx context.Context) error {
|
||||||
|
- <-ctx.Done()
|
||||||
|
-
|
||||||
|
- if ts.closer != nil {
|
||||||
|
- ts.log.Info("Closing tracing")
|
||||||
|
- ts.closer.Close()
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return nil
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func splitTagSettings(input string) map[string]string {
|
||||||
|
- res := map[string]string{}
|
||||||
|
-
|
||||||
|
- tags := strings.Split(input, ",")
|
||||||
|
- for _, v := range tags {
|
||||||
|
- kv := strings.Split(v, ":")
|
||||||
|
- if len(kv) > 1 {
|
||||||
|
- res[kv[0]] = kv[1]
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return res
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-type jaegerLogWrapper struct {
|
||||||
|
- logger log.Logger
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (jlw *jaegerLogWrapper) Error(msg string) {
|
||||||
|
- jlw.logger.Error(msg)
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func (jlw *jaegerLogWrapper) Infof(format string, args ...interface{}) {
|
||||||
|
- msg := fmt.Sprintf(format, args...)
|
||||||
|
- jlw.logger.Info(msg)
|
||||||
|
-}
|
||||||
|
diff --git a/pkg/infra/tracing/tracing_test.go b/pkg/infra/tracing/tracing_test.go
|
||||||
|
deleted file mode 100644
|
||||||
|
index 27e4de777..000000000
|
||||||
|
--- a/pkg/infra/tracing/tracing_test.go
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,36 +0,0 @@
|
||||||
|
-package tracing
|
||||||
|
-
|
||||||
|
-import "testing"
|
||||||
|
-
|
||||||
|
-func TestGroupSplit(t *testing.T) {
|
||||||
|
- tests := []struct {
|
||||||
|
- input string
|
||||||
|
- expected map[string]string
|
||||||
|
- }{
|
||||||
|
- {
|
||||||
|
- input: "tag1:value1,tag2:value2",
|
||||||
|
- expected: map[string]string{
|
||||||
|
- "tag1": "value1",
|
||||||
|
- "tag2": "value2",
|
||||||
|
- },
|
||||||
|
- },
|
||||||
|
- {
|
||||||
|
- input: "",
|
||||||
|
- expected: map[string]string{},
|
||||||
|
- },
|
||||||
|
- {
|
||||||
|
- input: "tag1",
|
||||||
|
- expected: map[string]string{},
|
||||||
|
- },
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- for _, test := range tests {
|
||||||
|
- tags := splitTagSettings(test.input)
|
||||||
|
- for k, v := range test.expected {
|
||||||
|
- value, exists := tags[k]
|
||||||
|
- if !exists || value != v {
|
||||||
|
- t.Errorf("tags does not match %v ", test)
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
1037
003-new-files.patch
Normal file
1037
003-new-files.patch
Normal file
File diff suppressed because it is too large
Load Diff
24
004-distro-defaults-ini.patch
Normal file
24
004-distro-defaults-ini.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: grafana-6.4.3/conf/defaults.ini
|
||||||
|
===================================================================
|
||||||
|
--- grafana-6.4.3.orig/conf/defaults.ini
|
||||||
|
+++ grafana-6.4.3/conf/defaults.ini
|
||||||
|
@@ -12,16 +12,16 @@ instance_name = ${HOSTNAME}
|
||||||
|
#################################### Paths ###############################
|
||||||
|
[paths]
|
||||||
|
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
|
||||||
|
-data = data
|
||||||
|
+data = /var/lib/grafana
|
||||||
|
|
||||||
|
# Temporary files in `data` directory older than given duration will be removed
|
||||||
|
temp_data_lifetime = 24h
|
||||||
|
|
||||||
|
# Directory where grafana can store logs
|
||||||
|
-logs = data/log
|
||||||
|
+logs = /var/log/grafana
|
||||||
|
|
||||||
|
# Directory where grafana will automatically scan and look for plugins
|
||||||
|
-plugins = data/plugins
|
||||||
|
+plugins = /var/lib/grafana/plugins
|
||||||
|
|
||||||
|
# folder that contains provisioning config files that grafana will apply on startup and while running.
|
||||||
|
provisioning = conf/provisioning
|
@ -1,39 +0,0 @@
|
|||||||
NAME = grafana
|
|
||||||
SPEC = $(NAME).spec
|
|
||||||
|
|
||||||
default: verify-deps clean tar
|
|
||||||
|
|
||||||
verify-deps:
|
|
||||||
@which yarn >/dev/null 2>&1 || ( echo "yarn not found; run \`sudo npm install -g yarn\`" && false )
|
|
||||||
@which grunt >/dev/null 2>&1 || ( echo "grunt not found; run \`sudo npm install -g grunt-cli\`" && false )
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(NAME)-*.tar $(NAME)-*.tar.xz
|
|
||||||
|
|
||||||
tar:
|
|
||||||
osc service disabledrun
|
|
||||||
@version=$$( awk '/^Version:/ {print $$2}' $(SPEC) ) && \
|
|
||||||
echo "Package version is $$version" && \
|
|
||||||
basename=$(NAME)-$$version && \
|
|
||||||
tar=$$basename.tar && \
|
|
||||||
tmpdir=$$(mktemp -d -p .) && \
|
|
||||||
cd $$tmpdir && \
|
|
||||||
tar -xf ../$$tar && \
|
|
||||||
cd $$basename && \
|
|
||||||
sed -i 's/base\///' public/sass/base/_fonts.scss && \
|
|
||||||
# patch frontend html template to remove phantomjs dependant link \
|
|
||||||
sed -i 's/<a.*<i class=".*fa-camera">.*<\/a>//g' public/app/features/dashboard/components/ShareModal/template.html && \
|
|
||||||
yarn install --pure-lockfile && \
|
|
||||||
grunt release && \
|
|
||||||
cp -pr tmp/public . && \
|
|
||||||
cp -pr tmp/tools . && \
|
|
||||||
cd .. && \
|
|
||||||
echo "Updating $$basename/tools $$basename/public in tarball..." && \
|
|
||||||
tar -rf ../$$tar $$basename/tools $$basename/public && \
|
|
||||||
# remove phantomjs binary \
|
|
||||||
tar -f ../$$tar --delete $$basename/tools/phantomjs/phantomjs && \
|
|
||||||
# remove go.mod and go.sum as we build exclusively using vendor deps \
|
|
||||||
tar -f ../$$tar --delete $$basename/go.mod $$basename/go.sum && \
|
|
||||||
cd .. && \
|
|
||||||
xz $$tar && \
|
|
||||||
rm -rf $$tmpdir
|
|
@ -1,33 +0,0 @@
|
|||||||
NAME = grafana
|
|
||||||
SPEC = $(NAME).spec
|
|
||||||
|
|
||||||
default: verify-deps clean tar
|
|
||||||
|
|
||||||
verify-deps:
|
|
||||||
@which yarn >/dev/null 2>&1 || ( echo "yarn not found; run \`sudo npm install -g yarn\`" && false )
|
|
||||||
@which grunt >/dev/null 2>&1 || ( echo "grunt not found; run \`sudo npm install -g grunt-cli\`" && false )
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(NAME)-*.tar $(NAME)-*.tar.xz
|
|
||||||
|
|
||||||
tar:
|
|
||||||
osc service disabledrun
|
|
||||||
@version=$$( awk '/^Version:/ {print $$2}' $(SPEC) ) && \
|
|
||||||
echo "Package version is $$version" && \
|
|
||||||
basename=$(NAME)-$$version && \
|
|
||||||
tar=$$basename.tar && \
|
|
||||||
tmpdir=$$(mktemp -d -p .) && \
|
|
||||||
cd $$tmpdir && \
|
|
||||||
tar -xf ../$$tar && \
|
|
||||||
cd $$basename && \
|
|
||||||
sed -i 's/base\///' public/sass/base/_fonts.scss && \
|
|
||||||
yarn install --pure-lockfile && \
|
|
||||||
grunt release && \
|
|
||||||
cp -pr tmp/public . && \
|
|
||||||
cp -pr tmp/tools . && \
|
|
||||||
cd .. && \
|
|
||||||
echo "Updating $$basename/tools $$basename/public in tarball..." && \
|
|
||||||
tar -rf ../$$tar $$basename/tools $$basename/public && \
|
|
||||||
cd .. && \
|
|
||||||
xz $$tar && \
|
|
||||||
rm -rf $$tmpdir
|
|
27
README
27
README
@ -1,27 +0,0 @@
|
|||||||
|
|
||||||
The tarball is generated via the OBS source service, but Grafana
|
|
||||||
needs to ship the compiled frontend assets as well, which have to
|
|
||||||
be built by running yarn and grunt inside the source tree (see
|
|
||||||
https://github.com/grafana/grafana#building-frontend-assets).
|
|
||||||
This can't be done at build time on OBS, because it involves
|
|
||||||
downloading and installing packages from the internet, so instead
|
|
||||||
we have a Makefile which does the following:
|
|
||||||
|
|
||||||
- Runs `osc service disabledrun` to get the latest source tarball
|
|
||||||
- Unpacks the tarball to a temporary directory
|
|
||||||
- Runs `yarn install --pure-lockfile && grunt release`
|
|
||||||
- Adds the generated "vendor" and "public" content to the tarball,
|
|
||||||
then compresses it with xz.
|
|
||||||
- The tarball can then be used by OBS to build an RPM.
|
|
||||||
|
|
||||||
In order for this to work you need to have npm >= 6, yarn and grunt
|
|
||||||
installed. To get set up, run:
|
|
||||||
|
|
||||||
# zypper in npm
|
|
||||||
# npm install -g yarn
|
|
||||||
# npm install -g grunt-cli
|
|
||||||
|
|
||||||
Then, to package a new release of Grafana, run `make` then `osc ci`
|
|
||||||
and you should be good.
|
|
||||||
|
|
||||||
Please direct any questions to Tim Serong <tserong@suse.com>
|
|
13
_service
13
_service
@ -1,13 +0,0 @@
|
|||||||
<services>
|
|
||||||
<service name="tar_scm" mode="disabled">
|
|
||||||
<param name="url">https://github.com/grafana/grafana</param>
|
|
||||||
<param name="scm">git</param>
|
|
||||||
<param name="exclude">.git</param>
|
|
||||||
<param name="versionformat">6.3.5</param>
|
|
||||||
<param name="revision">v6.3.5</param>
|
|
||||||
<param name="changesgenerate">enable</param>
|
|
||||||
</service>
|
|
||||||
<service name="set_version" mode="disabled">
|
|
||||||
<param name="basename">grafana</param>
|
|
||||||
</service>
|
|
||||||
</services>
|
|
@ -1,6 +0,0 @@
|
|||||||
<servicedata>
|
|
||||||
<service name="tar_scm">
|
|
||||||
<param name="url">https://github.com/grafana/grafana</param>
|
|
||||||
<param name="changesrevision">67bad726f12efb21893c75c141f2330a4a3cbe2a</param>
|
|
||||||
</service>
|
|
||||||
</servicedata>
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:fdfcabcdb8f4207efb6e1d8c55861f92ea9558f570f384a35eabc9a5a234a306
|
|
||||||
size 17615204
|
|
3
grafana-6.4.3.tar.gz
Normal file
3
grafana-6.4.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:2ed2bbaae731c0d168800ed41af2bd18e3df50abb6c9852347d4488a5cc8d63b
|
||||||
|
size 13805699
|
159
grafana.changes
159
grafana.changes
@ -1,3 +1,162 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 16 19:29:48 UTC 2019 - ecsos@opensuse.org
|
||||||
|
|
||||||
|
- Update to 6.4.3
|
||||||
|
* Bug Fixes
|
||||||
|
- Alerting: All notification channels should send even if one fails to send. #19807, @jan25
|
||||||
|
- AzureMonitor: Fix slate interference with dropdowns. #19799, @aocenas
|
||||||
|
- ContextMenu: make ContextMenu positioning aware of the viewport width. #19699, @krvajal
|
||||||
|
- DataLinks: Fix context menu not showing in singlestat-ish visualisations. #19809, @dprokop
|
||||||
|
- DataLinks: Fix url field not releasing focus. #19804, @aocenas
|
||||||
|
- Datasource: Fixes clicking outside of some query editors required 2 clicks. #19822, @aocenas
|
||||||
|
- Panels: Fixes default tab for visualizations without Queries Tab. #19803, @hugohaggmark
|
||||||
|
- Singlestat: Fixed issue with mapping null to text. #19689, @torkelo
|
||||||
|
- @grafana/toolkit: Don't fail plugin creation when git user.name config is not set. #19821, @dprokop
|
||||||
|
- @grafana/toolkit: TSLint line number off by 1. #19782, @fredwangwang
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 16 15:31:57 UTC 2019 - ecsos@opensuse.org
|
||||||
|
|
||||||
|
- Update to 6.4.2
|
||||||
|
* Bug Fixes
|
||||||
|
- CloudWatch: Changes incorrect dimension wmlid to wlmid . #19679, @ATTron
|
||||||
|
- Grafana Image Renderer: Fixes plugin page. #19664, @hugohaggmark
|
||||||
|
- Graph: Fixes auto decimals logic for y axis ticks that results in too many decimals for high values. #19618, @torkelo
|
||||||
|
- Graph: Switching to series mode should re-render graph. #19623, @torkelo
|
||||||
|
- Loki: Fix autocomplete on label values. #19579, @aocenas
|
||||||
|
- Loki: Removes live option for logs panel. #19533, @davkal
|
||||||
|
- Profile: Fix issue with user profile not showing more than sessions sessions in some cases. #19578, @huynhsamha
|
||||||
|
- Prometheus: Fixes so results in Panel always are sorted by query order. #19597, @hugohaggmark
|
||||||
|
- ShareQuery: Fixed issue when using -- Dashboard -- datasource (to share query result) when dashboard had rows. #19610, @torkelo
|
||||||
|
- Show SAML login button if SAML is enabled. #19591, @papagian
|
||||||
|
- SingleStat: Fixes postfix/prefix usage. #19687, @hugohaggmark
|
||||||
|
- Table: Proper handling of json data with dataframes. #19596, @marefr
|
||||||
|
- Units: Fixed wrong id for Terabits/sec. #19611, @andreaslangnevyjel
|
||||||
|
|
||||||
|
- Changes from 6.4.1
|
||||||
|
* Bug Fixes
|
||||||
|
- Provisioning: Fixed issue where empty nested keys in YAML provisioning caused a server crash, #19547
|
||||||
|
- ImageRendering: Fixed issue with image rendering in enterprise build (Enterprise)
|
||||||
|
- Reporting: Fixed issue with reporting service when STMP was disabled (Enterprise).
|
||||||
|
|
||||||
|
- Changes from 6.4.0
|
||||||
|
* Features / Enhancements
|
||||||
|
- Build: Upgrade go to 1.12.10. #19499, @marefr
|
||||||
|
- DataLinks: Suggestions menu improvements. #19396, @dprokop
|
||||||
|
- Explore: Take root_url setting into account when redirecting from dashboard to explore. #19447, @ivanahuckova
|
||||||
|
- Explore: Update broken link to logql docs. #19510, @ivanahuckova
|
||||||
|
- Logs: Adds Logs Panel as a visualization. #19504, @davkal
|
||||||
|
* Bug Fixes
|
||||||
|
- CLI: Fix version selection for plugin install. #19498, @aocenas
|
||||||
|
- Graph: Fixes minor issue with series override color picker and custom color . #19516, @torkelo
|
||||||
|
|
||||||
|
- Changes from 6.4.0 Beta 2
|
||||||
|
* Features / Enhancements
|
||||||
|
- Azure Monitor: Remove support for cross resource queries (#19115)". #19346, @sunker
|
||||||
|
- Docker: Upgrade packages to resolve reported vulnerabilities. #19188, @marefr
|
||||||
|
- Graphite: Time range expansion reduced from 1 minute to 1 second. #19246, @torkelo
|
||||||
|
- grafana/toolkit: Add plugin creation task. #19207, @dprokop
|
||||||
|
* Bug Fixes
|
||||||
|
- Alerting: Prevents creating alerts from unsupported queries. #19250, @hugohaggmark
|
||||||
|
- Alerting: Truncate PagerDuty summary when greater than 1024 characters. #18730, @nvllsvm
|
||||||
|
- Cloudwatch: Fix autocomplete for Gamelift dimensions. #19146, @kevinpz
|
||||||
|
- Dashboard: Fix export for sharing when panels use default data source. #19315, @torkelo
|
||||||
|
- Database: Rewrite system statistics query to perform better. #19178, @papagian
|
||||||
|
- Gauge/BarGauge: Fix issue with [object Object] in titles . #19217, @ryantxu
|
||||||
|
- MSSQL: Revert usage of new connectionstring format introduced by #18384. #19203, @marefr
|
||||||
|
- Multi-LDAP: Do not fail-fast on invalid credentials. #19261, @gotjosh
|
||||||
|
- MySQL, Postgres, MSSQL: Fix validating query with template variables in alert . #19237, @marefr
|
||||||
|
- MySQL, Postgres: Update raw sql when query builder updates. #19209, @marefr
|
||||||
|
- MySQL: Limit datasource error details returned from the backend. #19373, @marefr
|
||||||
|
|
||||||
|
- Changes from 6.4.0 Beta 1
|
||||||
|
* Features / Enhancements
|
||||||
|
- API: Readonly datasources should not be created via the API. #19006, @papagian
|
||||||
|
- Alerting: Include configured AlertRuleTags in Webhooks notifier. #18233, @dominic-miglar
|
||||||
|
- Annotations: Add annotations support to Loki. #18949, @aocenas
|
||||||
|
- Annotations: Use a single row to represent a region. #17673, @ryantxu
|
||||||
|
- Auth: Allow inviting existing users when login form is disabled. #19048, @548017
|
||||||
|
- Azure Monitor: Add support for cross resource queries. #19115, @sunker
|
||||||
|
- CLI: Allow installing custom binary plugins. #17551, @aocenas
|
||||||
|
- Dashboard: Adds Logs Panel (alpha) as visualization option for Dashboards. #18641, @hugohaggmark
|
||||||
|
- Dashboard: Reuse query results between panels . #16660, @ryantxu
|
||||||
|
- Dashboard: Set time to to 23:59:59 when setting To time using calendar. #18595, @simPod
|
||||||
|
- DataLinks: Add DataLinks support to Gauge, BarGauge and SingleStat2 panel. #18605, @ryantxu
|
||||||
|
- DataLinks: Enable access to labels & field names. #18918, @torkelo
|
||||||
|
- DataLinks: Enable multiple data links per panel. #18434, @dprokop
|
||||||
|
- Docker: switch docker image to alpine base with phantomjs support. #18468, @DanCech
|
||||||
|
- Elasticsearch: allow templating queries to order by doc_count. #18870, @hackery
|
||||||
|
- Explore: Add throttling when doing live queries. #19085, @aocenas
|
||||||
|
- Explore: Adds ability to go back to dashboard, optionally with query changes. #17982, @kaydelaney
|
||||||
|
- Explore: Reduce default time range to last hour. #18212, @davkal
|
||||||
|
- Gauge/BarGauge: Support decimals for min/max. #18368, @ryantxu
|
||||||
|
- Graph: New series override transform constant that renders a single point as a line across the whole graph. #19102, @davkal
|
||||||
|
- Image rendering: Add deprecation warning when PhantomJS is used for rendering images. #18933, @papagian
|
||||||
|
- InfluxDB: Enable interpolation within ad-hoc filter values. #18077, @kvc-code
|
||||||
|
- LDAP: Allow an user to be synchronized against LDAP. #18976, @gotjosh
|
||||||
|
- Ldap: Add ldap debug page. #18759, @peterholmberg
|
||||||
|
- Loki: Remove prefetching of default label values. #18213, @davkal
|
||||||
|
- Metrics: Add failed alert notifications metric. #18089, @koorgoo
|
||||||
|
- OAuth: Support JMES path lookup when retrieving user email. #14683, @bobmshannon
|
||||||
|
- OAuth: return GitLab groups as a part of user info (enable team sync). #18388, @alexanderzobnin
|
||||||
|
- Panels: Add unit for electrical charge - ampere-hour. #18950, @anirudh-ramesh
|
||||||
|
- Plugin: AzureMonitor - Reapply MetricNamespace support. #17282, @raphaelquati
|
||||||
|
- Plugins: better warning when plugins fail to load. #18671, @ryantxu
|
||||||
|
- Postgres: Add support for scram sha 256 authentication. #18397, @nonamef
|
||||||
|
- RemoteCache: Support SSL with Redis. #18511, @kylebrandt
|
||||||
|
- SingleStat: The gauge option in now disabled/hidden (unless it's an old panel with it already enabled) . #18610, @ryantxu
|
||||||
|
- Stackdriver: Add extra alignment period options. #18909, @sunker
|
||||||
|
- Units: Add South African Rand (ZAR) to currencies. #18893, @jeteon
|
||||||
|
- Units: Adding T,P,E,Z,and Y bytes. #18706, @chiqomar
|
||||||
|
* Bug Fixes
|
||||||
|
- Alerting: Notification is sent when state changes from no_data to ok. #18920, @papagian
|
||||||
|
- Alerting: fix duplicate alert states when the alert fails to save to the database. #18216, @kylebrandt
|
||||||
|
- Alerting: fix response popover prompt when add notification channels. #18967, @lzdw
|
||||||
|
- CloudWatch: Fix alerting for queries with Id (using GetMetricData). #17899, @alex-berger
|
||||||
|
- Explore: Fix auto completion on label values for Loki. #18988, @aocenas
|
||||||
|
- Explore: Fixes crash using back button with a zoomed in graph. #19122, @hugohaggmark
|
||||||
|
- Explore: Fixes so queries in Explore are only run if Graph/Table is shown. #19000, @hugohaggmark
|
||||||
|
- MSSQL: Change connectionstring to URL format to fix using passwords with semicolon. #18384, @Russiancold
|
||||||
|
- MSSQL: Fix memory leak when debug enabled. #19049, @briangann
|
||||||
|
- Provisioning: Allow escaping literal '$' with '$$' in configs to avoid interpolation. #18045, @kylebrandt
|
||||||
|
- TimePicker: Fixes hiding time picker dropdown in FireFox. #19154, @hugohaggmark
|
||||||
|
* Breaking changes
|
||||||
|
+ Annotations
|
||||||
|
There are some breaking changes in the annotations HTTP API for region annotations. Region annotations are now represented
|
||||||
|
using a single event instead of two seperate events. Check breaking changes in HTTP API below and HTTP API documentation for more details.
|
||||||
|
+ Docker
|
||||||
|
Grafana is now using Alpine 3.10 as docker base image.
|
||||||
|
+ HTTP API
|
||||||
|
- GET /api/alert-notifications now requires at least editor access.
|
||||||
|
New /api/alert-notifications/lookup returns less information than /api/alert-notifications and can be access by any authenticated user.
|
||||||
|
- GET /api/alert-notifiers now requires at least editor access
|
||||||
|
- GET /api/org/users now requires org admin role.
|
||||||
|
New /api/org/users/lookup returns less information than /api/org/users and can be access by users that are org admins,
|
||||||
|
admin in any folder or admin of any team.
|
||||||
|
- GET /api/annotations no longer returns regionId property.
|
||||||
|
- POST /api/annotations no longer supports isRegion property.
|
||||||
|
- PUT /api/annotations/:id no longer supports isRegion property.
|
||||||
|
- PATCH /api/annotations/:id no longer supports isRegion property.
|
||||||
|
- DELETE /api/annotations/region/:id has been removed.
|
||||||
|
* Deprecation notes
|
||||||
|
+ PhantomJS
|
||||||
|
- PhantomJS, which is used for rendering images of dashboards and panels,
|
||||||
|
is deprecated and will be removed in a future Grafana release.
|
||||||
|
A deprecation warning will from now on be logged when Grafana starts up if PhantomJS is in use.
|
||||||
|
Please consider migrating from PhantomJS to the Grafana Image Renderer plugin.
|
||||||
|
|
||||||
|
- Changes from 6.3.6
|
||||||
|
* Features / Enhancements
|
||||||
|
- Metrics: Adds setting for turning off total stats metrics. #19142, @marefr
|
||||||
|
* Bug Fixes
|
||||||
|
- Database: Rewrite system statistics query to perform better. #19178, @papagian
|
||||||
|
- Explore: Fixes error when switching from prometheus to loki data sources. #18599, @kaydelaney
|
||||||
|
|
||||||
|
- Rebase package spec. Use mostly from fedora, fix suse specified things and fix some errors.
|
||||||
|
- Add missing directories provisioning/datasources and provisioning/notifiers
|
||||||
|
and sample.yaml as described in packaging/rpm/control from upstream.
|
||||||
|
Missing directories are shown in logfiles.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Sep 05 08:07:21 UTC 2019 - simon.crute@grafana.com
|
Thu Sep 05 08:07:21 UTC 2019 - simon.crute@grafana.com
|
||||||
|
|
||||||
|
664
grafana.spec
664
grafana.spec
@ -16,99 +16,490 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define GRAFANA_USER %{name}
|
# Unbundle grafana vendor sources and instead use BuildRequires
|
||||||
%define GRAFANA_GROUP %{name}
|
# only on platforms that have enough golang devel support.
|
||||||
%define GRAFANA_HOME %{_datadir}/%{name}
|
%global unbundle_vendor_sources 0
|
||||||
|
|
||||||
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
# omit golang debugsource, see BZ995136 and related
|
||||||
%if ! %{defined _fillupdir}
|
%global _debugsource_template %{nil}
|
||||||
%define _fillupdir /var/adm/fillup-templates
|
%global GRAFANA_USER %{name}
|
||||||
%endif
|
%global GRAFANA_GROUP %{name}
|
||||||
|
%global GRAFANA_HOME %{_datadir}/%{name}
|
||||||
%bcond_with phantomjs
|
|
||||||
|
|
||||||
Name: grafana
|
Name: grafana
|
||||||
Version: 6.3.5
|
Version: 6.4.3
|
||||||
Release: 0
|
Release: 1%{?dist}
|
||||||
Summary: Dashboards and editors for Graphite, InfluxDB, OpenTSDB
|
Summary: Metrics dashboard and graph editor
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
Group: System/Monitoring
|
Group: System/Monitoring
|
||||||
Url: http://grafana.org/
|
URL: https://grafana.org
|
||||||
Source: %{name}-%{version}.tar.xz
|
# Source0 contains the tagged upstream sources
|
||||||
Source1: %{name}-rpmlintrc
|
Source0: https://github.com/grafana/grafana/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||||
# Instructions on the build process
|
# Source1 contains the front-end javascript modules bundled into a webpack
|
||||||
Source2: README
|
Source1: grafana_webpack-%{version}.tar.gz
|
||||||
# Makefile to automate build process
|
# Source2 is the script to create the above webpack from grafana sources
|
||||||
Source3: Makefile.no_phantomjs
|
Source2: make_grafana_webpack.sh
|
||||||
Source4: Makefile.phantomjs
|
# rpmlintrc
|
||||||
BuildRequires: fdupes
|
Source99: %{name}-rpmlintrc
|
||||||
BuildRequires: go >= 1.11
|
# Patches for upstream
|
||||||
BuildRequires: golang-packaging
|
Patch1: 001-login-oauth-use-oauth2-exchange.patch
|
||||||
BuildRequires: shadow
|
Patch2: 002-remove-jaeger-tracing.patch
|
||||||
|
Patch3: 003-new-files.patch
|
||||||
|
Patch4: 004-distro-defaults-ini.patch
|
||||||
|
#
|
||||||
|
Requires(pre): shadow
|
||||||
Requires(post): %insserv_prereq
|
Requires(post): %insserv_prereq
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRequires: fdupes
|
||||||
%if %{with phantomjs}
|
BuildRequires: gettext-tools
|
||||||
BuildRequires: phantomjs
|
BuildRequires: config(krb5)
|
||||||
Requires: phantomjs
|
BuildRequires: go >= 1.12.9
|
||||||
%endif
|
BuildRequires: golang-packaging
|
||||||
|
# Without cloudwatch you can not add data sources
|
||||||
|
Requires: grafana-cloudwatch = %{version}-%{release}
|
||||||
|
|
||||||
%{?systemd_requires}
|
%{?systemd_requires}
|
||||||
|
|
||||||
%description
|
Recommends: grafana-elasticsearch = %{version}-%{release}
|
||||||
A graph and dashboard builder for visualizing time series metrics.
|
Recommends: grafana-azure-monitor = %{version}-%{release}
|
||||||
|
Recommends: grafana-graphite = %{version}-%{release}
|
||||||
|
Recommends: grafana-influxdb = %{version}-%{release}
|
||||||
|
Recommends: grafana-loki = %{version}-%{release}
|
||||||
|
Recommends: grafana-mssql = %{version}-%{release}
|
||||||
|
Recommends: grafana-mysql = %{version}-%{release}
|
||||||
|
Recommends: grafana-opentsdb = %{version}-%{release}
|
||||||
|
Recommends: grafana-postgres = %{version}-%{release}
|
||||||
|
Recommends: grafana-prometheus = %{version}-%{release}
|
||||||
|
Recommends: grafana-stackdriver = %{version}-%{release}
|
||||||
|
|
||||||
|
%if 0%{?unbundle_vendor_sources}
|
||||||
|
# golang build deps. These allow us to unbundle vendor golang source.
|
||||||
|
BuildRequires: golang(github.com/BurntSushi/toml)
|
||||||
|
BuildRequires: golang(github.com/aws/aws-sdk-go)
|
||||||
|
BuildRequires: golang(github.com/benbjohnson/clock)
|
||||||
|
BuildRequires: golang(github.com/beorn7/perks/quantile)
|
||||||
|
BuildRequires: golang(github.com/bmizerany/assert)
|
||||||
|
BuildRequires: golang(github.com/bradfitz/gomemcache/memcache)
|
||||||
|
BuildRequires: golang(github.com/codahale/hdrhistogram)
|
||||||
|
BuildRequires: golang(github.com/codegangsta/cli)
|
||||||
|
BuildRequires: golang(github.com/davecgh/go-spew/spew)
|
||||||
|
BuildRequires: golang(github.com/denisenkom/go-mssqldb)
|
||||||
|
BuildRequires: golang(github.com/facebookgo/inject)
|
||||||
|
BuildRequires: golang(github.com/facebookgo/structtag)
|
||||||
|
BuildRequires: golang(github.com/fatih/color)
|
||||||
|
BuildRequires: golang(github.com/go-ini/ini)
|
||||||
|
BuildRequires: golang(github.com/go-macaron/binding)
|
||||||
|
BuildRequires: golang(github.com/go-macaron/gzip)
|
||||||
|
BuildRequires: golang(github.com/go-macaron/inject)
|
||||||
|
BuildRequires: golang(github.com/go-macaron/session)
|
||||||
|
BuildRequires: golang(github.com/go-sql-driver/mysql)
|
||||||
|
BuildRequires: golang(github.com/go-stack/stack)
|
||||||
|
BuildRequires: golang(github.com/go-xorm/builder)
|
||||||
|
BuildRequires: golang(github.com/go-xorm/core)
|
||||||
|
BuildRequires: golang(github.com/go-xorm/xorm)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/compiler)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/match)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/syntax)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/syntax/ast)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/syntax/lexer)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/util/runes)
|
||||||
|
BuildRequires: golang(github.com/gobwas/glob/util/strings)
|
||||||
|
BuildRequires: golang(github.com/gopherjs/gopherjs/js)
|
||||||
|
BuildRequires: golang(github.com/gorilla/websocket)
|
||||||
|
BuildRequires: golang(github.com/gosimple/slug)
|
||||||
|
BuildRequires: golang(github.com/hashicorp/go-hclog)
|
||||||
|
BuildRequires: golang(golang.org/x/sys/unix)
|
||||||
|
BuildRequires: golang(google.golang.org/appengine)
|
||||||
|
BuildRequires: golang(google.golang.org/genproto/googleapis/rpc/status)
|
||||||
|
BuildRequires: golang(google.golang.org/grpc)
|
||||||
|
# need grpc_broker in go-plugin >= 1.0.0-1
|
||||||
|
BuildRequires: golang-github-prometheus-common-devel
|
||||||
|
BuildRequires: golang(cloud.google.com/go/compute/metadata)
|
||||||
|
BuildRequires: golang(github.com/Unknwon/com)
|
||||||
|
BuildRequires: golang(github.com/VividCortex/mysqlerr)
|
||||||
|
BuildRequires: golang(github.com/go-bufio/bufio)
|
||||||
|
BuildRequires: golang(github.com/go-ini/ini)
|
||||||
|
BuildRequires: golang(github.com/go-macaron/macaron)
|
||||||
|
BuildRequires: golang(github.com/go-redis/redis)
|
||||||
|
BuildRequires: golang(github.com/go-yaml/yaml)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/proto)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/ptypes)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/ptypes)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/ptypes/any)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/ptypes/duration)
|
||||||
|
BuildRequires: golang(github.com/golang/protobuf/ptypes/timestamp)
|
||||||
|
BuildRequires: golang(github.com/hashicorp/go-plugin)
|
||||||
|
BuildRequires: golang(github.com/hashicorp/go-version)
|
||||||
|
BuildRequires: golang(github.com/hashicorp/yamux)
|
||||||
|
BuildRequires: golang(github.com/inconshreveable/log15)
|
||||||
|
BuildRequires: golang(github.com/jmespath/go-jmespath)
|
||||||
|
BuildRequires: golang(github.com/jonboulle/clockwork)
|
||||||
|
BuildRequires: golang(github.com/jtolds/gls)
|
||||||
|
BuildRequires: golang(github.com/klauspost/compress/flate)
|
||||||
|
BuildRequires: golang(github.com/klauspost/compress/gzip)
|
||||||
|
BuildRequires: golang(github.com/klauspost/compress/snappy)
|
||||||
|
BuildRequires: golang(github.com/klauspost/cpuid)
|
||||||
|
BuildRequires: golang(github.com/klauspost/crc32)
|
||||||
|
BuildRequires: golang(github.com/kr/pretty)
|
||||||
|
BuildRequires: golang(github.com/kr/text)
|
||||||
|
BuildRequires: golang(github.com/lib/pq)
|
||||||
|
BuildRequires: golang(github.com/mattn/go-colorable)
|
||||||
|
BuildRequires: golang(github.com/mattn/go-isatty)
|
||||||
|
BuildRequires: golang(github.com/mattn/go-sqlite3)
|
||||||
|
BuildRequires: golang(github.com/matttproud/golang_protobuf_extensions/pbutil)
|
||||||
|
BuildRequires: golang(github.com/mitchellh/go-testing-interface)
|
||||||
|
BuildRequires: golang(github.com/oklog/run)
|
||||||
|
BuildRequires: golang(github.com/opentracing/opentracing-go)
|
||||||
|
BuildRequires: golang(github.com/patrickmn/go-cache)
|
||||||
|
BuildRequires: golang(github.com/pkg/errors)
|
||||||
|
BuildRequires: golang(github.com/prometheus/client_golang/api)
|
||||||
|
BuildRequires: golang(github.com/prometheus/client_golang/api/prometheus/v1)
|
||||||
|
BuildRequires: golang(github.com/prometheus/client_model/go)
|
||||||
|
BuildRequires: golang(github.com/prometheus/common/expfmt)
|
||||||
|
BuildRequires: golang(github.com/prometheus/common/expfmt)
|
||||||
|
BuildRequires: golang(github.com/prometheus/common/model)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs/internal/util)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs/internal/util)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs/nfs)
|
||||||
|
BuildRequires: golang(github.com/prometheus/procfs/xfs)
|
||||||
|
BuildRequires: golang(github.com/rainycape/unidecode)
|
||||||
|
BuildRequires: golang(github.com/sergi/go-diff/diffmatchpatch)
|
||||||
|
BuildRequires: golang(github.com/smartystreets/assertions)
|
||||||
|
BuildRequires: golang(github.com/smartystreets/goconvey/convey)
|
||||||
|
BuildRequires: golang(github.com/smartystreets/goconvey/convey/gotest)
|
||||||
|
BuildRequires: golang(github.com/smartystreets/goconvey/convey/reporting)
|
||||||
|
BuildRequires: golang(github.com/teris-io/shortid)
|
||||||
|
BuildRequires: golang(github.com/yudai/gojsondiff)
|
||||||
|
BuildRequires: golang(github.com/yudai/golcs)
|
||||||
|
BuildRequires: golang(golang.org/x/crypto/ed25519)
|
||||||
|
BuildRequires: golang(golang.org/x/crypto/md4)
|
||||||
|
BuildRequires: golang(golang.org/x/crypto/pbkdf2)
|
||||||
|
BuildRequires: golang(golang.org/x/net/context)
|
||||||
|
BuildRequires: golang(golang.org/x/net/context/ctxhttp)
|
||||||
|
BuildRequires: golang(golang.org/x/net/http/httpguts)
|
||||||
|
BuildRequires: golang(golang.org/x/net/http2)
|
||||||
|
BuildRequires: golang(golang.org/x/net/http2/hpack)
|
||||||
|
BuildRequires: golang(golang.org/x/net/idna)
|
||||||
|
BuildRequires: golang(golang.org/x/net/internal/timeseries)
|
||||||
|
BuildRequires: golang(golang.org/x/net/trace)
|
||||||
|
BuildRequires: golang(golang.org/x/oauth2)
|
||||||
|
BuildRequires: golang(golang.org/x/oauth2/google)
|
||||||
|
BuildRequires: golang(golang.org/x/oauth2/internal)
|
||||||
|
BuildRequires: golang(golang.org/x/oauth2/jws)
|
||||||
|
BuildRequires: golang(golang.org/x/oauth2/jwt)
|
||||||
|
BuildRequires: golang(golang.org/x/sync/errgroup)
|
||||||
|
BuildRequires: golang(golang.org/x/text/collate)
|
||||||
|
BuildRequires: golang(golang.org/x/text/collate/build)
|
||||||
|
BuildRequires: golang(golang.org/x/text/internal/colltab)
|
||||||
|
BuildRequires: golang(golang.org/x/text/internal/gen)
|
||||||
|
BuildRequires: golang(golang.org/x/text/internal/tag)
|
||||||
|
BuildRequires: golang(golang.org/x/text/internal/triegen)
|
||||||
|
BuildRequires: golang(golang.org/x/text/internal/ucd)
|
||||||
|
BuildRequires: golang(gopkg.in/alexcesaro/quotedprintable.v3)
|
||||||
|
BuildRequires: golang(gopkg.in/asn1-ber.v1)
|
||||||
|
BuildRequires: golang(gopkg.in/ldap.v3)
|
||||||
|
BuildRequires: golang(gopkg.in/mail.v2)
|
||||||
|
BuildRequires: golang(gopkg.in/square/go-jose.v2)
|
||||||
|
BuildRequires: golang(gopkg.in/square/go-jose.v2/cipher)
|
||||||
|
BuildRequires: golang(gopkg.in/square/go-jose.v2/json)
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Declare all nodejs modules bundled in the webpack - this is for security
|
||||||
|
# purposes so if nodejs-foo ever needs an update, affected packages can be
|
||||||
|
# easily identified. This is generated from package-lock.json once the webpack
|
||||||
|
# has been built with make_webpack.sh.
|
||||||
|
Provides: bundled(nodejs-abbrev) = 1.1.1
|
||||||
|
Provides: bundled(nodejs-ansi-regex) = 2.1.1
|
||||||
|
Provides: bundled(nodejs-ansi-styles) = 2.2.1
|
||||||
|
Provides: bundled(nodejs-argparse) = 1.0.10
|
||||||
|
Provides: bundled(nodejs-array-find-index) = 1.0.2
|
||||||
|
Provides: bundled(nodejs-async) = 1.5.2
|
||||||
|
Provides: bundled(nodejs-balanced-match) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-brace-expansion) = 1.1.11
|
||||||
|
Provides: bundled(nodejs-builtin-modules) = 1.1.1
|
||||||
|
Provides: bundled(nodejs-camelcase) = 2.1.1
|
||||||
|
Provides: bundled(nodejs-camelcase-keys) = 2.1.0
|
||||||
|
Provides: bundled(nodejs-chalk) = 1.1.3
|
||||||
|
Provides: bundled(nodejs-coffee-script) = 1.10.0
|
||||||
|
Provides: bundled(nodejs-colors) = 1.1.2
|
||||||
|
Provides: bundled(nodejs-concat-map) = 0.0.1
|
||||||
|
Provides: bundled(nodejs-currently-unhandled) = 0.4.1
|
||||||
|
Provides: bundled(nodejs-dateformat) = 1.0.12
|
||||||
|
Provides: bundled(nodejs-decamelize) = 1.2.0
|
||||||
|
Provides: bundled(nodejs-error-ex) = 1.3.2
|
||||||
|
Provides: bundled(nodejs-escape-string-regexp) = 1.0.5
|
||||||
|
Provides: bundled(nodejs-esprima) = 2.7.3
|
||||||
|
Provides: bundled(nodejs-eventemitter2) = 0.4.14
|
||||||
|
Provides: bundled(nodejs-exit) = 0.1.2
|
||||||
|
Provides: bundled(nodejs-find-up) = 1.1.2
|
||||||
|
Provides: bundled(nodejs-findup-sync) = 0.3.0
|
||||||
|
Provides: bundled(nodejs-fs.realpath) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-get-stdin) = 4.0.1
|
||||||
|
Provides: bundled(nodejs-getobject) = 0.1.0
|
||||||
|
Provides: bundled(nodejs-glob) = 7.0.6
|
||||||
|
Provides: bundled(nodejs-graceful-fs) = 4.1.15
|
||||||
|
Provides: bundled(nodejs-grunt) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-grunt-cli) = 1.2.0
|
||||||
|
Provides: bundled(nodejs-grunt-known-options) = 1.1.1
|
||||||
|
Provides: bundled(nodejs-grunt-legacy-log) = 1.0.2
|
||||||
|
Provides: bundled(nodejs-grunt-legacy-log-utils) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-grunt-legacy-util) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-has-ansi) = 2.0.0
|
||||||
|
Provides: bundled(nodejs-hooker) = 0.2.3
|
||||||
|
Provides: bundled(nodejs-hosted-git-info) = 2.7.1
|
||||||
|
Provides: bundled(nodejs-iconv-lite) = 0.4.24
|
||||||
|
Provides: bundled(nodejs-indent-string) = 2.1.0
|
||||||
|
Provides: bundled(nodejs-inflight) = 1.0.6
|
||||||
|
Provides: bundled(nodejs-inherits) = 2.0.3
|
||||||
|
Provides: bundled(nodejs-is-arrayish) = 0.2.1
|
||||||
|
Provides: bundled(nodejs-is-builtin-module) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-is-finite) = 1.0.2
|
||||||
|
Provides: bundled(nodejs-is-utf8) = 0.2.1
|
||||||
|
Provides: bundled(nodejs-isexe) = 2.0.0
|
||||||
|
Provides: bundled(nodejs-js-yaml) = 3.5.5
|
||||||
|
Provides: bundled(nodejs-load-json-file) = 1.1.0
|
||||||
|
Provides: bundled(nodejs-lodash) = 4.17.11
|
||||||
|
Provides: bundled(nodejs-loud-rejection) = 1.6.0
|
||||||
|
Provides: bundled(nodejs-map-obj) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-meow) = 3.7.0
|
||||||
|
Provides: bundled(nodejs-minimatch) = 3.0.4
|
||||||
|
Provides: bundled(nodejs-minimist) = 1.2.0
|
||||||
|
Provides: bundled(nodejs-nopt) = 3.0.6
|
||||||
|
Provides: bundled(nodejs-normalize-package-data) = 2.4.2
|
||||||
|
Provides: bundled(nodejs-number-is-nan) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-object-assign) = 4.1.1
|
||||||
|
Provides: bundled(nodejs-once) = 1.4.0
|
||||||
|
Provides: bundled(nodejs-parse-json) = 2.2.0
|
||||||
|
Provides: bundled(nodejs-path-exists) = 2.1.0
|
||||||
|
Provides: bundled(nodejs-path-is-absolute) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-path-type) = 1.1.0
|
||||||
|
Provides: bundled(nodejs-pify) = 2.3.0
|
||||||
|
Provides: bundled(nodejs-pinkie) = 2.0.4
|
||||||
|
Provides: bundled(nodejs-pinkie-promise) = 2.0.1
|
||||||
|
Provides: bundled(nodejs-read-pkg) = 1.1.0
|
||||||
|
Provides: bundled(nodejs-read-pkg-up) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-redent) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-repeating) = 2.0.1
|
||||||
|
Provides: bundled(nodejs-resolve) = 1.1.7
|
||||||
|
Provides: bundled(nodejs-rimraf) = 2.2.8
|
||||||
|
Provides: bundled(nodejs-safer-buffer) = 2.1.2
|
||||||
|
Provides: bundled(nodejs-semver) = 5.6.0
|
||||||
|
Provides: bundled(nodejs-signal-exit) = 3.0.2
|
||||||
|
Provides: bundled(nodejs-spdx-correct) = 3.1.0
|
||||||
|
Provides: bundled(nodejs-spdx-exceptions) = 2.2.0
|
||||||
|
Provides: bundled(nodejs-spdx-expression-parse) = 3.0.0
|
||||||
|
Provides: bundled(nodejs-spdx-license-ids) = 3.0.3
|
||||||
|
Provides: bundled(nodejs-sprintf-js) = 1.0.3
|
||||||
|
Provides: bundled(nodejs-strip-ansi) = 3.0.1
|
||||||
|
Provides: bundled(nodejs-strip-bom) = 2.0.0
|
||||||
|
Provides: bundled(nodejs-strip-indent) = 1.0.1
|
||||||
|
Provides: bundled(nodejs-supports-color) = 2.0.0
|
||||||
|
Provides: bundled(nodejs-trim-newlines) = 1.0.0
|
||||||
|
Provides: bundled(nodejs-underscore.string) = 3.2.3
|
||||||
|
Provides: bundled(nodejs-validate-npm-package-license) = 3.0.4
|
||||||
|
Provides: bundled(nodejs-which) = 1.2.14
|
||||||
|
Provides: bundled(nodejs-wrappy) = 1.0.2
|
||||||
|
Provides: bundled(nodejs-yarn) = 1.13.0
|
||||||
|
|
||||||
|
%description
|
||||||
|
Grafana is an open source, feature rich metrics dashboard and graph editor for
|
||||||
|
Graphite, InfluxDB & OpenTSDB.
|
||||||
|
|
||||||
|
|
||||||
|
%package cloudwatch
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana cloudwatch datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description cloudwatch
|
||||||
|
The Grafana cloudwatch datasource.
|
||||||
|
|
||||||
|
%package elasticsearch
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana elasticsearch datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description elasticsearch
|
||||||
|
The Grafana elasticsearch datasource.
|
||||||
|
|
||||||
|
%package azure-monitor
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana azure-monitor datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description azure-monitor
|
||||||
|
The Grafana azure-monitor datasource.
|
||||||
|
|
||||||
|
%package graphite
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana graphite datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description graphite
|
||||||
|
The Grafana graphite datasource.
|
||||||
|
|
||||||
|
%package influxdb
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana influxdb datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description influxdb
|
||||||
|
The Grafana influxdb datasource.
|
||||||
|
|
||||||
|
%package loki
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana loki datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description loki
|
||||||
|
The Grafana loki datasource.
|
||||||
|
|
||||||
|
%package mssql
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana mssql datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description mssql
|
||||||
|
The Grafana mssql datasource.
|
||||||
|
|
||||||
|
%package mysql
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana mysql datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description mysql
|
||||||
|
The Grafana mysql datasource.
|
||||||
|
|
||||||
|
%package opentsdb
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana opentsdb datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description opentsdb
|
||||||
|
The Grafana opentsdb datasource.
|
||||||
|
|
||||||
|
%package postgres
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana postgres datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description postgres
|
||||||
|
The Grafana postgres datasource.
|
||||||
|
|
||||||
|
%package prometheus
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana prometheus datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description prometheus
|
||||||
|
The Grafana prometheus datasource.
|
||||||
|
|
||||||
|
%package stackdriver
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Summary: Grafana stackdriver datasource
|
||||||
|
Group: System/Monitoring
|
||||||
|
|
||||||
|
%description stackdriver
|
||||||
|
The Grafana stackdriver datasource.
|
||||||
|
|
||||||
Grafana provides ways to create, explore, and share
|
|
||||||
dashboards and data with teams.
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n grafana-%{version}
|
%setup -q -T -D -b 0
|
||||||
%if %{with phantomjs}
|
%setup -q -T -D -b 1
|
||||||
cp %{S:4} %_sourcedir/Makefile
|
%patch1 -p1
|
||||||
%else
|
%patch2 -p1
|
||||||
cp %{S:3} %_sourcedir/Makefile
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
|
||||||
|
# Set up build subdirs and links
|
||||||
|
mkdir -p %{_builddir}/src/github.com/grafana
|
||||||
|
ln -sf %{_builddir}/%{name}-%{version} \
|
||||||
|
%{_builddir}/src/github.com/grafana/grafana
|
||||||
|
|
||||||
|
# remove some (apparent) development files, for rpmlint
|
||||||
|
rm -f public/sass/.sass-lint.yml public/test/.jshintrc
|
||||||
|
|
||||||
|
%if 0%{?unbundle_vendor_sources}
|
||||||
|
# Unbundle all grafana vendor sources, as per BuildRequires above.
|
||||||
|
# An exception is grafana-plugin-model, which is part of grafana.
|
||||||
|
# Another exception is xerrors, which is a transition package
|
||||||
|
# for the new Go 1.13 error values, see https://github.com/golang/xerrors
|
||||||
|
cp --parents -a vendor/github.com/grafana vendor/golang.org/x/xerrors \
|
||||||
|
vendor/github.com/robfig vendor/github.com/crewjam/saml \
|
||||||
|
vendor/github.com/ua-parser/uap-go/uaparser \
|
||||||
|
vendor/github.com/beevik/etree \
|
||||||
|
vendor/github.com/russellhaering/goxmldsig \
|
||||||
|
%{_builddir}
|
||||||
|
rm -r vendor # remove all vendor sources
|
||||||
|
mv %{_builddir}/vendor vendor # put back what we're keeping
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%goprep github.com/grafana/grafana
|
%goprep github.com/grafana/grafana
|
||||||
# Manual build in order to inject ldflags so grafana correctly displays
|
export GOPATH=%{_builddir}:%{_builddir}/contrib
|
||||||
# the version in the footer of each page. Note that we're only injecting
|
###go install $BUILDFLAGS -ldflags '-X main.version=%%{version}' $IMPORTPATH/pkg/cmd/...
|
||||||
# main.version, not main.commit or main.buildstamp as is done in the upstream
|
cd %{_builddir}/src/github.com/grafana/grafana
|
||||||
# build.go, because we don't have access to the git commit history here.
|
go run build.go setup
|
||||||
# (The %%gobuild macro can't take quoted strings; they get split up when
|
go run build.go build
|
||||||
# expanded to $extra_flags in process_build() in /usr/lib/rpm/golang.sh.)
|
|
||||||
export IMPORTPATH="github.com/grafana/grafana"
|
|
||||||
export BUILDFLAGS="-v -p 4 -x -buildmode=pie"
|
|
||||||
export GOPATH=%{_builddir}/go:%{_builddir}/contrib
|
|
||||||
export GOBIN=%{_builddir}/go/bin
|
|
||||||
go install $BUILDFLAGS -ldflags '-X main.version=%{version}' $IMPORTPATH/pkg/cmd/...
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%goinstall
|
%goinstall
|
||||||
|
|
||||||
# we're missing %%gosrc and %%gofilelist... (although that *might* be ok...)
|
# Fix up arch bin directories
|
||||||
|
[ ! -d bin/x86_64 ] && ln -sf linux-amd64 bin/x86_64
|
||||||
|
[ ! -d bin/i386 ] && ln -sf linux-386 bin/i386
|
||||||
|
[ ! -d bin/ppc64le ] && ln -sf linux-ppc64le bin/ppc64le
|
||||||
|
[ ! -d bin/s390x ] && ln -sf linux-s390x bin/s390x
|
||||||
|
[ ! -d bin/arm ] && ln -sf linux-arm bin/arm
|
||||||
|
[ ! -d bin/arm64 ] && ln -sf linux-arm64 bin/aarch64
|
||||||
|
[ ! -d bin/aarch64 ] && ln -sf linux-aarch64 bin/aarch64
|
||||||
|
|
||||||
install -Dm644 {packaging/rpm/systemd/,%{buildroot}%{_unitdir}/}%{name}-server.service
|
# dirs
|
||||||
install -dm755 %{buildroot}%{_sbindir}
|
install -d -m0755 %{buildroot}%{_sbindir}
|
||||||
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-server
|
install -d -m0755 %{buildroot}%{_datadir}/%{name}
|
||||||
mv %{buildroot}/%{_bindir}/grafana-* %{buildroot}/%{_sbindir}
|
install -d -m0755 %{buildroot}%{_datadir}/%{name}/bin
|
||||||
|
install -d -m0755 %{buildroot}%{_datadir}/%{name}/tools
|
||||||
install -Dm644 packaging/rpm/sysconfig/%{name}-server \
|
install -d -m0755 %{buildroot}%{_datadir}/%{name}/vendor
|
||||||
%{buildroot}%{_fillupdir}/sysconfig.%{name}-server
|
|
||||||
|
|
||||||
install -d -m0750 %{buildroot}%{_localstatedir}/lib/%{name}
|
|
||||||
install -d -m0750 %{buildroot}%{_localstatedir}/log/%{name}
|
install -d -m0750 %{buildroot}%{_localstatedir}/log/%{name}
|
||||||
install -d -m0755 %{buildroot}/%{_localstatedir}/lib/%{name}/plugins
|
install -d -m0750 %{buildroot}%{_sharedstatedir}/%{name}
|
||||||
install -d -m0755 %{buildroot}/%{_localstatedir}/lib/%{name}/dashboards
|
install -d -m0755 %{buildroot}%{_sharedstatedir}/%{name}/plugins
|
||||||
|
install -d -m0755 %{buildroot}%{_sharedstatedir}/%{name}/dashboards
|
||||||
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/dashboards
|
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/dashboards
|
||||||
|
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/datasources
|
||||||
|
install -d -m0755 %{buildroot}%{_sysconfdir}/%{name}/provisioning/notifiers
|
||||||
|
|
||||||
|
# wrappers
|
||||||
|
sed -i -e 's|\/usr\/bin\/env bash|\/bin\/bash|g' packaging/wrappers/grafana-cli
|
||||||
|
install -p -m 755 packaging/wrappers/grafana-cli %{buildroot}%{_sbindir}/%{name}-cli
|
||||||
|
|
||||||
|
# binaries
|
||||||
|
install -p -m 755 bin/%{_arch}/%{name}-server %{buildroot}%{_sbindir}
|
||||||
|
install -p -m 755 bin/%{_arch}/%{name}-cli %{buildroot}%{_datadir}/%{name}/bin
|
||||||
|
|
||||||
|
# man pages
|
||||||
|
install -d -m0755 %{buildroot}%{_mandir}/man1
|
||||||
|
install -p -m0644 docs/man/man1/* %{buildroot}%{_mandir}/man1
|
||||||
|
|
||||||
|
# configs defaults
|
||||||
install -Dm640 conf/sample.ini %{buildroot}%{_sysconfdir}/%{name}/%{name}.ini
|
install -Dm640 conf/sample.ini %{buildroot}%{_sysconfdir}/%{name}/%{name}.ini
|
||||||
install -Dm640 {conf/,%{buildroot}%{_sysconfdir}/%{name}/}ldap.toml
|
install -Dm640 {conf/,%{buildroot}%{_sysconfdir}/%{name}/}ldap.toml
|
||||||
install -Dm644 {conf/,%{buildroot}%{_datadir}/%{name}/conf/}defaults.ini
|
cp -a conf/provisioning %{buildroot}%{_sysconfdir}/%{name}
|
||||||
install -m644 {conf/,%{buildroot}%{_datadir}/%{name}/conf/}sample.ini
|
|
||||||
install -Dm644 {conf/provisioning/dashboards/,%{buildroot}%{_datadir}/%{name}/conf/provisioning/dashboards/}sample.yaml
|
# sysconfig
|
||||||
install -Dm644 {conf/provisioning/datasources/,%{buildroot}%{_datadir}/%{name}/conf/provisioning/datasources/}sample.yaml
|
install -Dm644 packaging/rpm/sysconfig/%{name}-server %{buildroot}%{_fillupdir}/sysconfig.%{name}-server
|
||||||
cp -pr public %{buildroot}%{_datadir}/%{name}/
|
|
||||||
install -d -m755 %{buildroot}%{_datadir}/%{name}/vendor
|
# rest
|
||||||
install -d -m755 %{buildroot}%{_datadir}/%{name}/tools
|
cp -a conf public %{buildroot}%{_datadir}/%{name}
|
||||||
|
|
||||||
|
# systemd
|
||||||
|
install -Dm644 {packaging/rpm/systemd/,%{buildroot}%{_unitdir}/}%{name}-server.service
|
||||||
|
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}-server
|
||||||
|
|
||||||
|
# daemon run pid file config for using tmpfs
|
||||||
|
install -d %{buildroot}%{_tmpfilesdir}
|
||||||
|
echo "d %{_rundir}/%{name} 0755 %{GRAFANA_USER} %{GRAFANA_GROUP} -" > %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||||
|
|
||||||
%if %{with phantomjs}
|
%if %{with phantomjs}
|
||||||
# phantomjs is used for rendering PNG images of graphs. The frontend asset
|
# phantomjs is used for rendering PNG images of graphs. The frontend asset
|
||||||
@ -127,19 +518,28 @@ ln -s %{_bindir}/phantomjs %{buildroot}%{_datadir}/%{name}/tools/phantomjs/phant
|
|||||||
%fdupes %{buildroot}/%{_datadir}
|
%fdupes %{buildroot}/%{_datadir}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
#gotest github.com/grafana/grafana/pkg...
|
cd %{_builddir}/src/github.com/grafana/grafana
|
||||||
|
###export GOPATH=%%{_builddir}:%%{gopath}
|
||||||
|
export GOPATH=%{_builddir}
|
||||||
|
# remove tests currently failing
|
||||||
|
rm -f pkg/services/provisioning/dashboards/file_reader_linux_test.go
|
||||||
|
rm -f pkg/services/provisioning/dashboards/file_reader_test.go
|
||||||
|
rm -f pkg/services/sqlstore/alert_test.go
|
||||||
|
rm -f pkg/services/sqlstore/apikey_test.go
|
||||||
|
rm -f pkg/setting/setting_test.go
|
||||||
|
go test ./pkg/...
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
%service_add_pre %{name}-server.service
|
%service_add_pre %{name}-server.service
|
||||||
|
echo Creating user %{GRAFANA_USER} and group %{GRAFANA_GROUP} if not present
|
||||||
echo "Creating user %{GRAFANA_USER} and group %{GRAFANA_GROUP} if not present"
|
|
||||||
getent group %{GRAFANA_GROUP} > /dev/null || groupadd -r %{GRAFANA_GROUP}
|
getent group %{GRAFANA_GROUP} > /dev/null || groupadd -r %{GRAFANA_GROUP}
|
||||||
getent passwd %{GRAFANA_GROUP} > /dev/null || useradd -r -g %{GRAFANA_GROUP} \
|
getent passwd %{GRAFANA_USER} > /dev/null || useradd -r -g %{GRAFANA_GROUP} -d %{GRAFANA_HOME} -s /sbin/nologin -c "%{GRAFANA_USER} user" %{GRAFANA_USER}
|
||||||
-d %{GRAFANA_HOME} -s /sbin/nologin -c "%{GRAFANA_USER} user" %{GRAFANA_GROUP}
|
exit 0
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%{fillup_only -n %{name}-server}
|
|
||||||
%service_add_post %{name}-server.service
|
%service_add_post %{name}-server.service
|
||||||
|
%fillup_only -n %{name}-server
|
||||||
|
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%service_del_preun %{name}-server.service
|
%service_del_preun %{name}-server.service
|
||||||
@ -148,27 +548,101 @@ getent passwd %{GRAFANA_GROUP} > /dev/null || useradd -r -g %{GRAFANA_GROUP} \
|
|||||||
%service_del_postun %{name}-server.service
|
%service_del_postun %{name}-server.service
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%license LICENSE
|
||||||
%license LICENSE*
|
%doc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md NOTICE.md
|
||||||
%doc CHANGELOG*
|
%doc PLUGIN_DEV.md README.md ROADMAP.md UPGRADING_DEPENDENCIES.md
|
||||||
%{_sbindir}/%{name}*
|
# binaries
|
||||||
%{_sbindir}/rc%{name}-server
|
%{_sbindir}/%{name}-server
|
||||||
%{_unitdir}/%{name}-server.service
|
%{_sbindir}/%{name}-cli
|
||||||
%{_fillupdir}/sysconfig.%{name}-server
|
# config files
|
||||||
%attr(0755,root,root) %dir %{_sysconfdir}/%{name}
|
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}
|
||||||
%attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning
|
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning
|
||||||
%attr(0755,root,root) %dir %{_sysconfdir}/%{name}/provisioning/dashboards
|
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning/dashboards
|
||||||
%attr(0755,root,%{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/conf
|
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning/datasources
|
||||||
%attr(0640,root,%{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.ini
|
%attr(0755, root, root) %dir %{_sysconfdir}/%{name}/provisioning/notifiers
|
||||||
%attr(0640,root,%{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/ldap.toml
|
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/grafana.ini
|
||||||
%attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}
|
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/ldap.toml
|
||||||
%attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}/plugins
|
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/dashboards/sample.yaml
|
||||||
%attr(0755,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/lib/%{name}/dashboards
|
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/datasources/sample.yaml
|
||||||
%attr(0750,%{GRAFANA_USER},%{GRAFANA_GROUP}) %dir %{_localstatedir}/log/%{name}
|
%attr(0640, root, %{GRAFANA_GROUP}) %config(noreplace) %{_sysconfdir}/%{name}/provisioning/notifiers/sample.yaml
|
||||||
%doc %{_datadir}/%{name}/conf/sample.ini
|
# config database directory and plugins (actual db files are created by grafana-server)
|
||||||
%doc %{_datadir}/%{name}/conf/provisioning/dashboards/sample.yaml
|
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}
|
||||||
%doc %{_datadir}/%{name}/conf/provisioning/datasources/sample.yaml
|
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/plugins
|
||||||
%config %{_datadir}/%{name}/conf/defaults.ini
|
%attr(0755, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_sharedstatedir}/%{name}/dashboards
|
||||||
|
# log directory - grafana.log is created by grafana-server, and it does it's own log rotation
|
||||||
|
%attr(0750, %{GRAFANA_USER}, %{GRAFANA_GROUP}) %dir %{_localstatedir}/log/%{name}
|
||||||
|
# built-in datasources that are sub-packaged
|
||||||
|
%global dsdir %{_datadir}/%{name}/public/app/plugins/datasource
|
||||||
|
%exclude %{dsdir}/cloudwatch
|
||||||
|
%exclude %{dsdir}/elasticsearch
|
||||||
|
%exclude %{dsdir}/graphite
|
||||||
|
%exclude %{dsdir}/grafana-azure-monitor-datasource
|
||||||
|
%exclude %{dsdir}/influxdb
|
||||||
|
%exclude %{dsdir}/loki
|
||||||
|
%exclude %{dsdir}/mssql
|
||||||
|
%exclude %{dsdir}/mysql
|
||||||
|
%exclude %{dsdir}/opentsdb
|
||||||
|
%exclude %{dsdir}/postgres
|
||||||
|
%exclude %{dsdir}/prometheus
|
||||||
|
%exclude %{dsdir}/stackdriver
|
||||||
|
# shared directory and all files therein, except some datasources
|
||||||
|
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}
|
||||||
|
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/bin
|
||||||
|
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/public
|
||||||
|
%attr(0755, root, %{GRAFANA_GROUP}) %dir %{_datadir}/%{name}/conf
|
||||||
|
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/*.{ini,toml}
|
||||||
|
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/dashboards/sample.yaml
|
||||||
|
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/datasources/sample.yaml
|
||||||
|
%attr(0644, root, %{GRAFANA_GROUP}) %config %{_datadir}/%{name}/conf/provisioning/notifiers/sample.yaml
|
||||||
%{_datadir}/%{name}
|
%{_datadir}/%{name}
|
||||||
|
# systemd service file
|
||||||
|
%{_unitdir}/grafana-server.service
|
||||||
|
%{_sbindir}/rc%{name}-server
|
||||||
|
# man pages for grafana binaries
|
||||||
|
%{_mandir}/man1/%{name}-server.1*
|
||||||
|
%{_mandir}/man1/%{name}-cli.1*
|
||||||
|
# other
|
||||||
|
%{_fillupdir}/sysconfig.%{name}-server
|
||||||
|
%{_tmpfilesdir}/%{name}.conf
|
||||||
|
%ghost %dir %{_rundir}/%{name}
|
||||||
|
|
||||||
|
#
|
||||||
|
# datasources split out into subpackages
|
||||||
|
#
|
||||||
|
%files cloudwatch
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/cloudwatch
|
||||||
|
|
||||||
|
%files elasticsearch
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/elasticsearch
|
||||||
|
|
||||||
|
%files azure-monitor
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/grafana-azure-monitor-datasource
|
||||||
|
|
||||||
|
%files graphite
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/graphite
|
||||||
|
|
||||||
|
%files influxdb
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/influxdb
|
||||||
|
|
||||||
|
%files loki
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/loki
|
||||||
|
|
||||||
|
%files mssql
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/mssql
|
||||||
|
|
||||||
|
%files mysql
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/mysql
|
||||||
|
|
||||||
|
%files opentsdb
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/opentsdb
|
||||||
|
|
||||||
|
%files postgres
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/postgres
|
||||||
|
|
||||||
|
%files prometheus
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/prometheus
|
||||||
|
|
||||||
|
%files stackdriver
|
||||||
|
%{_datadir}/%{name}/public/app/plugins/datasource/stackdriver
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
3
grafana_webpack-6.4.3.tar.gz
Normal file
3
grafana_webpack-6.4.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:45269de4b895b9406b393c7961863dc9b508ba1c9b3b0f37ccd0a4d544c34002
|
||||||
|
size 7022676
|
61
make_grafana_webpack.sh
Normal file
61
make_grafana_webpack.sh
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Red Hat.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# for more details.
|
||||||
|
#
|
||||||
|
|
||||||
|
[ $# -ne 1 ] && echo "Usage: $0 version" && exit 1
|
||||||
|
|
||||||
|
# grafana version (must be tagged on github.com/grafana/grafana as "v$VER")
|
||||||
|
VER=$1
|
||||||
|
BUILDDIR=`mktemp -d buildXXXXXX`
|
||||||
|
|
||||||
|
[ ! -f /usr/bin/npm ] && echo Error, please install \"npm\" package && exit 1
|
||||||
|
|
||||||
|
# get src tree and set cwd
|
||||||
|
echo Fetching pristine upstream git tagged branch for grafana version v$VER ...
|
||||||
|
git clone https://github.com/grafana/grafana grafana-$VER
|
||||||
|
cd grafana-$VER
|
||||||
|
git checkout -b v$VER v$VER
|
||||||
|
|
||||||
|
# exclude the phantomjs-prebuilt binary module from the webpack
|
||||||
|
sed -i '/phantomjs-prebuilt/d' package.json
|
||||||
|
|
||||||
|
# nuke grunt task for copying phantomjs
|
||||||
|
rm -f scripts/grunt/options/phantomjs.js
|
||||||
|
sed -i '/phantomjs/d' scripts/grunt/*.js
|
||||||
|
|
||||||
|
# populate node_modules using package.json
|
||||||
|
echo Running yarn to populate local node_modules ....
|
||||||
|
npm install yarn
|
||||||
|
node_modules/yarn/bin/yarn --non-interactive --no-progress --ignore-engines install --pure-lockfile > yarn.out 2>&1
|
||||||
|
node_modules/yarn/bin/yarn --non-interactive -W add webpack-cli
|
||||||
|
|
||||||
|
# build the webpack
|
||||||
|
echo;echo Building production webpack ....
|
||||||
|
node_modules/webpack/bin/webpack.js --display errors-only --mode production --config scripts/webpack/webpack.prod.js
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# webpack tarball. Includes public/views because index.html references the webpack
|
||||||
|
tar czf grafana_webpack-$VER.tar.gz grafana-$VER/public/build grafana-$VER/public/views
|
||||||
|
|
||||||
|
# source tarball (if needed)
|
||||||
|
if [ ! -f grafana-$VER.tar.gz ]; then
|
||||||
|
wget --quiet -O grafana-$VER.tar.gz https://github.com/grafana/grafana/archive/v$VER/grafana-$VER.tar.gz
|
||||||
|
fi
|
||||||
|
|
||||||
|
# done
|
||||||
|
echo Both grafana-$VER.tar.gz and grafana_webpack-$VER.tar.gz
|
||||||
|
echo should now be copied to your \$HOME/rpmbuild/SOURCES
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user