mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge remote-tracking branch 'upstream/master' into graph-legend-to-react
This commit is contained in:
commit
5a2e399d2d
@ -4,6 +4,7 @@ init_cmds = [
|
|||||||
["./bin/grafana-server", "cfg:app_mode=development"]
|
["./bin/grafana-server", "cfg:app_mode=development"]
|
||||||
]
|
]
|
||||||
watch_all = true
|
watch_all = true
|
||||||
|
follow_symlinks = true
|
||||||
watch_dirs = [
|
watch_dirs = [
|
||||||
"$WORKDIR/pkg",
|
"$WORKDIR/pkg",
|
||||||
"$WORKDIR/public/views",
|
"$WORKDIR/public/views",
|
||||||
|
@ -32,7 +32,7 @@ jobs:
|
|||||||
- run: sudo apt update
|
- run: sudo apt update
|
||||||
- run: sudo apt install -y mysql-client
|
- run: sudo apt install -y mysql-client
|
||||||
- run: dockerize -wait tcp://127.0.0.1:3306 -timeout 120s
|
- run: dockerize -wait tcp://127.0.0.1:3306 -timeout 120s
|
||||||
- run: cat docker/blocks/mysql_tests/setup.sql | mysql -h 127.0.0.1 -P 3306 -u root -prootpass
|
- run: cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h 127.0.0.1 -P 3306 -u root -prootpass
|
||||||
- run:
|
- run:
|
||||||
name: mysql integration tests
|
name: mysql integration tests
|
||||||
command: 'GRAFANA_TEST_DB=mysql go test ./pkg/services/sqlstore/... ./pkg/tsdb/mysql/... '
|
command: 'GRAFANA_TEST_DB=mysql go test ./pkg/services/sqlstore/... ./pkg/tsdb/mysql/... '
|
||||||
@ -51,7 +51,7 @@ jobs:
|
|||||||
- run: sudo apt update
|
- run: sudo apt update
|
||||||
- run: sudo apt install -y postgresql-client
|
- run: sudo apt install -y postgresql-client
|
||||||
- run: dockerize -wait tcp://127.0.0.1:5432 -timeout 120s
|
- run: dockerize -wait tcp://127.0.0.1:5432 -timeout 120s
|
||||||
- run: 'PGPASSWORD=grafanatest psql -p 5432 -h 127.0.0.1 -U grafanatest -d grafanatest -f docker/blocks/postgres_tests/setup.sql'
|
- run: 'PGPASSWORD=grafanatest psql -p 5432 -h 127.0.0.1 -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql'
|
||||||
- run:
|
- run:
|
||||||
name: postgres integration tests
|
name: postgres integration tests
|
||||||
command: 'GRAFANA_TEST_DB=postgres go test ./pkg/services/sqlstore/... ./pkg/tsdb/postgres/...'
|
command: 'GRAFANA_TEST_DB=postgres go test ./pkg/services/sqlstore/... ./pkg/tsdb/postgres/...'
|
||||||
@ -81,15 +81,16 @@ jobs:
|
|||||||
working_directory: /go/src/github.com/grafana/grafana
|
working_directory: /go/src/github.com/grafana/grafana
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run: 'go get -u gopkg.in/alecthomas/gometalinter.v2'
|
- run: 'go get -u github.com/alecthomas/gometalinter'
|
||||||
- run: 'go get -u github.com/tsenart/deadcode'
|
- run: 'go get -u github.com/tsenart/deadcode'
|
||||||
|
- run: 'go get -u github.com/jgautheron/goconst/cmd/goconst'
|
||||||
- run: 'go get -u github.com/gordonklaus/ineffassign'
|
- run: 'go get -u github.com/gordonklaus/ineffassign'
|
||||||
- run: 'go get -u github.com/opennota/check/cmd/structcheck'
|
- run: 'go get -u github.com/opennota/check/cmd/structcheck'
|
||||||
- run: 'go get -u github.com/mdempsky/unconvert'
|
- run: 'go get -u github.com/mdempsky/unconvert'
|
||||||
- run: 'go get -u github.com/opennota/check/cmd/varcheck'
|
- run: 'go get -u github.com/opennota/check/cmd/varcheck'
|
||||||
- run:
|
- run:
|
||||||
name: run linters
|
name: run linters
|
||||||
command: 'gometalinter.v2 --enable-gc --vendor --deadline 10m --disable-all --enable=deadcode --enable=ineffassign --enable=structcheck --enable=unconvert --enable=varcheck ./...'
|
command: 'gometalinter --enable-gc --vendor --deadline 10m --disable-all --enable=deadcode --enable=goconst --enable=ineffassign --enable=structcheck --enable=unconvert --enable=varcheck ./...'
|
||||||
- run:
|
- run:
|
||||||
name: run go vet
|
name: run go vet
|
||||||
command: 'go vet ./pkg/...'
|
command: 'go vet ./pkg/...'
|
||||||
@ -125,7 +126,7 @@ jobs:
|
|||||||
|
|
||||||
build-all:
|
build-all:
|
||||||
docker:
|
docker:
|
||||||
- image: grafana/build-container:1.1.0
|
- image: grafana/build-container:1.2.0
|
||||||
working_directory: /go/src/github.com/grafana/grafana
|
working_directory: /go/src/github.com/grafana/grafana
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
@ -157,18 +158,23 @@ jobs:
|
|||||||
name: sha-sum packages
|
name: sha-sum packages
|
||||||
command: 'go run build.go sha-dist'
|
command: 'go run build.go sha-dist'
|
||||||
- run:
|
- run:
|
||||||
name: Build Grafana.com publisher
|
name: Build Grafana.com master publisher
|
||||||
command: 'go build -o scripts/publish scripts/build/publish.go'
|
command: 'go build -o scripts/publish scripts/build/publish.go'
|
||||||
|
- run:
|
||||||
|
name: Build Grafana.com release publisher
|
||||||
|
command: 'cd scripts/build/release_publisher && go build -o release_publisher .'
|
||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
root: .
|
root: .
|
||||||
paths:
|
paths:
|
||||||
- dist/grafana*
|
- dist/grafana*
|
||||||
- scripts/*.sh
|
- scripts/*.sh
|
||||||
- scripts/publish
|
- scripts/publish
|
||||||
|
- scripts/build/release_publisher/release_publisher
|
||||||
|
- scripts/build/publish.sh
|
||||||
|
|
||||||
build:
|
build:
|
||||||
docker:
|
docker:
|
||||||
- image: grafana/build-container:1.1.0
|
- image: grafana/build-container:1.2.0
|
||||||
working_directory: /go/src/github.com/grafana/grafana
|
working_directory: /go/src/github.com/grafana/grafana
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
@ -227,7 +233,7 @@ jobs:
|
|||||||
|
|
||||||
build-enterprise:
|
build-enterprise:
|
||||||
docker:
|
docker:
|
||||||
- image: grafana/build-container:v0.1
|
- image: grafana/build-container:1.2.0
|
||||||
working_directory: /go/src/github.com/grafana/grafana
|
working_directory: /go/src/github.com/grafana/grafana
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
@ -298,8 +304,8 @@ jobs:
|
|||||||
name: deploy to s3
|
name: deploy to s3
|
||||||
command: 'aws s3 sync ./dist s3://$BUCKET_NAME/release'
|
command: 'aws s3 sync ./dist s3://$BUCKET_NAME/release'
|
||||||
- run:
|
- run:
|
||||||
name: Trigger Windows build
|
name: Deploy to Grafana.com
|
||||||
command: './scripts/trigger_windows_build.sh ${APPVEYOR_TOKEN} ${CIRCLE_SHA1} release'
|
command: './scripts/build/publish.sh'
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
|
22
.github/CONTRIBUTING.md
vendored
22
.github/CONTRIBUTING.md
vendored
@ -1,22 +0,0 @@
|
|||||||
Follow the setup guide in README.md
|
|
||||||
|
|
||||||
### Rebuild frontend assets on source change
|
|
||||||
```
|
|
||||||
yarn watch
|
|
||||||
```
|
|
||||||
|
|
||||||
### Rerun tests on source change
|
|
||||||
```
|
|
||||||
yarn jest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Run tests for backend assets before commit
|
|
||||||
```
|
|
||||||
test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' | tee /dev/stderr)"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Run tests for frontend assets before commit
|
|
||||||
```
|
|
||||||
yarn test
|
|
||||||
go test -v ./pkg/...
|
|
||||||
```
|
|
9
.gitignore
vendored
9
.gitignore
vendored
@ -40,8 +40,8 @@ public/css/*.min.css
|
|||||||
|
|
||||||
conf/custom.ini
|
conf/custom.ini
|
||||||
fig.yml
|
fig.yml
|
||||||
docker-compose.yml
|
devenv/docker-compose.yml
|
||||||
docker-compose.yaml
|
devenv/docker-compose.yaml
|
||||||
/conf/provisioning/**/custom.yaml
|
/conf/provisioning/**/custom.yaml
|
||||||
/conf/provisioning/**/dev.yaml
|
/conf/provisioning/**/dev.yaml
|
||||||
/conf/ldap_dev.toml
|
/conf/ldap_dev.toml
|
||||||
@ -54,6 +54,7 @@ profile.cov
|
|||||||
/pkg/cmd/grafana-server/grafana-server
|
/pkg/cmd/grafana-server/grafana-server
|
||||||
/pkg/cmd/grafana-server/debug
|
/pkg/cmd/grafana-server/debug
|
||||||
/pkg/extensions
|
/pkg/extensions
|
||||||
|
/public/app/extensions
|
||||||
debug.test
|
debug.test
|
||||||
/examples/*/dist
|
/examples/*/dist
|
||||||
/packaging/**/*.rpm
|
/packaging/**/*.rpm
|
||||||
@ -68,7 +69,9 @@ debug.test
|
|||||||
/vendor/**/*.yml
|
/vendor/**/*.yml
|
||||||
/vendor/**/*_test.go
|
/vendor/**/*_test.go
|
||||||
/vendor/**/.editorconfig
|
/vendor/**/.editorconfig
|
||||||
/vendor/**/appengine*
|
|
||||||
*.orig
|
*.orig
|
||||||
|
|
||||||
/devenv/bulk-dashboards/*.json
|
/devenv/bulk-dashboards/*.json
|
||||||
|
/devenv/bulk_alerting_dashboards/*.json
|
||||||
|
|
||||||
|
/scripts/build/release_publisher/release_publisher
|
||||||
|
70
CHANGELOG.md
70
CHANGELOG.md
@ -1,8 +1,64 @@
|
|||||||
# 5.3.0 (unreleased)
|
# 5.4.0 (unreleased)
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
* **Postgres/MySQL/MSSQL**: Adds support for configuration of max open/idle connections and connection max lifetime. Also, panels with multiple SQL queries will now be executed concurrently [#11711](https://github.com/grafana/grafana/issues/11711), thx [@connection-reset](https://github.com/connection-reset)
|
||||||
|
|
||||||
### Minor
|
### Minor
|
||||||
|
|
||||||
|
* **Datasource Proxy**: Keep trailing slash for datasource proxy requests [#13326](https://github.com/grafana/grafana/pull/13326), thx [@ryantxu](https://github.com/ryantxu)
|
||||||
|
* **Units**: New clock time format, to format ms or second values as for example `01h:59m`, [#13635](https://github.com/grafana/grafana/issues/13635), thx [@franciscocpg](https://github.com/franciscocpg)
|
||||||
|
|
||||||
|
### Breaking changes
|
||||||
|
|
||||||
|
* Postgres/MySQL/MSSQL datasources now per default uses `max open connections` = `unlimited` (earlier 10), `max idle connections` = `2` (earlier 10) and `connection max lifetime` = `4` hours (earlier unlimited)
|
||||||
|
|
||||||
|
# 5.3.1 (unreleased)
|
||||||
|
|
||||||
|
* **Render**: Fix PhantomJS render of graph panel when legend displayed as table to the right [#13616](https://github.com/grafana/grafana/issues/13616)
|
||||||
|
* **Stackdriver**: Filter option disappears after removing initial filter [#13607](https://github.com/grafana/grafana/issues/13607)
|
||||||
|
* **Elasticsearch**: Fix no limit size in terms aggregation for alerting queries [#13172](https://github.com/grafana/grafana/issues/13172), thx [@Yukinoshita-Yukino](https://github.com/Yukinoshita-Yukino)
|
||||||
|
* **InfluxDB**: Fix for annotation issue that caused text to be shown twice [#13553](https://github.com/grafana/grafana/issues/13553)
|
||||||
|
* **Variables**: Fix nesting variables leads to exception and missing refresh [#13628](https://github.com/grafana/grafana/issues/13628)
|
||||||
|
* **Variables**: Prometheus: Single letter labels are not supported [#13641](https://github.com/grafana/grafana/issues/13641)
|
||||||
|
* **Graph**: Fix graph time formatting for Last 24h ranges [#13650](https://github.com/grafana/grafana/issues/13650)
|
||||||
|
* **Playlist**: Fix cannot add dashboards with long names to playlist [#13464](https://github.com/grafana/grafana/issues/13464), thx [@neufeldtech](https://github.com/neufeldtech)
|
||||||
|
* **HTTP API**: Fix /api/org/users so that query and limit querystrings works
|
||||||
|
|
||||||
|
# 5.3.0 (2018-10-10)
|
||||||
|
|
||||||
|
* **Stackdriver**: Filter wildcards and regex matching are not yet supported [#13495](https://github.com/grafana/grafana/issues/13495)
|
||||||
|
* **Stackdriver**: Support the distribution metric type for heatmaps [#13559](https://github.com/grafana/grafana/issues/13559)
|
||||||
|
* **Cloudwatch**: Automatically set graph yaxis unit [#13575](https://github.com/grafana/grafana/issues/13575), thx [@mtanda](https://github.com/mtanda)
|
||||||
|
|
||||||
|
# 5.3.0-beta3 (2018-10-03)
|
||||||
|
|
||||||
|
* **Stackdriver**: Fix for missing ngInject [#13511](https://github.com/grafana/grafana/pull/13511)
|
||||||
|
* **Permissions**: Fix for broken permissions selector [#13507](https://github.com/grafana/grafana/issues/13507)
|
||||||
|
* **Alerting**: Alert reminders deduping not working as expected when running multiple Grafana instances [#13492](https://github.com/grafana/grafana/issues/13492)
|
||||||
|
|
||||||
|
# 5.3.0-beta2 (2018-10-01)
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
* **Annotations**: Enable template variables in tagged annotations queries [#9735](https://github.com/grafana/grafana/issues/9735)
|
||||||
|
* **Stackdriver**: Support for Google Stackdriver Datasource [#13289](https://github.com/grafana/grafana/pull/13289)
|
||||||
|
|
||||||
|
### Minor
|
||||||
|
|
||||||
|
* **Provisioning**: Dashboard Provisioning now support symlinks that changes target [#12534](https://github.com/grafana/grafana/issues/12534), thx [@auhlig](https://github.com/auhlig)
|
||||||
|
* **OAuth**: Allow oauth email attribute name to be configurable [#12986](https://github.com/grafana/grafana/issues/12986), thx [@bobmshannon](https://github.com/bobmshannon)
|
||||||
|
* **Tags**: Default sort order for GetDashboardTags [#11681](https://github.com/grafana/grafana/pull/11681), thx [@Jonnymcc](https://github.com/Jonnymcc)
|
||||||
|
* **Prometheus**: Label completion queries respect dashboard time range [#12251](https://github.com/grafana/grafana/pull/12251), thx [@mtanda](https://github.com/mtanda)
|
||||||
|
* **Prometheus**: Allow to display annotations based on Prometheus series value [#10159](https://github.com/grafana/grafana/issues/10159), thx [@mtanda](https://github.com/mtanda)
|
||||||
|
* **Prometheus**: Adhoc-filtering for Prometheus dashboards [#13212](https://github.com/grafana/grafana/issues/13212)
|
||||||
|
* **Singlestat**: Fix gauge display accuracy for percents [#13270](https://github.com/grafana/grafana/issues/13270), thx [@tianon](https://github.com/tianon)
|
||||||
|
* **Dashboard**: Prevent auto refresh from starting when loading dashboard with absolute time range [#12030](https://github.com/grafana/grafana/issues/12030)
|
||||||
|
* **Templating**: New templating variable type `Text box` that allows free text input [#3173](https://github.com/grafana/grafana/issues/3173)
|
||||||
* **Alerting**: Link to view full size image in Microsoft Teams alert notifier [#13121](https://github.com/grafana/grafana/issues/13121), thx [@holiiveira](https://github.com/holiiveira)
|
* **Alerting**: Link to view full size image in Microsoft Teams alert notifier [#13121](https://github.com/grafana/grafana/issues/13121), thx [@holiiveira](https://github.com/holiiveira)
|
||||||
|
* **Alerting**: Fixes a bug where all alerts would send reminders after upgrade & restart [#13402](https://github.com/grafana/grafana/pull/13402)
|
||||||
|
* **Alerting**: Concurrent render limit for graphs used in notifications [#13401](https://github.com/grafana/grafana/pull/13401)
|
||||||
|
* **Postgres/MySQL/MSSQL**: Add support for replacing $__interval and $__interval_ms in alert queries [#11555](https://github.com/grafana/grafana/issues/11555), thx [@svenklemm](https://github.com/svenklemm)
|
||||||
|
|
||||||
# 5.3.0-beta1 (2018-09-06)
|
# 5.3.0-beta1 (2018-09-06)
|
||||||
|
|
||||||
@ -20,7 +76,7 @@
|
|||||||
* **Profile**: List teams that the user is member of in current/active organization [#12476](https://github.com/grafana/grafana/issues/12476)
|
* **Profile**: List teams that the user is member of in current/active organization [#12476](https://github.com/grafana/grafana/issues/12476)
|
||||||
* **Configuration**: Allow auto-assigning users to specific organization (other than Main. Org) [#1823](https://github.com/grafana/grafana/issues/1823) [#12801](https://github.com/grafana/grafana/issues/12801), thx [@gzzo](https://github.com/gzzo) and [@ofosos](https://github.com/ofosos)
|
* **Configuration**: Allow auto-assigning users to specific organization (other than Main. Org) [#1823](https://github.com/grafana/grafana/issues/1823) [#12801](https://github.com/grafana/grafana/issues/12801), thx [@gzzo](https://github.com/gzzo) and [@ofosos](https://github.com/ofosos)
|
||||||
* **Dataproxy**: Pass configured/auth headers to a Datasource [#10971](https://github.com/grafana/grafana/issues/10971), thx [@mrsiano](https://github.com/mrsiano)
|
* **Dataproxy**: Pass configured/auth headers to a Datasource [#10971](https://github.com/grafana/grafana/issues/10971), thx [@mrsiano](https://github.com/mrsiano)
|
||||||
* **Cloudwatch**: CloudWatch GetMetricData support [#11487](https://github.com/grafana/grafana/issues/11487), thx [@mtanda](https://github.com/mtanda)
|
* **CloudWatch**: GetMetricData support [#11487](https://github.com/grafana/grafana/issues/11487), thx [@mtanda](https://github.com/mtanda)
|
||||||
* **Postgres**: TimescaleDB support, e.g. use `time_bucket` for grouping by time when option enabled [#12680](https://github.com/grafana/grafana/pull/12680), thx [svenklemm](https://github.com/svenklemm)
|
* **Postgres**: TimescaleDB support, e.g. use `time_bucket` for grouping by time when option enabled [#12680](https://github.com/grafana/grafana/pull/12680), thx [svenklemm](https://github.com/svenklemm)
|
||||||
* **Cleanup**: Make temp file time to live configurable [#11607](https://github.com/grafana/grafana/issues/11607), thx [@xapon](https://github.com/xapon)
|
* **Cleanup**: Make temp file time to live configurable [#11607](https://github.com/grafana/grafana/issues/11607), thx [@xapon](https://github.com/xapon)
|
||||||
|
|
||||||
@ -94,6 +150,10 @@ These are new features that's still being worked on and are in an experimental p
|
|||||||
* **Frontend**: Convert all Frontend Karma tests to Jest tests [#12224](https://github.com/grafana/grafana/issues/12224)
|
* **Frontend**: Convert all Frontend Karma tests to Jest tests [#12224](https://github.com/grafana/grafana/issues/12224)
|
||||||
* **Backend**: Upgrade to golang 1.11 [#13030](https://github.com/grafana/grafana/issues/13030)
|
* **Backend**: Upgrade to golang 1.11 [#13030](https://github.com/grafana/grafana/issues/13030)
|
||||||
|
|
||||||
|
# 5.2.4 (2018-09-07)
|
||||||
|
|
||||||
|
* **GrafanaCli**: Fixed issue with grafana-cli install plugin resulting in corrupt http response from source error. Fixes [#13079](https://github.com/grafana/grafana/issues/13079)
|
||||||
|
|
||||||
# 5.2.3 (2018-08-29)
|
# 5.2.3 (2018-08-29)
|
||||||
|
|
||||||
### Important fix for LDAP & OAuth login vulnerability
|
### Important fix for LDAP & OAuth login vulnerability
|
||||||
@ -298,7 +358,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
|
|||||||
* **Dashboard**: Sizing and positioning of settings menu icons [#11572](https://github.com/grafana/grafana/pull/11572)
|
* **Dashboard**: Sizing and positioning of settings menu icons [#11572](https://github.com/grafana/grafana/pull/11572)
|
||||||
* **Dashboard**: Add search filter/tabs to new panel control [#10427](https://github.com/grafana/grafana/issues/10427)
|
* **Dashboard**: Add search filter/tabs to new panel control [#10427](https://github.com/grafana/grafana/issues/10427)
|
||||||
* **Folders**: User with org viewer role should not be able to save/move dashboards in/to general folder [#11553](https://github.com/grafana/grafana/issues/11553)
|
* **Folders**: User with org viewer role should not be able to save/move dashboards in/to general folder [#11553](https://github.com/grafana/grafana/issues/11553)
|
||||||
* **Influxdb**: Dont assume the first column in table response is time. [#11476](https://github.com/grafana/grafana/issues/11476), thx [@hahnjo](https://github.com/hahnjo)
|
* **Influxdb**: Don't assume the first column in table response is time. [#11476](https://github.com/grafana/grafana/issues/11476), thx [@hahnjo](https://github.com/hahnjo)
|
||||||
|
|
||||||
### Tech
|
### Tech
|
||||||
* Backend code simplification [#11613](https://github.com/grafana/grafana/pull/11613), thx [@knweiss](https://github.com/knweiss)
|
* Backend code simplification [#11613](https://github.com/grafana/grafana/pull/11613), thx [@knweiss](https://github.com/knweiss)
|
||||||
@ -485,7 +545,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
|
|||||||
# 4.6.2 (2017-11-16)
|
# 4.6.2 (2017-11-16)
|
||||||
|
|
||||||
## Important
|
## Important
|
||||||
* **Prometheus**: Fixes bug with new prometheus alerts in Grafana. Make sure to download this version if your using Prometheus for alerting. More details in the issue. [#9777](https://github.com/grafana/grafana/issues/9777)
|
* **Prometheus**: Fixes bug with new prometheus alerts in Grafana. Make sure to download this version if you're using Prometheus for alerting. More details in the issue. [#9777](https://github.com/grafana/grafana/issues/9777)
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
* **Color picker**: Bug after using textbox input field to change/paste color string [#9769](https://github.com/grafana/grafana/issues/9769)
|
* **Color picker**: Bug after using textbox input field to change/paste color string [#9769](https://github.com/grafana/grafana/issues/9769)
|
||||||
@ -1444,7 +1504,7 @@ Grafana 2.x is fundamentally different from 1.x; it now ships with an integrated
|
|||||||
|
|
||||||
**New features**
|
**New features**
|
||||||
- [Issue #1623](https://github.com/grafana/grafana/issues/1623). Share Dashboard: Dashboard snapshot sharing (dash and data snapshot), save to local or save to public snapshot dashboard snapshots.raintank.io site
|
- [Issue #1623](https://github.com/grafana/grafana/issues/1623). Share Dashboard: Dashboard snapshot sharing (dash and data snapshot), save to local or save to public snapshot dashboard snapshots.raintank.io site
|
||||||
- [Issue #1622](https://github.com/grafana/grafana/issues/1622). Share Panel: The share modal now has an embed option, gives you an iframe that you can use to embedd a single graph on another web site
|
- [Issue #1622](https://github.com/grafana/grafana/issues/1622). Share Panel: The share modal now has an embed option, gives you an iframe that you can use to embed a single graph on another web site
|
||||||
- [Issue #718](https://github.com/grafana/grafana/issues/718). Dashboard: When saving a dashboard and another user has made changes in between the user is prompted with a warning if he really wants to overwrite the other's changes
|
- [Issue #718](https://github.com/grafana/grafana/issues/718). Dashboard: When saving a dashboard and another user has made changes in between the user is prompted with a warning if he really wants to overwrite the other's changes
|
||||||
- [Issue #1331](https://github.com/grafana/grafana/issues/1331). Graph & Singlestat: New axis/unit format selector and more units (kbytes, Joule, Watt, eV), and new design for graph axis & grid tab and single stat options tab views
|
- [Issue #1331](https://github.com/grafana/grafana/issues/1331). Graph & Singlestat: New axis/unit format selector and more units (kbytes, Joule, Watt, eV), and new design for graph axis & grid tab and single stat options tab views
|
||||||
- [Issue #1241](https://github.com/grafana/grafana/issues/1242). Timepicker: New option in timepicker (under dashboard settings), to change ``now`` to be for example ``now-1m``, useful when you want to ignore last minute because it contains incomplete data
|
- [Issue #1241](https://github.com/grafana/grafana/issues/1242). Timepicker: New option in timepicker (under dashboard settings), to change ``now`` to be for example ``now-1m``, useful when you want to ignore last minute because it contains incomplete data
|
||||||
|
56
CONTRIBUTING.md
Normal file
56
CONTRIBUTING.md
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
Grafana uses GitHub to manage contributions.
|
||||||
|
Contributions take the form of pull requests that will be reviewed by the core team.
|
||||||
|
|
||||||
|
* If you are a new contributor see: [Steps to Contribute](#steps-to-contribute)
|
||||||
|
|
||||||
|
* If you have a trivial fix or improvement, go ahead and create a pull request.
|
||||||
|
|
||||||
|
* If you plan to do something more involved, discuss your idea on the respective [issue](https://github.com/grafana/grafana/issues) or create a [new issue](https://github.com/grafana/grafana/issues/new) if it does not exist. This will avoid unnecessary work and surely give you and us a good deal of inspiration.
|
||||||
|
|
||||||
|
|
||||||
|
## Steps to Contribute
|
||||||
|
|
||||||
|
Should you wish to work on a GitHub issue, check first if it is not already assigned to someone. If it is free, you claim it by commenting on the issue that you want to work on it. This is to prevent duplicated efforts from contributors on the same issue.
|
||||||
|
|
||||||
|
Please check the [`beginner friendly`](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+label%3A%22beginner+friendly%22) label to find issues that are good for getting started. If you have questions about one of the issues, with or without the tag, please comment on them and one of the core team or the original poster will clarify it.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Follow the setup guide in README.md
|
||||||
|
|
||||||
|
### Rebuild frontend assets on source change
|
||||||
|
```
|
||||||
|
yarn watch
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rerun tests on source change
|
||||||
|
```
|
||||||
|
yarn jest
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run tests for backend assets before commit
|
||||||
|
```
|
||||||
|
test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' | tee /dev/stderr)"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run tests for frontend assets before commit
|
||||||
|
```
|
||||||
|
yarn test
|
||||||
|
go test -v ./pkg/...
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Pull Request Checklist
|
||||||
|
|
||||||
|
* Branch from the master branch and, if needed, rebase to the current master branch before submitting your pull request. If it doesn't merge cleanly with master you may be asked to rebase your changes.
|
||||||
|
|
||||||
|
* Commits should be as small as possible, while ensuring that each commit is correct independently (i.e., each commit should compile and pass tests).
|
||||||
|
|
||||||
|
* If your patch is not getting reviewed or you need a specific person to review it, you can @-reply a reviewer asking for a review in the pull request or a comment.
|
||||||
|
|
||||||
|
* Add tests relevant to the fixed bug or new feature.
|
22
Gopkg.lock
generated
22
Gopkg.lock
generated
@ -19,6 +19,12 @@
|
|||||||
packages = ["."]
|
packages = ["."]
|
||||||
revision = "7677a1d7c1137cd3dd5ba7a076d0c898a1ef4520"
|
revision = "7677a1d7c1137cd3dd5ba7a076d0c898a1ef4520"
|
||||||
|
|
||||||
|
[[projects]]
|
||||||
|
branch = "master"
|
||||||
|
name = "github.com/VividCortex/mysqlerr"
|
||||||
|
packages = ["."]
|
||||||
|
revision = "6c6b55f8796f578c870b7e19bafb16103bc40095"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "github.com/aws/aws-sdk-go"
|
name = "github.com/aws/aws-sdk-go"
|
||||||
packages = [
|
packages = [
|
||||||
@ -258,7 +264,7 @@
|
|||||||
branch = "master"
|
branch = "master"
|
||||||
name = "github.com/hashicorp/yamux"
|
name = "github.com/hashicorp/yamux"
|
||||||
packages = ["."]
|
packages = ["."]
|
||||||
revision = "2658be15c5f05e76244154714161f17e3e77de2e"
|
revision = "7221087c3d281fda5f794e28c2ea4c6e4d5c4558"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "github.com/inconshreveable/log15"
|
name = "github.com/inconshreveable/log15"
|
||||||
@ -501,6 +507,8 @@
|
|||||||
branch = "master"
|
branch = "master"
|
||||||
name = "golang.org/x/crypto"
|
name = "golang.org/x/crypto"
|
||||||
packages = [
|
packages = [
|
||||||
|
"ed25519",
|
||||||
|
"ed25519/internal/edwards25519",
|
||||||
"md4",
|
"md4",
|
||||||
"pbkdf2"
|
"pbkdf2"
|
||||||
]
|
]
|
||||||
@ -664,6 +672,16 @@
|
|||||||
revision = "e6179049628164864e6e84e973cfb56335748dea"
|
revision = "e6179049628164864e6e84e973cfb56335748dea"
|
||||||
version = "v2.3.2"
|
version = "v2.3.2"
|
||||||
|
|
||||||
|
[[projects]]
|
||||||
|
name = "gopkg.in/square/go-jose.v2"
|
||||||
|
packages = [
|
||||||
|
".",
|
||||||
|
"cipher",
|
||||||
|
"json"
|
||||||
|
]
|
||||||
|
revision = "ef984e69dd356202fd4e4910d4d9c24468bdf0b8"
|
||||||
|
version = "v2.1.9"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "gopkg.in/yaml.v2"
|
name = "gopkg.in/yaml.v2"
|
||||||
packages = ["."]
|
packages = ["."]
|
||||||
@ -673,6 +691,6 @@
|
|||||||
[solve-meta]
|
[solve-meta]
|
||||||
analyzer-name = "dep"
|
analyzer-name = "dep"
|
||||||
analyzer-version = 1
|
analyzer-version = 1
|
||||||
inputs-digest = "81a37e747b875cf870c1b9486fa3147e704dea7db8ba86f7cb942d3ddc01d3e3"
|
inputs-digest = "6f7f271afd27f78b7d8ebe27436fee72c9925fb82a978bdc57fde44e01f3ca51"
|
||||||
solver-name = "gps-cdcl"
|
solver-name = "gps-cdcl"
|
||||||
solver-version = 1
|
solver-version = 1
|
||||||
|
@ -203,3 +203,11 @@ ignored = [
|
|||||||
[[constraint]]
|
[[constraint]]
|
||||||
name = "github.com/denisenkom/go-mssqldb"
|
name = "github.com/denisenkom/go-mssqldb"
|
||||||
revision = "270bc3860bb94dd3a3ffd047377d746c5e276726"
|
revision = "270bc3860bb94dd3a3ffd047377d746c5e276726"
|
||||||
|
|
||||||
|
[[constraint]]
|
||||||
|
name = "github.com/VividCortex/mysqlerr"
|
||||||
|
branch = "master"
|
||||||
|
|
||||||
|
[[constraint]]
|
||||||
|
name = "gopkg.in/square/go-jose.v2"
|
||||||
|
version = "2.1.9"
|
||||||
|
@ -25,7 +25,6 @@ module.exports = function (grunt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config.coverage = grunt.option('coverage');
|
|
||||||
config.phjs = grunt.option('phjsToRelease');
|
config.phjs = grunt.option('phjsToRelease');
|
||||||
config.pkg.version = grunt.option('pkgVer') || config.pkg.version;
|
config.pkg.version = grunt.option('pkgVer') || config.pkg.version;
|
||||||
|
|
||||||
|
3
Makefile
3
Makefile
@ -43,6 +43,3 @@ test: test-go test-js
|
|||||||
|
|
||||||
run:
|
run:
|
||||||
./bin/grafana-server
|
./bin/grafana-server
|
||||||
|
|
||||||
protoc:
|
|
||||||
protoc -I pkg/tsdb/models pkg/tsdb/models/*.proto --go_out=plugins=grpc:pkg/tsdb/models/.
|
|
||||||
|
@ -6,8 +6,8 @@ upgrading Grafana please check here before creating an issue.
|
|||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- [Datasource plugin written in typescript](https://github.com/grafana/typescript-template-datasource)
|
- [Datasource plugin written in TypeScript](https://github.com/grafana/typescript-template-datasource)
|
||||||
- [Simple json dataource plugin](https://github.com/grafana/simple-json-datasource)
|
- [Simple JSON datasource plugin](https://github.com/grafana/simple-json-datasource)
|
||||||
- [Plugin development guide](http://docs.grafana.org/plugins/developing/development/)
|
- [Plugin development guide](http://docs.grafana.org/plugins/developing/development/)
|
||||||
- [Webpack Grafana plugin template project](https://github.com/CorpGlory/grafana-plugin-template-webpack)
|
- [Webpack Grafana plugin template project](https://github.com/CorpGlory/grafana-plugin-template-webpack)
|
||||||
|
|
||||||
|
@ -138,5 +138,5 @@ plugin development.
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Grafana is distributed under Apache 2.0 License.
|
Grafana is distributed under [Apache 2.0 License](https://github.com/grafana/grafana/blob/master/LICENSE.md).
|
||||||
|
|
||||||
|
20
build.go
20
build.go
@ -22,6 +22,11 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
windows = "windows"
|
||||||
|
linux = "linux"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
|
//versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
|
||||||
goarch string
|
goarch string
|
||||||
@ -110,17 +115,16 @@ func main() {
|
|||||||
case "package":
|
case "package":
|
||||||
grunt(gruntBuildArg("build")...)
|
grunt(gruntBuildArg("build")...)
|
||||||
grunt(gruntBuildArg("package")...)
|
grunt(gruntBuildArg("package")...)
|
||||||
if goos == "linux" {
|
if goos == linux {
|
||||||
createLinuxPackages()
|
createLinuxPackages()
|
||||||
}
|
}
|
||||||
|
|
||||||
case "package-only":
|
case "package-only":
|
||||||
grunt(gruntBuildArg("package")...)
|
grunt(gruntBuildArg("package")...)
|
||||||
if goos == "linux" {
|
if goos == linux {
|
||||||
createLinuxPackages()
|
createLinuxPackages()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case "pkg-rpm":
|
case "pkg-rpm":
|
||||||
grunt(gruntBuildArg("release")...)
|
grunt(gruntBuildArg("release")...)
|
||||||
createRpmPackages()
|
createRpmPackages()
|
||||||
@ -379,7 +383,7 @@ func ensureGoPath() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func grunt(params ...string) {
|
func grunt(params ...string) {
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == windows {
|
||||||
runPrint(`.\node_modules\.bin\grunt`, params...)
|
runPrint(`.\node_modules\.bin\grunt`, params...)
|
||||||
} else {
|
} else {
|
||||||
runPrint("./node_modules/.bin/grunt", params...)
|
runPrint("./node_modules/.bin/grunt", params...)
|
||||||
@ -417,11 +421,11 @@ func test(pkg string) {
|
|||||||
func build(binaryName, pkg string, tags []string) {
|
func build(binaryName, pkg string, tags []string) {
|
||||||
binary := fmt.Sprintf("./bin/%s-%s/%s", goos, goarch, binaryName)
|
binary := fmt.Sprintf("./bin/%s-%s/%s", goos, goarch, binaryName)
|
||||||
if isDev {
|
if isDev {
|
||||||
//dont include os and arch in output path in dev environment
|
//don't include os and arch in output path in dev environment
|
||||||
binary = fmt.Sprintf("./bin/%s", binaryName)
|
binary = fmt.Sprintf("./bin/%s", binaryName)
|
||||||
}
|
}
|
||||||
|
|
||||||
if goos == "windows" {
|
if goos == windows {
|
||||||
binary += ".exe"
|
binary += ".exe"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,11 +489,11 @@ func clean() {
|
|||||||
|
|
||||||
func setBuildEnv() {
|
func setBuildEnv() {
|
||||||
os.Setenv("GOOS", goos)
|
os.Setenv("GOOS", goos)
|
||||||
if goos == "windows" {
|
if goos == windows {
|
||||||
// require windows >=7
|
// require windows >=7
|
||||||
os.Setenv("CGO_CFLAGS", "-D_WIN32_WINNT=0x0601")
|
os.Setenv("CGO_CFLAGS", "-D_WIN32_WINNT=0x0601")
|
||||||
}
|
}
|
||||||
if goarch != "amd64" || goos != "linux" {
|
if goarch != "amd64" || goos != linux {
|
||||||
// needed for all other archs
|
// needed for all other archs
|
||||||
cgo = true
|
cgo = true
|
||||||
}
|
}
|
||||||
|
11
codecov.yml
11
codecov.yml
@ -1,11 +0,0 @@
|
|||||||
coverage:
|
|
||||||
precision: 2
|
|
||||||
round: down
|
|
||||||
range: "50...100"
|
|
||||||
|
|
||||||
status:
|
|
||||||
project: yes
|
|
||||||
patch: yes
|
|
||||||
changes: no
|
|
||||||
|
|
||||||
comment: off
|
|
@ -321,6 +321,7 @@ allow_sign_up = true
|
|||||||
client_id = some_id
|
client_id = some_id
|
||||||
client_secret = some_secret
|
client_secret = some_secret
|
||||||
scopes = user:email
|
scopes = user:email
|
||||||
|
email_attribute_name = email:primary
|
||||||
auth_url =
|
auth_url =
|
||||||
token_url =
|
token_url =
|
||||||
api_url =
|
api_url =
|
||||||
@ -473,6 +474,10 @@ error_or_timeout = alerting
|
|||||||
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
|
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
|
||||||
nodata_or_nullvalues = no_data
|
nodata_or_nullvalues = no_data
|
||||||
|
|
||||||
|
# Alert notifications can include images, but rendering many images at the same time can overload the server
|
||||||
|
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
|
||||||
|
concurrent_render_limit = 5
|
||||||
|
|
||||||
#################################### Explore #############################
|
#################################### Explore #############################
|
||||||
[explore]
|
[explore]
|
||||||
# Enable the Explore section
|
# Enable the Explore section
|
||||||
|
@ -31,37 +31,11 @@ search_filter = "(cn=%s)"
|
|||||||
# An array of base dns to search through
|
# An array of base dns to search through
|
||||||
search_base_dns = ["dc=grafana,dc=org"]
|
search_base_dns = ["dc=grafana,dc=org"]
|
||||||
|
|
||||||
# In POSIX LDAP schemas, without memberOf attribute a secondary query must be made for groups.
|
## For Posix or LDAP setups that does not support member_of attribute you can define the below settings
|
||||||
# This is done by enabling group_search_filter below. You must also set member_of= "cn"
|
## Please check grafana LDAP docs for examples
|
||||||
# in [servers.attributes] below.
|
|
||||||
|
|
||||||
# Users with nested/recursive group membership and an LDAP server that supports LDAP_MATCHING_RULE_IN_CHAIN
|
|
||||||
# can set group_search_filter, group_search_filter_user_attribute, group_search_base_dns and member_of
|
|
||||||
# below in such a way that the user's recursive group membership is considered.
|
|
||||||
#
|
|
||||||
# Nested Groups + Active Directory (AD) Example:
|
|
||||||
#
|
|
||||||
# AD groups store the Distinguished Names (DNs) of members, so your filter must
|
|
||||||
# recursively search your groups for the authenticating user's DN. For example:
|
|
||||||
#
|
|
||||||
# group_search_filter = "(member:1.2.840.113556.1.4.1941:=%s)"
|
|
||||||
# group_search_filter_user_attribute = "distinguishedName"
|
|
||||||
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
|
|
||||||
#
|
|
||||||
# [servers.attributes]
|
|
||||||
# ...
|
|
||||||
# member_of = "distinguishedName"
|
|
||||||
|
|
||||||
## Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available)
|
|
||||||
# group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
|
# group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
|
||||||
## Group search filter user attribute defines what user attribute gets substituted for %s in group_search_filter.
|
|
||||||
## Defaults to the value of username in [server.attributes]
|
|
||||||
## Valid options are any of your values in [servers.attributes]
|
|
||||||
## If you are using nested groups you probably want to set this and member_of in
|
|
||||||
## [servers.attributes] to "distinguishedName"
|
|
||||||
# group_search_filter_user_attribute = "distinguishedName"
|
|
||||||
## An array of the base DNs to search through for groups. Typically uses ou=groups
|
|
||||||
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
|
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
|
||||||
|
# group_search_filter_user_attribute = "uid"
|
||||||
|
|
||||||
# Specify names of the ldap attributes your ldap uses
|
# Specify names of the ldap attributes your ldap uses
|
||||||
[servers.attributes]
|
[servers.attributes]
|
||||||
|
@ -393,6 +393,10 @@ log_queries =
|
|||||||
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
|
# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
|
||||||
;nodata_or_nullvalues = no_data
|
;nodata_or_nullvalues = no_data
|
||||||
|
|
||||||
|
# Alert notifications can include images, but rendering many images at the same time can overload the server
|
||||||
|
# This limit will protect the server from render overloading and make sure notifications are sent out quickly
|
||||||
|
;concurrent_render_limit = 5
|
||||||
|
|
||||||
#################################### Explore #############################
|
#################################### Explore #############################
|
||||||
[explore]
|
[explore]
|
||||||
# Enable the Explore section
|
# Enable the Explore section
|
||||||
@ -431,7 +435,7 @@ log_queries =
|
|||||||
;sampler_param = 1
|
;sampler_param = 1
|
||||||
|
|
||||||
#################################### Grafana.com integration ##########################
|
#################################### Grafana.com integration ##########################
|
||||||
# Url used to to import dashboards directly from Grafana.com
|
# Url used to import dashboards directly from Grafana.com
|
||||||
[grafana_com]
|
[grafana_com]
|
||||||
;url = https://grafana.com
|
;url = https://grafana.com
|
||||||
|
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
providers:
|
||||||
|
- name: 'Bulk alerting dashboards'
|
||||||
|
folder: 'Bulk alerting dashboards'
|
||||||
|
type: file
|
||||||
|
options:
|
||||||
|
path: devenv/bulk_alerting_dashboards
|
||||||
|
|
168
devenv/bulk_alerting_dashboards/bulkdash_alerting.jsonnet
Normal file
168
devenv/bulk_alerting_dashboards/bulkdash_alerting.jsonnet
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"editable": true,
|
||||||
|
"gnetId": null,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": null,
|
||||||
|
"links": [],
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"alert": {
|
||||||
|
"conditions": [
|
||||||
|
{
|
||||||
|
"evaluator": {
|
||||||
|
"params": [
|
||||||
|
65
|
||||||
|
],
|
||||||
|
"type": "gt"
|
||||||
|
},
|
||||||
|
"operator": {
|
||||||
|
"type": "and"
|
||||||
|
},
|
||||||
|
"query": {
|
||||||
|
"params": [
|
||||||
|
"A",
|
||||||
|
"5m",
|
||||||
|
"now"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reducer": {
|
||||||
|
"params": [],
|
||||||
|
"type": "avg"
|
||||||
|
},
|
||||||
|
"type": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"executionErrorState": "alerting",
|
||||||
|
"frequency": "10s",
|
||||||
|
"handler": 1,
|
||||||
|
"name": "bulk alerting",
|
||||||
|
"noDataState": "no_data",
|
||||||
|
"notifications": []
|
||||||
|
},
|
||||||
|
"aliasColors": {},
|
||||||
|
"bars": false,
|
||||||
|
"dashLength": 10,
|
||||||
|
"dashes": false,
|
||||||
|
"datasource": "gdev-prometheus",
|
||||||
|
"fill": 1,
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"legend": {
|
||||||
|
"avg": false,
|
||||||
|
"current": false,
|
||||||
|
"max": false,
|
||||||
|
"min": false,
|
||||||
|
"show": true,
|
||||||
|
"total": false,
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"lines": true,
|
||||||
|
"linewidth": 1,
|
||||||
|
"nullPointMode": "null",
|
||||||
|
"percentage": false,
|
||||||
|
"pointradius": 5,
|
||||||
|
"points": false,
|
||||||
|
"renderer": "flot",
|
||||||
|
"seriesOverrides": [],
|
||||||
|
"spaceLength": 10,
|
||||||
|
"stack": false,
|
||||||
|
"steppedLine": false,
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"$$hashKey": "object:117",
|
||||||
|
"expr": "go_goroutines",
|
||||||
|
"format": "time_series",
|
||||||
|
"intervalFactor": 1,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"thresholds": [
|
||||||
|
{
|
||||||
|
"colorMode": "critical",
|
||||||
|
"fill": true,
|
||||||
|
"line": true,
|
||||||
|
"op": "gt",
|
||||||
|
"value": 50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"timeFrom": null,
|
||||||
|
"timeShift": null,
|
||||||
|
"title": "Panel Title",
|
||||||
|
"tooltip": {
|
||||||
|
"shared": true,
|
||||||
|
"sort": 0,
|
||||||
|
"value_type": "individual"
|
||||||
|
},
|
||||||
|
"type": "graph",
|
||||||
|
"xaxis": {
|
||||||
|
"buckets": null,
|
||||||
|
"mode": "time",
|
||||||
|
"name": null,
|
||||||
|
"show": true,
|
||||||
|
"values": []
|
||||||
|
},
|
||||||
|
"yaxes": [
|
||||||
|
{
|
||||||
|
"format": "short",
|
||||||
|
"label": null,
|
||||||
|
"logBase": 1,
|
||||||
|
"max": null,
|
||||||
|
"min": null,
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": "short",
|
||||||
|
"label": null,
|
||||||
|
"logBase": 1,
|
||||||
|
"max": null,
|
||||||
|
"min": null,
|
||||||
|
"show": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schemaVersion": 16,
|
||||||
|
"style": "dark",
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-6h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {
|
||||||
|
"refresh_intervals": [
|
||||||
|
"5s",
|
||||||
|
"10s",
|
||||||
|
"30s",
|
||||||
|
"1m",
|
||||||
|
"5m",
|
||||||
|
"15m",
|
||||||
|
"30m",
|
||||||
|
"1h",
|
||||||
|
"2h",
|
||||||
|
"1d"
|
||||||
|
],
|
||||||
|
"time_options": [
|
||||||
|
"5m",
|
||||||
|
"15m",
|
||||||
|
"1h",
|
||||||
|
"6h",
|
||||||
|
"12h",
|
||||||
|
"24h",
|
||||||
|
"2d",
|
||||||
|
"7d",
|
||||||
|
"30d"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"timezone": "",
|
||||||
|
"title": "New dashboard",
|
||||||
|
"uid": null,
|
||||||
|
"version": 0
|
||||||
|
}
|
@ -1,13 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
blocks_dir=blocks
|
blocks_dir=docker/blocks
|
||||||
docker_dir=docker
|
docker_dir=docker
|
||||||
template_dir=templates
|
template_dir=templates
|
||||||
|
|
||||||
grafana_config_file=conf.tmp
|
grafana_config_file=conf.tmp
|
||||||
grafana_config=config
|
grafana_config=config
|
||||||
|
|
||||||
compose_header_file=compose_header.yml
|
compose_header_file=docker/compose_header.yml
|
||||||
fig_file=docker-compose.yaml
|
fig_file=docker-compose.yaml
|
||||||
fig_config=docker-compose.yaml
|
fig_config=docker-compose.yaml
|
||||||
|
|
3343
devenv/dev-dashboards/panel_tests_polystat.json
Normal file
3343
devenv/dev-dashboards/panel_tests_polystat.json
Normal file
File diff suppressed because it is too large
Load Diff
1166
devenv/dev-dashboards/panel_tests_slow_queries_and_annotations.json
Normal file
1166
devenv/dev-dashboards/panel_tests_slow_queries_and_annotations.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,5 +5,5 @@
|
|||||||
# root_url = %(protocol)s://%(domain)s:10081/grafana/
|
# root_url = %(protocol)s://%(domain)s:10081/grafana/
|
||||||
|
|
||||||
apacheproxy:
|
apacheproxy:
|
||||||
build: blocks/apache_proxy
|
build: docker/blocks/apache_proxy
|
||||||
network_mode: host
|
network_mode: host
|
@ -1,5 +1,5 @@
|
|||||||
collectd:
|
collectd:
|
||||||
build: blocks/collectd
|
build: docker/blocks/collectd
|
||||||
environment:
|
environment:
|
||||||
HOST_NAME: myserver
|
HOST_NAME: myserver
|
||||||
GRAPHITE_HOST: graphite
|
GRAPHITE_HOST: graphite
|
@ -1,5 +1,5 @@
|
|||||||
graphite09:
|
graphite09:
|
||||||
build: blocks/graphite
|
build: docker/blocks/graphite
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "8080:80"
|
||||||
- "2003:2003"
|
- "2003:2003"
|
@ -8,7 +8,7 @@
|
|||||||
# 'avg'. The name of the aggregate metric will be derived from
|
# 'avg'. The name of the aggregate metric will be derived from
|
||||||
# 'output_template' filling in any captured fields from 'input_pattern'.
|
# 'output_template' filling in any captured fields from 'input_pattern'.
|
||||||
#
|
#
|
||||||
# For example, if you're metric naming scheme is:
|
# For example, if your metric naming scheme is:
|
||||||
#
|
#
|
||||||
# <env>.applications.<app>.<server>.<metric>
|
# <env>.applications.<app>.<server>.<metric>
|
||||||
#
|
#
|
@ -1,6 +1,6 @@
|
|||||||
graphite:
|
graphite:
|
||||||
build:
|
build:
|
||||||
context: blocks/graphite1
|
context: docker/blocks/graphite1
|
||||||
args:
|
args:
|
||||||
version: master
|
version: master
|
||||||
ports:
|
ports:
|
@ -6,7 +6,7 @@
|
|||||||
- "8083:8083"
|
- "8083:8083"
|
||||||
- "8086:8086"
|
- "8086:8086"
|
||||||
volumes:
|
volumes:
|
||||||
- ./blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
|
- ./docker/blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
|
||||||
|
|
||||||
fake-influxdb-data:
|
fake-influxdb-data:
|
||||||
image: grafana/fake-data-gen
|
image: grafana/fake-data-gen
|
@ -1,6 +1,6 @@
|
|||||||
mssql:
|
mssql:
|
||||||
build:
|
build:
|
||||||
context: blocks/mssql/build
|
context: docker/blocks/mssql/build
|
||||||
environment:
|
environment:
|
||||||
ACCEPT_EULA: Y
|
ACCEPT_EULA: Y
|
||||||
MSSQL_SA_PASSWORD: Password!
|
MSSQL_SA_PASSWORD: Password!
|
@ -1,6 +1,6 @@
|
|||||||
mssqltests:
|
mssqltests:
|
||||||
build:
|
build:
|
||||||
context: blocks/mssql/build
|
context: docker/blocks/mssql/build
|
||||||
environment:
|
environment:
|
||||||
ACCEPT_EULA: Y
|
ACCEPT_EULA: Y
|
||||||
MSSQL_SA_PASSWORD: Password!
|
MSSQL_SA_PASSWORD: Password!
|
@ -1,5 +1,5 @@
|
|||||||
mysql_opendata:
|
mysql_opendata:
|
||||||
build: blocks/mysql_opendata
|
build: docker/blocks/mysql_opendata
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: rootpass
|
MYSQL_ROOT_PASSWORD: rootpass
|
||||||
MYSQL_DATABASE: testdata
|
MYSQL_DATABASE: testdata
|
@ -1,6 +1,6 @@
|
|||||||
mysqltests:
|
mysqltests:
|
||||||
build:
|
build:
|
||||||
context: blocks/mysql_tests
|
context: docker/blocks/mysql_tests
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: rootpass
|
MYSQL_ROOT_PASSWORD: rootpass
|
||||||
MYSQL_DATABASE: grafana_tests
|
MYSQL_DATABASE: grafana_tests
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user