Compare commits

..

997 Commits

Author SHA1 Message Date
Carl Bergquist
7fa1db6bec pagerduty: fixes invalid default value (#10329)
autoResolve incident checkbox was set to disabled by default but
the backend used enabled as default. This commit makes both use
disabled by defualt

fixes #10222

(cherry picked from commit 7917efb31a)
2017-12-22 20:50:06 +01:00
bergquist
11fd401fad changelog: adds note about closing #9170 2017-12-14 15:59:49 +01:00
Carl Bergquist
f5d26bfcc9 Merge pull request #10050 from davkal/davkal/multi-query-table
Add support to render values of multiple queries in the same table
2017-12-14 15:57:07 +01:00
Carl Bergquist
45eda16a87 Merge pull request #10203 from queeno/dashboard_provisioner_id_validation
Avoid ID validation before provisioning dashboards
2017-12-14 15:43:07 +01:00
bergquist
4a433ee630 docs: include all notifiers type 2017-12-14 14:45:17 +01:00
Torkel Ödegaard
66ca8a6621 Update CHANGELOG.md 2017-12-14 13:58:33 +01:00
Torkel Ödegaard
88e9012cef Update CHANGELOG.md 2017-12-14 13:58:11 +01:00
bergquist
f6f9e58d45 docs: update latest version to 4.6.3 2017-12-14 13:45:44 +01:00
Robin Gustafsson
cf7a49977f proxyds: delete cookies except those listed in keepCookies 2017-12-14 11:46:44 +01:00
Daniel Lee
bcc85862fe dshttpsettings: Move whitelisted cookies to end of config page 2017-12-14 11:46:44 +01:00
Daniel Lee
f1aa7dcd52 proxyds: failing test for keepCookies
If the cookies are specified in the keepCookies property then they
should not be deleted from proxied requests for data sources
2017-12-14 11:46:44 +01:00
Daniel Lee
592cb386e2 dshttpsettings: add field for cookies that should be kept
The ds proxy strips out cookies. Cookie names specified in
this field will not be stripped out. This is the frontend
change only.
2017-12-14 11:46:44 +01:00
bergquist
43ac2b1dba update version for packagecloud 2017-12-14 11:30:10 +01:00
bergquist
294a6a0046 add release date for 4.6.3 2017-12-14 11:20:34 +01:00
Simon Aquino
5dbbf1826c Avoid ID validation before provisioning dashboards
Attempting to provision grafana using a previously exported
JSON dashboard with the ID field already set, might result in an error.
In fact, Grafana might believe that a dashboard with that
given ID already exists in the database, throwing an error if it doesn't.
(see pkg/services/sqlstore/dashboard.go#L32)

The dashboard provisioner should set the dashboard id to zero in order to
avoid this behaviour inducing the dashboard to be written to the DB
without ID validation.
2017-12-14 02:07:50 +01:00
bergquist
75ecc019d3 changelog: adds note about closing #7481 2017-12-13 19:32:06 +01:00
bergquist
a7d746375d Merge branch 'Thib17-master'
* Thib17-master:
  alertmanager: endAt should only be used if we have the correct value
  alertmanager: code style
  alerting: reduce log level for notifiers
  Alertmanager notifier: add "metric" labels if no tags
  Alertmanager notifier: make it match the new notifier interface
  support alertmanager
2017-12-13 19:17:10 +01:00
bergquist
ade734168c alertmanager: endAt should only be used if we have the correct value 2017-12-13 19:17:00 +01:00
bergquist
3691faf136 alertmanager: code style 2017-12-13 19:17:00 +01:00
bergquist
1240db31d3 alerting: reduce log level for notifiers 2017-12-13 19:17:00 +01:00
Thibault Chataigner
a8264fe316 Alertmanager notifier: add "metric" labels if no tags
Signed-off-by: Thibault Chataigner <t.chataigner@criteo.com>
2017-12-13 19:17:00 +01:00
Thibault Chataigner
3a7939c930 Alertmanager notifier: make it match the new notifier interface
Signed-off-by: Thibault Chataigner <t.chataigner@criteo.com>
2017-12-13 19:17:00 +01:00
Mitsuhiro Tanda
20d94f9703 support alertmanager 2017-12-13 19:17:00 +01:00
Carl Bergquist
35106537f2 Replace Read Only Editor role with ViewersCanEdit setting (#10166)
* removes readonly editor role

* adds viewersCanEdit setting

This enable you to allow viewers to edit/inspect
dashboards in grafana in their own browser without
allowing them to save dashboards

* remove read only editor option from all dropdowns

* migrates all read only viewers to viewers

* docs: replace readOnlyEditor with viewersCanEdit
2017-12-13 18:53:42 +01:00
bergquist
dfde6e75ed changelog: adds note about closing #10151 2017-12-13 14:41:28 +01:00
bergquist
ee5f030ded changelog: adds note about closing #9318 2017-12-13 13:53:38 +01:00
bergquist
bf999a4f82 fixes broken alert eval when first condition is using OR
closes #9318
2017-12-13 13:37:10 +01:00
bergquist
dd3dd407ad removes unused property 2017-12-13 13:12:50 +01:00
Daniel Lee
02d3a9f365 docs: SSL Mode config settings for Postgres 2017-12-13 10:55:58 +01:00
bergquist
355a12d7cb Merge branch 'Thib17-master'
* Thib17-master:
  removes verbose logging
  Add a per-notifier ShouldNotify()
2017-12-13 10:26:35 +01:00
bergquist
0b6169b3f5 removes verbose logging 2017-12-13 10:21:11 +01:00
Thibault Chataigner
fd633a1d5d Add a per-notifier ShouldNotify()
This way we are able to edit notification behavior per notifier.
This would be usefull to let some notifiers send notifications,
even when the state doesn't change, or with custom condition.

Signed-off-by: Thibault Chataigner <t.chataigner@criteo.com>
2017-12-12 17:35:54 +01:00
Torkel Ödegaard
a02086814e graphite: remove check so that query is sent even for possible non leaf nodes 2017-12-12 17:00:00 +01:00
Torkel Ödegaard
a00af85f36 build: fixed unit test failure 2017-12-12 13:21:50 +01:00
David Kaltschmidt
edb2dcf1b0 Extracted row matching function and added comments 2017-12-12 13:18:06 +01:00
bergquist
ff1b71bc20 allow overriding dashboards from api 2017-12-12 13:18:00 +01:00
Torkel Ödegaard
871b98c06b graphite: minor fix for PR #10142 the query was being sent for every segmen t you selected before you completed the metric path 2017-12-12 12:56:40 +01:00
Torkel Ödegaard
bb52f3670e Merge branch 'parseTarget' of https://github.com/DanCech/grafana into DanCech-parseTarget 2017-12-12 12:38:58 +01:00
bergquist
c68e7c7283 avatar: avoid concurrent map writes 2017-12-12 11:25:47 +01:00
Carl Bergquist
ea2f65b4c3 Merge pull request #10110 from bwhaley/master
Fixes bug in cloudwatch regarding credentials
2017-12-12 10:16:53 +01:00
David Kaltschmidt
8d70f13393 Type-agnostic row merge in table transform for multiple queries
* moved unique value naming to datasource (credit: @bergquist)
* merge rows based on same column-values and empty values
* expanded tests
2017-12-11 12:42:53 +01:00
Carl Bergquist
5d70a36ad8 Merge pull request #10150 from jomenxiao/jomenxiao/render_setting_lang
[render image]add encoding param
2017-12-11 10:36:38 +01:00
Carl Bergquist
43cff3a2bd Merge pull request #10146 from noakup/master
hyphen
2017-12-11 10:18:00 +01:00
bergquist
66bc1fea2d changelog: adds note about closing #10131 2017-12-11 09:45:47 +01:00
Carl Bergquist
a5b3f2b891 Merge pull request #10132 from bergquist/go_routine_management
Wait for all sub routines to finish before closing Grafana
2017-12-11 09:43:37 +01:00
Mikael Olenfalk
8e7166b5c4 Explicitly specify default region in CloudWatch datasource (#9440)
The datasource uses the default region in the query if the region
is "" in the settings. However setting the region to an empty string
is almost impossible and rendered incorrectly.

This commit introduces a special value "default" for region which
is shown in the drop down and is translated to the default region
of the data source when performing queries.
2017-12-11 09:37:27 +01:00
jomenxiao
ad2a69bff4 add encoding param 2017-12-11 16:01:17 +08:00
bergquist
f7ed24475c wait for all sub routines to finish
simple solution for waiting for all go sub routines to
finish before closing Grafana. We would use errGroup
here as well but I dont like spreading context's all
over the place.

closes #10131
2017-12-11 08:53:06 +01:00
Dan Cech
588ce6606c fix function re-ordering broken in #9436 2017-12-10 21:20:38 -05:00
noakup
e6bdccbb05 hyphenhyphen 2017-12-10 18:38:48 +02:00
Dan Cech
525ae4fdf5 support metric trees of varying depth, never send '.select metric' to graphite 2017-12-10 10:48:12 -05:00
Dan Cech
8dcfa18761 simplify function parameter addition 2017-12-10 10:45:41 -05:00
Dan Cech
3a1700cbee improve handling of query references 2017-12-09 16:27:05 -05:00
Dan Cech
4fcf79a3a6 demonstrate parseTarget issue 2017-12-09 11:17:34 -05:00
bergquist
0506cfdc1d changelog: adds ntoe about closing #10111 2017-12-08 16:09:32 +01:00
Carl Bergquist
2408d8f09a Merge pull request #10112 from adiletmaratov/master
Solves problem with Github authentication restriction by organization
2017-12-08 16:05:27 +01:00
Sven Klemm
ce809de1ed postgres: change $__timeGroup macro to include "AS time" column alias (#10119)
* change $__timeGroup macro to include column alias

* update docs and help text for $__timeGroup macro
2017-12-08 15:14:10 +01:00
bergquist
0c5ef1453d fixes broken test 2017-12-08 11:33:15 +01:00
bergquist
5f5cdad97a improve error handling for datasources as cfg 2017-12-08 10:50:11 +01:00
bergquist
c766802325 improve sample datasource.yaml 2017-12-08 10:28:38 +01:00
bergquist
80a852b00a make gitignore more generic 2017-12-08 09:35:46 +01:00
bergquist
79d7213e11 fixes issue with datasource/dash as cfg and gitignore 2017-12-08 06:52:47 +01:00
Ben Whaley
51854ff4fa Fix go fmt 2017-12-07 16:10:13 +00:00
bergquist
7b81ebc991 changelog: breaking regardless what your running 2017-12-07 16:29:56 +01:00
bergquist
f39b40c2dd changelog: better styling 2017-12-07 16:29:00 +01:00
bergquist
5aab6b5c20 removes last pieces of dashboard.json 2017-12-07 16:26:07 +01:00
bergquist
5fb8b37241 changelog: note about closing #5269 and #9654 2017-12-07 16:13:08 +01:00
Carl Bergquist
fb386f3c8d Merge pull request #10052 from bergquist/dashboards_from_disk
Load dashboards from disk into the database at regular interval
2017-12-07 16:12:02 +01:00
bergquist
5006f9e4c5 dashboards as cfg: update docs to use /provisioning 2017-12-07 15:55:00 +01:00
bergquist
2e610cb256 dashboards as cfg: move dash/ds config files to /provisioning/* 2017-12-07 15:27:01 +01:00
bergquist
50bc801f1c dashboards as cfg: copy dash/ds files if missing 2017-12-07 15:27:01 +01:00
bergquist
361acd3fa1 dashboards as cfg: include cfg files in dist packages 2017-12-07 15:27:01 +01:00
bergquist
1dfa529941 dashboards as cfg: avoid walking fs in parallel 2017-12-07 15:27:01 +01:00
bergquist
b28ea0b407 dashboards as cfg: type 2017-12-07 15:27:01 +01:00
bergquist
2a18345eb2 dashboards as cfg: disable loading dashboards from disk by default 2017-12-07 15:27:01 +01:00
bergquist
099178466d dashboards as cfg: wire up dashboard repo 2017-12-07 15:27:01 +01:00
bergquist
288cc35529 dashboards as cfg: use gocache for caching 2017-12-07 15:27:01 +01:00
bergquist
f5eac2e91d dashboards as cfg: expose dashboard service as interface 2017-12-07 15:27:01 +01:00
bergquist
16f072b320 dashboards as cfg: move saving logic for dashboards into its own service 2017-12-07 15:27:01 +01:00
bergquist
9cebb23e01 dashboards as cfg: revert minor changes 2017-12-07 15:27:01 +01:00
bergquist
74e12c260f dashboards as cfg: move dashboard saving into its own service 2017-12-07 15:27:01 +01:00
bergquist
09cb0f378b dashboards as cfg: minor tweaks 2017-12-07 15:27:01 +01:00
bergquist
93e1d8a19c dashboards as cfg: make dashboard none editable by default 2017-12-07 15:27:01 +01:00
bergquist
7f3a7ea128 dashboards as cfg: more tests 2017-12-07 15:27:01 +01:00
bergquist
dc0fb8be06 dashboards as cfg: code cleanup 2017-12-07 15:27:01 +01:00
bergquist
d69b63cbc0 dashboards as cfg: read first cfg version 2017-12-07 15:27:01 +01:00
Sven Klemm
a62ebb3e59 mysql: pass timerange for template variable queries (#10071)
* mysql: pass timerange for template variable queries

* mysql: document time range macro usage in template variables

* mysql: docs for on time range change refresh mode for template queries

* Revert "mysql: docs for on time range change refresh mode for template queries"

This reverts commit 5325972aa4.
2017-12-07 11:18:36 +01:00
Adilet Maratov
50daf7463d Solves problem with Github authentication restriction by organization membership when the organization's access policy is set to "Access restricted". "Access restricted" policy should not stop user to authenticate.
How it is solved:
* Take organizations_url field data from user basic data response
* Make another request to get all organization the user is a member of (public membership)
* Authenticate user if appropriate organization found in that list
2017-12-07 16:13:49 +06:00
Sven Klemm
b44c599410 postgres: pass timerange for template variable queries (#10069)
* pass timerange for template queries when refresh is set to timerange
change

* document on time range change refresh mode for template queries
2017-12-07 10:05:04 +01:00
Ben Whaley
fe88658bdd Resolves grafana/grafana:#9309 2017-12-07 03:43:32 +00:00
Sven Klemm
c80eadcdf4 handle native postgres datetime types in annotation queries (#9986) 2017-12-06 18:12:24 +01:00
Sven Klemm
373389c920 treat any text column in timeseries query as metric name unless column (#9985)
named metric is present
2017-12-06 18:04:33 +01:00
bergquist
48d9d0d356 prom: enable min interval per panel
This commit makes it possible to set min interval per panel.
Overrides the value configured on the datasource.

ref #9705
2017-12-06 13:51:19 +01:00
David Kaltschmidt
011b2cd1b2 Fix merge issue on multi-query table transforms
* after a match has been found the merger should keep looking for more
2017-12-06 13:12:16 +01:00
Patrick O'Carroll
3aa1cb012a added tooltip, fixes #10092 (#10097)
* added tooltip, fixes #10092

* fixed code formatting
2017-12-06 12:13:17 +01:00
bergquist
bbc8aa0525 docs: link from cfg page to provisioning 2017-12-05 18:44:31 +01:00
David Kaltschmidt
eb31833d52 Backwards-compat for multi-query table transform
* treat single-query table panels like they were before
* adjusted test cases
2017-12-05 11:25:10 +01:00
bergquist
35232a77e6 removes unused properties
the dsType property caused some confusion about what datasource is
beeing used. I just removed it since it not beeing used.

closes #10072
2017-12-05 08:26:43 +01:00
David Kaltschmidt
1dd90c8105 Making the multi-query table transform the default table transform 2017-12-04 17:55:00 +01:00
Carl Bergquist
f327e7c818 Merge pull request #10055 from paulfantom/master
add Cloud Alchemy Ansible role
2017-12-04 11:26:34 +01:00
David Kaltschmidt
b6867891f0 Tests for multi-query table transform 2017-12-03 14:32:02 +01:00
Mitsuhiro Tanda
e8a6af7b22 fix templating undefined error (#10004) 2017-12-02 17:21:21 +01:00
paulfantom
3e94d80430 add Cloud Alchemy Ansible role 2017-12-01 21:26:14 +01:00
David Kaltschmidt
85eb2aaa80 Added basic table transformer test 2017-12-01 19:03:47 +01:00
bergquist
d6d64c53cd typo 💥 2017-12-01 16:23:55 +01:00
Carl Bergquist
89fb60a956 Merge pull request #10020 from jomenxiao/master
fix render http[get] params error
2017-12-01 16:22:47 +01:00
bergquist
9282182805 influxdb: pass tags to alerting from influxdb client
closes #10046
2017-12-01 16:16:49 +01:00
bergquist
5e9f0771c5 ignore /conf/**/custom.yaml files 2017-12-01 15:49:54 +01:00
David Kaltschmidt
91e866f145 Add multiquery_table table transform
The current table transform renders only the first query.
This PR adds a new transform to render all query results in a JOIN-ish
semantic.

* new table transform: Multi-Query table
* columns is the union of all non-value fields
* one value column per query is added
* rows that share all the same label values are merged into one
2017-12-01 14:27:22 +01:00
bergquist
17bf87fb62 typo 💥 2017-12-01 14:05:47 +01:00
bergquist
7a497fd617 move systemd ready notification to server.go 2017-12-01 14:02:05 +01:00
bergquist
94446fb85c changelog: adds note about closing #10024 2017-12-01 13:54:31 +01:00
Carl Bergquist
820abef82d Merge pull request #10025 from jgrassler/systemd-sdnotify
Use systemd notification where applicable
2017-12-01 13:26:13 +01:00
Johannes Grassler
d28ca54129 Use systemd notification where applicable
With this change in place, the grafana service will signal
readiness to serve by writing "READY=1" to the path specified
through the NOTIFY_SOCKET environment variable. If this
environment variable is not present or empty, no notification
will happen. This notification is the standard systemd
mechanism for indicating a service is ready to serve. For
Grafana this may be a couple of seconds from startup due to
database migrations. This change also adjusts the Grafana
systemd service definition to make use of this feature.
2017-12-01 10:31:58 +01:00
Carl Bergquist
142c3a6bc2 Merge pull request #10042 from andrei-kolosok/master
grafana-10039: fix query time range ends in the past
2017-11-30 16:41:43 +01:00
Andrei Kalasok
68d4211c50 grafana-10039: fix query time range ends in the past 2017-11-30 15:50:35 +01:00
Carl Bergquist
603725aeb0 Merge pull request #10041 from grafana/revert-9983-prometheus_nested
Revert "prometheus nested query support"
2017-11-30 15:06:16 +01:00
Carl Bergquist
af5ced0e18 Revert "prometheus nested query support" 2017-11-30 15:06:02 +01:00
Carl Bergquist
98f0305e68 Merge pull request #9983 from mtanda/prometheus_nested
prometheus nested query support
2017-11-30 14:57:34 +01:00
Marcus Efraimsson
1e10fcad83 test: fix failing postgres test
Should use case insensitive matching when searching for users
2017-11-29 15:17:31 +01:00
Marcus Efraimsson
c8ac6add16 test: speedup mysql and postgres integration tests by 10-20x
Use docker tmpfs mounts for mysql and postgres data volumes
2017-11-29 14:40:23 +01:00
Daniel Lee
554c7ba96f notifier: Fixes path for uploaded image for Slack notifier
Fixes #10012
2017-11-29 11:16:45 +01:00
Daniel Lee
e6bf266c4b formatting in build file 2017-11-29 11:15:27 +01:00
Mitsuhiro Tanda
98bb8bf761 prometheus nested query support 2017-11-29 18:34:44 +09:00
jomenxiao
3f95180c98 fix render http[get] params error 2017-11-28 22:20:22 +08:00
bergquist
c0e087640b test: close file before deleting 2017-11-28 15:05:53 +01:00
Carl Bergquist
2bc91c8660 Merge pull request #10013 from grafana/view-json-template
export view json now templatized, fixes #10001
2017-11-28 15:02:26 +01:00
Patrick O'Carroll
afd0fc3652 export view json now templatized, fixes #10001 2017-11-28 13:27:43 +01:00
Carl Bergquist
4a2941dc90 Merge pull request #9981 from grafana/more-js-to-ts-migration
migrated four files from js to ts
2017-11-27 09:41:27 +01:00
Patrick O'Carroll
015932fd02 migrated four files from js to ts 2017-11-24 13:38:54 +01:00
Patrick O'Carroll
b752cfee1f migrated four files to ts, addd some code to config to make it work (#9980) 2017-11-24 12:59:36 +01:00
Torkel Ödegaard
8ce05a7c24 Update NOTICE.md 2017-11-24 09:14:14 +01:00
Torkel Ödegaard
3ff362e446 Update LICENSE.md 2017-11-24 09:11:10 +01:00
Patrick O'Carroll
4ce1ee4120 Migrate gfunc to ts (#9973)
* migrated gfunc from js to ts

* deleted gfunc.js, small fixes in gfunc.ts
2017-11-23 17:05:27 +01:00
Patrick O'Carroll
3acf106303 migrated admin files to ts (#9975) 2017-11-23 17:05:08 +01:00
Patrick O'Carroll
b94839574c migration of org files from js to ts (#9974)
* migration of org files from js to ts

* more migration of org files to ts

* minor fix to change_password

* renamed files
2017-11-23 17:04:50 +01:00
Patrick O'Carroll
b7956ef499 More js to ts (#9966)
* four files js to ts, fixed ng_model_on_blur

* added /** @ngInject */
2017-11-23 14:53:23 +01:00
Carl Bergquist
c3699d8259 Merge pull request #9952 from seuf/log_file_count_lines
Optimized number of lines fetching in log file initialisation
2017-11-23 14:22:50 +01:00
Marcus Efraimsson
5b05941dec docs: Improve delete snapshot documentation 2017-11-23 13:08:44 +01:00
Torkel Ödegaard
5ab72f48fc Update latest.json 2017-11-22 14:44:18 +01:00
THIERRY SALLE
658109e0d6 Optimized number of lines fetching in log file initialisation
Added unit tests for file logging line counting

Remove file after unit test
2017-11-22 14:25:39 +01:00
Carl Bergquist
d8d44224f5 Merge pull request #9950 from seuf/es_56_max_concurrent_shards_request
Elasticsearch max_concurrent_shard_requests parameter for es 5.6+
2017-11-22 10:49:46 +01:00
Patrick O'Carroll
27e486d678 converted 3 .js files to .ts (#9958)
* converted files from .js to .ts
2017-11-22 10:11:50 +01:00
bergquist
ca940c2ae5 docs: adds docs for pausing all alerts 2017-11-22 09:31:23 +01:00
Daniel Lee
400bd205a8 Removing file that got committed by accident 2017-11-22 09:30:49 +01:00
Matt Toback
3f2a510568 Delete LICENSE.txt 2017-11-21 17:16:35 -05:00
Carl Bergquist
79e788e46f Merge pull request #9937 from saady/gcs-path
[GCS] Support for gcs path
2017-11-21 19:46:53 +01:00
saady
767b460ff1 [GCS] Support for gcs path 2017-11-21 17:22:40 +00:00
bergquist
3a772c7f7f allows head requests for /api/health endpoint
closes #9955
2017-11-21 15:03:04 +01:00
Torkel Ödegaard
43a6a65f8b fix: fixed issue with metric segment introduced in graphite tags query editor PR 2017-11-21 14:39:09 +01:00
Daniel Lee
5dd9582520 mysql: add data source support for Azure MySql
Fixes #9649
2017-11-21 13:21:19 +01:00
Torkel Ödegaard
0d12b37dfd fix: alert list panel now works correctly after adding manual annotation on dashboard, fixes #9951 2017-11-21 11:28:17 +01:00
THIERRY SALLE
bd4d665d54 Elasticsearch max_concurrent_shard_requests parameter for es 5.6+ 2017-11-21 10:56:34 +01:00
bergquist
14b8bd35ed Merge branch 'Fresh-Tracks-add-p8s-2-db' 2017-11-21 10:12:33 +01:00
bergquist
0390b4187b prom: add prom2 dashboard as bundled dashboard 2017-11-21 10:12:24 +01:00
Cody Boggs
999b1211b6 show top 5 max scrape durations by job, and fix legend format 2017-11-21 10:12:24 +01:00
Cody Boggs
9151a2468d fix scrape duration, add rule eval iteration stats, and reorg a bit 2017-11-21 10:12:24 +01:00
Cody Boggs
29de4e7c53 fix data source var and remove node_exporter dependency 2017-11-21 10:12:24 +01:00
Cody Boggs
d5ef0403af First draft of a Prometheus 2.0 Stats dashboard 2017-11-21 10:12:24 +01:00
bergquist
d7321cd89c prom: initial docker block for prometheus 2 2017-11-21 09:55:42 +01:00
Carl Bergquist
c83975f2e1 Merge pull request #9936 from grafana/js-to-ts-migration
Js to ts migration
2017-11-21 09:21:22 +01:00
Patrick O'Carroll
25f63e0581 converted test-files to jest 2017-11-20 15:25:42 +01:00
Patrick O'Carroll
59cebca4b2 converted influx-series to TS, converted test to jest 2017-11-20 14:31:51 +01:00
Ryan McKinley
b1de1e6f26 Move the loading flag to PanelCtrl (#9929) 2017-11-20 11:27:18 +01:00
Alexander Zobnin
f54547776d graph: disable zoom in non-timeseries modes (#9914) 2017-11-20 10:06:34 +01:00
Patrick O'Carroll
66e4297816 changed padding to pixels, fixes #9916 (#9924) 2017-11-20 10:05:18 +01:00
Maytee Chinavanichkit
c1e5f5be87 Use correct moments format for Showing last us time instead of value test (#9923)
Fixes this issue:
PhantomJS 2.1.1 (Mac OS X 0.0.0) SingleStatCtrl showing last us time
instead of value should set formatted value FAILED
	expected '09/17/2017 4:56:37 pm' to equal '09/17/2017 16:56:37 pm'
2017-11-20 10:00:56 +01:00
Carl Bergquist
3351f959d0 Merge pull request #9913 from tomwilkie/dashboard-json-configmaps
Don't import JSON dashboards from hidden directories.
2017-11-20 08:31:05 +01:00
Tom Wilkie
0015183a7b Don't import JSON dashboards from hidden directories. 2017-11-17 17:21:49 +00:00
Torkel Ödegaard
6595be95eb influxdb: another minor refactor of #9474 2017-11-17 15:23:45 +01:00
Torkel Ödegaard
37409163b9 refactor: refactoring InfluxDB query builder with policy PR #9473 2017-11-17 15:16:36 +01:00
Torkel Ödegaard
bcb52417db refactor: refactoring InfluxDB query builder with policy PR #9473 2017-11-17 15:16:04 +01:00
Torkel Ödegaard
4b76c6d652 Merge branch 'master' of https://github.com/omki2005/grafana into omki2005-master 2017-11-17 14:57:44 +01:00
Torkel Ödegaard
153a9bf43a docs: added versions_to_keep to config docs, #9671 2017-11-17 14:53:08 +01:00
Torkel Ödegaard
36c9b7df53 Update CHANGELOG.md 2017-11-17 14:45:38 +01:00
Torkel Ödegaard
98b4074c16 refactoring: minor refactor of clean up dashboard history PR #9882 2017-11-17 14:41:44 +01:00
Torkel Ödegaard
aaa465a100 Merge branch 'feat-9671' of https://github.com/alexanderzobnin/grafana into alexanderzobnin-feat-9671 2017-11-17 14:16:49 +01:00
Torkel Ödegaard
908be13c03 Update CHANGELOG.md 2017-11-17 13:26:36 +01:00
Torkel Ödegaard
b481ff27b2 Update CHANGELOG.md 2017-11-17 13:22:49 +01:00
Torkel Ödegaard
303e3de488 fix: fix for avatar images when gzip is turned on, fixes #5952 2017-11-17 13:13:58 +01:00
Torkel Ödegaard
7ccc8ae298 elasticsearch: default version to 5.x 2017-11-17 12:23:40 +01:00
Torkel Ödegaard
f591bea696 Merge branch 'graphite-series-by-tags' 2017-11-17 12:15:21 +01:00
Alexander Zobnin
a55be07ea5 dashboard history clean up: avoid potential SQL injections 2017-11-17 10:51:50 +03:00
bergquist
fe42f81441 changelog: note about closing #9798 2017-11-16 16:55:02 +01:00
bergquist
0f69e06fcf removes invalid comment 2017-11-16 16:55:02 +01:00
Carl Bergquist
03c23dd9c1 Merge pull request #9901 from grafana/fix_annotations_api
fix: return id from api when creating new annotation, fixes #9798
2017-11-16 16:51:41 +01:00
Marcus Efraimsson
909601d6ab api: fix so that datasources functions returns Response 2017-11-16 16:29:05 +01:00
bergquist
dcffcbb6d3 changelog: note about closing #1789 2017-11-16 16:21:14 +01:00
Torkel Ödegaard
26577ab600 Merge branch 'master' into graphite-series-by-tags 2017-11-16 16:20:44 +01:00
Marcus Efraimsson
89b27b35ba fix: Use Response as return type 2017-11-16 16:19:01 +01:00
Marcus Efraimsson
540d540ea9 fix: return id from api when creating new annotation/graphite annotation, fixes #9798
When creating a region annotation the response will include both
id (region start id) and endId (region end id), if not only id.
2017-11-16 16:19:01 +01:00
Carl Bergquist
9ea5af578e Merge pull request #9504 from grafana/datasource_as_cfg
Datasources as configuration
2017-11-16 16:13:02 +01:00
bergquist
c60915c146 datasources as cfg: adds docs for all jsondata and secure_json fields 2017-11-16 14:22:52 +01:00
Torkel Ödegaard
3ae0cfa1d0 graphite: minor changes 2017-11-16 14:16:37 +01:00
bergquist
87983021e2 datasources as cfg: convert yaml map into json for jsonData 2017-11-16 13:23:42 +01:00
Torkel Ödegaard
119f5427af fix: fix cloudwatch metricFindQuery error that stopped it working completely, fixes #9876 2017-11-16 13:06:24 +01:00
bergquist
5b674ce29c docs: release 4.6.2 2017-11-16 11:22:09 +01:00
bergquist
bfd8afaf13 docs: update metrics api path 2017-11-16 09:38:37 +01:00
bergquist
e15fed10e2 changelog: adds note about closing #1871 2017-11-15 15:04:29 +01:00
Patrick O'Carroll
d800e64368 fixes: #1871 Dropdown starred (#9490)
adding the ability to star dashboard in search and dashboard-list

closes #1871
2017-11-15 15:01:44 +01:00
Sven Klemm
26ab25b7c0 dont loose subsecond precision when dealing with timestamp or (#9851)
timestamptz
2017-11-15 14:50:32 +01:00
Torkel Ödegaard
3b18adfe1a graphite: progress on new query editor 2017-11-15 14:35:22 +01:00
bergquist
6267ef1391 datasource as cfg: fixes typos 2017-11-15 14:30:32 +01:00
bergquist
6e82dbafbc docs: format cfg mgt tools as table 2017-11-15 14:30:32 +01:00
bergquist
29dff8b6cd docs: adds more info about provisioning 2017-11-15 14:30:32 +01:00
bergquist
b4a89128b6 datasource as cfg: update docs to include globbig 2017-11-15 14:30:32 +01:00
bergquist
06a37d0023 datasource as cfg: show deletes first in example 2017-11-15 14:30:32 +01:00
bergquist
ebbfc529e0 datasource as cfg: support globbing 2017-11-15 14:30:32 +01:00
bergquist
0f136a940c datasource as cfg: enable editable ds's 2017-11-15 14:30:32 +01:00
bergquist
b72cdae563 datasource as cfg: add org_id to example config 2017-11-15 14:30:32 +01:00
Dan Cech
0b6b5bac30 tweak docs 2017-11-15 14:30:32 +01:00
bergquist
36676e23c1 datasource as cfg: adds readonly datasources 2017-11-15 14:30:32 +01:00
bergquist
c6a6ae261f datasource as cfg: refactor to use bus 2017-11-15 14:30:32 +01:00
bergquist
dc002abe4c datasource as cfg: test for reading all properties 2017-11-15 14:30:32 +01:00
bergquist
5d49846e1d datasource as cfg: adds provisioning docs 2017-11-15 14:30:32 +01:00
bergquist
665df676a5 datasource as cfg: rename feature to provisioning 2017-11-15 14:30:32 +01:00
bergquist
c9bfa781fd datasource as cfg: improve name for this feature 2017-11-15 14:30:32 +01:00
bergquist
ba4bbd1d47 datasource as cfg: refactor tests to use yaml files 2017-11-15 14:30:32 +01:00
bergquist
3f0eb52389 datasource as cfg: ignore datasource all ready exist for inserts 2017-11-15 14:30:32 +01:00
bergquist
5910411845 datasource as cfg: add support for securedata field 2017-11-15 14:30:32 +01:00
bergquist
930da63173 datasource as cfg: setting for purging datasources not in cfg 2017-11-15 14:30:32 +01:00
bergquist
0f29b8ac83 datasources as cfg: tests for insert/updating datasources 2017-11-15 14:30:32 +01:00
bergquist
39b6c04643 datasource as cfg: basic implementation 2017-11-15 14:30:32 +01:00
Bruno Binet
014f6d5a75 More energy units (#9743)
* Add mA, mV, mW energy units

* Update case to be consistent with other energy units
2017-11-15 14:23:42 +01:00
Ryan McKinley
41be15ee4e Add feet to the length menu (#9889) 2017-11-15 14:06:17 +01:00
Daniel Lee
0d85c63fff middleware: recovery handles panics in all handlers
Also, changes the order of the middleware so that recovery is after the
gzip middleware. Otherwise, a 200 OK is returned instead of a 500 error.
2017-11-15 13:57:33 +01:00
Daniel Lee
b2fbb2691b sql: small fix to error handling 2017-11-15 13:57:33 +01:00
Torkel Ödegaard
acede1d5f9 graphite: progress on new query editor 2017-11-15 13:45:51 +01:00
bergquist
4301463c82 changelog: make prom fixes more explicit 2017-11-15 11:42:53 +01:00
Alexander Zobnin
59d89e422b dashboard history clean up: add tests 2017-11-15 13:38:44 +03:00
Alexander Zobnin
d4e2f850b8 tech: ignore debug.test file created by VS Code 2017-11-15 13:37:45 +03:00
Alexander Zobnin
a0a1f4aacd dashboard history: refactor after review 2017-11-15 13:36:36 +03:00
bergquist
7834eca394 changelog: adds note about closing #9777 2017-11-15 11:27:11 +01:00
Carl Bergquist
5d6ed6c45f prom: add support for default step param (#9866)
Alerting for prometheus have been depending on the step parameter from each query.
In https://github.com/grafana/grafana/pull/9226 we changed the behavior for step in the
frontend which caused problems for alerting. This commit fixes that by introducing a default
min interval value so alerting always have something to depend on. 

closes #9777
2017-11-15 11:22:00 +01:00
Torkel Ödegaard
b5b93a68fc Merge branch 'master' into graphite-series-by-tags 2017-11-15 11:12:11 +01:00
Sven Klemm
9e6a7dcb90 properly escape components of connection string (#9850) 2017-11-15 10:55:08 +01:00
Torkel Ödegaard
af9941e50a Merge branch 'graphite-seriesbytag' of https://github.com/alexanderzobnin/grafana into graphite-series-by-tags 2017-11-15 10:51:05 +01:00
Torkel Ödegaard
1a3170373a Merge branch 'alertList-notOK' 2017-11-15 10:48:20 +01:00
Torkel Ödegaard
ba8c02f594 refactor: changed string slicing to strings.TrimPrefix, #9862 2017-11-15 10:48:03 +01:00
Alexander Zobnin
08e2bbef83 dashboard history: clean up dashboard version history 2017-11-14 18:22:18 +03:00
Torkel Ödegaard
a534ac4948 build: fixed jshint error 2017-11-14 12:42:45 +01:00
Sven Klemm
108f582ec4 sync documentation, add remark about to_timestamp and redshift (#9841) 2017-11-14 11:33:55 +01:00
Torkel Ödegaard
b1a6c7814d Update CHANGELOG.md 2017-11-14 11:30:39 +01:00
Torkel Ödegaard
6a976a3f48 Merge branch 'master' of github.com:grafana/grafana 2017-11-14 11:27:57 +01:00
Torkel Ödegaard
012b72cdbf fix: Html escaping caused issue in InfluxDB query editor, could not pick greater than or less then operators, fixes #9871 2017-11-14 11:27:36 +01:00
bergquist
9fc7303ddf changelog: adds note about closing #8523 2017-11-14 11:14:27 +01:00
bergquist
0e67d5e327 Merge branch 'anthu-master' 2017-11-14 11:05:09 +01:00
bergquist
3bb704144d teams: removes print statement 2017-11-14 11:05:01 +01:00
Anton Huck
fd2451823b Add Microsoft Teams notifier 2017-11-14 11:05:01 +01:00
Daniel Lee
6d7eacfa81 docs: update building from source doc with node-gyp
Adds dependencies for node-gyp to the building from source
docs page. ref #9861
2017-11-13 23:42:05 +01:00
Torkel Ödegaard
81102ccee1 Update CHANGELOG.md 2017-11-13 16:41:02 +01:00
Alexander Zobnin
e7f3480803 heatmap: fix tooltip in "Time series bucket" mode, #9332 (#9867) 2017-11-13 15:20:12 +01:00
Marcus Efraimsson
ecbe7d06a6 fix: Table panel now renders annotations correctly. Fixes #9842 (#9868) 2017-11-13 15:18:39 +01:00
Daniel Lee
ac8b20a60c Merge branch 'windows_build_9790' 2017-11-13 14:20:18 +01:00
Daniel Lee
b51b681400 build: fixes build and jest tests on Windows
Fixes #9790
2017-11-13 13:48:48 +01:00
Torkel Ödegaard
9073587705 Update CHANGELOG.md 2017-11-13 13:11:30 +01:00
Mitsuhiro Tanda
52e1c4113b fix cloudwatch ec2_instance_attribute (#9718)
* fix cloudwatch ec2_instance_attribute

* add test

* minor fix
2017-11-13 13:07:46 +01:00
Torkel Ödegaard
685ee393af graph: the stack & legend sort sync was not working correctly, the z-index sorting that happened in after the legend sort order was applied and messed with the order even though the sort function returned zero for all entries, combined the sort function to one sort function, fixes #9789 (#9797) 2017-11-13 12:09:26 +01:00
Patrick O'Carroll
9ad186bcc9 not ok option to alert list, fixes: #9754 2017-11-13 10:30:11 +01:00
Carl Bergquist
c44f6e2ec2 Merge pull request #9854 from drenalin23/drenalin-add-networkelb-cloudwatch
Add AWS/NetworkELB to cloudwatch definitions
2017-11-13 07:50:45 +01:00
bergquist
ba18a5866c changelog: note about closing #9661 2017-11-13 07:47:14 +01:00
Carl Bergquist
c30947df61 Merge pull request #9855 from mtanda/cw_inspector
(cloudwatch) fix query inspector
2017-11-13 07:43:21 +01:00
Carl Bergquist
6a485f3016 Merge pull request #9856 from mtanda/cw_null_for_no_datapoint
(cloudwatch) return empty array for no datapoints
2017-11-13 07:41:08 +01:00
Mitsuhiro Tanda
6488ccd113 return empty array for no datapoints 2017-11-12 00:48:54 +09:00
Mitsuhiro Tanda
ae4bcdd54b fix query inspector for cloudwatch 2017-11-12 00:41:14 +09:00
Scott Nelson Windels
343143e95f Add AWS/NetworkELB to cloudwatch definitions 2017-11-10 15:13:09 -08:00
bergquist
5e11f1a2a1 changelog: note about closing #9784 2017-11-09 18:13:23 +01:00
Carl Bergquist
48d77ea2a8 Merge pull request #9785 from certusoft/mysql_performance
MySQL Performance when using GF_DATABASE_URL
2017-11-09 18:07:22 +01:00
Carl Bergquist
56fe1308ce Merge pull request #9826 from agnivade/hexencoding
Use hex.EncodeToString to encode to hex
2017-11-09 17:58:35 +01:00
bergquist
d4e8e22fda test: adds tests for password encodiing 2017-11-09 17:55:12 +01:00
Dan Cech
5b38c230db use SHOW RETENTIONS to test influxdb connection (#9824) 2017-11-08 20:33:15 +01:00
Agniva De Sarker
143b56b5ac Use hex.EncodeToString to encode to hex
Using the EncodeToString function from the encoding/hex package
is much faster than calling the fmt.Sprintf with %x

Benchmark results below with the following code

func BenchmarkHexPrint(b *testing.B) {
  data := []byte("hellothere")
  for n := 0; n < b.N; n++ {
    // _ = fmt.Sprintf("%x", data)
    _ = hex.EncodeToString(data)
  }
}

name        old time/op    new time/op    delta
HexPrint-4     188ns ± 1%      99ns ± 1%  -47.40%  (p=0.008 n=5+5)

name        old alloc/op   new alloc/op   delta
HexPrint-4     64.0B ± 0%     64.0B ± 0%     ~     (all equal)

name        old allocs/op  new allocs/op  delta
HexPrint-4      2.00 ± 0%      2.00 ± 0%     ~     (all equal)
2017-11-08 22:44:31 +05:30
Seuf
b3a53b8c56 Added missing documentation for auth.proxy (#9796) 2017-11-08 11:03:18 +01:00
Mitsuhiro Tanda
e46814ba05 fix date test (#9811) 2017-11-08 11:01:19 +01:00
Daniel Lee
799aaf720a docker: expose statsd endpoint for graphite block 2017-11-07 15:14:39 +01:00
Sven Klemm
f8698dc49b update lib/pq (#9788) 2017-11-06 19:51:49 +01:00
Furtchet
a51b1e8951 Update the config key to database_log_queries so it is more descriptive, as suggested in #9785. 2017-11-06 08:01:31 -06:00
Carl Bergquist
b65ea57f97 Merge pull request #9787 from nadezhdamosunova/patch-2
Update postgres.md
2017-11-06 07:59:44 +01:00
Alexander Zobnin
f5c5c4b88b graph: don't change original series name in histogram mode, #8886 (#9782) 2017-11-04 08:09:41 +01:00
Furtchet
5fdfa3ff7e MySQL Performance when using GF_DATABASE_URL
Set MaxIdleConn and MaxOpenConn when using the GF_DATABASE_URL configuration. Also added GF_DATABASE_DEBUG flag to print SQL statements and SQL execution times.
See #9784 for the details.
2017-11-03 14:05:32 -05:00
Nadezhda Mosunova
5b1e6513e6 Update postgres.md
'Annotations' is a plural noun, so it doesn't require adding ‑s to the end of the verb
2017-11-03 17:57:03 +03:00
Torkel Ödegaard
b8f9edaea3 Update CHANGELOG.md 2017-11-03 13:40:55 +01:00
Alexander Zobnin
a3bf38cc21 colorpicker: fix color string change #9769 (#9780) 2017-11-03 13:29:00 +01:00
Torkel Ödegaard
f18de7e6a0 Merge branch 'alertList-no-alerts' 2017-11-03 10:17:07 +01:00
Torkel Ödegaard
cd95f5bcc2 refactor: alert list panel fixes and no alerts message, rewrite of PR #9721 2017-11-03 10:16:25 +01:00
Torkel Ödegaard
72783785a8 Merge branch 'disable-timepicker' 2017-11-03 09:14:00 +01:00
Torkel Ödegaard
bf82d166bc feat: refactoring hide time picker PR #9756 2017-11-03 09:13:40 +01:00
Patrick O'Carroll
a433698ddf changed class name for no-alerts 2017-11-02 08:44:09 +01:00
Carl Bergquist
bf85735a36 Merge pull request #9765 from RatnadeepSimhadri/patch-1
chore(docs): update the search Query Example
2017-11-02 07:50:08 +01:00
Carl Bergquist
17492c091a Merge pull request #9752 from mtanda/cw_alias_fix
[bug fix] (cloudwatch) fix default alias format
2017-11-02 07:45:26 +01:00
Ratna Deep Simhadri
538a8cff1e chore(docs): update the search Query Example
- Updated the last  Search Dashboards Example , so that the Example Request and Response seem related
2017-11-01 23:04:51 -07:00
bergquist
6292d7c204 reduce docker-compose header version 2017-11-01 19:28:28 +01:00
Carl Bergquist
c783bdac39 Merge pull request #9753 from mtanda/cw_period
(cloudwatch) add period alias
2017-11-01 14:02:41 +01:00
bergquist
8b10fe1abc ignore docker-compose.yaml 2017-11-01 13:43:39 +01:00
bergquist
4dae217afc docs: update latest release to 4.6.1 2017-11-01 13:31:10 +01:00
bergquist
d5d42c046d packages: update published package version 2017-11-01 12:54:35 +01:00
Patrick O'Carroll
63c79f066a option to hide Time picker, fixes #2013 2017-11-01 12:26:45 +01:00
Torkel Ödegaard
894951c7d4 fix: panel view now wraps, no scrolling required, fixes #9746 2017-11-01 11:24:26 +01:00
bergquist
575f746baa changelog: set release date for 4.6.1 2017-11-01 11:03:10 +01:00
bergquist
d854abccad changelog: adds note about closing #9707 2017-11-01 11:00:47 +01:00
Torkel Ödegaard
f46b7560e8 Update CHANGELOG.md 2017-11-01 10:50:24 +01:00
Mitsuhiro Tanda
4a63d696ff fix default alias 2017-11-01 18:48:30 +09:00
Mitsuhiro Tanda
ebcb8be19a add period alias 2017-11-01 18:47:21 +09:00
Torkel Ödegaard
e19b4a9291 plugins: fix for loading external plugins behind auth proxy, fixes #9509 2017-11-01 10:45:20 +01:00
Torkel Ödegaard
c3bd07f9b4 testdata: added manual entry mode to test data 2017-11-01 09:59:24 +01:00
Patrick O'Carroll
5a26fc252e new design for no alerts in alert-list, fixes #9721 2017-11-01 09:44:51 +01:00
Torkel Ödegaard
fec37f22b8 fix: fixed compiler error from #9676 2017-11-01 08:08:16 +01:00
Patrick O'Carroll
c8f7361e3f converted ng_model_on_blur.js to ts, deletedkeyboard_manager.js (#9676) 2017-11-01 07:51:40 +01:00
Daniel Lee
624b75b58c docs: update testdata enable explanantion 2017-10-31 18:25:35 +01:00
Carl Bergquist
d4f40eac6f Merge pull request #9745 from cglewis/master
MAINTAINER is deprecated, now using LABEL
2017-10-31 18:24:34 +01:00
cglewis
f5d2ce2a72 MAINTAINER is deprecated, now using LABEL 2017-10-31 10:21:20 -07:00
Charlie Lewis
dbc0ff9739 Merge pull request #1 from grafana/master
sync
2017-10-31 10:19:28 -07:00
Torkel Ödegaard
ae367db377 Update ROADMAP.md 2017-10-31 16:07:45 +01:00
Carl Bergquist
8ed1d935df Merge pull request #9741 from akshaychhajed/docker-compose-v3
Transitioning fig to docker-compose v3
2017-10-31 15:23:59 +01:00
Ryan McKinley
a1c1704d1f Adding energy, area, and acceleration units (#9336)
* Adding more units

* move changes to kbn.ts

* remove accidental commits
2017-10-31 14:57:57 +01:00
Torkel Ödegaard
9d020ea1e2 Merge branch 'master' of github.com:grafana/grafana 2017-10-31 14:30:26 +01:00
Torkel Ödegaard
7f83460f42 tests: migrated tests for link_srv to jest, #9666 2017-10-31 14:30:06 +01:00
Torkel Ödegaard
9aa6a6b4c4 Merge branch 'linkSrv-js-to-ts' 2017-10-31 14:29:42 +01:00
Akshay Chhajed
38ec8ddefc Transitioning fig to docker-compose v3 2017-10-31 18:59:27 +05:30
Torkel Ödegaard
ec94dfa890 tests: migrated tests for link_srv to jest, #9666 2017-10-31 14:29:25 +01:00
Patrick O'Carroll
1206ce261c fix for dashboard tag link bug, fixes #9737 (#9739) 2017-10-31 14:29:10 +01:00
bergquist
ae5b3fd4b5 github: dont require bug/fr in title 2017-10-31 14:14:50 +01:00
bergquist
3c572aece6 changelog: adds note about closing #9713 2017-10-31 14:11:13 +01:00
Patrick O'Carroll
c3a9a04dad converted confirm_click.js to .ts (#9674)
* converted confirm_click.js to .ts

* deleted confirm_click.ts

* removed import of confirm_click
2017-10-31 13:58:38 +01:00
Torkel Ödegaard
afd4f37f39 Update codecov.yml 2017-10-31 13:58:01 +01:00
Torkel Ödegaard
7336a98bb1 Update CHANGELOG.md 2017-10-31 13:56:00 +01:00
Sven Klemm
a503c1d39c change default sslmode for postgres to verify-full (#9736) 2017-10-31 13:55:32 +01:00
Alexander Zobnin
948a5259a2 fix: color picker bug at series overrides page, #9715 (#9738) 2017-10-31 13:53:45 +01:00
Torkel Ödegaard
497993e2b2 Update ROADMAP.md 2017-10-31 13:04:10 +01:00
bergquist
1be476b5f5 tech: switch to golang 1.9.2 2017-10-31 12:36:52 +01:00
Sven Klemm
b6fafb13f5 always quote template variables for mysql when multi-value is allowed (#9712)
* always quote template variables for mysql when multi-value is allowed

* handle include all option similar to multi value

* declare type

* adjust tests to quoting change

* dont specify type but let it be inferred

* fix test for variable with includeAll
2017-10-31 12:23:50 +01:00
Sven Klemm
caa8b6100e always quote template variables for postgres when multi-value or include (#9714)
all is allowed
2017-10-31 12:23:21 +01:00
Torkel Ödegaard
ae11bf7c14 fix: dashboard links dropdown toggle did not update view, fixes #9732 2017-10-31 09:22:45 +01:00
Torkel Ödegaard
3ff2dc2850 Merge branch 'master' of github.com:grafana/grafana 2017-10-31 09:17:44 +01:00
bergquist
d23c77119e docs: adds prom grafana dashboard 2017-10-31 09:13:35 +01:00
Torkel Ödegaard
8838e43088 Merge branch 'master' of github.com:grafana/grafana 2017-10-31 09:01:10 +01:00
Alexander Zobnin
ac2e72f22a graphite: tag is required for values autocomplete 2017-10-31 10:20:01 +03:00
Carl Bergquist
7583b78c3a Merge pull request #9723 from boeboe/master
Correct help message of api_dataproxy_request_all_milliseconds
2017-10-30 13:08:32 +01:00
Bart Van Bos
1a8d05bbcb Correct help message of api_dataproxy_request_all_milliseconds 2017-10-30 12:50:57 +01:00
bergquist
e7b604f538 changelog: adds note about closing #9645 2017-10-30 11:17:30 +01:00
Carl Bergquist
1a3373e049 Merge pull request #9699 from it-teaching-abo-akademi/master
Alertlist: Inform when no alerts in current time range
2017-10-30 11:12:11 +01:00
bergquist
92d8b3f095 changelog: adds note about closing #9698 2017-10-30 11:09:48 +01:00
Carl Bergquist
d83f0fb266 Merge pull request #9698 from mtanda/text_ace_editor
[Feature Request] ace editor for text panel
2017-10-30 11:07:53 +01:00
Mitsuhiro Tanda
e9645045a0 ace editor for text panel 2017-10-30 11:05:09 +09:00
bergquist
e1765e360e tech: add missing include 2017-10-29 20:21:41 +01:00
Daniel Lee
e541e60bc3 sql: remove title from annotation help
Fixes #9710
2017-10-29 20:03:23 +01:00
bergquist
7dcfd800b3 changelog: adds note about closing #9681 2017-10-29 19:32:49 +01:00
Carl Bergquist
e5ec357625 Merge pull request #9697 from bergquist/fix_removed_threshols
save as should only delete threshold for panels with alerts
2017-10-28 23:48:31 +02:00
Torkel Ödegaard
d03b0d664b Merge branch 'master' of github.com:grafana/grafana 2017-10-28 13:28:30 +02:00
Torkel Ödegaard
3e3cef28ec fix: undefined is not an object evaluating this., #9538 2017-10-28 13:28:06 +02:00
pkarmaka
cdd17f4871 [Bug Fix] Opentsdb Alias issue (#9613) 2017-10-28 13:10:18 +02:00
Torkel Ödegaard
43d45f9fae fix: graphite annotation tooltip included undefined, fixes #9707 2017-10-28 12:59:32 +02:00
Tomas Strand
357d394c66 Alertlist: Inform when no alerts in current time range
Shows info that no alerts are found for the currently selected interval in Alertlist.
Fixes #9624
2017-10-27 17:20:07 +03:00
bergquist
728471eef4 save as should only delete threshold for panels with alerts
closes #9681
2017-10-27 15:41:53 +02:00
Alexander Zobnin
2374e91bfa graphite: tags and values autocomplete based on @DanCech PR to graphite-web 2017-10-27 13:15:54 +03:00
Daniel Lee
71d9126bb6 changelog: note for #9596 2017-10-27 11:28:04 +02:00
Sven Klemm
34da0711ab add __timeGroup macro for mysql (#9596)
* add __timeGroup macro for mysql

* put example __timeGroup query in frontend help

* do __timeGroup interval parsing in go similar to mysql

* ignore whitespace around interval
2017-10-27 11:26:25 +02:00
Daniel Lee
6aa0f35012 docs: fix link 2017-10-26 17:39:54 +02:00
Torkel Ödegaard
9d5e4bee56 Merge branch 'master' of github.com:grafana/grafana 2017-10-26 15:27:46 +02:00
Patrick O'Carroll
f097bce565 more link fixes 2017-10-26 14:47:07 +02:00
Patrick O'Carroll
e654f80e4b fixed link issues 2017-10-26 14:25:43 +02:00
Patrick O'Carroll
a228bb2308 renamed file 2017-10-26 13:34:41 +02:00
Patrick O'Carroll
0f2989e19b converted inspect_ctrl.js to ts (#9673) 2017-10-26 13:27:17 +02:00
Patrick O'Carroll
bb1097b7c9 converted dashboard_loaders.js to .ts (#9672)
* converted dashboard_loaders.js to .ts

* class name change
2017-10-26 13:26:03 +02:00
Patrick O'Carroll
2f4744ca71 declared any to info in declaration 2017-10-26 13:25:47 +02:00
Patrick O'Carroll
c84e3c00fe converted analytics.js to ts, minor code formatting fix to timer.ts (#9663) 2017-10-26 13:22:45 +02:00
Torkel Ödegaard
c78a9368f0 docs: updated download links 2017-10-26 13:17:51 +02:00
Daniel Lee
a7d7f0d9f8 docs: update alerting with new data sources 2017-10-26 12:32:37 +02:00
Daniel Lee
e33faac63b changelog: spelling 2017-10-26 12:15:59 +02:00
Torkel Ödegaard
01f16ece3e plugins: added backward compatible path for rxjs 2017-10-26 12:07:23 +02:00
Torkel Ödegaard
bf680acae5 ux: updated singlestat default colors 2017-10-26 11:57:48 +02:00
Torkel Ödegaard
74fcb2494a prometheus: fixed unsaved changes warning when changing time range due to step option on query model was changed in datasource.query code, fixes #9675 2017-10-26 11:46:33 +02:00
Torkel Ödegaard
77331e92b6 docs: updated changelog 2017-10-26 10:57:41 +02:00
Torkel Ödegaard
0c2aa91e61 fix: firefox can now create region annotations, fixes #9638 2017-10-26 10:56:10 +02:00
bergquist
b80b5e0317 changelog: adds note about closing #9639 2017-10-26 10:44:09 +02:00
bergquist
261a832460 set release date for 4.6.0 2017-10-26 10:41:06 +02:00
Patrick O'Carroll
2dd49e6e50 converted linkSrv.js to linkSrv.ts 2017-10-25 15:29:13 +02:00
Daniel Lee
80903c162e docs: update docker installation docs 2017-10-25 14:21:32 +02:00
Carl Bergquist
c91a1e994b Merge pull request #9594 from bergquist/datasources_optimistic_concurrency
datasources: change to optimistic concurrency
2017-10-25 12:44:36 +02:00
Patrick O'Carroll
aa3fc9f45f converted outline.js to outline.ts (#9658) 2017-10-25 12:32:33 +02:00
Patrick O'Carroll
4b5929d577 converted timer.js to timer.ts (#9656) 2017-10-25 12:32:19 +02:00
bergquist
d68bfaa8be datasource as cfg: typo 2017-10-25 12:21:06 +02:00
Torkel Ödegaard
17d95dc848 Create codecov.yml 2017-10-25 11:23:47 +02:00
bergquist
da6430ac01 datasource as cfg: explain why cmd.version can be higher 2017-10-25 09:39:27 +02:00
zhengkai
2848773ab4 #edit_grafana_organisation_apis_doc (#9651) 2017-10-25 08:15:51 +02:00
xjewer
bddebf4c82 add a phantomjs execution status to log if errors happens, e.g. OOM killer kills it (#9644)
fixes #9643
2017-10-25 08:14:14 +02:00
Carl Bergquist
89a070029f Merge pull request #9648 from jasonodonnell/master
Fix typo in template help tab
2017-10-24 16:54:05 +02:00
Jason O'Donnell
577478baff Fix typo in template help tab 2017-10-24 10:48:49 -04:00
Patrick O'Carroll
95250e4ea3 replace store.js with store.ts, test for store.ts (#9646) 2017-10-24 16:13:49 +02:00
Daniel Lee
676a113966 docs: update first page with data source guides 2017-10-24 15:23:19 +02:00
Daniel Lee
fc76530577 docs: document annotations for postgres/mysql 2017-10-24 15:13:04 +02:00
Daniel Lee
f48703502d docs: update for template variables
ref #9030
2017-10-24 14:44:34 +02:00
Daniel Lee
201e93b7f9 changelog: spelling 2017-10-24 14:41:17 +02:00
Alin Sinpalean
d99f4f95c0 Allow for multiple auto interval template variables (#9216)
* Allow for multiple auto interval template variables without them overwriting each other's value.

* Add test for multiple auto interval template variables.

* Correctly handle old links with .
2017-10-24 14:39:10 +02:00
bergquist
834446260f changelog: adds note about closing #9645 2017-10-24 14:19:53 +02:00
bergquist
dea631bedc tech: remove rabbitmq event publisher
closes #9645
2017-10-24 14:10:23 +02:00
Daniel Lee
8334b24b42 changelog: note for #9030 2017-10-24 14:09:33 +02:00
Sven Klemm
56e53b8343 dont quote variables for mysql and postgres datasource (#9611) 2017-10-24 14:05:41 +02:00
bergquist
2f35759346 asscoiate comment with name 2017-10-24 13:40:38 +02:00
Carl Bergquist
5701b73ab2 Merge pull request #9642 from nadezhdamosunova/patch-1
Update development.md
2017-10-24 13:24:16 +02:00
Nadezhda Mosunova
8070a7ca35 Update development.md 2017-10-24 14:18:47 +03:00
bergquist
5a53051f72 changelog: adds note about closing #9640 2017-10-24 11:08:34 +02:00
bergquist
9b6535cca1 alerting: only editors can pause rules
closes #9640
2017-10-24 11:01:08 +02:00
bergquist
beb203209b prom: adds pre built grafana dashboard 2017-10-24 11:01:08 +02:00
bergquist
5f0a86be4c changelog: adds note about closing #9636 2017-10-24 11:01:08 +02:00
Torkel Ödegaard
7861c27557 fix: another fix for playlist view state, #9639 2017-10-24 10:58:14 +02:00
Patrick O'Carroll
a8285d0eb4 shore: migrating config/settings.js to typescript 2017-10-24 10:45:46 +02:00
Patrick O'Carroll
8afb84a5e5 fix: fixed playlist controls and view state, fixes #9639 2017-10-24 10:43:48 +02:00
Carl Bergquist
e91b00c355 Merge pull request #9637 from utkarshcmu/singlestat_fix
Fixed #9636
2017-10-24 10:19:05 +02:00
utkarshcmu
a4a10f2b03 Fixed #9636 2017-10-24 00:49:03 -07:00
Torkel Ödegaard
4d72323623 shore: removed unused old system conf file 2017-10-23 20:31:23 +02:00
Alexander Zobnin
396eadc5ac Use d3 from node_modules (#9625)
* tech: annotations refactor, add tests for regions processing

* tech: move d3 to npm and webpack, #9480

* tech: move color scale functions to separate module

* fix opacity legend rendering
2017-10-23 20:30:43 +02:00
stuart nelson
93ac6680ab update log15 (#9622)
* Update log15 and go-isatty

* Update usage in pkg log
2017-10-23 19:57:19 +02:00
Daniel Lee
9e697a1f6e docs: update whats-new-in 2017-10-23 16:40:57 +02:00
Daniel Lee
cda359e844 changelog: small text change 2017-10-23 16:32:23 +02:00
Daniel Lee
884e85fc81 changelog: v4.6.0-beta3 released 2017-10-23 16:29:13 +02:00
Alexander Zobnin
2b78c47a5a tech: annotations refactor, add tests for regions processing (#9618)
* tech: annotations refactor, add tests for regions processing

* tech: remove unused imports from annotations tests
2017-10-23 15:46:36 +02:00
Daniel Lee
c3b90f2028 Move #9527 to 4.6.0-beta3 2017-10-23 15:31:21 +02:00
Daniel Lee
c22097c95e build: disable jest on precommit hook -windows fix
Temporary fix until we get jest tests working on Windows
2017-10-23 13:03:06 +02:00
Daniel Lee
0ba4c161c3 build: fix all npm run commands for Windows
Adds node before each command otherwise Windows does not understand
commands starting with ./
2017-10-23 13:03:06 +02:00
Daniel Lee
7863a0417c plugins: fixes path issue on Windows
When loading a plugin and setting the path, an extra backslash sneaks
when running on Windows. Fixes #9597
2017-10-23 13:03:06 +02:00
Torkel Ödegaard
4fdb351c32 build: tryingt of fix windows build issue 2017-10-23 12:33:30 +02:00
bergquist
d25d689efa tests: removes commented tests 2017-10-23 11:32:34 +02:00
bergquist
fcd5d581a8 graph: invert order when sorting by legend
sort order have now been inverted. Biggest values should
be at bottom of the graph.

ref #9538
2017-10-23 11:32:09 +02:00
Torkel Ödegaard
b986f744e4 fix: escape series name in graph legend, added aliasEscaped to time series model to reuse escape, fixes #9615 2017-10-23 10:15:58 +02:00
Torkel Ödegaard
9cce5217d0 build: fixed gofmt issue and addd mock response feature 2017-10-23 09:57:28 +02:00
bergquist
139f077453 prometheus: enable gzip for /metrics endpoint
closes #9464
2017-10-23 09:35:46 +02:00
Torkel Ödegaard
1fd2270a93 build: split circle test shell scripts 2017-10-23 09:06:50 +02:00
bergquist
89923bf77a datasources: change to optimisic concurrency
prerequisite for #9504
2017-10-23 07:55:16 +02:00
Torkel Ödegaard
48f384dcf1 build: reduced webpack log output and remove race flag from go tests 2017-10-22 20:16:32 +02:00
Torkel Ödegaard
b6184a71bd build: set max workers to 2 for jest 2017-10-22 19:22:06 +02:00
Torkel Ödegaard
76b9b792b4 build: log heap usage 2017-10-22 19:19:29 +02:00
Torkel Ödegaard
4632b8daa5 build: another build fix 2017-10-22 18:10:22 +02:00
Torkel Ödegaard
7a277c69ac tests: migrated two more tests to jest 2017-10-22 17:36:50 +02:00
Torkel Ödegaard
c6feb903b1 build: fixed build failure 2017-10-22 17:31:10 +02:00
Torkel Ödegaard
2de439c5a1 build: reworking pre commit hook 2017-10-22 15:19:06 +02:00
Torkel Ödegaard
cde87d9adc build: added precommit 2017-10-22 15:11:37 +02:00
Torkel Ödegaard
34edea4ac7 fix: fixed tslint validation error 2017-10-22 14:56:20 +02:00
Torkel Ödegaard
adb9d92082 test: added first react snapshot test 2017-10-22 12:48:20 +02:00
Torkel Ödegaard
a06ccaa428 docs: another docs fix 2017-10-22 12:00:35 +02:00
Torkel Ödegaard
974d38583d docs: fix docs redirect for older datasources index page, fixes #9609 2017-10-22 11:53:30 +02:00
Torkel Ödegaard
4aa227dd84 [Tech]: Start migrating to Jest for tests (#9610)
* tech: investigating karma + jest mix

* tech: migrating tests to jest

* tech: moved anoter test file to jest

* test: migrated two more test files to jest

* test: updated readme and made test fail to verify that it causes CI build failure

* tech: added code coverage for jest tests

* tech: testing codecov coverage

* tech: migrated more tests

* tech: migrated template srv to typescript and the tests to jest

* tech: minor build fix

* tech: build fixes

* build: another attempt at fixing go test with coverage
2017-10-22 07:03:26 +02:00
Carl Bergquist
c4365e225c Merge pull request #9605 from jasonodonnell/master
Fix typos in init.d comment
2017-10-20 20:12:51 +02:00
Jason O'Donnell
b51476f18a Fix typo in init.d script 2017-10-20 13:31:52 -04:00
Alexander Zobnin
6114f63d7c graphite: auto detect version 2017-10-20 16:26:00 +03:00
Alexander Zobnin
89aea278a9 graphite: improved version comparison 2017-10-20 15:50:44 +03:00
Alexander Zobnin
c22a192bb8 graphite: split tags and functions into 2 rows when seriesByTag used 2017-10-20 12:32:20 +03:00
Alexander Zobnin
968ce15e7f graphite: add tags to dropdown and switch to tag editor if selected 2017-10-20 12:07:31 +03:00
Daniel Lee
90ef877e6e plugins: expose dashboard impression store 2017-10-20 10:38:52 +02:00
Carl Bergquist
1d7a0db54b Sort series in the same order as legend in graph panel (#9563)
* graph: sort series in the same order as legend

closes #9538

* style: use function arrows

* graph: remove sort by legend option

sort series based on legend by default is sort order
is set and stack is enabled

* graph: remove useless sort

* graph: make code simpler
2017-10-19 13:04:02 +02:00
Torkel Ödegaard
d58a560fda Update CHANGELOG.md 2017-10-19 12:55:52 +02:00
Torkel Ödegaard
1e61eae9f4 fix: fixed save to file button in export modal, fixes #9586 2017-10-19 12:52:26 +02:00
Carl Bergquist
e8141b48d2 Merge pull request #9555 from mtanda/prometheus_46_improve_minor_fix
(prometheus) minor fix of auto complete
2017-10-19 10:42:34 +02:00
bergquist
b3a8d93dca mysql: add usage stats for mysql 2017-10-19 10:30:54 +02:00
Daniel Lee
6bb4abc0ac note for #9527 2017-10-18 18:21:22 +02:00
Sven Klemm
b2d880c6de modify $__timeGroup macro so it can be used in select clause (#9527)
* modify $__timeGroup macro so it can be used in select clause

* fix $__interval_ms for postgres datasource

* use $__timeGroup macro in documentation

* fix annotation template query
remove title since its no longer used and add tags instead

* change __timeFilter macro to work on postgresql < 8.1 and redshift
2017-10-18 18:10:01 +02:00
Torkel Ödegaard
6c01125416 Update CHANGELOG.md 2017-10-18 15:22:34 +02:00
Alexander Zobnin
92c67e8c83 Fix heatmap Y axis rendering (#9580)
* heatmap: fix Y axis rendering, #9576

* heatmap: fix color legend rendering
2017-10-18 15:19:20 +02:00
bergquist
c2c5f529f3 prometheus: add builtin template variable as range vectors
add $__interval and $__interval_ms as range vectors to
prometheus editor
2017-10-18 14:03:23 +02:00
Daniel Lee
9ae3938136 Note for #5457 2017-10-18 13:43:51 +02:00
Carl Bergquist
e8da084baf Merge pull request #9561 from mtanda/prometheus_46_fix_range
(prometheus) fix to show vector range popup
2017-10-18 13:39:57 +02:00
Torkel Ödegaard
8d68bd6bb9 fix: fixed prometheus step issue that caused browser crash, fixes #9575 2017-10-18 13:28:18 +02:00
bergquist
1797e2221a changelog: adds note about closing #9551 2017-10-18 12:13:54 +02:00
Carl Bergquist
43f039859a Merge pull request #9573 from cjchand/master
When Messasge field is set for an alert, map it to the output field i…
2017-10-18 12:10:42 +02:00
Torkel Ödegaard
039fc2964a fix: getting started panel and mark adding data source as done, fixes #9568 2017-10-18 12:02:57 +02:00
Daniel Lee
7cbb4020e9 pluginloader: esModule true for systemjs config
Supports importing a module's contents with the
'* as module' syntax. The latest version of SystemJS turns
it off per default which broke several plugins.
2017-10-18 11:16:18 +02:00
Alexander Zobnin
74e90d01ec Fixes for annotations API (#9577)
* annotations: throw error if no text specified and set default time to Now() if empty, #9571

* annotations: fix saving graphite event with empty string tags

* docs: add /api/annotations/graphite endpoint docs, #9571
2017-10-18 10:13:02 +02:00
Chris Chandler
204fe007b7 When Messasge field is set for an alert, map it to the output field in a Sensu check result. If Message is empty, send "Grafana Metric Condition Met" 2017-10-17 16:22:56 -05:00
Mitsuhiro Tanda
8a43d4e25c fix vector range 2017-10-17 21:27:04 +09:00
Carl Bergquist
5910453e8a Merge pull request #9560 from mtanda/prometheus_46_metric_name_matching
(prometheus) allow ":" character for metric name
2017-10-17 13:34:25 +02:00
Mitsuhiro Tanda
ebebbddb2d allow ":" character for metric name 2017-10-17 19:44:59 +09:00
Torkel Ödegaard
eda3cffe22 build: added imports of rxjs utility functions 2017-10-17 12:14:54 +02:00
Carl Bergquist
4cc9f4f075 Merge pull request #9558 from mtanda/cw_fix_expand_46
(cloudwatch) fix template variable expanding
2017-10-17 11:15:44 +02:00
Mitsuhiro Tanda
0f87279ab8 fix template variable expanding 2017-10-17 18:11:21 +09:00
Torkel Ödegaard
233062229a Update CHANGELOG.md 2017-10-17 11:08:43 +02:00
krise3k
45a572ebd8 annotations: quote reserved fields (#9550) 2017-10-17 11:03:19 +02:00
Carl Bergquist
c144dc86f2 Update CHANGELOG.md 2017-10-17 10:59:23 +02:00
Carl Bergquist
7923864935 Update CHANGELOG.md 2017-10-17 10:57:33 +02:00
Carl Bergquist
702c9f7cc5 Update CHANGELOG.md 2017-10-17 10:53:13 +02:00
Torkel Ödegaard
574afe8568 fix: fixed color pickers that were broken in minified builds, fixes #9549 2017-10-17 10:51:42 +02:00
Torkel Ödegaard
b86ae3f0e8 ux: align alert and btn colors 2017-10-17 09:35:14 +02:00
Torkel Ödegaard
8ff7e1d05d docs: doc updates 2017-10-17 09:35:14 +02:00
Carl Bergquist
24a0eb909c Merge pull request #9553 from ryantxu/typo
Fix typo in PLUGIN_DEV.md
2017-10-17 07:05:06 +02:00
Mitsuhiro Tanda
c4c64365f1 remove duplicative prometheus function 2017-10-17 12:24:29 +09:00
Mitsuhiro Tanda
c51f84a12e remove label match operator from keyword.operator 2017-10-17 12:19:56 +09:00
Mitsuhiro Tanda
8580b78ce6 remove label match operator from keyword.operator 2017-10-17 12:19:42 +09:00
Mitsuhiro Tanda
cc1e69ace3 remove extra state push 2017-10-17 11:50:33 +09:00
ryan
85e3ed623a fix typo 2017-10-17 01:10:40 +02:00
Carl Bergquist
11e3876a16 Update CHANGELOG.md 2017-10-16 21:27:30 +02:00
Daniel Lee
14241404ff textpanel: fixes #9491 2017-10-16 13:39:16 +02:00
Alexander Zobnin
199d0d152e graphite: datasource refactor 2017-10-16 14:23:29 +03:00
Daniel Lee
f3ec139eab csv: fix import for saveAs shim
After switch from systemjs to webpack, needed to import the
file-saver saveAs shim for it work. Fixes #9525
2017-10-16 13:20:37 +02:00
bergquist
9de4d0fa6b alert_tab: clear test result when testing rules
closes #9539
2017-10-16 10:31:09 +02:00
Daniel Lee
eb4e71e2c6 plugins: expose more util and flot dependencies
Also, fix for coremodules export. Have to add the __esModule
attribute to fool SystemJS.
2017-10-16 09:06:34 +02:00
Carl Bergquist
c215f0b5ec Merge pull request #9528 from ericdahl/tsdb_cloudwatch_req_per_target
CloudWatch: Add ALB RequestCountPerTarget metric
2017-10-16 08:41:31 +02:00
Mitsuhiro Tanda
7edc95cc35 (cloudwatch) fix cloudwatch query error over 24h (#9536)
fix cloudwatch query error over 24h
2017-10-16 08:31:05 +02:00
Carl Bergquist
2d840f12e0 Merge pull request #9534 from mtanda/cw_improve_err_msg
(cloudwatch) show error message when cloudwatch datasource can't add
2017-10-16 08:08:35 +02:00
Joaquin Casares
fa68eb9be6 Add autofocus tag for username field on login.html (#9526) 2017-10-16 07:25:30 +02:00
Mitsuhiro Tanda
40b11654fd show error message when cloudwatch datasource can't add 2017-10-16 13:05:53 +09:00
Eric Dahl
888d608090 CloudWatch: Add ALB RequestCountPerTarget metric
This commit adds the new ALB metric `RequestCountPerTarget` which was
released in July 2017.
2017-10-14 21:50:23 -07:00
bergquist
91f60bb6c4 set nightly version to v4.7.0-pre1 2017-10-13 17:12:40 +02:00
bergquist
86b2048d3b changelog: adds release date for v4.6.0-beta1 2017-10-13 17:12:40 +02:00
Carl Bergquist
a316b5fb80 Merge pull request #9519 from Foxboron/patch-1
Missing dot in aws credentials path
2017-10-13 14:22:21 +02:00
Morten Linderud
4a22d22857 Missing dot in aws credentials path
As far as i know the path hasn't changed, but the dot is missing in one place.
2017-10-13 14:08:37 +02:00
bergquist
7069fed31d update packagecloud script for 4.6.0-beta1 2017-10-13 13:11:18 +02:00
bergquist
9d916fdad6 changelog: adds note about closing #9516 2017-10-13 10:29:11 +02:00
bergquist
ec14fa58b5 alerting: add count_non_null reducer
makes it possible to have a second condition requering
at least X points of data.
2017-10-13 09:47:10 +02:00
Alexander Zobnin
a834812e13 Merge branch 'master' into graphite-seriesbytag 2017-10-13 10:26:20 +03:00
Carl Bergquist
8e4a7060ca Merge pull request #9515 from imweijh/patch-1
Update rpm.md
2017-10-13 08:54:19 +02:00
weijh
d0ace0bc13 Update rpm.md
for error "The GPG keys listed for the "grafana" repository are already installed but they are not correct for this package."
2017-10-13 12:00:22 +08:00
Torkel Ödegaard
2992fb4b0e fix: can now remove annotation tags without popover closing 2017-10-12 16:24:32 +02:00
Alexander Zobnin
3b14bee559 tech: add backward compatibility for <spectrum-picker> directive (#9510) 2017-10-12 15:31:59 +02:00
Torkel Ödegaard
e7b718ed7a fix: fixed links on new 404 page, fixes #9493 2017-10-12 15:31:41 +02:00
bergquist
b5727949fd logging: dont use cli logger in http_server 2017-10-12 15:29:01 +02:00
bergquist
88f55b01d8 oauth: raise error if session state is missing
ref #9476
2017-10-12 15:25:27 +02:00
bergquist
0848ba2e9c oauth: provide more logging for failed oauth requests 2017-10-12 15:25:27 +02:00
bergquist
23c610015f prepare for 4.6.0-beta1 release 2017-10-12 15:25:27 +02:00
Torkel Ödegaard
2564dda2d0 docs: updated whats new article 2017-10-12 14:53:29 +02:00
Patrick O'Carroll
1334a9e138 docs: initial draft release v46 2017-10-12 13:55:27 +02:00
Daniel Lee
4bdc3a5829 graph: fix y-axis decimalTick check. Fixes #9405 2017-10-12 12:45:20 +02:00
Torkel Ödegaard
a7068d835a Merge branch 'master' of github.com:grafana/grafana 2017-10-12 12:40:43 +02:00
Torkel Ödegaard
c879cc7615 minor docs update 2017-10-12 12:40:37 +02:00
Torkel Ödegaard
a90052dac3 docs: annotation docs update 2017-10-12 12:19:25 +02:00
bergquist
7548734510 changelog: adds note about closing #7104 2017-10-12 12:13:00 +02:00
bergquist
a45bd400f1 changelog: adds note about closing #9373 2017-10-12 12:11:51 +02:00
Carl Bergquist
b63725033e Merge pull request #9450 from utkarshcmu/kafka_alert
Kafka alerting
2017-10-12 12:11:13 +02:00
Carl Bergquist
ee5f69beb4 metrics: disable gzip for /metrics endpoint (#9468)
Prometheus client lib support gzip by itself. Which caused the
response to be double gzipped sometimes. We should use the Grafana
middle ware instead.

closes #9464
2017-10-12 12:02:36 +02:00
Patrick O'Carroll
5895f9dc89 Annotation docs (#9506)
* added images to annotation docs

* added gifs and png to annotations, minor code formatting fix in alertlist
2017-10-12 11:37:42 +02:00
Torkel Ödegaard
98f00f7e1f Update CHANGELOG.md 2017-10-12 11:35:47 +02:00
Daniel Lee
55d510a319 Update PLUGIN_DEV.md 2017-10-12 11:32:33 +02:00
Daniel Lee
b38016e97f Update PLUGIN_DEV.md 2017-10-12 11:31:04 +02:00
Torkel Ödegaard
64d75db514 Update README.md 2017-10-12 11:30:01 +02:00
Carl Bergquist
9d53653647 Merge pull request #9378 from mattbostock/verify_tls
Bugfix: Always verify TLS unless explicitly told otherwise
2017-10-12 11:11:02 +02:00
Patrick O'Carroll
45704d4570 Fixed link issue in CHANGELOG 2017-10-12 10:56:24 +02:00
Torkel Ödegaard
b81e01d1ec Create PLUGIN_DEV.md
initial draft of plugin dev document
2017-10-12 10:53:42 +02:00
bergquist
1f4df2b694 changelog: adds note about closing #9371,#5334,#8812 2017-10-12 10:44:40 +02:00
bergquist
4ca3cc90dd Merge branch 'mattbostock-verify_datasource_tls' 2017-10-12 10:39:07 +02:00
bergquist
79afd638bb ds_edit: placeholder should only be cert header 2017-10-12 10:38:45 +02:00
Patrick O'Carroll
b76de790f9 fixed minor styling issus (#9497)
* fixed minor styling issus

* fixed code formatting
2017-10-12 10:33:42 +02:00
Torkel Ödegaard
81a4df1372 fix: alert api limit param did not work and caused SQL syntax error, fixes #9492 2017-10-12 10:22:53 +02:00
bergquist
c0d257a0ee Merge branch 'verify_datasource_tls' of https://github.com/mattbostock/grafana into mattbostock-verify_datasource_tls 2017-10-12 10:15:32 +02:00
Alexander Zobnin
04ea7efac9 annotations: add endpoint for writing graphite-like events (#9495)
* annotations: add endpoint for writing graphite-like events

* annotations: fix new line handling in tooltip

* annotations: support tags in prior to Graphite 0.10.0 format
2017-10-12 10:12:15 +02:00
Carl Bergquist
19a57f7cb1 Merge pull request #9505 from PaulMest/you-to-your-typo
You to your typo
2017-10-12 08:49:58 +02:00
Paul Mestemaker
2f73208ca8 Update unsaved_changes_modal.ts 2017-10-11 15:57:33 -07:00
Paul Mestemaker
e1d61c9678 Merge pull request #1 from grafana/master
Merging upstream
2017-10-11 15:55:05 -07:00
Omkar Wagh
209f2debe6 If retention policy is set for influxDB, preprend that to the measurement name
for exploration queries.
2017-10-11 13:22:48 -04:00
Torkel Ödegaard
3471e262a5 docker: updated our graphite docker container 2017-10-11 16:40:15 +02:00
Torkel Ödegaard
4c8310c2bf Merge branch 'graphite-seriesbytag' of https://github.com/alexanderzobnin/grafana into alexanderzobnin-graphite-seriesbytag 2017-10-11 11:35:07 +02:00
Torkel Ödegaard
2bc57d856c fix: set lastSeenAt date when creating users to then years in past insteasd of empty date, fixes #9260 2017-10-11 11:29:17 +02:00
Torkel Ödegaard
71a839deaf ux: minor ux fix 2017-10-11 11:17:54 +02:00
Matt Bostock
4f3856adfb Retain old name for TLS client auth
I renamed `tlsAuth` to `tlsClientAuth` to better describe the fact that
this variable is used to enable TLS client authentication (as opposed to
server authentication) in c04d95f35.

However, changing the name breaks backwards compatibility for existing
installations using this feature and Grafana does not have a
standardised way of migrating changes in the schema:
https://github.com/grafana/grafana/pull/9377#issuecomment-333063543

For reasons of expediency given the severity of the bug (not verifying
TLS), keep the old name.
2017-10-11 08:18:04 +01:00
Matt Bostock
f6aa0e41e5 Return error if datasource TLS CA not parsed 2017-10-11 08:18:03 +01:00
Matt Bostock
e23c678df9 Datasource settings: Make HTTP all caps
It's an acronym, so it should be all caps.
2017-10-11 08:18:03 +01:00
Matt Bostock
5d312be419 Datasource HTTP settings: Add TLS skip verify
In c04d95f35 I changed the default for datasource HTTP requests so that
TLS is always verified.

This commit adds a checkbox to allow an admin to explicitly skip TLS
verification, for testing purposes.
2017-10-11 08:18:03 +01:00
Matt Bostock
ef52d956bf Make URL capitalisation consistent in UI
URL is an acronym, it should be all caps.
2017-10-11 08:18:03 +01:00
Matt Bostock
a286ffa5f2 Alias macron package in app_routes.go
...to make this file compatible with goimports:
https://godoc.org/golang.org/x/tools/cmd/goimports
2017-10-11 08:18:03 +01:00
Matt Bostock
43169e4302 Verify datasource TLS and split client auth and CA 2017-10-11 08:18:03 +01:00
Matt Bostock
4719a8c8dd Tidy spacing in datasource TLS settings 2017-10-11 08:18:03 +01:00
Matt Bostock
592c46c8b5 Tests: Clarify what InsecureSkipVerify does 2017-10-11 08:18:03 +01:00
Daniel Lee
7713009caa postgres: add missing ngInject decorator 2017-10-11 09:15:55 +02:00
Torkel Ödegaard
05fbed4a36 docs: initial docs for new annotation features, #9483 2017-10-10 16:02:56 +02:00
Daniel Lee
679b169291 Adds note for #9209 to changelog 2017-10-10 15:23:22 +02:00
Daniel Lee
d1c9760fa8 Postgres Data Source (#9475)
* add postgresql datasource

* add rest of files for postgres datasource

* fix timeseries query, remove unused code

* consistent naming, refactoring

* s/mysql/postgres/

* s/mysql/postgres/

* couple more tests

* tests for more datatypes

* fix macros for postgres

* add __timeSec macro

* add frontend for postgres datasource

* adjust documentation

* fix formatting

* add proper plugin description

* merge editor changes from mysql

* port changes from mysql datasource

* set proper defaultQuery for postgres

* add time_sec to timeseries query
accept int for value for timeseries query

* revert allowing time_sec and handle int or float values as unix
timestamp for "time" column

* fix tslint error

* handle decimal values in timeseries query

* allow setting sslmode for postgres datasource

* use type switch for handling data types

* fix value for timeseries query

* refactor timeseries queries to make them more flexible

* remove debug statement from inner loop in type conversion

* use plain for loop in getTypedRowData

* fix timeseries queries

* adjust postgres datasource to tsdb refactoring

* adjust postgres datasource to frontend changes

* update lib/pq to latest version

* move type conversion to getTypedRowData

* handle address types cidr, inet and macaddr

* adjust response parser and docs for annotations

* convert unknown types to string

* add documentation for postgres datasource

* add another example query with metric column

* set more helpful default query

* update help text in query editor

* handle NULL in value column of timeseries query

* add __timeGroup macro

* add test for __timeGroup macro

* document __timeGroup and set proper default query for annotations

* fix typos in docs

* add postgres to list of datasources

* add postgres to builtInPlugins

* mysql: refactoring as prep for merging postgres

Refactors out the initialization of the xorm engine and the query logic
for an sql data source.

* mysql: rename refactoring + test update

* postgres:refactor to use SqlEngine(same as mysql)

Refactored to use a common base class with the MySql data source.

Other changes from the original PR:
- Changed time column to be time_sec to allow other time units in the
future and to be the same as MySQL
- Changed integration test to test the main Query method rather than
the private transformToTable method
- Changed the __timeSec macro name to __timeEpoch
- Renamed PostgresExecutor to PostgresQueryEndpoint

Fixes #9209 (the original PR)

* postgres: encrypt password on config page

With some other cosmetic changes to the config page:
- placeholder texts
- reset button for the password after it has been encrypted.
- default value for the sslmode field.

* postgres: change back col name to time from time_sec

* postgres mysql: remove annotation title

Title has been removed from annotations

* postgres: fix images for docs page

* postgres mysql: fix specs
2017-10-10 15:19:14 +02:00
Torkel Ödegaard
630e6f5da6 tech: expose more to plugins, closes #9456 2017-10-10 15:07:09 +02:00
Alexander Zobnin
3184942aeb Fix NaN handling (#9469)
* graph: fix NaN formatting, #9012

* singlestat: prevent null value coloring, #9012, #8404

* timeseries: add tests for #9012 and move test file to TS
2017-10-10 14:25:57 +02:00
Alexander Zobnin
473c47cd1c snapshots: improve snapshot listing performance, #9314 (#9477)
exclude dashboard field from snapshot list search
2017-10-10 14:25:19 +02:00
Daniel Lee
002b4d3403 mysql: fix interpolation for numbers in temp vars 2017-10-10 11:59:44 +02:00
utkarshcmu
8aff343ce3 Added docs for Kafka alerting 2017-10-10 02:11:02 -07:00
utkarshcmu
da47dc8947 Fixed failing go tests 2017-10-09 18:56:05 -07:00
utkarshcmu
a562dc7c2b gofmt fixes 2017-10-09 18:27:04 -07:00
utkarshcmu
138bee99ef Added tests 2017-10-09 18:27:04 -07:00
utkarshcmu
d60339a9b1 Kafka REST Proxy works with Grafana 2017-10-09 18:27:04 -07:00
Patrick O'Carroll
68829a821e added insrtuctions for oauth2 okta bitbucket (#9471) 2017-10-09 15:41:14 +02:00
Alexander Zobnin
a174ad4c9a Unified Color picker fixes (#9466)
* colorpicker: fix opening error when color is undefined

* colorpicker: replace spectrum picker by new color picker

* colorpicker: remove old spectrum picker directive

* annotations: use tinycolor for working with region colors
2017-10-09 13:54:14 +02:00
Axel
6ce990af57 Show min interval query option for mixed datasource (#9467) 2017-10-09 12:56:34 +02:00
Daniel Lee
8423260f58 gzip: plugin readme content set explicitly
Macaron's gzip middleware tries to automatically figure out the content
type for a file when gzipped and seems to mostly fail with plugin
readmes. This change sets the content type to plain text.

Fixes #9344. Ref #5952.
2017-10-09 10:17:45 +02:00
bergquist
5e4bbfb08e ignore pattern for vendored libs 2017-10-09 10:11:36 +02:00
Torkel Ödegaard
4814b05746 Merge branch 'master' of github.com:grafana/grafana 2017-10-09 07:24:28 +02:00
Torkel Ödegaard
ec802dbc1f fix: escape metric segment auto complete, fixes #9423 2017-10-09 07:24:09 +02:00
Anton Hvornum
08dc08550c Corrected a PostgreSQL SELECT statement. (#9460)
At least in my Postgresql 9.6.5, the old syntax of capitalized queries doesn't work (Linux).<br>
Running with UTF-8 as standard encoding and the ` notations didn't work either, so removed those.
2017-10-08 20:37:16 +02:00
Torkel Ödegaard
9e61cacd16 tests: found the unhandled promise issue in the dash import tests 2017-10-08 15:56:42 +02:00
Torkel Ödegaard
b228c23dbe testing: fixing tests 2017-10-07 22:05:31 +02:00
Torkel Ödegaard
3519d8d69b annotations: minor change to default/edit annotation color 2017-10-07 12:23:20 +02:00
Torkel Ödegaard
25aa9df270 Create annotations (#8197)
* annotations: add 25px space for events section

* annotations: restored create annotation action

* annotations: able to use fa icons as event markers

* annotations: initial emoji support from twemoji lib

* annotations: adjust fa icon position

* annotations: initial emoji picker

* annotation: include user info into annotation requests

* annotation: add icon info

* annotation: display user info in tooltip

* annotation: fix region saving

* annotation: initial region markers

* annotation: fix region clearing (add flot-temp-elem class)

* annotation: adjust styles a bit

* annotations: minor fixes

* annoations: removed userId look in loop, need a sql join or a user cache for this

* annotation: fix invisible events

* lib: changed twitter emoij lib to be npm dependency

* annotation: add icon picker to Add Annotation dialog

* annotation: save icon to annotation table

* annotation: able to set custom icon for annotation added by user

* annotations: fix emoji after library upgrade (switch to 72px)

* emoji: temporary remove bad code points

* annotations: improve icon picker

* annotations: icon show icon picker at the top

* annotations: use svg for emoji

* annotations: fix region drawing when add annotation editor opened

* annotations: use flot lib for drawing region fill

* annotations: move regions building into event_manager

* annotations: don't draw additional space if no events are got

* annotations: deduplicate events

* annotations: properly render cut regions

* annotations: fix cut region building

* annotations: refactor

* annotations: adjust event section size

* add-annotations: fix undefined default icon

* create-annotations:  edit event (frontend part)

* fixed bug causes error when hover event marker

* create-annotations:  update event (backend)

* ignore grafana-server debug binary in git (created VS Code)

* create-annotations: use PUT request for updating annotation.

* create-annotations: fixed time format when editing existing event

* create-annotations: support for region update

* create-annotations: fix bug with limit and event type

* create-annotations: delete annotation

* create-annotations: show only selected icon in edit mode

* create-annotations: show event editor only for users with at least Editor role

* create-annotations: handle double-sized emoji codepoints

* create-annotations: refactor

use CP_SEPARATOR from emojiDef

* create-annotations: update emoji list, add categories.

* create-annotations: copy SVG emoji into public/vendor/npm and use it as a base path

* create-annotations: initial tabs for emoji picker

* emoji-picker: adjust styles

* emoji-picker: minor refactor

* emoji-picker: refactor - rename and move into one directory

* emoji-picker: build emoji elements on app load, not on picker open

* emoji-picker: fix emoji searching

* emoji-picker: refactor

* emoji-picker: capitalize category name

* emoji-picker: refactor

move buildEmojiElem() into emoji_converter.ts for future reuse.

* jquery.flot.events: refactor

use buildEmojiElem() for making emojis, remove unused code for font awesome based icons.

* emoji_converter: handle converting error

* tech: updated

* merged with master

* shore: clean up some stuff

* annotation: wip tags

* annotation: filtering by tags

* tags: parse out spaces etc. from a tags string

* annotations: use tagsinput component for tag filtering

* annotation: wip work on how we query alert & panel annotations

* annotations: support for updating tags in an annotation

* linting

* annotations: work on unifying how alert history annotations and manual panel annotations are created

* tslint: fixes

* tags: create tag on blur as well

Currently, the tags directive only creates the tag when the
user presses enter. This change means the tag is created on
blur as well (when the user clicks outside the input field).

* annotations: fix update after refactoring

* annotations: progress on how alert annotations are fetched

* annotations: minor progress

* annotations: progress

* annotation: minor progress

* annotations: move tag parsing from tooltip to ds

Instead of parsing a tag string into an array in the annotation_tooltip
class, this moves the parsing to the datasources. InfluxDB ds already
does that parsing. Graphite now has it.

* annotations: more work on querying

* annotations: change from tags as string to array

when saving in the db and in the api.

* annotations: delete tag link if removed on edit

* annotation: more work on depricating annotation title

* annotations: delete tag links on delete

* annotations: fix for find

* annotation: added user to annotation tooltip and added alertName to annoation dto

* annotations: use id from route instead from cmd for updating

* annotations: http api docs

* create annotation: last edits

* annotations: minor fix for querying annotations before dashboard saved

* annotations: fix for popover placement when legend is on the side (and doubel render pass is causing original marker to be removed)

* annotations: changing how the built in query gets added

* annotation: added time to header in edit mode

* tests: fixed jshint built issue
2017-10-07 10:31:39 +02:00
Matt Bostock
83f1ae4e3e OAuth: Rename sslcli
Rename `sslcli` to the more descriptive `oauthClient`.
2017-10-06 17:10:03 +01:00
Matt Bostock
ccf093da81 OAuth: Separate TLS client auth and CA config
It should be specify to either use TLS client authentication or use a
user-supplied CA; previously you had to enable client authentication to
use a custom CA.
2017-10-06 17:10:03 +01:00
Matt Bostock
f2f8ca52d9 OAuth: Check both TLS client cert and key
If either is set, try to use them.

This should help avoid a situation where someone has half-configured TLS
client authentication and it doesn't work without raising an obvious
error.
2017-10-06 17:10:03 +01:00
Matt Bostock
16c5d0e4b7 Always verify TLS unless explicitly told otherwise
TLS was not being verified in a number of places:

- connections to grafana.com

- connections to OAuth providers when TLS client authentication was
  enabled

- connections to self-hosted Grafana installations when using the CLI
  tool

TLS should always be verified unless the user explicitly enables an
option to skip verification.

Removes some instances where `InsecureSkipVerify` is explicitly set to
`false`, the default, to help avoid confusion and make it more difficult
to regress on this fix by accident.

Adds a `--insecure` flag to `grafana-cli` to skip TLS verification.

Adds a `tls_skip_verify_insecure` setting for OAuth.

Adds a `app_tls_skip_verify_insecure` setting under a new `[plugins]`
section.

I'm not super happy with the way the global setting is used by
`pkg/api/app_routes.go` but that seems to be the existing pattern used.
2017-10-06 17:09:27 +01:00
Lucas Costa
43903d71ec fix: threshold's colors in table panels (#9445) (#9453) 2017-10-06 17:05:26 +02:00
Alexander Zobnin
5561a099b0 singlestat: fix sizing bug #9337 (#9448) 2017-10-06 13:41:39 +02:00
Torkel Ödegaard
7af4daf23b Revert "Fix coloring in singlestat if null value (#9438)" (#9443)
This reverts commit 213ba0377b.
2017-10-05 20:29:06 +02:00
Adrien Raffin-Caboisse
213ba0377b Fix coloring in singlestat if null value (#9438)
This modification aim to allow users to set value via textMapping and
these values to be used in background coloring as it text coloring.

This pull request closes #8404, but doesn't agree with #9012.
The issue #9012 consider that no coloring output should be put when
there is no data. I partially agree with this as I explicitely setted a
value in the textMapping I obviously want to treat `N/A` as a number.

`data.valueFormatted` contain the stringified version of `data.value`

If `Number()` cannot convert a string into a number a `NaN` value is
returned. So the code is still valid if the inputted value in
`data.valueFormatted` is not a number.
2017-10-05 20:26:28 +02:00
Torkel Ödegaard
e42c118b3d fix: missing semicolon 2017-10-05 19:06:46 +02:00
Patrick O'Carroll
d6b512478e changed jsontree to use jsonexplorer (#9416) 2017-10-05 19:01:23 +02:00
Patrick O'Carroll
e951200404 docs page for authproxy (#9420) 2017-10-05 19:01:15 +02:00
Patrick O'Carroll
81be4e2612 Update codebox (#9430)
* updated the codeboxes in docs

* codebox change from json to http
2017-10-05 19:01:03 +02:00
Alexander Zobnin
19b5d91b75 Series color picker fix (#9442)
* colorpicker: fix spectrum color update on series color picker

* colorpicker: minor refactor
2017-10-05 18:34:12 +02:00
Carl Bergquist
9b34346f6b Merge pull request #9441 from genofire/patch-1
fix typo in readme
2017-10-05 17:38:33 +02:00
Geno
22cfb614bf fix type in readme 2017-10-05 17:34:13 +02:00
Carl Bergquist
6f4038e885 Merge pull request #9437 from Ijin08/table-column-styles
fixed layout for column options, changed dropdown for date format kep…
2017-10-05 17:18:15 +02:00
Patrick O'Carroll
bb52f00d2d removed commented line 2017-10-05 16:29:01 +02:00
Carl Bergquist
7e432df511 Merge pull request #9439 from shabscan/patch-1
Fixed typo
2017-10-05 16:13:46 +02:00
bergquist
4cda9d0128 changelog: adds note about closing #9110 2017-10-05 16:13:03 +02:00
shabscan
eb4a568240 Fixed typo 2017-10-05 10:11:57 -04:00
Carl Bergquist
ab5bc1bf4a Merge pull request #9111 from eloo/feature/enhance_hipchat_card
Feature/enhance hipchat card
2017-10-05 16:11:04 +02:00
Joseph Weigl
6a030b2e8c Change empty string checks and improve logging 2017-10-05 16:00:55 +02:00
Alexander Zobnin
2f1c14fc98 graphite-tags: refactor, improve performance - remove unnecessary parseTarget() calls 2017-10-05 16:30:20 +03:00
Carl Bergquist
6979dbd921 Merge pull request #9435 from alin-amana/fix_404_spelling
Fix spelling on 404 page.
2017-10-05 15:01:29 +02:00
bergquist
1590729a24 changelog: adds note about closing #9208 2017-10-05 15:00:12 +02:00
Carl Bergquist
8e4efeeece Merge pull request #9208 from mtanda/prometheus_ace_complete_improve_label_name_complete
(prometheus) support label name/value completion
2017-10-05 14:54:07 +02:00
Carl Bergquist
363ded6ec1 Merge pull request #9434 from Yuav/patch-1
Add Norwegian Krone currency
2017-10-05 14:34:16 +02:00
Alexander Zobnin
055f21f1e8 graphite-tags: add tests 2017-10-05 15:17:46 +03:00
Alin Sinpalean
79feba0004 Fix spelling on 404 page. 2017-10-05 13:51:02 +02:00
Jon Skarpeteig
789473fd34 Lint fix 2017-10-05 13:46:42 +02:00
Jon Skarpeteig
7479c82687 Update kbn.js
Adding the other kr currencies not to offend any maintainers
2017-10-05 13:44:23 +02:00
Alexander Zobnin
63d51d0db3 graphite-tags: refactor, use <gf-form-dropdown> instead of <metric-segment> 2017-10-05 14:43:20 +03:00
Jon Skarpeteig
531586beba Add Norwegian Krone denominator for currency
See http://www.xe.com/symbols.php for currency symbols reference
2017-10-05 13:34:07 +02:00
Patrick O'Carroll
7a7e8c57d1 fixed layout for column options, changed dropdown for date format kept old code 2017-10-05 13:27:36 +02:00
Daniel Lee
0841eb94a8 build: add noUnusedLocals to tsc parameters 2017-10-05 11:37:00 +02:00
bergquist
b6d09a3443 Merge branch 'go1.9.1' 2017-10-05 11:35:25 +02:00
bergquist
eeb2e2c6c9 build: install go based on env variable 2017-10-05 11:35:14 +02:00
bergquist
15ece1da04 changes go version to 1.9.1 2017-10-05 11:35:14 +02:00
bergquist
69b0e63502 changelog: adds note about closing #9226 2017-10-05 11:16:40 +02:00
Carl Bergquist
32342926cf Merge pull request #9226 from alin-amana/adjust_interval_variable_with_min_step
Prometheus: Rework interval and step computation
2017-10-05 10:51:31 +02:00
bergquist
273c17f3f3 changelog: add note about closing #9429 2017-10-05 10:43:23 +02:00
Carl Bergquist
27ec5449d9 Merge pull request #9429 from s1061123/table_time_ms
Add milliseconds format in table panel's config
2017-10-05 10:41:16 +02:00
bergquist
70f102dad4 changelog: adds note about closing #9399 2017-10-05 10:02:42 +02:00
Carl Bergquist
6a20c28c8c Merge pull request #9399 from cglrkn/master
Update script to make it use OpsGenie's REST API
2017-10-05 09:56:27 +02:00
Alexander Zobnin
a4daba63ea graphite-tags: initial tag editor 2017-10-05 10:47:32 +03:00
Cagla Arikan
5a3f32521e Fix formatting issue 2017-10-05 08:42:45 +03:00
Tomofumi Hayashi
f8719efb67 Add milliseconds format in table panel's config
This changes introduce milliseconds format option in table panel
config GUI. Current grafana support milliseconds in time and
actually used at graph panel, however current table does not
provide the way to show milliseconds. This fix is to add format
in table panel to show milliseconds in table as well as graph.
2017-10-05 13:40:52 +09:00
Ricard Clau
e4541a7fd1 support for s3 path (#9151) 2017-10-04 21:04:20 +02:00
Alin Sinpalean
9cf7a2d2ed Remove apparently unnecessary .flush() calls. 2017-10-04 16:23:24 +02:00
Joseph Weigl
7284db0e54 Fix empty message and toolong attribute names
Use default state message if no message is provided by the user
Slice attribute name to maximum of 50 chars
2017-10-04 16:07:13 +02:00
Alin Sinpalean
02d426a2d4 Merge branch 'master' into adjust_interval_variable_with_min_step 2017-10-04 15:30:38 +02:00
Alin Sinpalean
2276869efc Merge remote-tracking branch 'upstream/master' 2017-10-04 15:30:16 +02:00
Alin Sinpalean
080c46f835 Address review comments. 2017-10-04 15:30:07 +02:00
bergquist
0c31c7b106 changelog: add note about closing #7175 2017-10-04 10:42:34 +02:00
Carl Bergquist
ba074062d6 Merge pull request #9392 from xginn8/slack_image_upload
adding support for token-based slack file.upload API call for posting images to slack
2017-10-04 10:29:15 +02:00
Daniel Lee
3c1beb1bdd plugin_loader: expose app_events to plugins 2017-10-04 09:41:22 +02:00
cglrkn
548bc6b7c4 Add the missing comma 2017-10-04 10:15:39 +03:00
Torkel Ödegaard
be3c5d1355 colorpicker: refactoring the new unififed colorpicker, #9347 2017-10-04 07:56:41 +02:00
Alexander Zobnin
2aae2556a5 Unified colorpicker (#9347)
* colorpicker: initial picker with predefined palette and spectrum

* colorpicker: highlight selected color

* colorpicker: add onChange() callback

* colorpicker: replace singlestat picker by new one

* colorpicker: style tweak

* colorpicker: parse color on input blur

* colorpicker: sort palette by hue and lightness

* colorpicker: refactor, move colors sorting to 'app/core/utils/colors'

* tech: colorpicker - fix linter errors

* colorpicker: convert to React components

* colorpicker: fix spectrum import after moving to webpack

* colorpicker: minor refactor

* colorpicker: initial series color picker

* colorpicker: fix tests error
2017-10-04 07:15:23 +02:00
Dan Cech
7859d4ffca fix missing column headers in excel export (#9413) 2017-10-04 07:04:10 +02:00
Torkel Ödegaard
1af00f5209 build: remove clean plugin from dev build 2017-10-03 20:25:47 +02:00
Torkel Ödegaard
0831238420 build: fixed broken elastic unit test 2017-10-03 19:38:52 +02:00
Torkel Ödegaard
a1b543aa35 shore: cleanup unused stuff in common.d.ts 2017-10-03 18:27:25 +02:00
cglrkn
ef518f6ecd Build URL for close alert request differently 2017-10-03 15:13:05 +03:00
Patrick O'Carroll
e1a86e63b8 some restyling (#9409) 2017-10-03 13:35:12 +02:00
Patrick O'Carroll
dd83b67de5 Docs text fixes (#9408)
* styling changes and some text changes

* styling changes
2017-10-03 13:34:52 +02:00
Patrick O'Carroll
50e2f7e366 Checkbox fixes (#9400)
* fixing checkboxes

* deleted old file, fixed checkboxes

* minor change
2017-10-03 13:23:05 +02:00
Torkel Ödegaard
3dac77468b fix: ensure panel.datasource is null as default 2017-10-03 12:18:22 +02:00
Torkel Ödegaard
4c4564b138 plugibs: expose more to plugins 2017-10-03 11:02:40 +02:00
Matthew McGinn
be0d471467 properly parse & pass upload image bool from config 2017-10-02 23:18:48 -04:00
Matthew McGinn
122e2b5c42 break out slack upload into separate function 2017-10-02 20:48:35 -04:00
Torkel Ödegaard
a365719d3f tech: minor npm scripts update 2017-10-02 17:25:43 +02:00
Torkel Ödegaard
4cc878b56d build: fixed build 2017-10-02 17:10:23 +02:00
Torkel Ödegaard
fa79be1f2d Merge branch 'ctide-day_rounding2' 2017-10-02 16:45:44 +02:00
Torkel Ödegaard
a02cac2126 refactoring: minor refactoring of PR #8916 2017-10-02 16:45:25 +02:00
Torkel Ödegaard
42a0e9ebdf Merge branch 'day_rounding' of https://github.com/ctide/grafana into ctide-day_rounding2 2017-10-02 16:20:23 +02:00
cglrkn
d8f6c73aab Update script to make it use OpsGenie's REST API
The script is making API calls to the deprecated OpsGenie Web API, we updated the script to make it use new OpsGenie's REST API.
2017-10-02 16:42:09 +03:00
Torkel Ödegaard
d4e5a7d3f0 Merge branch 'master' of github.com:grafana/grafana 2017-10-02 15:30:50 +02:00
Torkel Ödegaard
503336bcd5 docs: minor docs fix 2017-10-02 15:30:37 +02:00
Torkel Ödegaard
03a88206a3 Merge branch 'master' of github.com:grafana/grafana 2017-10-02 15:30:14 +02:00
Torkel Ödegaard
ae14655749 plugins: expose datemath to plugins as well, fixes zabbix plugin 2017-10-02 13:39:39 +02:00
Torkel Ödegaard
c338d8250b build: minor webpack fix 2017-10-02 13:15:28 +02:00
Patrick O'Carroll
bd348e16bb redesigned dashboard links settingd, fixed a misspelling in rows and added fixed width to buttons (#9397) 2017-10-02 13:04:48 +02:00
Torkel Ödegaard
010a29a42d Merge branches 'master' and 'master' of github.com:grafana/grafana 2017-10-02 10:56:12 +02:00
Torkel Ödegaard
38ae460f59 docs: updated building from source docs 2017-10-02 10:55:56 +02:00
bergquist
cb0ded069a playlist: play and edit should use same width 2017-10-02 09:58:58 +02:00
Torkel Ödegaard
f5e8a4069c docs: minor fixes for #9369 2017-10-02 09:02:58 +02:00
Torkel Ödegaard
1dea7dab2a shore: fixed html indentation, #9368 2017-10-02 08:51:45 +02:00
Torkel Ödegaard
a22dded6fa Merge branch 'update-alert-lists' of https://github.com/Ijin08/grafana into Ijin08-update-alert-lists 2017-10-02 08:43:56 +02:00
Torkel Ödegaard
6bc6911293 tech: updated yarn.lock 2017-10-02 08:24:56 +02:00
Torkel Ödegaard
fea741d7c2 shore: minor cleanup 2017-10-01 20:35:01 +02:00
Torkel Ödegaard
0c86241c5b Webpack (#9391)
* webpack poc, this is not going to work for plugins, dam

* tech: webpack and systemjs for plugins starting to work

* tech: webpack and systemjs combo starting to work

* tech: webpack + karma tests progress

* tech: webpack + karma progress

* tech: working on tests

* tech: webpack

* tech: webpack + karma, all tests pass

* tech: webpack + karma, all tests pass

* tech: webpack all tests pass

* webpack: getting closer

* tech: webpack progress

* webpack: further build refinements

* webpack: ng annotate fixes

* webpack: optimized build fix

* tech: minor fix for elasticsearch

* tech: webpack + ace editor

* tech: restored lodash move mixin compatability

* tech: added enzyme react test and upgraded to react v16

* tech: package version fix

* tech: added testdata to built in bundle

* webpack: sass progress

* tech: prod & dev build is working for the sass

* tech: clean up unused grunt stuff and moved to scripts folder

* tech: added vendor and manifest chunks, updated readme and docs

* tech: webpack finishing touches
2017-10-01 20:02:25 +02:00
Matthew McGinn
89ca4b247b fixing json for CI 2017-10-01 10:37:59 -04:00
Matthew McGinn
00726e93eb adding support for token-based slack file.upload API call for posting images to slack 2017-09-30 21:20:20 -04:00
bergquist
f6cc741a6d changelog: adds note about closing #8479 2017-09-29 15:43:30 +02:00
Carl Bergquist
8a7f87b752 Merge pull request #9311 from ctrlok/ctrlok/pagerdutyinfo
Include triggering metrics to pagerduty alerts (pretty print)
2017-09-29 15:40:49 +02:00
bergquist
46cc1464c4 changelog: adds note about closing #8050 2017-09-29 13:40:07 +02:00
Carl Bergquist
cabb21317f Merge pull request #8050 from mtanda/cloudwatch_alert
(cloudwatch) alerting
2017-09-29 13:36:36 +02:00
bergquist
a8006ada1e changelog: adds note about closing #9386 2017-09-29 13:30:38 +02:00
Carl Bergquist
7d2b989459 Merge pull request #9386 from shanhuhai5739/master
add diff and pdiff for conditions
2017-09-29 13:16:03 +02:00
coral
68ed4d45fa change pdiff to percent_diff for conditions 2017-09-29 18:14:17 +08:00
Daniel Lee
992cc1b680 panel: rename label on csv export modal 2017-09-29 11:32:13 +02:00
coral
9e48d54465 add diff and pdiff for conditions 2017-09-29 17:20:02 +08:00
Carl Bergquist
dd56c4b94b Merge pull request #9382 from yagonobre/master
add brazil currency
2017-09-29 10:30:22 +02:00
Mitsuhiro Tanda
5850ae51b1 fix, add targetContainsTemplate() 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
8d6513a564 fix cloudwatch alert bug 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
5e88177f28 add debug log 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
468e8c13ee move extend statistics handling code to backend 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
6c375ed2cb fix assume role 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
f3a2dc7c5f improve cloudwatch tsdb 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
a21f53cf82 refactor cloudwatch code 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
59cdd4d8d2 remove obsolete code 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
fe9fca381c move cloudwatch crendential related code 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
4f5f38f41b remove old handler 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
e1fe15e094 fix annotation query 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
bf5268c0b4 fix time 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
d98d8a404f fix dimension convertion 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
c140d7aa06 re-implement annotation query 2017-09-29 13:45:11 +09:00
Mitsuhiro Tanda
8f3b060946 fix parameter format 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
17445e0c98 fix alert feature 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
8243ac39c2 fix parameter format 2017-09-29 13:44:01 +09:00
bergquist
fe1d395d79 refactor cloudwatch to support new tsdb interface 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
4b34ff5b83 refactor cloudwatch frontend code 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
e4de6332de refactor cloudwatch frontend code 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
ea704306a0 fix test 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
1dcc51adce re-implement dimension_values() 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
ec632bb9ed fix error message 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
78e3556e95 remove performEC2DescribeInstances() 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
8fba6dcb0d re-implement ec2_instance_attribute() 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
cf23734d7d re-implement ebs_volume_ids() 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
e588b682fb import the change, https://github.com/grafana/grafana/pull/9268 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
36a537a3ce fix conflict 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
fa074249e4 fix test 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
f66e1c02a6 remove obsolete GetMetricStatistics() 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
01d2aa8af0 fix test 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
f590db1b78 move test code 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
1d265e05c9 fix conflict 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
fe3d3bc384 porting other suggestion 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
feed90c0e2 re-implement get regions 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
0c95148486 move the metric find query code 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
62d84c1e14 (cloudwatch) move query parameter to 'parameters' 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
110f157621 parse duration 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
c6607f3fa7 remove offset for startTime 2017-09-29 13:44:01 +09:00
Mitsuhiro Tanda
d31f264576 cache creds for keys/credentials auth type 2017-09-29 13:44:00 +09:00
Mitsuhiro Tanda
83b79dd624 fix test 2017-09-29 13:44:00 +09:00
Mitsuhiro Tanda
728e96e134 fix invalid query filter 2017-09-29 13:44:00 +09:00
Mitsuhiro Tanda
dcb5ea58ce count up metrics 2017-09-29 13:44:00 +09:00
Mitsuhiro Tanda
39607d09d7 (cloudwatch) alerting 2017-09-29 13:44:00 +09:00
Yago Nobre
9c026a8e04 add brazil currency 2017-09-28 14:18:14 -03:00
Torkel Ödegaard
73295ab3ed tech: upgrade of systemjs to 0.20.x working 2017-09-28 14:08:59 +02:00
Torkel Ödegaard
8950f57050 Merge branch 'master' of github.com:grafana/grafana 2017-09-28 13:06:44 +02:00
Torkel Ödegaard
9bfda72a55 tech: reverted to systemjs 2017-09-28 13:06:23 +02:00
Torkel Ödegaard
7aa753a25f tech: migrating elasticsearch to typescript 2017-09-28 12:52:39 +02:00
bergquist
4dea94791d changelog: add note about using golang 1.9 2017-09-28 11:53:01 +02:00
bergquist
7f6924ff13 change go version to 1.9 2017-09-28 11:22:13 +02:00
bergquist
c94fa7015f changelog: adds note about closing #9367 2017-09-28 11:19:01 +02:00
Carl Bergquist
e9e8ffc769 Merge pull request #9367 from bobrik/dualstack
Enable dualstack in every net.Dialer, fixes #9364
2017-09-28 11:15:49 +02:00
Torkel Ödegaard
487c475a1e tech: systemjs upgrade 2017-09-28 10:37:33 +02:00
Patrick O'Carroll
0a65100eaf made a text-panel page, maybe we don't need it 2017-09-28 10:05:28 +02:00
Patrick O'Carroll
0d5540ca09 cleaned up html/sass and added final touches 2017-09-28 09:41:33 +02:00
Ivan Babrou
9a4ae30227 Enable dualstack in every net.Dialer, fixes #9364
Default transport enables it:

* https://github.com/golang/go/blob/d2826d3e06/src/net/http/transport.go#L42-L46

```
    DialContext: (&net.Dialer{
	Timeout:   30 * time.Second,
	KeepAlive: 30 * time.Second,
	DualStack: true,
    }).DialContext,
```

See also: https://github.com/golang/go/issues/15324
2017-09-27 22:29:48 -07:00
bergquist
2ec7bbb2bd jaeger: capitalize tracer name 2017-09-27 16:38:00 +02:00
bergquist
2ae74bf13d jaeger: logging improvement 2017-09-27 16:36:42 +02:00
Torkel Ödegaard
9ee343f33d tech: systemjs upgrade 2017-09-27 15:42:06 +02:00
Alin Sinpalean
bb8849785a Have include intervalFactor in its calculation, so always equal to the step query parameter. 2017-09-27 14:20:51 +02:00
Alin Sinpalean
25a6ed8718 Merge remote-tracking branch 'upstream/master' into adjust_interval_variable_with_min_step 2017-09-27 11:37:14 +02:00
Alin Sinpalean
1543dc4234 Merge remote-tracking branch 'upstream/master' 2017-09-27 11:36:50 +02:00
bergquist
5373a6027c alertlist: toggle play/pause button
closes #9355
2017-09-27 10:49:39 +02:00
Patrick O'Carroll
8615912018 updated css and html for recent state changes for alert lists 2017-09-27 10:38:01 +02:00
chrisrd
0e5e2f3fb9 Fix export_modal message (#9353)
Remove duplicate "to", and "others" is plural not possessive.
2017-09-27 09:46:56 +02:00
Torkel Ödegaard
eaefa3c1fa s3: minor fix for PR #9223 2017-09-27 09:43:32 +02:00
Torkel Ödegaard
50d82155ed Merge branch 'master' of https://github.com/williamjoy/grafana into williamjoy-master 2017-09-27 09:37:26 +02:00
Alin Sinpalean
f25aeadf21 Resolve merge conflicts with remote/master. 2017-09-26 17:55:30 +02:00
Alin Sinpalean
7366d7eae0 Merge branch 'master' of git+ssh://github.com/alin-amana/grafana 2017-09-26 17:44:37 +02:00
bergquist
2ed753232f internal metrics: add grafana version 2017-09-26 15:25:44 +02:00
bergquist
0778f31828 changelog: adds note about closing 5765 2017-09-26 14:40:43 +02:00
Carl Bergquist
da3aea5e0a Merge pull request #9186 from mtanda/prometehus_instant_query2
(prometheus) instant query support
2017-09-26 14:37:10 +02:00
Torkel Ödegaard
5b3e6e67ea Update latest.json 2017-09-26 11:58:37 +02:00
Torkel Ödegaard
7b42e13c79 typescript: stricter typescript option 2017-09-26 11:24:58 +02:00
bergquist
ff108bd871 prom_docker: give targets correct job name 2017-09-25 08:55:54 +02:00
bergquist
3641e85233 testdata: add bucket scenarios for heatmap
these scenarios makes it easier debug panels based
on the same numbers without sharing datasource

ref #9332
2017-09-24 22:08:28 +02:00
bergquist
7eec60ec2e dev-docker: add grafana as target 2017-09-24 21:58:33 +02:00
Carl Bergquist
dd7f42ba03 changelog: add note ablout closing #9319 2017-09-24 21:46:51 +02:00
Carl Bergquist
9aa4f5c42a Merge pull request #9341 from thz/smtp_ehlo_identity
introduce smtp config option for EHLO identity
2017-09-24 21:41:57 +02:00
Tobias Hintze
af79d046db introduce smtp config option for EHLO identity 2017-09-24 20:48:20 +02:00
bergquist
3fac31e808 changelog: note about closing #9250 2017-09-24 19:02:25 +02:00
bergquist
8175783f93 go fmt 2017-09-24 18:59:21 +02:00
bergquist
c927209447 Merge branch 'master' of https://github.com/BrandonArp/grafana into BrandonArp-master 2017-09-24 18:56:46 +02:00
Patrick O'Carroll
3f1452fddb new page for text, needs more work 2017-09-22 17:14:39 +02:00
Patrick O'Carroll
1258dc1cbb replaced img in graph, created alert list page 2017-09-22 16:31:34 +02:00
Torkel Ödegaard
ca0085f429 docs: update docs 2017-09-22 14:05:25 +02:00
Torkel Ödegaard
a98124add7 Update CHANGELOG.md 2017-09-22 13:30:23 +02:00
bergquist
ae249a623d changelog: adds note about closing #5873 2017-09-22 13:17:09 +02:00
Carl Bergquist
63f78c0b59 Merge pull request #9299 from seuf/grafana-cli-plugin-url
Added --pluginUrl option to grafana-cli for local network plugin inst…
2017-09-22 13:13:17 +02:00
Carl Bergquist
632ae0986c Merge pull request #9320 from xiahuibing/patch-1
Update _navbar.scss
2017-09-22 13:06:11 +02:00
Patrick O'Carroll
31243e7132 replaced image 2017-09-22 12:53:37 +02:00
Patrick O'Carroll
367acc37c7 Docs new updates (#9324)
* replaced images, updating text(not finished)

* text uppdates for dashlist and singlestat(+img). updated the keyboard shortcuts

* deleted old shortcuts instruction

* another img update
2017-09-22 10:49:47 +02:00
Torkel Ödegaard
e695ce4aa5 Update CHANGELOG.md 2017-09-22 10:33:03 +02:00
Torkel Ödegaard
dd0f4460cb Update latest.json 2017-09-22 10:08:56 +02:00
Torkel Ödegaard
f22d1af9e0 cleanup: removed unused file 2017-09-22 10:07:22 +02:00
Torkel Ödegaard
c0c86c1138 tech: remove bower and moved remaining bower dependencies to npm 2017-09-22 09:47:25 +02:00
Torkel Ödegaard
6aad2a5b2d tech: cleanup and fixed build issue 2017-09-21 21:12:49 +02:00
Torkel Ödegaard
f0e0e61809 tech: upgraded angularjs and moved dependency from bower to npm, closes #9327 2017-09-21 20:58:32 +02:00
bergquist
ed661767f8 follow go idiom and return error as second param 2017-09-21 18:04:16 +02:00
Torkel Ödegaard
79b873e40e Merge branch 'stricter-ts-lint-rules' 2017-09-21 17:34:47 +02:00
Torkel Ödegaard
8fe21b43e9 tech: updated tsconfig 2017-09-21 17:34:22 +02:00
Daniel Lee
53d862143b docker: adds alertmanager to prometheus fig
with an alert rule that will always fire
2017-09-21 17:28:31 +02:00
Torkel Ödegaard
491fa6cad8 tech: more tslint rules 2017-09-21 17:23:31 +02:00
Patrick O'Carroll
bf88242282 another img update 2017-09-21 16:58:25 +02:00
Torkel Ödegaard
b8d9722b4f tech: removing unused variables from typescript files, and making tslint rules more strict 2017-09-21 16:40:18 +02:00
Patrick O'Carroll
f6aefbd361 deleted old shortcuts instruction 2017-09-21 16:18:24 +02:00
Patrick O'Carroll
fe05a996b7 text uppdates for dashlist and singlestat(+img). updated the keyboard shortcuts 2017-09-21 15:58:19 +02:00
bergquist
a45e2ec9c3 context is reserved for go's context 2017-09-21 15:23:34 +02:00
bergquist
16b5b9f6be make ds a param for Query 2017-09-21 15:09:14 +02:00
bergquist
c0260fd913 remove batch abstraction 2017-09-21 15:02:17 +02:00
bergquist
7f9f388293 rename executor into tsdbqueryendpoint 2017-09-21 15:02:17 +02:00
bergquist
0229d28d64 remove unused structs 2017-09-21 15:02:17 +02:00
bergquist
55f1b36e31 refactor response flow 2017-09-21 15:02:17 +02:00
Torkel Ödegaard
adda84d124 tech: removed test component 2017-09-21 14:05:24 +02:00
Torkel Ödegaard
837beda155 Merge branch 'react-poc' 2017-09-21 13:59:26 +02:00
Torkel Ödegaard
9500eb8aaa ux: minor singlestat update 2017-09-21 13:59:21 +02:00
Torkel Ödegaard
1887c4f279 singlestat: minor change 2017-09-21 13:59:21 +02:00
Torkel Ödegaard
01fc37571e Update CHANGELOG.md 2017-09-21 13:58:48 +02:00
Patrick O'Carroll
de17dcf3b0 Singlestat time (#9298)
* Added a timestamp option to single stat

* can now choose last time as value

* Finished last_time so it formats correctly, updated value stat

* fixed som issues, but still issue with testing

* Clean up after fake clock in test

* timezone-issue fix, fake time for from now test

* fix for timedifference
2017-09-21 13:34:51 +02:00
Torkel Ödegaard
fed35909cc tech: progress on react poc 2017-09-21 13:32:57 +02:00
bergquist
f1036a9382 adds note about closing #9213 2017-09-21 10:46:59 +02:00
Carl Bergquist
0db678e18f Merge pull request #9213 from grafana/dist_tracing
Add support for distributed tracing with Jaeger
2017-09-21 10:42:25 +02:00
xiahuibing
416510773b Update _navbar.scss
line66 and line118 :  "min-height:: $navbarHeight;" has double “:”
2017-09-21 16:40:49 +08:00
Patrick O'Carroll
ece6588c03 replaced images, updating text(not finished) 2017-09-21 09:40:58 +02:00
Gordon McGuire
5e013f82b4 fix: close for 'Unsaved Changes' modal, #9284 (#9313)
Missing reference to the controller instance.
2017-09-21 09:05:59 +02:00
Alexander Zobnin
f8b8907cc4 Initial graphite tags support (#9239)
* graphite: initial seriesByTag() support

* graphite: groupByTags() function

* graphite: aliasByTags() function

* graphite: fix optional params update, issue #9238

* graphite: fix tag-related functions version

* graphite: add 1.1.x version to config

* graphite: fix seriesByTag() series parsing
2017-09-21 08:22:56 +02:00
Torkel Ödegaard
84b1519480 tech: initial react poc 2017-09-20 17:44:23 +02:00
Vsevolod Polyakov
d355862328 Make details more clean in PD description 2017-09-20 13:03:18 +03:00
bergquist
4326790bb4 bug: enable HEAD requests again
ref #9307
2017-09-20 09:45:00 +02:00
Will Sewell
4a6da233d9 Add DbClusterIdentifier to CloudWatch dimensions (#9297)
Unfortunately CloudWatch dimensions are case-sensitive and it uses both `DBClusterIdentifier` and `DbClusterIdentifier` (notice the lower case `b`) depending on the metric. All metrics which also have the `Role` dimension appear to use `DBClusterIdentifier`, whereas metric with the `EngineName` dimension use `DbClusterIdentifier`.
2017-09-20 08:31:54 +02:00
Alexander Zobnin
fdec9a4daf templating: fix dependent variable updating (#9306) 2017-09-19 20:35:48 +02:00
tamayika
bef4b9b3b0 Fix adhoc filters restoration (#9303) 2017-09-19 14:25:35 +02:00
Andreas Kohn
3b565dccd8 Explicitly refer to Github 'OAuth' applications
A 'Github Application' is now something else, and will not work with Grafana.
2017-09-19 13:21:15 +02:00
William
88a8991722 config bucket and region for s3 uploader
this is to support cn-north-1 region as it can get s3 url programatically.
also keeps support 'bucket_url' for backward compatiblity
2017-09-19 04:57:25 -04:00
bergquist
13e8eb6d2e Merge branch 'v4.5.x' 2017-09-19 08:34:44 +02:00
bergquist
fe3c6ac355 fixes bug introduced with prom namespaces
ref #9279
2017-09-19 08:16:23 +02:00
Matthew McGinn
2840968861 fixing spelling of millesecond -> millisecond 2017-09-19 07:20:14 +02:00
Matthew McGinn
3a7ed2305d fixing spelling of millesecond -> millisecond 2017-09-19 06:14:43 +02:00
Aaron Kirkbride
442f625a4e Remove duplicate bus.AddHandler() (#9289)
`bus.AddHandler("sql", SetUsingOrg)` is already called on line 24.

Very minor change.
2017-09-18 15:52:15 +02:00
Torkel Ödegaard
5f6de33487 Update CHANGELOG.md 2017-09-18 15:21:00 +02:00
bergquist
353bb57a6f use same key as mt 2017-09-18 14:59:59 +02:00
bergquist
6c7454fc2b tag alert queries that return no_data 2017-09-18 14:53:30 +02:00
Patrick O'Carroll
d6725d4fbe updated error page html+css, added ds_store to ignore (#9285) 2017-09-18 14:04:55 +02:00
deep-42-thought
5749489e7e public/app/plugins/panel/graph/specs/graph_specs.ts: relax tests to be "within" instead of "equal", so they won't fail on i686 (#9286) 2017-09-18 14:03:54 +02:00
Sven Nierlein
d0ddf76730 Fix path to icon (#9276)
grafana_mask_icon.svg is located in the img/ folder.
2017-09-18 12:54:20 +02:00
bergquist
915412754c Merge branch 'v4.5.x' 2017-09-18 12:35:02 +02:00
bergquist
6d901fe145 adds note about fix in v4.5.2 2017-09-18 12:29:32 +02:00
bergquist
0a8a6fd872 skip NaN values when writing to graphite
ref #9279
2017-09-18 12:25:37 +02:00
Andrew Prokhorenkov
00b18a8aea addded mass units, #9265 (#9273) 2017-09-18 11:13:56 +02:00
Ryan Patterson
a20c419583 Fully fill out nulls in cloudfront data source (#9268)
Summary:
Previously, cloudwatch data sources would only fill in a single null value if
there was missing data. This results in behavior described in #9267. This
resolves that issue by filling the entire missing period with null values. The
null values can then be interpreted as normal by the graphing frontend.

Test Plan:
Used on a data source that had missing data for many consecutive periods.
Ensured that the graph remained at 0 across the entire window.
2017-09-18 11:12:52 +02:00
bergquist
bcf784375b make it possible to configure sampler type 2017-09-18 11:08:58 +02:00
bergquist
861843f4ca mark >=400 responses as error 2017-09-18 11:08:58 +02:00
bergquist
83ddd2b158 change port for jaeger dev container 2017-09-18 11:08:58 +02:00
bergquist
f211455643 logwrapper for jaeger 2017-09-18 11:08:58 +02:00
bergquist
f37a595f68 make samplerconfig.param configurable 2017-09-18 11:08:58 +02:00
bergquist
ec29b469e4 adds custom tags from settings 2017-09-18 11:08:58 +02:00
bergquist
e3211f6e48 use route as span name 2017-09-18 11:08:58 +02:00
bergquist
ee2e4c6567 add trace headers for outgoing requests 2017-09-18 11:08:58 +02:00
bergquist
98c84f9458 docker file for running jaeger 2017-09-18 11:08:58 +02:00
bergquist
bc678899f7 better formating for error trace 2017-09-18 11:08:58 +02:00
bergquist
d55b49b7b7 attach context with span to *http.Request 2017-09-18 11:08:58 +02:00
bergquist
3c8133aa4b add traces for datasource reverse proxy requests 2017-09-18 11:08:58 +02:00
bergquist
8c8fdadb78 trace failed executions 2017-09-18 11:08:58 +02:00
bergquist
e128310045 use tags instead of logs 2017-09-18 11:08:58 +02:00
bergquist
89c86c7a22 use opentracing ext package when possible 2017-09-18 11:08:58 +02:00
bergquist
935dad653c set example port to zipkin default 2017-09-18 11:08:58 +02:00
bergquist
e84ff24833 adds codahale to vendor 2017-09-18 11:08:58 +02:00
bergquist
a234e894bb makes jaeger tracing configurable 2017-09-18 11:08:58 +02:00
bergquist
f160ad3bc8 add trace parameters for outgoing requests 2017-09-18 11:08:58 +02:00
bergquist
2e350bbb8e adds basic traces using open traces 2017-09-18 11:08:58 +02:00
bergquist
2ac6e23fc5 Merge branch 'invalid_panel_data' 2017-09-18 10:36:17 +02:00
bergquist
89eda76f29 require dashboard panels to have id
closes #9234
2017-09-18 10:32:58 +02:00
Torkel Ödegaard
a687a6605d Merge branch 'v4.5.x' 2017-09-18 09:40:00 +02:00
Torkel Ödegaard
24d69ca205 fix: jsonData should not be allowed to be null, fixes #9258 2017-09-18 09:38:02 +02:00
Torkel Ödegaard
7a80a6627a Merge branch 'reduce-package-size' 2017-09-18 09:09:38 +02:00
Torkel Ödegaard
a081f90403 Merge branch 'master' of github.com:grafana/grafana 2017-09-18 09:08:42 +02:00
Torkel Ödegaard
d99c873221 packaging: reduce package size 2017-09-18 09:02:45 +02:00
ParadoxalManiak
c94f5b456a Update upgrading.md (#9263)
Fixed some minor writing issues.
2017-09-15 22:15:12 +02:00
THIERRY SALLE
e978bfc368 Added --pluginUrl option to grafana-cli for local network plugin installation 2017-09-15 20:34:08 +02:00
bergquist
67469e1809 adds note about closing #1395 2017-09-15 17:26:48 +02:00
Andrew Prokhorenkov
8cdf12b694 add locale format 2017-09-15 17:26:18 +02:00
bergquist
114ba801b9 update changelog 2017-09-15 16:25:17 +02:00
bergquist
87308fd97f fixes broken tests 💥 2017-09-15 16:11:02 +02:00
bergquist
16b1c0e63e minor code adjusetments 2017-09-15 16:11:02 +02:00
bergquist
c7698a09ed pass context to image uploaders 2017-09-15 16:11:02 +02:00
bergquist
d0ab028cfc remove unused deps 2017-09-15 16:11:02 +02:00
Konstantin Chukhlomin
7e3c9fcc1c Reduced OAuth scope to read_write 2017-09-15 16:11:02 +02:00
Konstantin Chukhlomin
fcdf282090 GCS support via JSON API 2017-09-15 16:11:02 +02:00
Konstantin Chukhlomin
1188f8df73 gofmt fixes 2017-09-15 16:11:02 +02:00
Konstantin Chukhlomin
72d7c4d620 Added GCS support #8370 2017-09-15 16:11:02 +02:00
bergquist
93cff1a42a move more known datasources from others 2017-09-15 14:26:29 +02:00
Alexander Zobnin
54f0650321 Remove alert thresholds on panel duplicate, issue #9178 (#9257) 2017-09-15 13:34:31 +02:00
Daniel Lee
f534ea057c 4.5.1 docs + update version to 5.0.0-pre1 2017-09-15 11:27:16 +02:00
Daniel Lee
3aed6595c7 Merge branch 'v4.5.x' 2017-09-15 11:10:55 +02:00
Daniel Lee
085245f97d publish_both.sh update for 4.5.1 2017-09-15 11:09:48 +02:00
Daniel Lee
c114c46119 update version to 4.5.1 2017-09-15 10:05:51 +02:00
Torkel Ödegaard
9fdecb320c Merge branch 'master' of github.com:grafana/grafana 2017-09-15 10:00:17 +02:00
Torkel Ödegaard
7cac2e1817 Merge branch 'v4.5.x' 2017-09-15 09:59:44 +02:00
Torkel Ödegaard
bbe191a975 graphite: do not show error for cancelled requests, fixes #9249 2017-09-15 09:59:23 +02:00
Torkel Ödegaard
c532c8640b Update CHANGELOG.md 2017-09-15 09:17:44 +02:00
Torkel Ödegaard
0107f1eddb docs: updated changelog 2017-09-14 20:34:23 +02:00
Torkel Ödegaard
f8326c29f9 mysql: fix query editor not showing issue, fixes #9247 2017-09-14 20:30:01 +02:00
bergquist
491e6897e7 metrics: set summary unit
we have to use milleseconds since graphite
doesnt support float64
2017-09-14 19:28:54 +02:00
Alin Sinpalean
719151b9cb Merge remote-tracking branch 'upstream/master' 2017-09-14 19:25:54 +02:00
Andrew Prokhorenkov
5b74bea476 add Ukrainian hryvnia sign 2017-09-14 19:06:25 +02:00
Torkel Ödegaard
210df23430 packaging: reducing package size be only including public vendor stuff we need 2017-09-14 17:33:58 +02:00
bergquist
314bff1b78 adds grafana_ prefix for none standard metrics 2017-09-14 14:26:32 +02:00
bergquist
9c30bf53cf introduce concept of named middleware 2017-09-14 14:26:32 +02:00
bergquist
4bc6ecb241 adds metric middlware to route register 2017-09-14 14:26:32 +02:00
bergquist
6372e22180 migrate handlers to new register 2017-09-14 14:26:32 +02:00
bergquist
f842265388 add custom route register 2017-09-14 14:26:32 +02:00
bergquist
bf138d1845 adds small docs page metrics 2017-09-14 14:26:32 +02:00
bergquist
c177a9a77a make bridge prefix backwards compatible 2017-09-14 14:26:32 +02:00
bergquist
6d22a67a30 return /metrics before session middleware 2017-09-14 14:26:32 +02:00
bergquist
6b1ae1a8a8 use internal init for settings 2017-09-14 14:26:32 +02:00
bergquist
dd9d4ecfbe update stat gauges first run to avoid gaps 2017-09-14 14:26:32 +02:00
bergquist
fca80ff525 add support for deltas in histogram and summaries 2017-09-14 14:26:32 +02:00
bergquist
2de94d6548 convert old metrics to prom metrics 2017-09-14 14:26:32 +02:00
bergquist
788f677ed7 remove old internal metrics lib 2017-09-14 14:26:32 +02:00
bergquist
d6b8c6a2d2 add graphite bridge that support delta counters 2017-09-14 14:26:32 +02:00
Torkel Ödegaard
c1ef89d3bf Update CHANGELOG.md 2017-09-14 11:55:44 +02:00
Torkel Ödegaard
aa24839ac9 Update CHANGELOG.md 2017-09-14 11:55:07 +02:00
Torkel Ödegaard
a5c08a72fb docs: update download links 2017-09-14 11:28:59 +02:00
Patrick O'Carroll
337fb9bdfa fixed some images (#9237) 2017-09-14 11:04:01 +02:00
Torkel Ödegaard
512535e8ff release: bumped version to v4.5.0 stable 2017-09-14 10:51:21 +02:00
Torkel Ödegaard
4e719aa0c1 docs: minor update 2017-09-14 10:50:34 +02:00
Brandon Arp
cffbcb504d allow ssl renegotiation for datasources 2017-09-13 16:20:24 -07:00
Daniel Lee
29de6387cb plugins: add styles for ol tags in markdown 2017-09-13 17:13:53 +02:00
Torkel Ödegaard
a76f3fba2e docs: minor fixes to images 2017-09-13 17:11:10 +02:00
Patrick O'Carroll
d71456b96f Docs image updates (#9225)
* replaced old images and gifs with new ones

* replaced images, changed some text especially for column styles

* replaced and added images and gifs
2017-09-13 16:29:53 +02:00
Torkel Ödegaard
85bd1861d6 fix: improve behavior when switching back and forth between x-axis modes, fixes #9229 2017-09-13 14:38:22 +02:00
Torkel Ödegaard
1a53d6453b Merge branch 'v4.4.x' 2017-09-13 10:02:04 +02:00
Torkel Ödegaard
10f058036c Merge branch 'master' of github.com:grafana/grafana 2017-09-13 09:48:56 +02:00
Torkel Ödegaard
73248d6687 fixes for metrics tab when data source was not found 2017-09-13 09:48:50 +02:00
Mitsuhiro Tanda
5bdd554671 check args for query 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
6bf8144793 add test for completer 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
1a5e786467 fix 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
56c0d91ee5 follow token name change 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
d530ccff1c (prometheus) support label value completion 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
40b74e6664 (prometheus) support label name completion 2017-09-13 16:34:28 +09:00
Mitsuhiro Tanda
b349b3ef55 provide ace editor for external datasource plugin (#9224) 2017-09-13 09:29:53 +02:00
William
37962216ed get s3 url via aws-sdk-go, fix #9189 2017-09-12 21:52:40 -04:00
Alin Sinpalean
7a7837f47e Merge remote-tracking branch 'upstream/master' 2017-09-12 21:57:32 +02:00
Alin Sinpalean
2a62374a61 Prometheus: Rework the interaction between auto interval (computed based on graph resolution), min interval (where specified, per query) and intervalFactor (AKA resolution, where specified, per query).
As a bonus, have  and  reflect the actual interval (not the auto interval), taking into account min interval and Prometheus' 11k data points limit.
2017-09-12 16:36:27 +02:00
Torkel Ödegaard
dd67c9d420 Merge branch 'master' of github.com:grafana/grafana 2017-09-12 11:36:47 +02:00
Torkel Ödegaard
968ba30fa5 ux: increased code editor auto complete width from 320px to 550px, fixes #9203 2017-09-12 11:36:30 +02:00
Daniel Lee
379f984293 docs: windows - add note about ini comments 2017-09-12 11:08:28 +02:00
Torkel Ödegaard
3c16230158 prometheus: added completer unit test, #9208 2017-09-12 11:05:32 +02:00
Torkel Ödegaard
fd76c855f9 Merge branch 'master' of github.com:grafana/grafana 2017-09-12 10:32:02 +02:00
Torkel Ödegaard
e16cadaa27 docs: minor update 2017-09-12 10:31:53 +02:00
Daniel Lee
665fef0114 docs: kiosk mode options add to playlist doc 2017-09-12 10:31:13 +02:00
Daniel Lee
ff4cd1aef6 influxdb: small css fix for order by in query editor 2017-09-12 09:24:54 +02:00
Torkel Ödegaard
0e18c82d95 style: corrected indentation in sass file 2017-09-12 09:21:17 +02:00
Patrick O'Carroll
a7b0a01b13 replaced old images and gifs with new ones (#9217) 2017-09-12 09:07:36 +02:00
Torkel Ödegaard
18cfe1b192 Merge branch 'master' of github.com:grafana/grafana 2017-09-12 09:05:47 +02:00
Torkel Ödegaard
f6100dd8eb ux: success/error alerts refactoring, #9214 2017-09-12 09:05:32 +02:00
bergquist
ee4bbf61a9 remove node restriction from package.json
yarn requires correct node version in package.json
and wont install with 4.x. removing since we dont
care about it.
2017-09-12 08:15:48 +02:00
Torkel Ödegaard
7164183739 Merge branch 'master' of github.com:grafana/grafana 2017-09-12 08:01:51 +02:00
Patrick O'Carroll
90602942f5 New alert design (#9214)
* ux: updated alert design

* fixed bg-color for alerts

* more changes to alerts, index fixed
2017-09-12 08:01:44 +02:00
Torkel Ödegaard
6e344f6eea api: tsdb api orgId fix 2017-09-12 08:01:34 +02:00
bergquist
057b8a6b2d improve error message for timeouts
closes #9220
2017-09-11 20:07:57 +02:00
Torkel Ödegaard
e5f84484eb prometheus: another prometheus syntax highlight fix, #9212, #9167 2017-09-11 16:36:53 +02:00
Alexander Zobnin
b1580bf385 ace: fix braces highlight in prometheus (#9212) 2017-09-11 15:49:15 +02:00
Torkel Ödegaard
293daf2ca1 fix: removed text option from text panel edit options, was by mistake not removed from settings dropdown, fixes #9204 2017-09-11 10:45:00 +02:00
Mitsuhiro Tanda
f5a17e535b minor fix 2017-09-11 13:11:45 +09:00
Torkel Ödegaard
75c4c4d8b5 fix: query ctrl unit tests now pass as before 2017-09-08 13:52:28 +02:00
Torkel Ödegaard
2953d64429 prometheus: minor update to focus editor PR, #9201 2017-09-08 11:43:29 +02:00
Torkel Ödegaard
4b851de648 Merge branch 'prom_give_focus' of https://github.com/mtanda/grafana into mtanda-prom_give_focus 2017-09-08 10:55:50 +02:00
Alin Sinpalean
1076b75a21 Fix rounding of intervals (#9197)
* Prometheus: Fix actual step computation logic when a min_step is specified and the range is longer than min_step * 11000.

* Fix kbn.round_interval for exact intervals.

* Remove redundant 1d return, fix a couple of comments.

* Be more cautious with values close to 1d not rounding up to 1d. They may, because of the way the calculation uses 2 potentially different current time values.
2017-09-08 10:37:57 +02:00
Daniel Lee
b1506a2b09 securejson: decrypt should not modify src
When decrypting a source securejson byte array, should not
modify the source and now passes back a new dest byte array.
2017-09-08 10:19:07 +02:00
Mitsuhiro Tanda
e13575eaef add AWS/NATGateway metrics (#9202) 2017-09-08 09:04:15 +02:00
Mitsuhiro Tanda
7c566a6539 fix to focus first query 2017-09-08 12:33:36 +09:00
Mitsuhiro Tanda
d971eddc7a copy from give-focus 2017-09-08 11:49:44 +09:00
Mitsuhiro Tanda
ce0de35a6c set give focus in code editor 2017-09-08 11:49:41 +09:00
Alin Sinpalean
13eb0c1ece Fix kbn.round_interval for exact intervals. 2017-09-07 22:14:37 +02:00
Alin Sinpalean
567e877b9e Merge remote-tracking branch 'upstream/master' 2017-09-07 20:26:28 +02:00
Mitsuhiro Tanda
6f8110956d (prometheus) support instant query for table format, use checkbox to switch query type 2017-09-08 01:15:07 +09:00
Torkel Ödegaard
93be16b106 docs: minor docs update 2017-09-07 16:55:36 +02:00
Torkel Ödegaard
8ec33574a1 docs: added v4.4 to docs archive 2017-09-07 16:44:41 +02:00
Patrick O'Carroll
de647c4100 docs: uppdated getting started with images and text, added info on query inspector to version45 and trouble shooting (#9193) 2017-09-07 16:32:55 +02:00
bergquist
51d021a337 reduce readme to be about the code 2017-09-07 16:08:38 +02:00
bergquist
7dc6d67d46 adds note about closing #8876 2017-09-07 14:29:25 +02:00
Carl Bergquist
62979916ad Merge pull request #8876 from mtanda/shortcut_new_dashboard
add new dashboard shortcut
2017-09-07 14:26:05 +02:00
Carl Bergquist
4670c74942 Merge pull request #9022 from adriangarza/master
added CloudWatch data source API documentation
2017-09-07 14:10:53 +02:00
Torkel Ödegaard
c9a30ef149 build: fixed broken build 2017-09-07 13:05:26 +02:00
Carl Bergquist
9dac602e98 Merge pull request #9191 from wgliang/master
Optimize some wrong usage and spelling
2017-09-07 12:04:45 +02:00
wangguoliang
652fce7e76 Optimize some wrong usage and spelling
Signed-off-by: wgliang <liangcszzu@163.com>
2017-09-07 17:50:11 +08:00
Mitsuhiro Tanda
56cb16ff5b (prometheus) instant query support 2017-09-07 18:03:53 +09:00
Mitsuhiro Tanda
e98254e1e3 show only label name in label matcher (#9167) 2017-09-07 10:10:52 +02:00
Mitsuhiro Tanda
4446e95155 (prometheus) cache metric suggest query result (#9182)
* (prometheus) cache metric suggest query result

* add test
2017-09-07 10:09:59 +02:00
Alin Sinpalean
5d4b8b5a5c Have 'Hide series with only zeros' ignore nulls (#9179)
* Prometheus: Fix actual step computation logic when a min_step is specified and the range is longer than min_step * 11000.

* Have the 'Hide series with only zeros' option also apply to series with some null values.
2017-09-06 16:50:55 +02:00
Patrick O'Carroll
095ac80d19 docs: updated image in docs (#9184) 2017-09-06 16:31:17 +02:00
Torkel Ödegaard
9451e6af39 Merge branch 'master' of github.com:grafana/grafana 2017-09-06 14:20:53 +02:00
Alin Sinpalean
24a165662c Merge remote-tracking branch 'upstream/master' 2017-09-06 09:51:13 +02:00
Torkel Ödegaard
82d365bdb8 fix: graph right y label is now correctly possitioned, fixes #9172 2017-09-05 21:57:32 +02:00
Sergey Korobov
ec64dc8fae Fix sortByName and percentileOfSeries in gfunc.js (#9169)
Fixing type of parameters from "select" to "boolean" for working with carbonapi (like it was done in summarize function) + some commas prettify.
2017-09-05 19:34:55 +02:00
Torkel Ödegaard
b333ad9481 docs: updated docs with v4.5 beta links 2017-09-05 16:01:28 +02:00
Torkel Ödegaard
22be9436f7 Update CHANGELOG.md 2017-09-05 15:16:04 +02:00
Joseph Weigl
185b0dcc05 Merge branch 'master' into feature/enhance_hipchat_card 2017-09-02 19:04:40 +02:00
Jesse White
91fb3f2224 fix: cancel the initial timer when changing the auto-refresh interval, fixes #9139 (#9140) 2017-09-01 07:19:51 +02:00
Alin Sinpalean
84c6caabc5 Prometheus: Fix actual step computation logic when a min_step is specified and the range is longer than min_step * 11000. 2017-08-28 15:45:51 +02:00
Joseph Weigl
81d3ab37c3 Add thumbnail to card 2017-08-24 14:52:23 +02:00
Joseph Weigl
9666f45e9c Add values to the hipchat card 2017-08-24 13:40:33 +02:00
Joseph Weigl
c6f7d34c55 Reorder editorconfig 2017-08-24 13:40:19 +02:00
Adrian Garza
5420f271f1 added CloudWatch data source API documentation
access and secret keys are base64-encoded gibberish
2017-08-10 16:03:42 -07:00
Chris Burkhart
3e0b92d6fe Enable datasources to be able to round off to a UTC day properly 2017-08-08 09:34:41 -07:00
Mitsuhiro Tanda
e8157f01ec add new dashboard shortcut 2017-07-19 17:54:34 +09:00
Ricky Moorhouse
665caa8e08 Include triggering metrics to pagerduty alerts
Assist the person receiving the alert in identifying the cause

Based on the slack notifier fields this will include upto 4 triggering
metrics in the custom details section in the pagerduty incident

Fixes #8479
2017-05-26 12:30:56 +01:00
1623 changed files with 99949 additions and 256472 deletions

View File

@@ -1,3 +0,0 @@
{
"directory": "public/vendor/"
}

View File

@@ -1,7 +1,7 @@
[run]
init_cmds = [
["go", "build", "-o", "./bin/grafana-server", "./pkg/cmd/grafana-server"],
["./bin/grafana-server"]
["./bin/grafana-server", "cfg:app_mode=development"]
]
watch_all = true
watch_dirs = [
@@ -9,9 +9,9 @@ watch_dirs = [
"$WORKDIR/public/views",
"$WORKDIR/conf",
]
watch_exts = [".go", ".ini", ".toml", ".html"]
watch_exts = [".go", ".ini", ".toml"]
build_delay = 1500
cmds = [
["go", "build", "-o", "./bin/grafana-server", "./pkg/cmd/grafana-server"],
["./bin/grafana-server"]
["./bin/grafana-server", "cfg:app_mode=development"]
]

View File

@@ -1,13 +1,6 @@
# http://editorconfig.org
root = true
[*.go]
indent_style = tab
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*]
indent_style = space
indent_size = 2
@@ -15,5 +8,12 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.go]
indent_style = tab
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false

View File

@@ -4,8 +4,6 @@ Read before posting:
- Checkout FAQ: https://community.grafana.com/c/howto/faq
- Checkout How to troubleshoot metric query issues: https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50
Please prefix your title with [Bug] or [Feature request].
Please include this information:
- What Grafana version are you using?
- What datasource are you using?

16
.gitignore vendored
View File

@@ -4,12 +4,16 @@ coverage/
.aws-config.json
awsconfig
/dist
/public/build
/public/views/index.html
/emails/dist
/public_gen
/public/vendor/npm
/tmp
vendor/phantomjs/phantomjs
vendor/phantomjs/phantomjs.exe
profile.out
coverage.txt
docs/AWS_S3_BUCKET
docs/GIT_BRANCH
@@ -25,6 +29,7 @@ public/css/*.min.css
.idea/
*.iml
*.tmp
.DS_Store
.vscode/
/data/*
@@ -33,11 +38,22 @@ public/css/*.min.css
conf/custom.ini
fig.yml
docker-compose.yml
docker-compose.yaml
/conf/provisioning/**/custom.yaml
profile.cov
/grafana
.notouch
/pkg/cmd/grafana-cli/grafana-cli
/pkg/cmd/grafana-server/grafana-server
/pkg/cmd/grafana-server/debug
debug.test
/examples/*/dist
/packaging/**/*.rpm
/packaging/**/*.deb
/vendor/**/*.py
/vendor/**/*.xml
/vendor/**/*.yml
/vendor/**/*_test.go
/vendor/**/.editorconfig
/vendor/**/appengine*

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
test -z "$(gofmt -s -l . | grep -v vendor/src/ | tee /dev/stderr)"
if [ $? -gt 0 ]; then
echo "Some files aren't formatted, please run 'go fmt ./pkg/...' to format your source code before committing"
exit 1
fi
grunt test

View File

@@ -1,21 +0,0 @@
{
"preset" : "default",
"lineBreak" : {
"before" : {
"VariableDeclarationWithoutInit" : 0,
},
"after": {
"AssignmentOperator": -1,
"ArgumentListArrayExpression": ">=1"
}
},
"whiteSpace" : {
"before" : {
},
"after" : {
}
}
}

View File

@@ -1,6 +1,6 @@
{
"browser": true,
"esversion": 6,
"bitwise":false,
"curly": true,
"eqnull": true,

View File

@@ -1,13 +1,176 @@
# 5.0.0 (unreleased)
### WIP (in develop branch currently as its unstable or unfinished)
- Dashboard folders
- User groups
- Dashboard permissions (on folder & dashboard level), permissions can be assigned to groups or individual users
- UX changes to nav & side menu
- New dashboard grid layout system
### New Features
- **Dashboards** Dashboard folders, [#1611](https://github.com/grafana/grafana/issues/1611)
- **Teams** User groups (teams) implemented. Can be used in folder & dashboard permission list.
- **Dashboard grid**: Panels are now layed out in a two dimensional grid (with x, y, w, h). [#9093](https://github.com/grafana/grafana/issues/9093).
- **Templating**: Vertical repeat direction for panel repeats.
- **UX**: Major update to page header and navigation
- **Dashboard settings**: Combine dashboard settings views into one with side menu, [#9750](https://github.com/grafana/grafana/issues/9750)
# 4.5.0 (unreleased)
## New Dashboard Grid
The new grid engine is major upgrade for how you can position and move panels. It enables new layouts and a much easier dashboard building experience. The change is backwards compatible. Grafana will automatically upgrade your dashboards to the new schema and position panels to match your existing layout. There might be minor differences in panel height.
Dashboard panels and rows are positioned using a gridPos object `{x: 0, y: 0, w: 24, h: 5}`. Units are in grid dimensions (24 columns, 1 height unit 30px). Rows and Panels objects exist (together) in a flat array directly on the dashboard root object. Rows are not needed for layouts anymore and are mainly there for backward compatibility. Some panel plugins that do not respect their panel height might require an update.
# 4.7.0 (unreleased)
## Breaking changes
`[dashboard.json]` have been replaced with [dashboard provisioning](http://docs.grafana.org/administration/provisioning/).
Config files for provisioning datasources as configuration have changed from `/conf/datasources` to `/conf/provisioning/datasources`.
From `/etc/grafana/datasources` to `/etc/grafana/provisioning/datasources` when installed with deb/rpm packages.
## New Features
* **Data Source Proxy**: Add support for whitelisting specified cookies that will be passed through to the data source when proxying data source requests [#5457](https://github.com/grafana/grafana/issues/5457), thanks [@robingustafsson](https://github.com/robingustafsson)
* **Postgres/MySQL**: add __timeGroup macro for mysql [#9596](https://github.com/grafana/grafana/pull/9596), thanks [@svenklemm](https://github.com/svenklemm)
* **Text**: Text panel are now edited in the ace editor. [#9698](https://github.com/grafana/grafana/pull/9698), thx [@mtanda](https://github.com/mtanda)
* **Teams**: Add Microsoft Teams notifier as [#8523](https://github.com/grafana/grafana/issues/8523), thx [@anthu](https://github.com/anthu)
* **Datasources**: Its now possible to configure datasources with config files [#1789](https://github.com/grafana/grafana/issues/1789)
* **Graphite**: Query editor updated to support new query by tag features [#9230](https://github.com/grafana/grafana/issues/9230)
* **Dashboard history**: New config file option versions_to_keep sets how many versions per dashboard to store, [#9671](https://github.com/grafana/grafana/issues/9671)
* **Dashboard as cfg**: Load dashboards from file into Grafana on startup/change [#9654](https://github.com/grafana/grafana/issues/9654) [#5269](https://github.com/grafana/grafana/issues/5269)
* **Prometheus**: Grafana can now send alerts to Prometheus Alertmanager while firing [#7481](https://github.com/grafana/grafana/issues/7481), thx [@Thib17](https://github.com/Thib17) and [@mtanda](https://github.com/mtanda)
* **Table**: Support multiple table formated queries in table panel [#9170](https://github.com/grafana/grafana/issues/9170), thx [@davkal](https://github.com/davkal)
## Minor
* **Alert panel**: Adds placeholder text when no alerts are within the time range [#9624](https://github.com/grafana/grafana/issues/9624), thx [@straend](https://github.com/straend)
* **Mysql**: MySQL enable MaxOpenCon and MaxIdleCon regards how constring is configured. [#9784](https://github.com/grafana/grafana/issues/9784), thx [@dfredell](https://github.com/dfredell)
* **Cloudwatch**: Fixes broken query inspector for cloudwatch [#9661](https://github.com/grafana/grafana/issues/9661), thx [@mtanda](https://github.com/mtanda)
* **Dashboard**: Make it possible to start dashboards from search and dashboard list panel [#1871](https://github.com/grafana/grafana/issues/1871)
* **Annotations**: Posting annotations now return the id of the annotation [#9798](https://github.com/grafana/grafana/issues/9798)
* **Systemd**: Use systemd notification ready flag [#10024](https://github.com/grafana/grafana/issues/10024), thx [@jgrassler](https://github.com/jgrassler)
* **Github**: Use organizations_url provided from github to verify user belongs in org. [#10111](https://github.com/grafana/grafana/issues/10111), thx
[@adiletmaratov](https://github.com/adiletmaratov)
* **Backend**: Fixed bug where Grafana exited before all sub routines where finished [#10131](https://github.com/grafana/grafana/issues/10131)
## Tech
* **RabbitMq**: Remove support for publishing events to RabbitMQ [#9645](https://github.com/grafana/grafana/issues/9645)
## Fixes
* **Sensu**: Send alert message to sensu output [#9551](https://github.com/grafana/grafana/issues/9551), thx [@cjchand](https://github.com/cjchand)
* **Singlestat**: suppress error when result contains no datapoints [#9636](https://github.com/grafana/grafana/issues/9636), thx [@utkarshcmu](https://github.com/utkarshcmu)
* **Postgres/MySQL**: Control quoting in SQL-queries when using template variables [#9030](https://github.com/grafana/grafana/issues/9030), thanks [@svenklemm](https://github.com/svenklemm)
# 4.6.3 (2017-12-14)
## Fixes
* **Gzip**: Fixes bug gravatar images when gzip was enabled [#5952](https://github.com/grafana/grafana/issues/5952)
* **Alert list**: Now shows alert state changes even after adding manual annotations on dashboard [#9951](https://github.com/grafana/grafana/issues/9951)
* **Alerting**: Fixes bug where rules evaluated as firing when all conditions was false and using OR operator. [#9318](https://github.com/grafana/grafana/issues/9318)
* **Cloudwatch**: CloudWatch no longer display metrics' default alias [#10151](https://github.com/grafana/grafana/issues/10151), thx [@mtanda](https://github.com/mtanda)
# 4.6.2 (2017-11-16)
## 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)
## Fixes
* **Color picker**: Bug after using textbox input field to change/paste color string [#9769](https://github.com/grafana/grafana/issues/9769)
* **Cloudwatch**: Fix for cloudwatch templating query `ec2_instance_attribute` [#9667](https://github.com/grafana/grafana/issues/9667), thanks [@mtanda](https://github.com/mtanda)
* **Heatmap**: Fixed tooltip for "time series buckets" mode [#9332](https://github.com/grafana/grafana/issues/9332)
* **InfluxDB**: Fixed query editor issue when using `>` or `<` operators in WHERE clause [#9871](https://github.com/grafana/grafana/issues/9871)
# 4.6.1 (2017-11-01)
* **Singlestat**: Lost thresholds when using save dashboard as [#9681](https://github.com/grafana/grafana/issues/9681)
* **Graph**: Fix for series override color picker [#9715](https://github.com/grafana/grafana/issues/9715)
* **Go**: build using golang 1.9.2 [#9713](https://github.com/grafana/grafana/issues/9713)
* **Plugins**: Fixed problem with loading plugin js files behind auth proxy [#9509](https://github.com/grafana/grafana/issues/9509)
* **Graphite**: Annotation tooltip should render empty string when undefined [#9707](https://github.com/grafana/grafana/issues/9707)
# 4.6.0 (2017-10-26)
## Fixes
* **Alerting**: Viewer can no longer pause alert rules [#9640](https://github.com/grafana/grafana/issues/9640)
* **Playlist**: Bug where playlist controls was missing [#9639](https://github.com/grafana/grafana/issues/9639)
* **Firefox**: Creating region annotations now work in firefox [#9638](https://github.com/grafana/grafana/issues/9638)
# 4.6.0-beta3 (2017-10-23)
## Fixes
* **Prometheus**: Fix for browser crash for short time ranges. [#9575](https://github.com/grafana/grafana/issues/9575)
* **Heatmap**: Fix for y-axis not showing. [#9576](https://github.com/grafana/grafana/issues/9576)
* **Save to file**: Fix for save to file in export modal. [#9586](https://github.com/grafana/grafana/issues/9586)
* **Postgres**: modify group by time macro so it can be used in select clause [#9527](https://github.com/grafana/grafana/pull/9527), thanks [@svenklemm](https://github.com/svenklemm)
# 4.6.0-beta2 (2017-10-17)
## Fixes
* **ColorPicker**: Fix for color picker not showing [#9549](https://github.com/grafana/grafana/issues/9549)
* **Alerting**: Fix for broken test rule button in alert tab [#9539](https://github.com/grafana/grafana/issues/9539)
* **Cloudwatch**: Provide error message when failing to add cloudwatch datasource [#9534](https://github.com/grafana/grafana/pull/9534), thx [@mtanda](https://github.com/mtanda)
* **Cloudwatch**: Fix unused period parameter [#9536](https://github.com/grafana/grafana/pull/9536), thx [@mtanda](https://github.com/mtanda)
* **CSV Export**: Fix for broken CSV export [#9525](https://github.com/grafana/grafana/issues/9525)
* **Text panel**: Fix for issue with break lines in Firefox [#9491](https://github.com/grafana/grafana/issues/9491)
* **Annotations**: Fix for issue saving annotation event in MySQL DB [#9550](https://github.com/grafana/grafana/issues/9550), thanks [@krise3k](https://github.com/krise3k)
# 4.6.0-beta1 (2017-10-13)
## New Features
* **Annotations**: Add support for creating annotations from graph panel [#8197](https://github.com/grafana/grafana/pull/8197)
* **GCS**: Adds support for Google Cloud Storage [#8370](https://github.com/grafana/grafana/issues/8370) thx [@chuhlomin](https://github.com/chuhlomin)
* **Prometheus**: Adds /metrics endpoint for exposing Grafana metrics. [#9187](https://github.com/grafana/grafana/pull/9187)
* **Graph**: Add support for local formating in axis. [#1395](https://github.com/grafana/grafana/issues/1395), thx [@m0nhawk](https://github.com/m0nhawk)
* **Jaeger**: Add support for open tracing using jaeger in Grafana. [#9213](https://github.com/grafana/grafana/pull/9213)
* **Unit types**: New date & time unit types added, useful in singlestat to show dates & times. [#3678](https://github.com/grafana/grafana/issues/3678), [#6710](https://github.com/grafana/grafana/issues/6710), [#2764](https://github.com/grafana/grafana/issues/2764)
* **CLI**: Make it possible to install plugins from any url [#5873](https://github.com/grafana/grafana/issues/5873)
* **Prometheus**: Add support for instant queries [#5765](https://github.com/grafana/grafana/issues/5765), thx [@mtanda](https://github.com/mtanda)
* **Cloudwatch**: Add support for alerting using the cloudwatch datasource [#8050](https://github.com/grafana/grafana/pull/8050), thx [@mtanda](https://github.com/mtanda)
* **Pagerduty**: Include triggering series in pagerduty notification [#8479](https://github.com/grafana/grafana/issues/8479), thx [@rickymoorhouse](https://github.com/rickymoorhouse)
* **Timezone**: Time ranges like Today & Yesterday now work correctly when timezone setting is set to UTC [#8916](https://github.com/grafana/grafana/issues/8916), thx [@ctide](https://github.com/ctide)
* **Prometheus**: Align $__interval with the step parameters. [#9226](https://github.com/grafana/grafana/pull/9226), thx [@alin-amana](https://github.com/alin-amana)
* **Prometheus**: Autocomplete for label name and label value [#9208](https://github.com/grafana/grafana/pull/9208), thx [@mtanda](https://github.com/mtanda)
* **Postgres**: New Postgres data source [#9209](https://github.com/grafana/grafana/pull/9209), thx [@svenklemm](https://github.com/svenklemm)
* **Datasources**: Make datasource HTTP requests verify TLS by default. closes [#9371](https://github.com/grafana/grafana/issues/9371), [#5334](https://github.com/grafana/grafana/issues/5334), [#8812](https://github.com/grafana/grafana/issues/8812), thx [@mattbostock](https://github.com/mattbostock)
* **OAuth**: Verify TLS during OAuth callback [#9373](https://github.com/grafana/grafana/issues/9373), thx [@mattbostock](https://github.com/mattbostock)
## Minor
* **SMTP**: Make it possible to set specific HELO for smtp client. [#9319](https://github.com/grafana/grafana/issues/9319)
* **Dataproxy**: Allow grafana to renegotiate tls connection [#9250](https://github.com/grafana/grafana/issues/9250)
* **HTTP**: set net.Dialer.DualStack to true for all http clients [#9367](https://github.com/grafana/grafana/pull/9367)
* **Alerting**: Add diff and percent diff as series reducers [#9386](https://github.com/grafana/grafana/pull/9386), thx [@shanhuhai5739](https://github.com/shanhuhai5739)
* **Slack**: Allow images to be uploaded to slack when Token is present [#7175](https://github.com/grafana/grafana/issues/7175), thx [@xginn8](https://github.com/xginn8)
* **Opsgenie**: Use their latest API instead of old version [#9399](https://github.com/grafana/grafana/pull/9399), thx [@cglrkn](https://github.com/cglrkn)
* **Table**: Add support for displaying the timestamp with milliseconds [#9429](https://github.com/grafana/grafana/pull/9429), thx [@s1061123](https://github.com/s1061123)
* **Hipchat**: Add metrics, message and image to hipchat notifications [#9110](https://github.com/grafana/grafana/issues/9110), thx [@eloo](https://github.com/eloo)
* **Kafka**: Add support for sending alert notifications to kafka [#7104](https://github.com/grafana/grafana/issues/7104), thx [@utkarshcmu](https://github.com/utkarshcmu)
* **Alerting**: add count_non_null as series reducer [#9516](https://github.com/grafana/grafana/issues/9516)
## Tech
* **Go**: Grafana is now built using golang 1.9
* **Webpack**: Changed from systemjs to webpack (see readme or building from source guide for new build instructions). Systemjs is still used to load plugins but now plugins can only import a limited set of dependencies. See [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/master/PLUGIN_DEV.md) for more details on how this can effect some plugins.
# 4.5.2 (2017-09-22)
## Fixes
* **Graphite**: Fix for issues with jsonData & graphiteVersion null errors [#9258](https://github.com/grafana/grafana/issues/9258)
* **Graphite**: Fix for Grafana internal metrics to Graphite sending NaN values [#9279](https://github.com/grafana/grafana/issues/9279)
* **HTTP API**: Fix for HEAD method requests [#9307](https://github.com/grafana/grafana/issues/9307)
* **Templating**: Fix for duplicate template variable queries when refresh is set to time range change [#9185](https://github.com/grafana/grafana/issues/9185)
* **Metrics**: dont write NaN values to graphite [#9279](https://github.com/grafana/grafana/issues/9279)
# 4.5.1 (2017-09-15)
## Fixes
* **MySQL**: Fixed issue with query editor not showing [#9247](https://github.com/grafana/grafana/issues/9247)
## Breaking changes
* **Metrics**: The metric structure for internal metrics about Grafana published to graphite has changed. This might break dashboards for internal metrics.
# 4.5.0 (2017-09-14)
## Fixes & Enhancements since beta1
* **Security**: Security fix for api vulnerability (in multiple org setups).
* **Shortcuts**: Adds shortcut for creating new dashboard [#8876](https://github.com/grafana/grafana/pull/8876) thx [@mtanda](https://github.com/mtanda)
* **Graph**: Right Y-Axis label position fixed [#9172](https://github.com/grafana/grafana/pull/9172)
* **General**: Improve rounding of time intervals [#9197](https://github.com/grafana/grafana/pull/9197), thx [@alin-amana](https://github.com/alin-amana)
# 4.5.0-beta1 (2017-09-05)
## New Features
@@ -26,6 +189,7 @@
### Breaking change
* **InfluxDB/Elasticsearch**: The panel & data source option named "Group by time interval" is now named "Min time interval" and does now always define a lower limit for the auto group by time. Without having to use `>` prefix (that prefix still works). This should in theory have close to zero actual impact on existing dashboards. It does mean that if you used this setting to define a hard group by time interval of, say "1d", if you zoomed to a time range wide enough the time range could increase above the "1d" range as the setting is now always considered a lower limit.
* **Elasticsearch**: Elasticsearch metric queries without date histogram now return table formated data making table panel much easier to use for this use case. Should not break/change existing dashboards with stock panels but external panel plugins can be affected.
## Changes
@@ -36,11 +200,6 @@
* **Modals**: Maintain scroll position after opening/leaving modal [#8800](https://github.com/grafana/grafana/issues/8800)
* **Templating**: You cannot select data source variables as data source for other template variables [#7510](https://github.com/grafana/grafana/issues/7510)
# 4.4.4 (unreleased)
## Bug Fixes
* **MySQL/Postgres**: Fix for max_idle_conn option default which was wrongly set to zero which does not mean unlimited but means zero, which in practice kind of disables connection pooling, which is not good. Fixes [#8513](https://github.com/grafana/grafana/issues/8513)
# 4.4.3 (2017-08-07)

View File

@@ -22,16 +22,17 @@ module.exports = function (grunt) {
}
}
config.coverage = grunt.option('coverage');
config.phjs = grunt.option('phjsToRelease');
config.pkg.version = grunt.option('pkgVer') || config.pkg.version;
console.log('Version', config.pkg.version);
// load plugins
require('load-grunt-tasks')(grunt);
// load task definitions
grunt.loadTasks('tasks');
grunt.loadTasks('./scripts/grunt');
// Utility function to load plugin settings into config
function loadConfig(config,path) {
@@ -46,7 +47,7 @@ module.exports = function (grunt) {
}
// Merge that object with what with whatever we have here
loadConfig(config,'./tasks/options/');
loadConfig(config,'./scripts/grunt/options/');
// pass the config to grunt
grunt.initConfig(config);
};

View File

@@ -1,14 +1,202 @@
Copyright 2014-2017 Torkel Ödegaard, Raintank Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
http://www.apache.org/licenses/LICENSE-2.0
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,16 +1,6 @@
This software is based on Kibana:
========================================
Copyright 2014-2017 Grafana Labs
This software is based on Kibana:
Copyright 2012-2013 Elasticsearch BV
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.

28
PLUGIN_DEV.md Normal file
View File

@@ -0,0 +1,28 @@
# Plugin Development
This document is not meant as complete guide for developing plugins but more as a changelog for changes in
Grafana that can impact plugin development. When ever you as plugin author encounter an issue with your plugin after
upgrading Grafana please check here before creating an issue.
## Links
- [Datasource plugin written in typescript](https://github.com/grafana/typescript-template-datasource)
- [Simple json dataource plugin](https://github.com/grafana/simple-json-datasource)
- [Plugin development guide](http://docs.grafana.org/plugins/developing/development/)
## Changes in v4.6
This version of Grafana has big changes that will impact a limited set of plugins. We moved from systemjs to webpack
for built-in plugins & everything internal. External plugins still use systemjs but now with a limited
set of Grafana components they can import. Plugins can depend on libs like lodash & moment and internal components
like before using the same import paths. However since everything in Grafana is no longer accessible, a few plugins could encounter issues when importing a Grafana dependency.
[List of exposed components plugins can import/require](https://github.com/grafana/grafana/blob/master/public/app/features/plugins/plugin_loader.ts#L48)
If you think we missed exposing a crucial lib or Grafana component let us know by opening an issue.
### Deprecated components
The angular directive `<spectrum-picker>` is now deprecated (will still work for a version more) but we recommend plugin authors
to upgrade to new `<color-picker color="ctrl.color" onChange="ctrl.onSparklineColorChange"></color-picker>`

138
README.md
View File

@@ -1,4 +1,4 @@
[Grafana](https://grafana.com) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) [![Go Report Card](https://goreportcard.com/badge/github.com/grafana/grafana)](https://goreportcard.com/report/github.com/grafana/grafana)
[Grafana](https://grafana.com) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) [![Go Report Card](https://goreportcard.com/badge/github.com/grafana/grafana)](https://goreportcard.com/report/github.com/grafana/grafana) [![codecov](https://codecov.io/gh/grafana/grafana/branch/master/graph/badge.svg)](https://codecov.io/gh/grafana/grafana)
================
[Website](https://grafana.com) |
[Twitter](https://twitter.com/grafana) |
@@ -9,65 +9,8 @@ Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.
![](http://docs.grafana.org/assets/img/features/dashboard_ex1.png)
- [Install instructions](http://docs.grafana.org/installation/)
- [What's New in Grafana 2.0](http://docs.grafana.org/guides/whats-new-in-v2/)
- [What's New in Grafana 2.1](http://docs.grafana.org/guides/whats-new-in-v2-1/)
- [What's New in Grafana 2.5](http://docs.grafana.org/guides/whats-new-in-v2-5/)
- [What's New in Grafana 3.0](http://docs.grafana.org/guides/whats-new-in-v3/)
- [What's New in Grafana 4.0](http://docs.grafana.org/guides/whats-new-in-v4/)
- [What's New in Grafana 4.1](http://docs.grafana.org/guides/whats-new-in-v4-1/)
- [What's New in Grafana 4.2](http://docs.grafana.org/guides/whats-new-in-v4-2/)
- [What's New in Grafana 4.3](http://docs.grafana.org/guides/whats-new-in-v4-3/)
- [What's New in Grafana 4.4](http://docs.grafana.org/guides/whats-new-in-v4-4/)
## Features
### Graphing
- Fast rendering, even over large timespans
- Click and drag to zoom
- Multiple Y-axis, logarithmic scales
- Bars, Lines, Points
- Smart Y-axis formatting
- Series toggles & color selector
- Legend values, and formatting options
- Grid thresholds, axis labels
- [Annotations](http://docs.grafana.org/reference/annotations/)
- Any panel can be rendered to PNG (server side using phantomjs)
### Dashboards
- Create, edit, save & search dashboards
- Change column spans and row heights
- Drag and drop panels to rearrange
- [Templating](http://docs.grafana.org/reference/templating/)
- [Scripted dashboards](http://docs.grafana.org/reference/scripting/)
- [Dashboard playlists](http://docs.grafana.org/reference/playlist/)
- [Time range controls](http://docs.grafana.org/reference/timerange/)
- [Share snapshots publicly](http://docs.grafana.org/v2.0/reference/sharing/)
### InfluxDB
- Use InfluxDB as a metric data source, annotation source
- Query editor with field and tag typeahead, easy group by and function selection
### Graphite
- Graphite target expression parser
- Feature rich query composer
- Quickly add and edit functions & parameters
- Templated queries
- [See it in action](http://docs.grafana.org/datasources/graphite/)
### Elasticsearch, Prometheus & OpenTSDB
- Feature rich query editor UI
### Alerting
- Define alert rules using graphs & query conditions
- Schedule & evalute alert rules, send notifications to Slack, Hipchat, Email, PagerDuty, etc.
## Requirements
There are no dependencies except an external time series data store. For dashboards and user accounts Grafana can use an embedded
database (sqlite3) or you can use an external SQL data base like MySQL or Postgres.
## Installation
Head to [grafana.org](http://docs.grafana.org/installation/) and [download](https://grafana.com/get)
Head to [docs.grafana.org](http://docs.grafana.org/installation/) and [download](https://grafana.com/get)
the latest release.
If you have any problems please read the [troubleshooting guide](http://docs.grafana.org/installation/troubleshooting/).
@@ -76,43 +19,25 @@ If you have any problems please read the [troubleshooting guide](http://docs.gra
Be sure to read the [getting started guide](http://docs.grafana.org/guides/gettingstarted/) and the other feature guides.
## Run from master
If you want to build a package yourself, or contribute. Here is a guide for how to do that. You can always find
If you want to build a package yourself, or contribute - Here is a guide for how to do that. You can always find
the latest master builds [here](https://grafana.com/grafana/download)
### Dependencies
- Go 1.8.1
- Go 1.9
- NodeJS LTS
### Get Code
```bash
go get github.com/grafana/grafana
```
Since imports of dependencies use the absolute path `github.com/grafana/grafana` within the `$GOPATH`,
you will need to put your version of the code in `$GOPATH/src/github.com/grafana/grafana` to be able
to develop and build grafana on a cloned repository. To do so, you can clone your forked repository
directly to `$GOPATH/src/github.com/grafana` or you can create a symbolic link from your version
of the code to `$GOPATH/src/github.com/grafana/grafana`. The last options makes it possible to change
easily the grafana repository you want to build.
```bash
go get github.com/*your_account*/grafana
mkdir $GOPATH/src/github.com/grafana
ln -s $GOPATH/src/github.com/*your_account*/grafana $GOPATH/src/github.com/grafana/grafana
```
### Building the backend
```bash
cd $GOPATH/src/github.com/grafana/grafana
go get github.com/grafana/grafana
cd ~/go/src/github.com/grafana/grafana
go run build.go setup
go run build.go build
```
### Building frontend assets
To build less to css for the frontend you will need a recent version of **node (v6+)**,
npm (v2.5.0) and grunt (v0.4.5). Run the following:
For this you need nodejs (v.6+).
```bash
npm install -g yarn
@@ -120,25 +45,30 @@ yarn install --pure-lockfile
npm run build
```
To build the frontend assets only on changes:
To rebuild frontend assets (typescript, sass etc) as you change them start the watcher via.
```bash
sudo npm install -g grunt-cli # to do only once to install grunt command line interface
grunt && grunt watch
npm run watch
```
Run tests
```bash
npm run test
```
Run tests in watch mode
```bash
npm run watch-test
```
### Recompile backend on source change
To rebuild on source change.
```bash
go get github.com/Unknwon/bra
bra run
```
### Running
```bash
./bin/grafana-server
```
Open grafana in your browser (default: `http://localhost:3000`) and login with admin user (default: `user/pass = admin/admin`).
### Dev config
@@ -149,14 +79,34 @@ You only need to add the options you want to override. Config files are applied
1. grafana.ini
1. custom.ini
## Create a pull request
Before or after you create a pull request, sign the [contributor license agreement](http://docs.grafana.org/project/cla/).
In your custom.ini uncomment (remove the leading `;`) sign. And set `app_mode = development`.
### Running tests
- You can run backend Golang tests using "go test ./pkg/...".
- Execute all frontend tests with "npm run test"
Writing & watching frontend tests (we have two test runners)
- jest for all new tests that do not require browser context (React+more)
- Start watcher: `npm run jest`
- Jest will run all test files that end with the name ".jest.ts"
- karma + mocha is used for testing angularjs components. We do want to migrate these test to jest over time (if possible).
- Start watcher: `npm run karma`
- Karma+Mocha runs all files that end with the name "_specs.ts".
## Contribute
If you have any idea for an improvement or found a bug do not hesitate to open an issue.
If you have any idea for an improvement or found a bug, do not hesitate to open an issue.
And if you have time clone this repo and submit a pull request and help me make Grafana
the kickass metrics & devops dashboard we all dream about!
## Plugin development
Checkout the [Plugin Development Guide](http://docs.grafana.org/plugins/developing/development/) and checkout the [PLUGIN_DEV.md](https://github.com/grafana/grafana/blob/master/PLUGIN_DEV.md) file for changes in Grafana that relate to
plugin development.
## License
Grafana is distributed under Apache 2.0 License.
Work in progress Grafana 2.0 (with included Grafana backend)

View File

@@ -1,29 +1,36 @@
# Roadmap (2017-08-29)
# Roadmap (2017-10-31)
This roadmap is a tentative plan for the core development team. Things change constantly as PRs come in and priorities change.
But it will give you an idea of our current vision and plan.
### Short term (1-4 months)
- Release Grafana v4.5 with fixes and minor enhancements
- Release Grafana v5
- User groups
- Dashboard folders
- Dashboard permissions (on folders as well), permissions on groups or users
- Dashboard & folder permissions (assigned to users or groups)
- New Dashboard layout engine
- New sidemenu & nav UX
- Elasticsearch alerting
- React migration foundation (core components)
- Graphite 1.1 Tags Support
### Long term
### Long term (4 - 8 months)
- Backend plugins to support more Auth options, Alerting data sources & notifications
- Universial time series transformations for any data source (meta queries)
- Reporting
- Web socket & live data streams
- Migrate to Angular2 or react
- Alerting improvements (silence, per series tracking, etc)
- Dashboard as configuration and other automation / provisioning improvements
- Progress on React migration
- Change visualization (panel type) on the fly.
- Multi stat panel (vertical version of singlestat with bars/graph mode with big number etc)
- Repeat panel by query results
### In a distant future far far away
- Meta queries
- Integrated light weight TSDB
- Web socket & live data sources
### Outside contributions
We know this is being worked on right now by contributors (and we hope to merge it when it's ready).
- Clustering for alert engine (load distribution)

View File

@@ -7,7 +7,7 @@ clone_folder: c:\gopath\src\github.com\grafana\grafana
environment:
nodejs_version: "6"
GOPATH: c:\gopath
GOVERSION: 1.8
GOVERSION: 1.9.2
install:
- rmdir c:\go /s /q

View File

@@ -1,26 +0,0 @@
{
"name": "grafana",
"version": "2.0.2",
"homepage": "https://github.com/grafana/grafana",
"authors": [],
"license": "Apache 2.0",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"public/vendor/",
"test",
"tests"
],
"dependencies": {
"jquery": "3.1.0",
"lodash": "4.15.0",
"angular": "1.6.1",
"angular-route": "1.6.1",
"angular-mocks": "1.6.1",
"angular-sanitize": "1.6.1",
"angular-native-dragdrop": "1.2.2",
"angular-bindonce": "0.3.3",
"clipboard": "^1.5.16"
}
}

View File

@@ -95,9 +95,9 @@ func main() {
case "package":
grunt(gruntBuildArg("release")...)
if runtime.GOOS != "windows" {
createLinuxPackages()
}
if runtime.GOOS != "windows" {
createLinuxPackages()
}
case "pkg-rpm":
grunt(gruntBuildArg("release")...)

View File

@@ -1,6 +1,6 @@
machine:
node:
version: 6.9.2
version: 6.11.4
python:
version: 2.7.3
services:
@@ -9,7 +9,7 @@ machine:
GOPATH: "/home/ubuntu/.go_workspace"
ORG_PATH: "github.com/grafana"
REPO_PATH: "${ORG_PATH}/grafana"
GODIST: "go1.8.linux-amd64.tar.gz"
GODIST: "go1.9.2.linux-amd64.tar.gz"
post:
- mkdir -p ~/download
- mkdir -p ~/docker
@@ -30,10 +30,10 @@ dependencies:
- sudo apt-get update; sudo apt-get install rpm; sudo apt-get install expect
- ./scripts/build/build_container.sh
test:
override:
- bash scripts/circle-test.sh
- bash scripts/circle-test-frontend.sh
- bash scripts/circle-test-backend.sh
deployment:
gh_branch:

13
codecov.yml Normal file
View File

@@ -0,0 +1,13 @@
coverage:
precision: 2
round: down
range: "50...100"
status:
project: yes
patch: yes
changes: no
comment:
layout: "diff"
behavior: "once"

View File

@@ -12,17 +12,17 @@ instance_name = ${HOSTNAME}
#################################### Paths ###############################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
data = data
#
# Directory where grafana can store logs
#
logs = data/log
#
# Directory where grafana will automatically scan and look for plugins
#
plugins = data/plugins
# folder that contains provisioning config files that grafana will apply on startup and while running.
provisioning = conf/provisioning
#################################### Server ##############################
[server]
# Protocol (http, https, socket)
@@ -82,6 +82,9 @@ max_idle_conn = 2
# Max conn setting default is 0 (mean not set)
max_open_conn =
# Set to true to log the sql calls and execution times.
log_queries =
# For "postgres", use either "disable", "require" or "verify-full"
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode = disable
@@ -171,6 +174,7 @@ disable_gravatar = false
# data source proxy whitelist (ip_or_domain:port separated by spaces)
data_source_proxy_whitelist =
#################################### Snapshots ###########################
[snapshots]
# snapshot sharing options
external_enabled = true
@@ -183,7 +187,13 @@ snapshot_remove_expired = true
# remove snapshots after 90 days
snapshot_TTL_days = 90
#################################### Users ####################################
#################################### Dashboards ##################
[dashboards]
# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
versions_to_keep = 20
#################################### Users ###############################
[users]
# disable user signup / registration
allow_sign_up = false
@@ -211,6 +221,9 @@ external_manage_link_url =
external_manage_link_name =
external_manage_info =
# Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard.
viewers_can_edit = false
[auth]
# Set to true to disable (hide) the login form, useful if you use OAuth
disable_login_form = false
@@ -318,6 +331,7 @@ key_file =
skip_verify = false
from_address = admin@grafana.localhost
from_name = Grafana
ehlo_identity =
[emails]
welcome_email_on_sign_up = false
@@ -380,18 +394,6 @@ facility =
# Syslog tag. By default, the process' argv[0] is used.
tag =
#################################### AMQP Event Publisher ################
[event_publisher]
enabled = false
rabbitmq_url = amqp://localhost/
exchange = grafana_events
#################################### Dashboard JSON files ################
[dashboards.json]
enabled = false
path = /var/lib/grafana/dashboards
#################################### Usage Quotas ########################
[quota]
enabled = false
@@ -435,7 +437,7 @@ enabled = true
execute_alerts = true
#################################### Internal Grafana Metrics ############
# Metrics available at HTTP API Url /api/metrics
# Metrics available at HTTP API Url /metrics
[metrics]
enabled = true
interval_seconds = 10
@@ -452,13 +454,33 @@ url = https://grafana.com
[grafana_com]
url = https://grafana.com
#################################### Distributed tracing ############
[tracing.jaeger]
# jaeger destination (ex localhost:6831)
address =
# tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
always_included_tag =
# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
sampler_type = const
# jaeger samplerconfig param
# for "const" sampler, 0 or 1 for always false/true respectively
# for "probabilistic" sampler, a probability between 0 and 1
# for "rateLimiting" sampler, the number of spans per second
# for "remote" sampler, param is the same as for "probabilistic"
# and indicates the initial sampling rate before the actual one
# is received from the mothership
sampler_param = 1
#################################### External Image Storage ##############
[external_image_storage]
# You can choose between (s3, webdav)
# You can choose between (s3, webdav, gcs)
provider =
[external_image_storage.s3]
bucket_url =
bucket =
region =
path =
access_key =
secret_key =
@@ -467,3 +489,8 @@ url =
username =
password =
public_url =
[external_image_storage.gcs]
key_file =
bucket =
path =

View File

@@ -0,0 +1,6 @@
# - name: 'default'
# org_id: 1
# folder: ''
# type: file
# options:
# folder: /var/lib/grafana/dashboards

View File

@@ -0,0 +1,48 @@
# # list of datasources that should be deleted from the database
#delete_datasources:
# - name: Graphite
# org_id: 1
# # list of datasources to insert/update depending
# # whats available in the datbase
#datasources:
# # <string, required> name of the datasource. Required
# - name: Graphite
# # <string, required> datasource type. Required
# type: graphite
# # <string, required> access mode. direct or proxy. Required
# access: proxy
# # <int> org id. will default to org_id 1 if not specified
# org_id: 1
# # <string> url
# url: http://localhost:8080
# # <string> database password, if used
# password:
# # <string> database user, if used
# user:
# # <string> database name, if used
# database:
# # <bool> enable/disable basic auth
# basic_auth:
# # <string> basic auth username
# basic_auth_user:
# # <string> basic auth password
# basic_auth_password:
# # <bool> enable/disable with credentials headers
# with_credentials:
# # <bool> mark as default datasource. Max one per org
# is_default:
# # <map> fields that will be converted to json and stored in json_data
# json_data:
# graphiteVersion: "1.1"
# tlsAuth: true
# tlsAuthWithCACert: true
# # <string> json object of data that will be encrypted.
# secure_json_data:
# tlsCACert: "..."
# tlsClientCert: "..."
# tlsClientKey: "..."
# version: 1
# # <bool> allow users to edit datasources from the UI.
# editable: false

View File

@@ -12,18 +12,17 @@
#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
#
;data = /var/lib/grafana
#
# Directory where grafana can store logs
#
;logs = /var/log/grafana
#
# Directory where grafana will automatically scan and look for plugins
#
;plugins = /var/lib/grafana/plugins
#
# folder that contains provisioning config files that grafana will apply on startup and while running.
; provisioning = conf/provisioning
#################################### Server ####################################
[server]
# Protocol (http, https, socket)
@@ -91,6 +90,8 @@
# Max conn setting default is 0 (mean not set)
;max_open_conn =
# Set to true to log the sql calls and execution times.
log_queries =
#################################### Session ####################################
[session]
@@ -161,6 +162,7 @@
# data source proxy whitelist (ip_or_domain:port separated by spaces)
;data_source_proxy_whitelist =
#################################### Snapshots ###########################
[snapshots]
# snapshot sharing options
;external_enabled = true
@@ -173,7 +175,12 @@
# remove snapshots after 90 days
;snapshot_TTL_days = 90
#################################### Users ####################################
#################################### Dashboards History ##################
[dashboards]
# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
;versions_to_keep = 20
#################################### Users ###############################
[users]
# disable user signup / registration
;allow_sign_up = true
@@ -198,6 +205,9 @@
;external_manage_link_name =
;external_manage_info =
# Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard.
;viewers_can_edit = false
[auth]
# Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false
;disable_login_form = false
@@ -295,6 +305,8 @@
;skip_verify = false
;from_address = admin@grafana.localhost
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
[emails]
;welcome_email_on_sign_up = false
@@ -358,17 +370,6 @@
;tag =
#################################### AMQP Event Publisher ##########################
[event_publisher]
;enabled = false
;rabbitmq_url = amqp://localhost/
;exchange = grafana_events
;#################################### Dashboard JSON files ##########################
[dashboards.json]
;enabled = false
;path = /var/lib/grafana/dashboards
#################################### Alerting ############################
[alerting]
# Disable alerting engine & UI features
@@ -377,7 +378,7 @@
;execute_alerts = true
#################################### Internal Grafana Metrics ##########################
# Metrics available at HTTP API Url /api/metrics
# Metrics available at HTTP API Url /metrics
[metrics]
# Disable / Enable internal metrics
;enabled = true
@@ -391,6 +392,23 @@
;address =
;prefix = prod.grafana.%(instance_name)s.
#################################### Distributed tracing ############
[tracing.jaeger]
# Enable by setting the address sending traces to jaeger (ex localhost:6831)
;address = localhost:6831
# Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
;always_included_tag = tag1:value1
# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
;sampler_type = const
# jaeger samplerconfig param
# for "const" sampler, 0 or 1 for always false/true respectively
# for "probabilistic" sampler, a probability between 0 and 1
# for "rateLimiting" sampler, the number of spans per second
# for "remote" sampler, param is the same as for "probabilistic"
# and indicates the initial sampling rate before the actual one
# is received from the mothership
;sampler_param = 1
#################################### Grafana.com integration ##########################
# Url used to to import dashboards directly from Grafana.com
[grafana_com]
@@ -399,11 +417,13 @@
#################################### External image storage ##########################
[external_image_storage]
# Used for uploading images to public servers so they can be included in slack/email messages.
# you can choose between (s3, webdav)
# you can choose between (s3, webdav, gcs)
;provider =
[external_image_storage.s3]
;bucket_url =
;bucket =
;region =
;path =
;access_key =
;secret_key =
@@ -412,3 +432,8 @@
;public_url =
;username =
;password =
[external_image_storage.gcs]
;key_file =
;bucket =
;path =

View File

@@ -0,0 +1,11 @@
collectd:
build: blocks/collectd
environment:
HOST_NAME: myserver
GRAPHITE_HOST: graphite
GRAPHITE_PORT: 2003
GRAPHITE_PREFIX: collectd.
REPORT_BY_CPU: 'false'
COLLECT_INTERVAL: 10
links:
- graphite

View File

@@ -1,11 +0,0 @@
collectd:
build: blocks/collectd
environment:
HOST_NAME: myserver
GRAPHITE_HOST: graphite
GRAPHITE_PORT: 2003
GRAPHITE_PREFIX: collectd.
REPORT_BY_CPU: 'false'
COLLECT_INTERVAL: 10
links:
- graphite

View File

@@ -0,0 +1,8 @@
elasticsearch:
image: elasticsearch:2.4.1
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

View File

@@ -1,8 +0,0 @@
elasticsearch:
image: elasticsearch:2.4.1
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

View File

@@ -0,0 +1,8 @@
elasticsearch1:
image: elasticsearch:1.7.6
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "11200:9200"
- "11300:9300"
volumes:
- ./blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

View File

@@ -1,8 +0,0 @@
elasticsearch1:
image: elasticsearch:1.7.6
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "11200:9200"
- "11300:9300"
volumes:
- ./blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

View File

@@ -0,0 +1,8 @@
# You need to run 'sysctl -w vm.max_map_count=262144' on the host machine
elasticsearch5:
image: elasticsearch:5
command: elasticsearch
ports:
- "10200:9200"
- "10300:9300"

View File

@@ -1,8 +0,0 @@
# You need to run 'sysctl -w vm.max_map_count=262144' on the host machine
elasticsearch5:
image: elasticsearch:5
command: elasticsearch
ports:
- "10200:9200"
- "10300:9300"

View File

@@ -0,0 +1,16 @@
graphite09:
build: blocks/graphite
ports:
- "8080:80"
- "2003:2003"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
fake-graphite-data:
image: grafana/fake-data-gen
network_mode: bridge
environment:
FD_DATASOURCE: graphite
FD_PORT: 2003

View File

@@ -1,16 +0,0 @@
graphite:
build: blocks/graphite
ports:
- "8080:80"
- "2003:2003"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
fake-graphite-data:
image: grafana/fake-data-gen
net: bridge
environment:
FD_DATASOURCE: graphite
FD_PORT: 2003

View File

@@ -1,9 +1,10 @@
FROM phusion/baseimage:0.9.22
MAINTAINER Denys Zhdanov <denis.zhdanov@gmail.com>
RUN apt-get -y update \
&& apt-get -y upgrade \
&& apt-get -y --force-yes install vim \
&& apt-get -y install vim \
nginx \
python-dev \
python-flup \
@@ -22,38 +23,67 @@ RUN apt-get -y update \
nodejs \
&& rm -rf /var/lib/apt/lists/*
# choose a timezone at build-time
# use `--build-arg CONTAINER_TIMEZONE=Europe/Brussels` in `docker build`
ARG CONTAINER_TIMEZONE
ENV DEBIAN_FRONTEND noninteractive
RUN if [ ! -z "${CONTAINER_TIMEZONE}" ]; \
then ln -sf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata; \
fi
# fix python dependencies (LTS Django and newer memcached/txAMQP)
RUN pip install django==1.8.18 \
RUN pip install --upgrade pip && \
pip install django==1.8.18 \
python-memcached==1.53 \
txAMQP==0.6.2 \
&& pip install --upgrade pip
txAMQP==0.6.2
ARG version=1.0.2
ARG whisper_version=${version}
ARG carbon_version=${version}
ARG graphite_version=${version}
RUN echo "Building Version: $version"
ARG whisper_repo=https://github.com/graphite-project/whisper.git
ARG carbon_repo=https://github.com/graphite-project/carbon.git
ARG graphite_repo=https://github.com/graphite-project/graphite-web.git
ARG statsd_version=v0.8.0
ARG statsd_repo=https://github.com/etsy/statsd.git
# install whisper
RUN git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/whisper.git /usr/local/src/whisper
RUN git clone -b ${whisper_version} --depth 1 ${whisper_repo} /usr/local/src/whisper
WORKDIR /usr/local/src/whisper
RUN python ./setup.py install
# install carbon
RUN git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/carbon.git /usr/local/src/carbon
RUN git clone -b ${carbon_version} --depth 1 ${carbon_repo} /usr/local/src/carbon
WORKDIR /usr/local/src/carbon
RUN pip install -r requirements.txt \
&& python ./setup.py install
# install graphite
RUN git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/graphite-web.git /usr/local/src/graphite-web
RUN git clone -b ${graphite_version} --depth 1 ${graphite_repo} /usr/local/src/graphite-web
WORKDIR /usr/local/src/graphite-web
RUN pip install -r requirements.txt \
&& python ./setup.py install
# install statsd
RUN git clone -b ${statsd_version} ${statsd_repo} /opt/statsd
# config graphite
ADD conf/opt/graphite/conf/*.conf /opt/graphite/conf/
ADD conf/opt/graphite/webapp/graphite/local_settings.py /opt/graphite/webapp/graphite/local_settings.py
ADD conf/opt/graphite/webapp/graphite/app_settings.py /opt/graphite/webapp/graphite/app_settings.py
# ADD conf/opt/graphite/webapp/graphite/app_settings.py /opt/graphite/webapp/graphite/app_settings.py
WORKDIR /opt/graphite/webapp
RUN mkdir -p /var/log/graphite/ \
&& PYTHONPATH=/opt/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings
# install statsd
RUN git clone -b v0.7.2 https://github.com/etsy/statsd.git /opt/statsd
ADD conf/opt/statsd/config.js /opt/statsd/config.js
# config statsd
ADD conf/opt/statsd/config.js /opt/statsd/
# config nginx
RUN rm /etc/nginx/sites-enabled/default
@@ -63,8 +93,7 @@ ADD conf/etc/nginx/sites-enabled/graphite-statsd.conf /etc/nginx/sites-enabled/g
# init django admin
ADD conf/usr/local/bin/django_admin_init.exp /usr/local/bin/django_admin_init.exp
ADD conf/usr/local/bin/manage.sh /usr/local/bin/manage.sh
RUN chmod +x /usr/local/bin/manage.sh \
&& /usr/local/bin/django_admin_init.exp
RUN chmod +x /usr/local/bin/manage.sh && /usr/local/bin/django_admin_init.exp
# logging support
RUN mkdir -p /var/log/carbon /var/log/graphite /var/log/nginx
@@ -86,8 +115,10 @@ RUN apt-get clean\
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# defaults
EXPOSE 80 2003-2004 2023-2024 8125/udp 8126
EXPOSE 80 2003-2004 2023-2024 8125 8125/udp 8126
VOLUME ["/opt/graphite/conf", "/opt/graphite/storage", "/etc/nginx", "/opt/statsd", "/etc/logrotate.d", "/var/log"]
WORKDIR /
ENV HOME /root
ENV STATSD_INTERFACE udp
CMD ["/sbin/my_init"]

View File

@@ -12,7 +12,7 @@ graphite_conf_dir_contents=$(find /opt/graphite/conf -mindepth 1 -print -quit)
graphite_webapp_dir_contents=$(find /opt/graphite/webapp/graphite -mindepth 1 -print -quit)
graphite_storage_dir_contents=$(find /opt/graphite/storage -mindepth 1 -print -quit)
if [[ -z $graphite_dir_contents ]]; then
git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/graphite-web.git /usr/local/src/graphite-web
# git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/graphite-web.git /usr/local/src/graphite-web
cd /usr/local/src/graphite-web && python ./setup.py install
fi
if [[ -z $graphite_storage_dir_contents ]]; then

View File

@@ -8,18 +8,18 @@
# Defaults to ../
# GRAPHITE_CONF_DIR - Configuration directory (where this file lives).
# Defaults to $GRAPHITE_ROOT/conf/
# GRAPHITE_STORAGE_DIR - Storage directory for whipser/rrd/log/pid files.
# GRAPHITE_STORAGE_DIR - Storage directory for whisper/rrd/log/pid files.
# Defaults to $GRAPHITE_ROOT/storage/
#
# To change other directory paths, add settings to this file. The following
# configuration variables are available with these default values:
#
# STORAGE_DIR = $GRAPHITE_STORAGE_DIR
# LOCAL_DATA_DIR = STORAGE_DIR/whisper/
# WHITELISTS_DIR = STORAGE_DIR/lists/
# CONF_DIR = STORAGE_DIR/conf/
# LOG_DIR = STORAGE_DIR/log/
# PID_DIR = STORAGE_DIR/
# LOCAL_DATA_DIR = %(STORAGE_DIR)s/whisper/
# WHITELISTS_DIR = %(STORAGE_DIR)s/lists/
# CONF_DIR = %(STORAGE_DIR)s/conf/
# LOG_DIR = %(STORAGE_DIR)s/log/
# PID_DIR = %(STORAGE_DIR)s/
#
# For FHS style directory structures, use:
#
@@ -30,20 +30,30 @@
#
#LOCAL_DATA_DIR = /opt/graphite/storage/whisper/
# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate
# Specify the database library used to store metric data on disk. Each database
# may have configurable options to change the behaviour of how it writes to
# persistent storage.
#
# whisper - Fixed-size database, similar in design and purpose to RRD. This is
# the default storage backend for carbon and the most rigorously tested.
#
# ceres - Experimental alternative database that supports storing data in sparse
# files of arbitrary fixed-size resolutions.
DATABASE = whisper
# Enable daily log rotation. If disabled, a new file will be opened whenever the log file path no
# longer exists (i.e. it is removed or renamed)
ENABLE_LOGROTATION = True
# Specify the user to drop privileges to
# If this is blank carbon runs as the user that invokes it
# If this is blank carbon-cache runs as the user that invokes it
# This user must have write access to the local data directory
USER =
#
# NOTE: The above settings must be set under [relay] and [aggregator]
# to take effect for those daemons as well
# Limit the size of the cache to avoid swapping or becoming CPU bound.
# Sorts and serving cache queries gets more expensive as the cache grows.
# Use the value "inf" (infinity) for an unlimited cache size.
# value should be an integer number of metric datapoints.
MAX_CACHE_SIZE = inf
# Limits the number of whisper update_many() calls per second, which effectively
@@ -60,14 +70,30 @@ MAX_UPDATES_PER_SECOND = 500
# MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 1000
# Softly limits the number of whisper files that get created each minute.
# Setting this value low (like at 50) is a good way to ensure your graphite
# Setting this value low (e.g. 50) is a good way to ensure that your carbon
# system will not be adversely impacted when a bunch of new metrics are
# sent to it. The trade off is that it will take much longer for those metrics'
# database files to all get created and thus longer until the data becomes usable.
# Setting this value high (like "inf" for infinity) will cause graphite to create
# the files quickly but at the risk of slowing I/O down considerably for a while.
# sent to it. The trade off is that any metrics received in excess of this
# value will be silently dropped, and the whisper file will not be created
# until such point as a subsequent metric is received and fits within the
# defined rate limit. Setting this value high (like "inf" for infinity) will
# cause carbon to create the files quickly but at the risk of increased I/O.
MAX_CREATES_PER_MINUTE = 50
# Set the minimum timestamp resolution supported by this instance. This allows
# internal optimisations by overwriting points with equal truncated timestamps
# in order to limit the number of updates to the database. It defaults to one
# second.
MIN_TIMESTAMP_RESOLUTION = 1
# Set the minimum lag in seconds for a point to be written to the database
# in order to optimize batching. This means that each point will wait at least
# the duration of this lag before being written. Setting this to 0 disable the feature.
# This currently only works when using the timesorted write strategy.
# MIN_TIMESTAMP_LAG = 0
# Set the interface and port for the line (plain text) listener. Setting the
# interface to 0.0.0.0 listens on all interfaces. Port can be set to 0 to
# disable this listener if it is not required.
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2003
@@ -78,11 +104,23 @@ ENABLE_UDP_LISTENER = False
UDP_RECEIVER_INTERFACE = 0.0.0.0
UDP_RECEIVER_PORT = 2003
# Set the interface and port for the pickle listener. Setting the interface to
# 0.0.0.0 listens on all interfaces. Port can be set to 0 to disable this
# listener if it is not required.
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2004
# Set to false to disable logging of successful connections
LOG_LISTENER_CONNECTIONS = True
# Set the interface and port for the protobuf listener. Setting the interface to
# 0.0.0.0 listens on all interfaces. Port can be set to 0 to disable this
# listener if it is not required.
# PROTOBUF_RECEIVER_INTERFACE = 0.0.0.0
# PROTOBUF_RECEIVER_PORT = 2005
# Limit the number of open connections the receiver can handle as any time.
# Default is no limit. Setting up a limit for sites handling high volume
# traffic may be recommended to avoid running out of TCP memory or having
# thousands of TCP connections reduce the throughput of the service.
#MAX_RECEIVER_CONNECTIONS = inf
# Per security concerns outlined in Bug #817247 the pickle receiver
# will use a more secure and slightly less efficient unpickler.
@@ -98,13 +136,19 @@ CACHE_QUERY_PORT = 7002
# data until the cache size falls below 95% MAX_CACHE_SIZE.
USE_FLOW_CONTROL = True
# By default, carbon-cache will log every whisper update and cache hit. This can be excessive and
# degrade performance if logging on the same volume as the whisper data is stored.
LOG_UPDATES = False
LOG_CACHE_HITS = False
LOG_CACHE_QUEUE_SORTS = True
# If enabled this setting is used to timeout metric client connection if no
# metrics have been sent in specified time in seconds
#METRIC_CLIENT_IDLE_TIMEOUT = None
# The thread that writes metrics to disk can use on of the following strategies
# By default, carbon-cache will log every whisper update and cache hit.
# This can be excessive and degrade performance if logging on the same
# volume as the whisper data is stored.
LOG_UPDATES = False
LOG_CREATES = False
LOG_CACHE_HITS = False
LOG_CACHE_QUEUE_SORTS = False
# The thread that writes metrics to disk can use one of the following strategies
# determining the order in which metrics are removed from cache and flushed to
# disk. The default option preserves the same behavior as has been historically
# available in version 0.9.10.
@@ -114,6 +158,12 @@ LOG_CACHE_QUEUE_SORTS = True
# moment of the list's creation. Metrics will then be flushed from the cache to
# disk in that order.
#
# timesorted - All metrics in the list will be looked at and sorted according
# to the timestamp of there datapoints. The metric that were the least recently
# written will be written first. This is an hybrid strategy between max and
# sorted which is particularly adapted to sets of metrics with non-uniform
# resolutions.
#
# max - The writer thread will always pop and flush the metric from cache
# that has the most datapoints. This will give a strong flush preference to
# frequently updated metrics and will also reduce random file-io. Infrequently
@@ -152,12 +202,61 @@ WHISPER_FALLOCATE_CREATE = True
# Enabling this option will cause Whisper to lock each Whisper file it writes
# to with an exclusive lock (LOCK_EX, see: man 2 flock). This is useful when
# multiple carbon-cache daemons are writing to the same files
# multiple carbon-cache daemons are writing to the same files.
# WHISPER_LOCK_WRITES = False
# On systems which has a large number of metrics, an amount of Whisper write(2)'s
# pageback sometimes cause disk thrashing due to memory shortage, so that abnormal
# disk reads occur. Enabling this option makes it possible to decrease useless
# page cache memory by posix_fadvise(2) with POSIX_FADVISE_RANDOM option.
# WHISPER_FADVISE_RANDOM = False
# By default all nodes stored in Ceres are cached in memory to improve the
# throughput of reads and writes to underlying slices. Turning this off will
# greatly reduce memory consumption for databases with millions of metrics, at
# the cost of a steep increase in disk i/o, approximately an extra two os.stat
# calls for every read and write. Reasons to do this are if the underlying
# storage can handle stat() with practically zero cost (SSD, NVMe, zRAM).
# Valid values are:
# all - all nodes are cached
# none - node caching is disabled
# CERES_NODE_CACHING_BEHAVIOR = all
# Ceres nodes can have many slices and caching the right ones can improve
# performance dramatically. Note that there are many trade-offs to tinkering
# with this, and unless you are a ceres developer you *really* should not
# mess with this. Valid values are:
# latest - only the most recent slice is cached
# all - all slices are cached
# none - slice caching is disabled
# CERES_SLICE_CACHING_BEHAVIOR = latest
# If a Ceres node accumulates too many slices, performance can suffer.
# This can be caused by intermittently reported data. To mitigate
# slice fragmentation there is a tolerance for how much space can be
# wasted within a slice file to avoid creating a new one. That tolerance
# level is determined by MAX_SLICE_GAP, which is the number of consecutive
# null datapoints allowed in a slice file.
# If you set this very low, you will waste less of the *tiny* bit disk space
# that this feature wastes, and you will be prone to performance problems
# caused by slice fragmentation, which can be pretty severe.
# If you set this really high, you will waste a bit more disk space (each
# null datapoint wastes 8 bytes, but keep in mind your filesystem's block
# size). If you suffer slice fragmentation issues, you should increase this or
# run the ceres-maintenance defrag plugin more often. However you should not
# set it to be huge because then if a large but allowed gap occurs it has to
# get filled in, which means instead of a simple 8-byte write to a new file we
# could end up doing an (8 * MAX_SLICE_GAP)-byte write to the latest slice.
# CERES_MAX_SLICE_GAP = 80
# Enabling this option will cause Ceres to lock each Ceres file it writes to
# to with an exclusive lock (LOCK_EX, see: man 2 flock). This is useful when
# multiple carbon-cache daemons are writing to the same files.
# CERES_LOCK_WRITES = False
# Set this to True to enable whitelisting and blacklisting of metrics in
# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
# empty, all metrics will pass through
# CONF_DIR/whitelist.conf and CONF_DIR/blacklist.conf. If the whitelist is
# missing or empty, all metrics will pass through
# USE_WHITELIST = False
# By default, carbon itself will log statistics (such as a count,
@@ -203,16 +302,25 @@ WHISPER_FALLOCATE_CREATE = True
# Example: store everything
# BIND_PATTERNS = #
# URL of graphite-web instance, this is used to add incoming series to the tag database
GRAPHITE_URL = http://127.0.0.1:80
# Tag update interval, this specifies how frequently updates to existing series will trigger
# an update to the tag index, the default setting is once every 100 updates
# TAG_UPDATE_INTERVAL = 100
# To configure special settings for the carbon-cache instance 'b', uncomment this:
#[cache:b]
#LINE_RECEIVER_PORT = 2103
#PICKLE_RECEIVER_PORT = 2104
#CACHE_QUERY_PORT = 7102
# and any other settings you want to customize, defaults are inherited
# from [carbon] section.
# from the [cache] section.
# You can then specify the --instance=b option to manage this instance
#
# In order to turn off logging of successful connections for the line
# receiver, set this to False
# LOG_LISTENER_CONN_SUCCESS = True
[relay]
LINE_RECEIVER_INTERFACE = 0.0.0.0
@@ -220,9 +328,6 @@ LINE_RECEIVER_PORT = 2013
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2014
# Set to false to disable logging of successful connections
LOG_LISTENER_CONNECTIONS = True
# Carbon-relay has several options for metric routing controlled by RELAY_METHOD
#
# Use relay-rules.conf to route metrics to destinations based on pattern rules
@@ -237,12 +342,24 @@ LOG_LISTENER_CONNECTIONS = True
# instance.
# Enable this for carbon-relays that send to a group of carbon-aggregators
#RELAY_METHOD = aggregated-consistent-hashing
#
# You can also use fast-hashing and fast-aggregated-hashing which are in O(1)
# and will always redirect the metrics to the same destination but do not try
# to minimize rebalancing when the list of destinations is changing.
RELAY_METHOD = rules
# If you use consistent-hashing you can add redundancy by replicating every
# datapoint to more than one machine.
REPLICATION_FACTOR = 1
# For REPLICATION_FACTOR >=2, set DIVERSE_REPLICAS to True to guarantee replicas
# across distributed hosts. With this setting disabled, it's possible that replicas
# may be sent to different caches on the same host. This has been the default
# behavior since introduction of 'consistent-hashing' relay method.
# Note that enabling this on an existing pre-0.9.14 cluster will require rebalancing
# your metrics across the cluster nodes using a tool like Carbonate.
#DIVERSE_REPLICAS = True
# This is a list of carbon daemons we will send any relayed or
# generated metrics to. The default provided would send to a single
# carbon-cache instance on the default port. However if you
@@ -261,20 +378,71 @@ REPLICATION_FACTOR = 1
# must be defined in this list
DESTINATIONS = 127.0.0.1:2004
# This defines the maximum "message size" between carbon daemons.
# You shouldn't need to tune this unless you really know what you're doing.
MAX_DATAPOINTS_PER_MESSAGE = 500
# This define the protocol to use to contact the destination. It can be
# set to one of "line", "pickle", "udp" and "protobuf". This list can be
# extended with CarbonClientFactory plugins and defaults to "pickle".
# DESTINATION_PROTOCOL = pickle
# When using consistent hashing it sometime makes sense to make
# the ring dynamic when you don't want to loose points when a
# single destination is down. Replication is an answer to that
# but it can be quite expensive.
# DYNAMIC_ROUTER = False
# Controls the number of connection attempts before marking a
# destination as down. We usually do one connection attempt per
# second.
# DYNAMIC_ROUTER_MAX_RETRIES = 5
# This is the maximum number of datapoints that can be queued up
# for a single destination. Once this limit is hit, we will
# stop accepting new data if USE_FLOW_CONTROL is True, otherwise
# we will drop any subsequently received datapoints.
MAX_QUEUE_SIZE = 10000
# This defines the maximum "message size" between carbon daemons. If
# your queue is large, setting this to a lower number will cause the
# relay to forward smaller discrete chunks of stats, which may prevent
# overloading on the receiving side after a disconnect.
MAX_DATAPOINTS_PER_MESSAGE = 500
# Limit the number of open connections the receiver can handle as any time.
# Default is no limit. Setting up a limit for sites handling high volume
# traffic may be recommended to avoid running out of TCP memory or having
# thousands of TCP connections reduce the throughput of the service.
#MAX_RECEIVER_CONNECTIONS = inf
# Specify the user to drop privileges to
# If this is blank carbon-relay runs as the user that invokes it
# USER =
# This is the percentage that the queue must be empty before it will accept
# more messages. For a larger site, if the queue is very large it makes sense
# to tune this to allow for incoming stats. So if you have an average
# flow of 100k stats/minute, and a MAX_QUEUE_SIZE of 3,000,000, it makes sense
# to allow stats to start flowing when you've cleared the queue to 95% since
# you should have space to accommodate the next minute's worth of stats
# even before the relay incrementally clears more of the queue
QUEUE_LOW_WATERMARK_PCT = 0.8
# To allow for batch efficiency from the pickle protocol and to benefit from
# other batching advantages, all writes are deferred by putting them into a queue,
# and then the queue is flushed and sent a small fraction of a second later.
TIME_TO_DEFER_SENDING = 0.0001
# Set this to False to drop datapoints when any send queue (sending datapoints
# to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
# default) then sockets over which metrics are received will temporarily stop accepting
# data until the send queues fall below 80% MAX_QUEUE_SIZE.
# data until the send queues fall below QUEUE_LOW_WATERMARK_PCT * MAX_QUEUE_SIZE.
USE_FLOW_CONTROL = True
# If enabled this setting is used to timeout metric client connection if no
# metrics have been sent in specified time in seconds
#METRIC_CLIENT_IDLE_TIMEOUT = None
# Set this to True to enable whitelisting and blacklisting of metrics in
# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
# empty, all metrics will pass through
# CONF_DIR/whitelist.conf and CONF_DIR/blacklist.conf. If the whitelist is
# missing or empty, all metrics will pass through
# USE_WHITELIST = False
# By default, carbon itself will log statistics (such as a count,
@@ -282,7 +450,40 @@ USE_FLOW_CONTROL = True
# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
# CARBON_METRIC_PREFIX = carbon
# CARBON_METRIC_INTERVAL = 60
#
# In order to turn off logging of successful connections for the line
# receiver, set this to False
# LOG_LISTENER_CONN_SUCCESS = True
# If you're connecting from the relay to a destination that's over the
# internet or similarly iffy connection, a backlog can develop because
# of internet weather conditions, e.g. acks getting lost or similar issues.
# To deal with that, you can enable USE_RATIO_RESET which will let you
# re-set the connection to an individual destination. Defaults to being off.
USE_RATIO_RESET=False
# When there is a small number of stats flowing, it's not desirable to
# perform any actions based on percentages - it's just too "twitchy".
MIN_RESET_STAT_FLOW=1000
# When the ratio of stats being sent in a reporting interval is far
# enough from 1.0, we will disconnect the socket and reconnecto to
# clear out queued stats. The default ratio of 0.9 indicates that 10%
# of stats aren't being delivered within one CARBON_METRIC_INTERVAL
# (default of 60 seconds), which can lead to a queue backup. Under
# some circumstances re-setting the connection can fix this, so
# set this according to your tolerance, and look in the logs for
# "resetConnectionForQualityReasons" to observe whether this is kicking
# in when your sent queue is building up.
MIN_RESET_RATIO=0.9
# The minimum time between resets. When a connection is re-set, we
# need to wait before another reset is performed.
# (2*CARBON_METRIC_INTERVAL) + 1 second is the minimum time needed
# before stats for the new connection will be available. Setting this
# below (2*CARBON_METRIC_INTERVAL) + 1 second will result in a lot of
# reset connections for no good reason.
MIN_RESET_INTERVAL=121
[aggregator]
LINE_RECEIVER_INTERFACE = 0.0.0.0
@@ -291,14 +492,17 @@ LINE_RECEIVER_PORT = 2023
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2024
# Set to false to disable logging of successful connections
LOG_LISTENER_CONNECTIONS = True
# If set true, metric received will be forwarded to DESTINATIONS in addition to
# the output of the aggregation rules. If set false the carbon-aggregator will
# only ever send the output of aggregation.
FORWARD_ALL = True
# Filenames of the configuration files to use for this instance of aggregator.
# Filenames are relative to CONF_DIR.
#
# AGGREGATION_RULES = aggregation-rules.conf
# REWRITE_RULES = rewrite-rules.conf
# This is a list of carbon daemons we will send any relayed or
# generated metrics to. The default provided would send to a single
# carbon-cache instance on the default port. However if you
@@ -330,6 +534,10 @@ MAX_QUEUE_SIZE = 10000
# data until the send queues fall below 80% MAX_QUEUE_SIZE.
USE_FLOW_CONTROL = True
# If enabled this setting is used to timeout metric client connection if no
# metrics have been sent in specified time in seconds
#METRIC_CLIENT_IDLE_TIMEOUT = None
# This defines the maximum "message size" between carbon daemons.
# You shouldn't need to tune this unless you really know what you're doing.
MAX_DATAPOINTS_PER_MESSAGE = 500
@@ -339,6 +547,12 @@ MAX_DATAPOINTS_PER_MESSAGE = 500
# the past MAX_AGGREGATION_INTERVALS * intervalSize seconds.
MAX_AGGREGATION_INTERVALS = 5
# Limit the number of open connections the receiver can handle as any time.
# Default is no limit. Setting up a limit for sites handling high volume
# traffic may be recommended to avoid running out of TCP memory or having
# thousands of TCP connections reduce the throughput of the service.
#MAX_RECEIVER_CONNECTIONS = inf
# By default (WRITE_BACK_FREQUENCY = 0), carbon-aggregator will write back
# aggregated data points once every rule.frequency seconds, on a per-rule basis.
# Set this (WRITE_BACK_FREQUENCY = N) to write back all aggregated data points
@@ -348,8 +562,8 @@ MAX_AGGREGATION_INTERVALS = 5
# WRITE_BACK_FREQUENCY = 0
# Set this to True to enable whitelisting and blacklisting of metrics in
# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
# empty, all metrics will pass through
# CONF_DIR/whitelist.conf and CONF_DIR/blacklist.conf. If the whitelist is
# missing or empty, all metrics will pass through
# USE_WHITELIST = False
# By default, carbon itself will log statistics (such as a count,
@@ -357,3 +571,24 @@ MAX_AGGREGATION_INTERVALS = 5
# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
# CARBON_METRIC_PREFIX = carbon
# CARBON_METRIC_INTERVAL = 60
# In order to turn off logging of successful connections for the line
# receiver, set this to False
# LOG_LISTENER_CONN_SUCCESS = True
# In order to turn off logging of metrics with no corresponding
# aggregation rules receiver, set this to False
# LOG_AGGREGATOR_MISSES = False
# Specify the user to drop privileges to
# If this is blank carbon-aggregator runs as the user that invokes it
# USER =
# Part of the code, and particularly aggregator rules, need
# to cache metric names. To avoid leaking too much memory you
# can tweak the size of this cache. The default allow for 1M
# different metrics per rule (~200MiB).
# CACHE_METRIC_NAMES_MAX=1000000
# You can optionally set a ttl to this cache.
# CACHE_METRIC_NAMES_TTL=600

View File

@@ -40,4 +40,3 @@ aggregationMethod = sum
pattern = .*
xFilesFactor = 0.3
aggregationMethod = average

View File

@@ -1,4 +1,23 @@
# Schema definitions for Whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds.
#
# Definition Syntax:
#
# [name]
# pattern = regex
# retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...
#
# Remember: To support accurate aggregation from higher to lower resolution
# archives, the precision of a longer retention archive must be
# cleanly divisible by precision of next lower retention archive.
#
# Valid: 60s:7d,300s:30d (300/60 = 5)
# Invalid: 180s:7d,300s:30d (300/180 = 3.333)
#
# Carbon's internal metrics. This entry should match what is specified in
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
[carbon]
pattern = ^carbon\..*
retentions = 1m:31d,10m:1y,1h:5y

2
docker/blocks/graphite1/conf/usr/local/bin/manage.sh Normal file → Executable file
View File

@@ -1,3 +1,3 @@
#!/bin/bash
PYTHONPATH=/opt/graphite/webapp django-admin.py syncdb --settings=graphite.settings
PYTHONPATH=/opt/graphite/webapp django-admin.py update_users --settings=graphite.settings
# PYTHONPATH=/opt/graphite/webapp django-admin.py update_users --settings=graphite.settings

View File

@@ -0,0 +1,21 @@
graphite:
build:
context: blocks/graphite1
args:
version: master
ports:
- "8080:80"
- "2003:2003"
- "8125:8125/udp"
- "8126:8126"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
fake-graphite-data:
image: grafana/fake-data-gen
network_mode: bridge
environment:
FD_DATASOURCE: graphite
FD_PORT: 2003

View File

@@ -1,16 +0,0 @@
graphite:
build: blocks/graphite1
ports:
- "8080:80"
- "2003:2003"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
fake-graphite-data:
image: grafana/fake-data-gen
net: bridge
environment:
FD_DATASOURCE: graphite
FD_PORT: 2003

View File

@@ -1,76 +0,0 @@
[cache]
LOCAL_DATA_DIR = /opt/graphite/storage/whisper/
# Specify the user to drop privileges to
# If this is blank carbon runs as the user that invokes it
# This user must have write access to the local data directory
USER =
# Limit the size of the cache to avoid swapping or becoming CPU bound.
# Sorts and serving cache queries gets more expensive as the cache grows.
# Use the value "inf" (infinity) for an unlimited cache size.
MAX_CACHE_SIZE = inf
# Limits the number of whisper update_many() calls per second, which effectively
# means the number of write requests sent to the disk. This is intended to
# prevent over-utilizing the disk and thus starving the rest of the system.
# When the rate of required updates exceeds this, then carbon's caching will
# take effect and increase the overall throughput accordingly.
MAX_UPDATES_PER_SECOND = 1000
# Softly limits the number of whisper files that get created each minute.
# Setting this value low (like at 50) is a good way to ensure your graphite
# system will not be adversely impacted when a bunch of new metrics are
# sent to it. The trade off is that it will take much longer for those metrics'
# database files to all get created and thus longer until the data becomes usable.
# Setting this value high (like "inf" for infinity) will cause graphite to create
# the files quickly but at the risk of slowing I/O down considerably for a while.
MAX_CREATES_PER_MINUTE = inf
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2003
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2004
CACHE_QUERY_INTERFACE = 0.0.0.0
CACHE_QUERY_PORT = 7002
LOG_UPDATES = False
# Enable AMQP if you want to receve metrics using an amqp broker
# ENABLE_AMQP = False
# Verbose means a line will be logged for every metric received
# useful for testing
# AMQP_VERBOSE = False
# AMQP_HOST = localhost
# AMQP_PORT = 5672
# AMQP_VHOST = /
# AMQP_USER = guest
# AMQP_PASSWORD = guest
# AMQP_EXCHANGE = graphite
# Patterns for all of the metrics this machine will store. Read more at
# http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol#Bindings
#
# Example: store all sales, linux servers, and utilization metrics
# BIND_PATTERNS = sales.#, servers.linux.#, #.utilization
#
# Example: store everything
# BIND_PATTERNS = #
# NOTE: you cannot run both a cache and a relay on the same server
# with the default configuration, you have to specify a distinict
# interfaces and ports for the listeners.
[relay]
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2003
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2004
CACHE_SERVERS = server1, server2, server3
MAX_QUEUE_SIZE = 10000

View File

@@ -1,102 +0,0 @@
import datetime
import time
from django.utils.timezone import get_current_timezone
from django.core.urlresolvers import get_script_prefix
from django.http import HttpResponse
from django.shortcuts import render_to_response, get_object_or_404
from pytz import timezone
from graphite.util import json
from graphite.events import models
from graphite.render.attime import parseATTime
def to_timestamp(dt):
return time.mktime(dt.timetuple())
class EventEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return to_timestamp(obj)
return json.JSONEncoder.default(self, obj)
def view_events(request):
if request.method == "GET":
context = { 'events' : fetch(request),
'slash' : get_script_prefix()
}
return render_to_response("events.html", context)
else:
return post_event(request)
def detail(request, event_id):
e = get_object_or_404(models.Event, pk=event_id)
context = { 'event' : e,
'slash' : get_script_prefix()
}
return render_to_response("event.html", context)
def post_event(request):
if request.method == 'POST':
event = json.loads(request.body)
assert isinstance(event, dict)
values = {}
values["what"] = event["what"]
values["tags"] = event.get("tags", None)
values["when"] = datetime.datetime.fromtimestamp(
event.get("when", time.time()))
if "data" in event:
values["data"] = event["data"]
e = models.Event(**values)
e.save()
return HttpResponse(status=200)
else:
return HttpResponse(status=405)
def get_data(request):
if 'jsonp' in request.REQUEST:
response = HttpResponse(
"%s(%s)" % (request.REQUEST.get('jsonp'),
json.dumps(fetch(request), cls=EventEncoder)),
mimetype='text/javascript')
else:
response = HttpResponse(
json.dumps(fetch(request), cls=EventEncoder),
mimetype="application/json")
return response
def fetch(request):
#XXX we need to move to USE_TZ=True to get rid of naive-time conversions
def make_naive(dt):
if 'tz' in request.GET:
tz = timezone(request.GET['tz'])
else:
tz = get_current_timezone()
local_dt = dt.astimezone(tz)
if hasattr(local_dt, 'normalize'):
local_dt = local_dt.normalize()
return local_dt.replace(tzinfo=None)
if request.GET.get("from", None) is not None:
time_from = make_naive(parseATTime(request.GET["from"]))
else:
time_from = datetime.datetime.fromtimestamp(0)
if request.GET.get("until", None) is not None:
time_until = make_naive(parseATTime(request.GET["until"]))
else:
time_until = datetime.datetime.now()
tags = request.GET.get("tags", None)
if tags is not None:
tags = request.GET.get("tags").split(" ")
return [x.as_dict() for x in
models.Event.find_events(time_from, time_until, tags=tags)]

View File

@@ -1,20 +0,0 @@
[
{
"pk": 1,
"model": "auth.user",
"fields": {
"username": "admin",
"first_name": "",
"last_name": "",
"is_active": true,
"is_superuser": true,
"is_staff": true,
"last_login": "2011-09-20 17:02:14",
"groups": [],
"user_permissions": [],
"password": "sha1$1b11b$edeb0a67a9622f1f2cfeabf9188a711f5ac7d236",
"email": "root@example.com",
"date_joined": "2011-09-20 17:02:14"
}
}
]

View File

@@ -1,42 +0,0 @@
# Edit this file to override the default graphite settings, do not edit settings.py
# Turn on debugging and restart apache if you ever see an "Internal Server Error" page
#DEBUG = True
# Set your local timezone (django will try to figure this out automatically)
TIME_ZONE = 'UTC'
# Setting MEMCACHE_HOSTS to be empty will turn off use of memcached entirely
#MEMCACHE_HOSTS = ['127.0.0.1:11211']
# Sometimes you need to do a lot of rendering work but cannot share your storage mount
#REMOTE_RENDERING = True
#RENDERING_HOSTS = ['fastserver01','fastserver02']
#LOG_RENDERING_PERFORMANCE = True
#LOG_CACHE_PERFORMANCE = True
# If you've got more than one backend server they should all be listed here
#CLUSTER_SERVERS = []
# Override this if you need to provide documentation specific to your graphite deployment
#DOCUMENTATION_URL = "http://wiki.mycompany.com/graphite"
# Enable email-related features
#SMTP_SERVER = "mail.mycompany.com"
# LDAP / ActiveDirectory authentication setup
#USE_LDAP_AUTH = True
#LDAP_SERVER = "ldap.mycompany.com"
#LDAP_PORT = 389
#LDAP_SEARCH_BASE = "OU=users,DC=mycompany,DC=com"
#LDAP_BASE_USER = "CN=some_readonly_account,DC=mycompany,DC=com"
#LDAP_BASE_PASS = "readonly_account_password"
#LDAP_USER_QUERY = "(username=%s)" #For Active Directory use "(sAMAccountName=%s)"
# If sqlite won't cut it, configure your real database here (don't forget to run manage.py syncdb!)
#DATABASE_ENGINE = 'mysql' # or 'postgres'
#DATABASE_NAME = 'graphite'
#DATABASE_USER = 'graphite'
#DATABASE_PASSWORD = 'graphite-is-awesome'
#DATABASE_HOST = 'mysql.mycompany.com'
#DATABASE_PORT = '3306'

View File

@@ -1 +0,0 @@
grafana:$apr1$4R/20xhC$8t37jPP5dbcLr48btdkU//

View File

@@ -1,70 +0,0 @@
daemon off;
user www-data;
worker_processes 1;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
server_names_hash_bucket_size 32;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
server {
listen 80 default_server;
server_name _;
open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Methods "GET, OPTIONS";
add_header Access-Control-Allow-Headers "origin, authorization, accept";
location /content {
alias /opt/graphite/webapp/content;
}
location /media {
alias /usr/share/pyshared/django/contrib/admin/media;
}
}
}

View File

@@ -1,8 +0,0 @@
{
graphitePort: 2003,
graphiteHost: "127.0.0.1",
port: 8125,
mgmt_port: 8126,
backends: ['./backends/graphite'],
debug: true
}

View File

@@ -1,19 +0,0 @@
[min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = \.max$
xFilesFactor = 0.1
aggregationMethod = max
[sum]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
[default_average]
pattern = .*
xFilesFactor = 0.5
aggregationMethod = average

View File

@@ -1,16 +0,0 @@
[carbon]
pattern = ^carbon\..*
retentions = 1m:31d,10m:1y,1h:5y
[highres]
pattern = ^highres.*
retentions = 1s:1d,1m:7d
[statsd]
pattern = ^statsd.*
retentions = 1m:7d,10m:1y
[default]
pattern = .*
retentions = 10s:1d,1m:7d,10m:1y

View File

@@ -1,26 +0,0 @@
[supervisord]
nodaemon = true
environment = GRAPHITE_STORAGE_DIR='/opt/graphite/storage',GRAPHITE_CONF_DIR='/opt/graphite/conf'
[program:nginx]
command = /usr/sbin/nginx
stdout_logfile = /var/log/supervisor/%(program_name)s.log
stderr_logfile = /var/log/supervisor/%(program_name)s.log
autorestart = true
[program:carbon-cache]
;user = www-data
command = /opt/graphite/bin/carbon-cache.py --debug start
stdout_logfile = /var/log/supervisor/%(program_name)s.log
stderr_logfile = /var/log/supervisor/%(program_name)s.log
autorestart = true
[program:graphite-webapp]
;user = www-data
directory = /opt/graphite/webapp
environment = PYTHONPATH='/opt/graphite/webapp'
command = /usr/bin/gunicorn_django -b127.0.0.1:8000 -w2 graphite/settings.py
stdout_logfile = /var/log/supervisor/%(program_name)s.log
stderr_logfile = /var/log/supervisor/%(program_name)s.log
autorestart = true

View File

@@ -0,0 +1,17 @@
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- "2004:2004"
- "8083:8083"
- "8086:8086"
volumes:
- ./blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
fake-influxdb-data:
image: grafana/fake-data-gen
network_mode: bridge
environment:
FD_DATASOURCE: influxdb
FD_PORT: 8086

View File

@@ -1,17 +0,0 @@
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- "2004:2004"
- "8083:8083"
- "8086:8086"
volumes:
- ./blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
fake-influxdb-data:
image: grafana/fake-data-gen
net: bridge
environment:
FD_DATASOURCE: influxdb
FD_PORT: 8086

View File

@@ -0,0 +1,6 @@
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "127.0.0.1:6831:6831/udp"
- "16686:16686"

View File

@@ -0,0 +1,5 @@
memcached:
image: memcached:latest
ports:
- "11211:11211"

View File

@@ -1,5 +0,0 @@
memcached:
image: memcached:latest
ports:
- "11211:11211"

View File

@@ -0,0 +1,14 @@
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --innodb_monitor_enable=all]

View File

@@ -1,14 +0,0 @@
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --innodb_monitor_enable=all]

View File

@@ -0,0 +1,9 @@
mysql_opendata:
build: blocks/mysql_opendata
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: testdata
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3307:3306"

View File

@@ -1,9 +0,0 @@
mysql_opendata:
build: blocks/mysql_opendata
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: testdata
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3307:3306"

View File

@@ -0,0 +1,10 @@
mysqltests:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana_tests
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3306:3306"
tmpfs: /var/lib/mysql:rw

View File

@@ -1,9 +0,0 @@
mysqltests:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana_tests
MYSQL_USER: grafana
MYSQL_PASSWORD: password
ports:
- "3306:3306"

View File

@@ -1,6 +1,6 @@
FROM debian:jessie
MAINTAINER Christian Luginbühl <dinke@pimprecords.com>
LABEL maintainer="Christian Luginbühl <dinke@pimprecords.com>"
ENV OPENLDAP_VERSION 2.4.40

View File

@@ -0,0 +1,10 @@
openldap:
build: blocks/openldap
environment:
SLAPD_PASSWORD: grafana
SLAPD_DOMAIN: grafana.org
SLAPD_ADDITIONAL_MODULES: memberof
ports:
- "389:389"

View File

@@ -1,10 +0,0 @@
openldap:
build: blocks/openldap
environment:
SLAPD_PASSWORD: grafana
SLAPD_DOMAIN: grafana.org
SLAPD_ADDITIONAL_MODULES: memberof
ports:
- "389:389"

View File

@@ -0,0 +1,11 @@
opentsdb:
image: opower/opentsdb:latest
ports:
- "4242:4242"
fake-opentsdb-data:
image: grafana/fake-data-gen
network_mode: bridge
environment:
FD_DATASOURCE: opentsdb

View File

@@ -1,11 +0,0 @@
opentsdb:
image: opower/opentsdb:latest
ports:
- "4242:4242"
fake-opentsdb-data:
image: grafana/fake-data-gen
net: bridge
environment:
FD_DATASOURCE: opentsdb

View File

@@ -0,0 +1,9 @@
postgrestest:
image: postgres:latest
environment:
POSTGRES_USER: grafana
POSTGRES_PASSWORD: password
POSTGRES_DATABASE: grafana
ports:
- "5432:5432"
command: postgres -c log_connections=on -c logging_collector=on -c log_destination=stderr -c log_directory=/var/log/postgresql

View File

@@ -1,9 +0,0 @@
postgrestest:
image: postgres:latest
environment:
POSTGRES_USER: grafana
POSTGRES_PASSWORD: password
POSTGRES_DATABASE: grafana
ports:
- "5432:5432"
command: postgres -c log_connections=on -c logging_collector=on -c log_destination=stderr -c log_directory=/var/log/postgresql

View File

@@ -0,0 +1,8 @@
postgrestest:
image: postgres:latest
environment:
POSTGRES_USER: grafanatest
POSTGRES_PASSWORD: grafanatest
ports:
- "5432:5432"
tmpfs: /var/lib/postgresql/data:rw

View File

@@ -1,7 +0,0 @@
postgrestest:
image: postgres:latest
environment:
POSTGRES_USER: grafanatest
POSTGRES_PASSWORD: grafanatest
ports:
- "5432:5432"

View File

@@ -1,2 +1,3 @@
FROM prom/prometheus
ADD prometheus.yml /etc/prometheus/
ADD alert.rules /etc/prometheus/

View File

@@ -0,0 +1,10 @@
# Alert Rules
ALERT AppCrash
IF process_open_fds > 0
FOR 15s
LABELS { severity="critical" }
ANNOTATIONS {
summary = "Number of open fds > 0",
description = "Just testing"
}

View File

@@ -0,0 +1,25 @@
prometheus:
build: blocks/prometheus
network_mode: host
ports:
- "9090:9090"
node_exporter:
image: prom/node-exporter
network_mode: host
ports:
- "9100:9100"
fake-prometheus-data:
image: grafana/fake-data-gen
network_mode: host
ports:
- "9091:9091"
environment:
FD_DATASOURCE: prom
alertmanager:
image: quay.io/prometheus/alertmanager
network_mode: host
ports:
- "9093:9093"

View File

@@ -1,20 +0,0 @@
prometheus:
build: blocks/prometheus
net: host
ports:
- "9090:9090"
node_exporter:
image: prom/node-exporter
net: host
ports:
- "9100:9100"
fake-prometheus-data:
image: grafana/fake-data-gen
net: host
ports:
- "9091:9091"
environment:
FD_DATASOURCE: prom

View File

@@ -6,22 +6,30 @@ global:
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
- "alert.rules"
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 10s
scrape_timeout: 10s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
alerting:
alertmanagers:
- scheme: http
static_configs:
#- targets: ['localhost:9090', '172.17.0.1:9091', '172.17.0.1:9100', '172.17.0.1:9150']
- targets: ['localhost:9090', '127.0.0.1:9091', '127.0.0.1:9100', '127.0.0.1:9150']
- targets:
- "127.0.0.1:9093"
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['127.0.0.1:9100']
- job_name: 'fake-data-gen'
static_configs:
- targets: ['127.0.0.1:9091']
- job_name: 'grafana'
static_configs:
- targets: ['127.0.0.1:3000']

View File

@@ -0,0 +1,3 @@
FROM prom/prometheus:v2.0.0
ADD prometheus.yml /etc/prometheus/
ADD alert.rules /etc/prometheus/

View File

@@ -0,0 +1,10 @@
# Alert Rules
ALERT AppCrash
IF process_open_fds > 0
FOR 15s
LABELS { severity="critical" }
ANNOTATIONS {
summary = "Number of open fds > 0",
description = "Just testing"
}

View File

@@ -0,0 +1,35 @@
# my global config
global:
scrape_interval: 10s # By default, scrape targets every 15 seconds.
evaluation_interval: 10s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
#rule_files:
# - "alert.rules"
# - "first.rules"
# - "second.rules"
# alerting:
# alertmanagers:
# - scheme: http
# static_configs:
# - targets:
# - "127.0.0.1:9093"
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['127.0.0.1:9100']
- job_name: 'fake-data-gen'
static_configs:
- targets: ['127.0.0.1:9091']
- job_name: 'grafana'
static_configs:
- targets: ['127.0.0.1:3000']

View File

@@ -1,5 +1,5 @@
FROM centos:centos7
MAINTAINER Przemyslaw Ozgo <linux@ozgo.info>
LABEL maintainer="Przemyslaw Ozgo <linux@ozgo.info>"
RUN \
yum update -y && \

View File

@@ -0,0 +1,4 @@
snmpd:
image: namshi/smtp
ports:
- "25:25"

View File

@@ -1,4 +0,0 @@
snmpd:
image: namshi/smtp
ports:
- "25:25"

View File

@@ -0,0 +1,2 @@
version: "2"
services:

View File

@@ -7,8 +7,9 @@ template_dir=templates
grafana_config_file=conf.tmp
grafana_config=config
fig_file=docker-compose.yml
fig_config=fig
compose_header_file=compose_header.yml
fig_file=docker-compose.yaml
fig_config=docker-compose.yaml
if [ "$#" == 0 ]; then
blocks=`ls $blocks_dir`
@@ -23,13 +24,16 @@ if [ "$#" == 0 ]; then
exit 0
fi
for file in $gogs_config_file $fig_file; do
for file in $grafana_config_file $fig_file; do
if [ -e $file ]; then
echo "Deleting $file"
rm $file
fi
done
echo "Adding Compose header to $fig_file"
cat $compose_header_file >> $fig_file
for dir in $@; do
current_dir=$blocks_dir/$dir
if [ ! -d "$current_dir" ]; then
@@ -45,7 +49,7 @@ for dir in $@; do
if [ -e $current_dir/$fig_config ]; then
echo "Adding $current_dir/$fig_config to $fig_file"
cat $current_dir/fig >> $fig_file
cat $current_dir/$fig_config >> $fig_file
echo "" >> $fig_file
fi
done

View File

@@ -41,7 +41,7 @@ then there are two flags that can be used to set homepath and the config file pa
If you have not lost the admin password then it is better to set in the Grafana UI. If you need to set the password in a script then the [Grafana API](http://docs.grafana.org/http_api/user/#change-password) can be used. Here is an example with curl using basic auth:
```
```bash
curl -X PUT -H "Content-Type: application/json" -d '{
"oldPassword": "admin",
"newPassword": "newpass",

View File

@@ -0,0 +1,15 @@
+++
title = "Internal metrics"
description = "Internal metrics exposed by Grafana"
keywords = ["grafana", "metrics", "internal metrics"]
type = "docs"
[menu.docs]
parent = "admin"
weight = 8
+++
# Internal metrics
Grafana collects some metrics about it self internally. Currently Grafana supports pushing metrics to graphite and exposing them to be scraped by Prometheus.
To enabled internal metrics you have to enable it under the [metrics] section in your [grafana.ini](http://docs.grafana.org/installation/configuration/#enabled-6) config file.If you want to push metrics to graphite you have also have to configure the [metrics.graphite](http://docs.grafana.org/installation/configuration/#metrics-graphite) section.

View File

@@ -0,0 +1,184 @@
+++
title = "Provisioning"
description = ""
keywords = ["grafana", "provisioning"]
type = "docs"
[menu.docs]
parent = "admin"
weight = 8
+++
# Provisioning Grafana
## Config file
Checkout the [configuration](/installation/configuration) page for more information about what you can configure in `grafana.ini`
### Config file locations
- Default configuration from `$WORKING_DIR/conf/defaults.ini`
- Custom configuration from `$WORKING_DIR/conf/custom.ini`
- The custom configuration file path can be overridden using the `--config` parameter
> **Note.** If you have installed Grafana using the `deb` or `rpm`
> packages, then your configuration file is located at
> `/etc/grafana/grafana.ini`. This path is specified in the Grafana
> init.d script using `--config` file parameter.
### Using environment variables
All options in the configuration file (listed below) can be overridden
using environment variables using the syntax:
```bash
GF_<SectionName>_<KeyName>
```
Where the section name is the text within the brackets. Everything
should be upper case, `.` should be replaced by `_`. For example, given these configuration settings:
```bash
# default section
instance_name = ${HOSTNAME}
[security]
admin_user = admin
[auth.google]
client_secret = 0ldS3cretKey
```
Then you can override them using:
```bash
export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=true
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
```
<hr />
## Configuration management tools
Currently we do not provide any scripts/manifests for configuring Grafana. Rather then spending time learning and creating scripts/manifests for each tool, we think our time is better spent making Grafana easier to provision. Therefor, we heavily relay on the expertise of he community.
Tool | Project
-----|------------
Puppet | [https://forge.puppet.com/puppet/grafana](https://forge.puppet.com/puppet/grafana)
Ansible | [https://github.com/cloudalchemy/ansible-grafana](https://github.com/cloudalchemy/ansible-grafana)
Ansible | [https://github.com/picotrading/ansible-grafana](https://github.com/picotrading/ansible-grafana)
Chef | [https://github.com/JonathanTron/chef-grafana](https://github.com/JonathanTron/chef-grafana)
Saltstack | [https://github.com/salt-formulas/salt-formula-grafana](https://github.com/salt-formulas/salt-formula-grafana)
## Datasources
> This feature is available from v5.0
It's possible to manage datasources in Grafana by adding one or more yaml config files in the [`provisioning/datasources`](/installation/configuration/#provisioning) directory. Each config file can contain a list of `datasources` that will be added or updated during start up. If the datasource already exists, Grafana will update it to match the configuration file. The config file can also contain a list of datasources that should be deleted. That list is called `delete_datasources`. Grafana will delete datasources listed in `delete_datasources` before inserting/updating those in the `datasource` list.
### Running multiple grafana instances.
If you are running multiple instances of Grafana you might run into problems if they have different versions of the datasource.yaml configuration file. The best way to solve this problem is to add a version number to each datasource in the configuration and increase it when you update the config. Grafana will only update datasources with the same or lower version number than specified in the config. That way old configs cannot overwrite newer configs if they restart at the same time.
### Example datasource config file
```yaml
# list of datasources that should be deleted from the database
delete_datasources:
- name: Graphite
org_id: 1
# list of datasources to insert/update depending
# whats available in the datbase
datasources:
# <string, required> name of the datasource. Required
- name: Graphite
# <string, required> datasource type. Required
type: graphite
# <string, required> access mode. direct or proxy. Required
access: proxy
# <int> org id. will default to org_id 1 if not specified
org_id: 1
# <string> url
url: http://localhost:8080
# <string> database password, if used
password:
# <string> database user, if used
user:
# <string> database name, if used
database:
# <bool> enable/disable basic auth
basic_auth:
# <string> basic auth username
basic_auth_user:
# <string> basic auth password
basic_auth_password:
# <bool> enable/disable with credentials headers
with_credentials:
# <bool> mark as default datasource. Max one per org
is_default:
# <map> fields that will be converted to json and stored in json_data
json_data:
graphiteVersion: "1.1"
tlsAuth: true
tlsAuthWithCACert: true
# <string> json object of data that will be encrypted.
secure_json_data:
tlsCACert: "..."
tlsClientCert: "..."
tlsClientKey: "..."
version: 1
# <bool> allow users to edit datasources from the UI.
editable: false
```
#### Json data
Since all datasources dont have the same configuration settings we only have the most common ones as fields. The rest should be stored as a json blob in the `json_data` field. Here are the most common settings that the core datasources use.
| Name | Type | Datasource |Description |
| ----| ---- | ---- | --- |
| tlsAuth | boolean | *All* | Enable TLS authentication using client cert configured in secure json data |
| tlsAuthWithCACert | boolean | *All* | Enable TLS authtication using CA cert |
| graphiteVersion | string | Graphite | Graphite version |
| timeInterval | string | Elastic, Influxdb & Prometheus | Lowest interval/step value that should be used for this data source |
| esVersion | string | Elastic | Elasticsearch version |
| timeField | string | Elastic | Which field that should be used as timestamp |
| interval | string | Elastic | Index date time format |
| authType | string | Cloudwatch | Auth provider. keys/credentials/arn |
| assumeRoleArn | string | Cloudwatch | ARN of Assume Role |
| defaultRegion | string | Cloudwatch | AWS region |
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
| tsdbVersion | string | OpenTsdb | Version |
| tsdbResolution | string | OpenTsdb | Resolution |
| sslmode | string | Postgre | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
#### Secure Json data
{"authType":"keys","defaultRegion":"us-west-2","timeField":"@timestamp"}
Secure json data is a map of settings that will be encrypted with [secret key](/installation/configuration/#secret-key) from the grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to request on the server side. All these settings are optional.
| Name | Type | Datasource | Description |
| ----| ---- | ---- | --- |
| tlsCACert | string | *All* |CA cert for out going requests |
| tlsClientCert | string | *All* |TLS Client cert for outgoing requests |
| tlsClientKey | string | *All* |TLS Client key for outgoing requests |
| password | string | Postgre | password |
| user | string | Postgre | user |
### Dashboards
It's possible to manage dashboards in Grafana by adding one or more yaml config files in the [`provisioning/dashboards`](/installation/configuration/#provisioning) directory. Each config file can contain a list of `dashboards providers` that will load dashboards into grafana. Currently we only support reading dashboards from file but we will add more providers in the future.
The dashboard provider config file looks like this
```yaml
- name: 'default'
org_id: 1
folder: ''
type: file
options:
folder: /var/lib/grafana/dashboards
```
When grafana starts it will update/insert all dashboards available in the configured folders. If you modify the file the dashboard will also be updated.

View File

@@ -48,12 +48,15 @@ external image destination if available or fallback to attaching the image in th
To set up slack you need to configure an incoming webhook url at slack. You can follow their guide for how
to do that https://api.slack.com/incoming-webhooks If you want to include screenshots of the firing alerts
in the slack messages you have to configure the [external image destination](#external-image-store) in Grafana.
in the slack messages you have to configure either the [external image destination](#external-image-store) in Grafana,
or a bot integration via Slack Apps. Follow Slack's guide to set up a bot integration and use the token provided
https://api.slack.com/bot-users, which starts with "xoxb".
Setting | Description
---------- | -----------
Recipient | allows you to override the slack recipient.
Mention | make it possible to include a mention in the slack notification sent by Grafana. Ex @here or @channel
Token | If provided, Grafana will upload the generated image via Slack's file.upload API method, not the external image destination.
### PagerDuty
@@ -112,25 +115,37 @@ In DingTalk PC Client:
Dingtalk supports the following "message type": `text`, `link` and `markdown`. Only the `text` message type is supported.
### Other Supported Notification Channels
### Kafka
Grafana also supports the following Notification Channels:
Notifications can be sent to a Kafka topic from Grafana using [Kafka REST Proxy](https://docs.confluent.io/1.0/kafka-rest/docs/index.html).
There are couple of configurations options which need to be set in Grafana UI under Kafka Settings:
- HipChat
1. Kafka REST Proxy endpoint.
- VictorOps
2. Kafka Topic.
- Sensu
Once these two properties are set, you can send the alerts to Kafka for further processing or throttling them.
- OpsGenie
### All supported notifier
- Threema
Name | Type |Support images
-----|------------ | ------
Slack | `slack` | yes
Pagerduty | `pagerduty` | yes
Email | `email` | yes
Webhook | `webhook` | link
Kafka | `kafka` | no
Hipchat | `hipchat` | yes
VictorOps | `victorops` | yes
Sensu | `sensu` | yes
OpsGenie | `opsgenie` | yes
Threema | `threema` | yes
Pushover | `pushover` | no
Telegram | `telegram` | no
Line | `line` | no
Prometheus Alertmanager | `prometheus-alertmanager` | no
- Pushover
- Telegram
- LINE
# Enable images in notifications {#external-image-store}

View File

@@ -27,8 +27,7 @@ and the conditions that need to be met for the alert to change state and trigger
## Execution
The alert rules are evaluated in the Grafana backend in a scheduler and query execution engine that is part
of core Grafana. Only some data sources are supported right now. They include `Graphite`, `Prometheus`,
`InfluxDB` and `OpenTSDB`.
of core Grafana. Only some data sources are supported right now. They include `Graphite`, `Prometheus`, `InfluxDB`, `OpenTSDB`, `MySQL`, `Postgres` and `Cloudwatch`.
### Clustering

View File

@@ -13,6 +13,8 @@ Here you can find links to older versions of the documentation that might be bet
of Grafana.
- [Latest](http://docs.grafana.org)
- [Version 4.5](http://docs.grafana.org/v4.5)
- [Version 4.4](http://docs.grafana.org/v4.4)
- [Version 4.3](http://docs.grafana.org/v4.3)
- [Version 4.2](http://docs.grafana.org/v4.2)
- [Version 4.1](http://docs.grafana.org/v4.1)

View File

@@ -29,7 +29,7 @@ Name | Description
------------ | -------------
*Name* | The data source name. This is how you refer to the data source in panels & queries.
*Default* | Default data source means that it will be pre-selected for new panels.
*Credentials* profile name | Specify the name of the profile to use (if you use `~/aws/credentials` file), leave blank for default.
*Credentials* profile name | Specify the name of the profile to use (if you use `~/.aws/credentials` file), leave blank for default.
*Default Region* | Used in query editor to set region (can be changed on per query basis)
*Custom Metrics namespace* | Specify the CloudWatch namespace of Custom metrics
*Assume Role Arn* | Specify the ARN of the role to assume
@@ -50,11 +50,12 @@ Create a file at `~/.aws/credentials`. That is the `HOME` path for user running
Example content:
[default]
aws_access_key_id = asdsadasdasdasd
aws_secret_access_key = dasdasdsadasdasdasdsa
region = us-west-2
```bash
[default]
aws_access_key_id = asdsadasdasdasd
aws_secret_access_key = dasdasdsadasdasdasdsa
region = us-west-2
```
## Metric Query Editor
@@ -77,11 +78,14 @@ CloudWatch Datasource Plugin provides the following queries you can specify in t
edit view. They allow you to fill a variable's options list with things like `region`, `namespaces`, `metric names`
and `dimension keys/values`.
In place of `region` you can specify `default` to use the default region configured in the datasource for the query,
e.g. `metrics(AWS/DynamoDB, default)` or `dimension_values(default, ..., ..., ...)`.
Name | Description
------- | --------
*regions()* | Returns a list of regions AWS provides their service.
*namespaces()* | Returns a list of namespaces CloudWatch support.
*metrics(namespace, [region])* | Returns a list of metrics in the namespace. (specify region for custom metrics)
*metrics(namespace, [region])* | Returns a list of metrics in the namespace. (specify region or use "default" for custom metrics)
*dimension_keys(namespace)* | Returns a list of dimension keys in the namespace.
*dimension_values(region, namespace, metric, dimension_key)* | Returns a list of dimension values matching the specified `region`, `namespace`, `metric` and `dimension_key`.
*ebs_volume_ids(region, instance_id)* | Returns a list of volume ids matching the specified `region`, `instance_id`.
@@ -117,7 +121,9 @@ Filters syntax:
Example `ec2_instance_attribute()` query
ec2_instance_attribute(us-east-1, InstanceId, { "tag:Environment": [ "production" ] })
```javascript
ec2_instance_attribute(us-east-1, InstanceId, { "tag:Environment": [ "production" ] })
```
### Selecting Attributes
@@ -156,7 +162,9 @@ Tags can be selected by prepending the tag name with `Tags.`
Example `ec2_instance_attribute()` query
ec2_instance_attribute(us-east-1, Tags.Name, { "tag:Team": [ "sysops" ] })
```javascript
ec2_instance_attribute(us-east-1, Tags.Name, { "tag:Team": [ "sysops" ] })
```
## Cost
@@ -164,5 +172,3 @@ Amazon provides 1 million CloudWatch API requests each month at no additional ch
it costs $0.01 per 1,000 GetMetricStatistics or ListMetrics requests. For each query Grafana will
issue a GetMetricStatistics request and every time you pick a dimension in the query editor
Grafana will issue a ListMetrics request.

View File

@@ -38,8 +38,10 @@ Proxy access means that the Grafana backend will proxy all requests from the bro
If you select direct access you must update your Elasticsearch configuration to allow other domains to access
Elasticsearch from the browser. You do this by specifying these to options in your **elasticsearch.yml** config file.
http.cors.enabled: true
http.cors.allow-origin: "*"
```bash
http.cors.enabled: true
http.cors.allow-origin: "*"
```
### Index settings
@@ -133,6 +135,5 @@ Name | Description
------------ | -------------
Query | You can leave the search query blank or specify a lucene query
Time | The name of the time field, needs to be date field.
Title | The name of the field to use for the event title.
Text | Event description field.
Tags | Optional field name to use for event tags (can be an array or a CSV string).
Text | Optional field name to use event text body.

View File

@@ -41,7 +41,9 @@ Proxy access means that the Grafana backend will proxy all requests from the bro
Click the ``Select metric`` link to start navigating the metric space. One you start you can continue using the mouse
or keyboard arrow keys. You can select a wildcard and still continue.
![](/img/docs/animated_gifs/graphite_query1.gif)
{{< docs-imagebox img="/img/docs/v45/graphite_query1_still.png"
animated-gif="/img/docs/v45/graphite_query1.gif" >}}
### Functions
@@ -50,18 +52,26 @@ a function is selected it will be added and your focus will be in the text box o
a parameter just click on it and it will turn into a text box. To delete a function click the function name followed
by the x icon.
![](/img/docs/animated_gifs/graphite_query2.gif)
{{< docs-imagebox img="/img/docs/v45/graphite_query2_still.png"
animated-gif="/img/docs/v45/graphite_query2.gif" >}}
### Optional parameters
Some functions like aliasByNode support an optional second argument. To add this parameter specify for example 3,-2 as the first parameter and the function editor will adapt and move the -2 to a second parameter. To remove the second optional parameter just click on it and leave it blank and the editor will remove it.
![](/img/docs/animated_gifs/func_editor_optional_params.gif)
{{< docs-imagebox img="/img/docs/v45/graphite_query3_still.png"
animated-gif="/img/docs/v45/graphite_query3.gif" >}}
### Nested Queries
You can reference queries by the row “letter” that theyre on (similar to Microsoft Excel). If you add a second query to a graph, you can reference the first query simply by typing in #A. This provides an easy and convenient way to build compounded queries.
{{< docs-imagebox img="/img/docs/v45/graphite_nested_queries_still.png"
animated-gif="/img/docs/v45/graphite_nested_queries.gif" >}}
## Point consolidation
All Graphite metrics are consolidated so that Graphite doesn't return more data points than there are pixels in the graph. By default,

View File

@@ -1,6 +1,7 @@
+++
title = "Data Sources"
type = "docs"
aliases = ["/datasources/overview/"]
[menu.docs]
name = "Data Sources"
identifier = "datasources"
@@ -27,8 +28,9 @@ The following datasources are officially supported:
* [InfluxDB]({{< relref "influxdb.md" >}})
* [OpenTSDB]({{< relref "opentsdb.md" >}})
* [Prometheus]({{< relref "prometheus.md" >}})
* [MySQL]({{< relref "mysql.md" >}})
* [Postgres]({{< relref "postgres.md" >}})
## Data source plugins
Since grafana 3.0 you can install data sources as plugins. Checkout [Grafana.net](https://grafana.com/plugins) for more data sources.

View File

@@ -41,7 +41,7 @@ mode is also more secure as the username & password will never reach the browser
## Query Editor
![](/assets/img/blog/v2.6/influxdb_editor_v3.gif)
{{< docs-imagebox img="/img/docs/v45/influxdb_query_still.png" class="docs-image--no-shadow" animated-gif="/img/docs/v45/influxdb_query.gif" >}}
You find the InfluxDB editor in the metrics tab in Graph or Singlestat panel's edit mode. You enter edit mode by clicking the
panel title, then edit. The editor allows you to select metrics and tags.
@@ -57,10 +57,8 @@ will automatically adjust the filter tag condition to use the InfluxDB regex mat
### Field & Aggregation functions
In the `SELECT` row you can specify what fields and functions you want to use. If you have a
group by time you need an aggregation function. Some functions like derivative require an aggregation function.
The editor tries simplify and unify this part of the query. For example:
![](/img/docs/influxdb/select_editor.png)
group by time you need an aggregation function. Some functions like derivative require an aggregation function. The editor tries simplify and unify this part of the query. For example:<br>
![](/img/docs/influxdb/select_editor.png)<br>
The above will generate the following InfluxDB `SELECT` clause:
@@ -175,6 +173,4 @@ SELECT title, description from events WHERE $timeFilter order asc
For InfluxDB you need to enter a query like in the above example. You need to have the ```where $timeFilter```
part. If you only select one column you will not need to enter anything in the column mapping fields. The
Tags field can be a comma seperated string.
Tags field can be a comma separated string.

View File

@@ -11,8 +11,7 @@ weight = 7
# Using MySQL in Grafana
> Only available in Grafana v4.3+. This data source is not ready for
> production use, currently in development (alpha state).
> Only available in Grafana v4.3+.
Grafana ships with a built-in MySQL data source plugin that allow you to query any visualize
data from a MySQL compatible database.
@@ -58,8 +57,7 @@ If the `Format as` query option is set to `Table` then you can basically do any
Query editor with example query:
![](/img/docs/v43/mysql_table_query.png)
{{< docs-imagebox img="/img/docs/v45/mysql_table_query.png" >}}
The query:
@@ -129,6 +127,12 @@ A query can returns multiple columns and Grafana will automatically create a lis
SELECT my_host.hostname, my_other_host.hostname2 FROM my_host JOIN my_other_host ON my_host.city = my_other_host.city
```
To use time range dependent macros like `$__timeFilter(column)` in your query the refresh mode of the template variable needs to be set to *On Time Range Change*.
```sql
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```
Another option is a query that can create a key/value variable. The query should return two columns that are named `__text` and `__value`. The `__text` column value should be unique (if it is not unique then the first value is used). The options in the dropdown will have a text and value that allows you to have a friendly name as text and an id as the value. An example query with `hostname` as the text and `id` as the value:
```sql
@@ -144,7 +148,11 @@ SELECT hostname FROM my_host WHERE region IN($region)
### Using Variables in Queries
Template variables are quoted automatically so if it is a string value do not wrap them in quotes in where clauses. If the variable is a multi-value variable then use the `IN` comparison operator rather than `=` to match against multiple values.
From Grafana 4.3.0 to 4.6.0, template variables are always quoted automatically so if it is a string value do not wrap them in quotes in where clauses.
From Grafana 4.7.0, template variable values are only quoted when the template variable is a `multi-value`.
If the variable is a multi-value variable then use the `IN` comparison operator rather than `=` to match against multiple values.
There are two syntaxes:
@@ -172,7 +180,28 @@ WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```
## Annotations
[Annotations]({{< relref "reference/annotations.md" >}}) allows you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
An example query:
```sql
SELECT
UNIX_TIMESTAMP(atimestamp) as time_sec,
value as text,
CONCAT(tag1, ',', tag2) as tags
FROM my_table
WHERE $__timeFilter(atimestamp)
ORDER BY atimestamp ASC
```
Name | Description
------------ | -------------
time_sec | The name of the date/time field.
text | Event description field.
tags | Optional field name to use for event tags as a comma separated string.
## Alerting
Time series queries should work in alerting conditions. Table formatted queries is not yet supported in alert rule
conditions.
Time series queries should work in alerting conditions. Table formatted queries is not yet supported in alert rule conditions.

View File

@@ -0,0 +1,219 @@
+++
title = "Using PostgreSQL in Grafana"
description = "Guide for using PostgreSQL in Grafana"
keywords = ["grafana", "postgresql", "guide"]
type = "docs"
[menu.docs]
name = "PostgreSQL"
parent = "datasources"
weight = 7
+++
# Using PostgreSQL in Grafana
Grafana ships with a built-in PostgreSQL data source plugin that allows you to query and visualize data from a PostgreSQL compatible database.
## Adding the data source
1. Open the side menu by clicking the Grafana icon in the top header.
2. In the side menu under the `Dashboards` link you should find a link named `Data Sources`.
3. Click the `+ Add data source` button in the top header.
4. Select *PostgreSQL* from the *Type* dropdown.
### Database User Permissions (Important!)
The database user you specify when you add the data source should only be granted SELECT permissions on
the specified database & tables you want to query. Grafana does not validate that the query is safe. The query
could include any SQL statement. For example, statements like `DELETE FROM user;` and `DROP TABLE user;` would be
executed. To protect against this we **Highly** recommmend you create a specific postgresql user with restricted permissions.
Example:
```sql
CREATE USER grafanareader WITH PASSWORD 'password';
GRANT USAGE ON SCHEMA schema TO grafanareader;
GRANT SELECT ON schema.table TO grafanareader;
```
Make sure the user does not get any unwanted privileges from the public role.
## Macros
To simplify syntax and to allow for dynamic parts, like date range filters, the query can contain macros.
Macro example | Description
------------ | -------------
*$__time(dateColumn)* | Will be replaced by an expression to rename the column to `time`. For example, *dateColumn as time*
*$__timeSec(dateColumn)* | Will be replaced by an expression to rename the column to `time` and converting the value to unix timestamp. For example, *extract(epoch from dateColumn) as time*
*$__timeFilter(dateColumn)* | Will be replaced by a time range filter using the specified column name. For example, *extract(epoch from dateColumn) BETWEEN 1494410783 AND 1494497183*
*$__timeFrom()* | Will be replaced by the start of the currently active time selection. For example, *to_timestamp(1494410783)*
*$__timeTo()* | Will be replaced by the end of the currently active time selection. For example, *to_timestamp(1494497183)*
*$__timeGroup(dateColumn,'5m')* | Will be replaced by an expression usable in GROUP BY clause. For example, *(extract(epoch from dateColumn)/300)::bigint*300 AS time*
*$__unixEpochFilter(dateColumn)* | Will be replaced by a time range filter using the specified column name with times represented as unix timestamp. For example, *dateColumn > 1494410783 AND dateColumn < 1494497183*
*$__unixEpochFrom()* | Will be replaced by the start of the currently active time selection as unix timestamp. For example, *1494410783*
*$__unixEpochTo()* | Will be replaced by the end of the currently active time selection as unix timestamp. For example, *1494497183*
We plan to add many more macros. If you have suggestions for what macros you would like to see, please [open an issue](https://github.com/grafana/grafana) in our GitHub repo.
The query editor has a link named `Generated SQL` that shows up after a query as been executed, while in panel edit mode. Click on it and it will expand and show the raw interpolated SQL string that was executed.
## Table queries
If the `Format as` query option is set to `Table` then you can basically do any type of SQL query. The table panel will automatically show the results of whatever columns & rows your query returns.
Query editor with example query:
![](/img/docs/v46/postgres_table_query.png)
The query:
```sql
SELECT
title as "Title",
"user".login as "Created By",
dashboard.created as "Created On"
FROM dashboard
INNER JOIN "user" on "user".id = dashboard.created_by
WHERE $__timeFilter(dashboard.created)
```
You can control the name of the Table panel columns by using regular `as ` SQL column selection syntax.
The resulting table panel:
![](/img/docs/v46/postgres_table.png)
### Time series queries
If you set `Format as` to `Time series`, for use in Graph panel for example, then the query must return a column named `time` that returns either a sql datetime or any numeric datatype representing unix epoch in seconds.
Any column except `time` and `metric` is treated as a value column.
You may return a column named `metric` that is used as metric name for the value column.
Example with `metric` column
```sql
SELECT
$__timeGroup(time_date_time,'5m'),
min(value_double),
'min' as metric
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```
Example with multiple columns:
```sql
SELECT
$__timeGroup(time_date_time,'5m'),
min(value_double) as min_value,
max(value_double) as max_value
FROM test_data
WHERE $__timeFilter(time_date_time)
GROUP BY time
ORDER BY time
```
## Templating
Instead of hard-coding things like server, application and sensor name in you metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns makes it easy to change the data being displayed in your dashboard.
Checkout the [Templating]({{< relref "reference/templating.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
### Query Variable
If you add a template variable of the type `Query`, you can write a PostgreSQL query that can
return things like measurement names, key names or key values that are shown as a dropdown select box.
For example, you can have a variable that contains all values for the `hostname` column in a table if you specify a query like this in the templating variable *Query* setting.
```sql
SELECT hostname FROM host
```
A query can return multiple columns and Grafana will automatically create a list from them. For example, the query below will return a list with values from `hostname` and `hostname2`.
```sql
SELECT host.hostname, other_host.hostname2 FROM host JOIN other_host ON host.city = other_host.city
```
To use time range dependent macros like `$__timeFilter(column)` in your query the refresh mode of the template variable needs to be set to *On Time Range Change*.
```sql
SELECT event_name FROM event_log WHERE $__timeFilter(time_column)
```
Another option is a query that can create a key/value variable. The query should return two columns that are named `__text` and `__value`. The `__text` column value should be unique (if it is not unique then the first value is used). The options in the dropdown will have a text and value that allows you to have a friendly name as text and an id as the value. An example query with `hostname` as the text and `id` as the value:
```sql
SELECT hostname AS __text, id AS __value FROM host
```
You can also create nested variables. For example if you had another variable named `region`. Then you could have
the hosts variable only show hosts from the current selected region with a query like this (if `region` is a multi-value variable then use the `IN` comparison operator rather than `=` to match against multiple values):
```sql
SELECT hostname FROM host WHERE region IN($region)
```
### Using Variables in Queries
From Grafana 4.3.0 to 4.6.0, template variables are always quoted automatically so if it is a string value do not wrap them in quotes in where clauses.
From Grafana 4.7.0, template variable values are only quoted when the template variable is a `multi-value`.
If the variable is a multi-value variable then use the `IN` comparison operator rather than `=` to match against multiple values.
There are two syntaxes:
`$<varname>` Example with a template variable named `hostname`:
```sql
SELECT
atimestamp as time,
aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in($hostname)
ORDER BY atimestamp ASC
```
`[[varname]]` Example with a template variable named `hostname`:
```sql
SELECT
atimestamp as time,
aint as value
FROM table
WHERE $__timeFilter(atimestamp) and hostname in([[hostname]])
ORDER BY atimestamp ASC
```
## Annotations
[Annotations]({{< relref "reference/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
An example query:
```sql
SELECT
extract(epoch from time_date_time) AS time,
metric1 as text,
concat_ws(', ', metric1::text, metric2::text) as tags
FROM
public.test_data
WHERE
$__timeFilter(time_date_time)
```
Name | Description
------------ | -------------
time | The name of the date/time field.
text | Event description field.
tags | Optional field name to use for event tags as a comma separated string.
## Alerting
Time series queries should work in alerting conditions. Table formatted queries is not yet supported in alert rule
conditions.

View File

@@ -34,12 +34,14 @@ Name | Description
*Basic Auth* | Enable basic authentication to the Prometheus data source.
*User* | Name of your Prometheus user
*Password* | Database user's password
*Scrape interval* | This will be used as a lower limit for the Prometheus step query parameter. Default value is 15s.
## Query editor
Open a graph in edit mode by click the title > Edit (or by pressing `e` key while hovering over panel).
![](/img/docs/v43/prometheus_query_editor.png)
{{< docs-imagebox img="/img/docs/v45/prometheus_query_editor_still.png"
animated-gif="/img/docs/v45/prometheus_query_editor.gif" >}}
Name | Description
------- | --------
@@ -94,3 +96,7 @@ Prometheus supports two ways to query annotations.
- A Prometheus query for pending and firing alerts (for details see [Inspecting alerts during runtime](https://prometheus.io/docs/alerting/rules/#inspecting-alerts-during-runtime))
The step option is useful to limit the number of events returned from your query.
## Getting Grafana metrics into Prometheus
Since 4.6.0 Grafana exposes metrics for Prometheus on the `/metrics` endpoint. We also bundle a dashboard within Grafana so you can get started viewing your metrics faster. You can import the bundled dashboard by going to the data source edit page and click the dashboard tab. There you can find a dashboard for Grafana and one for Prometheus. Import and start viewing all the metrics!

View File

@@ -17,7 +17,7 @@ This make is much easier to verify functionally since the data can be shared ver
## Enable
`Grafana TestData` is not enabled by default. To enable it you have to go to `/plugins/testdata/edit` and click the enable button to enable.
`Grafana TestData` is not enabled by default. To enable it, first navigate to the Plugins section, found in your Grafana main menu. Click the Apps tabs in the Plugins section and select the Grafana TestData App. (Or navigate to http://your_grafana_instance/plugins/testdata/edit to go directly there). Finally click the enable button to enable.
## Create mock data.

Some files were not shown because too many files have changed in this diff Show More