hubot-grafana 2.5.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.github/workflows/nodejs.yml +1 -1
  2. package/README.md +20 -22
  3. package/package.json +13 -9
  4. package/src/grafana.coffee +48 -33
  5. package/test/fixtures/v8/alerts.json +1 -0
  6. package/test/fixtures/v8/dashboard-grafana-play.json +1 -0
  7. package/test/fixtures/v8/dashboard-grafana-play.png +0 -0
  8. package/test/fixtures/v8/dashboard-monitoring-default.json +1 -0
  9. package/test/fixtures/v8/dashboard-monitoring-default.png +0 -0
  10. package/test/fixtures/v8/dashboard-templating.json +1 -0
  11. package/test/fixtures/v8/search-query.json +1 -0
  12. package/test/fixtures/v8/search-tag.json +1 -0
  13. package/test/fixtures/v8/search.json +1 -0
  14. package/test/grafana-rocketchat-test.coffee +14 -14
  15. package/test/grafana-s3-test.coffee +23 -27
  16. package/test/grafana-slack-test.coffee +12 -12
  17. package/test/grafana-v8-test.coffee +265 -0
  18. package/test/per-room-configuration-test.coffee +8 -8
  19. package/test/static-configuration-test.coffee +3 -3
  20. package/test/timezone-test.coffee +13 -13
  21. package/.travis.yml +0 -11
  22. package/screenshot.png +0 -0
  23. package/test/fixtures/v4/dashboard-grafana-play.json +0 -747
  24. package/test/fixtures/v4/dashboard-monitoring-default.json +0 -1002
  25. package/test/fixtures/v4/dashboard-monitoring-default.png +0 -0
  26. package/test/fixtures/v4/search-query.json +0 -13
  27. package/test/fixtures/v4/search-tag.json +0 -57
  28. package/test/fixtures/v4/search.json +0 -351
  29. package/test/fixtures/v5/alerts.json +0 -1
  30. package/test/fixtures/v5/dashboard-grafana-play.json +0 -1
  31. package/test/fixtures/v5/dashboard-grafana-play.png +0 -0
  32. package/test/fixtures/v5/dashboard-templating.json +0 -1
  33. package/test/fixtures/v5/search-query.json +0 -1
  34. package/test/fixtures/v5/search-tag.json +0 -1
  35. package/test/fixtures/v5/search.json +0 -1
  36. package/test/grafana-v4-test.coffee +0 -168
  37. package/test/grafana-v5-test.coffee +0 -210
@@ -9,7 +9,7 @@ jobs:
9
9
 
10
10
  strategy:
11
11
  matrix:
12
- node-version: [10.x, 12.x, 14.x]
12
+ node-version: [12.x, 14.x, 16.x]
13
13
 
14
14
  steps:
15
15
  - uses: actions/checkout@v1
package/README.md CHANGED
@@ -1,12 +1,10 @@
1
1
  # Grafana for Hubot
2
2
 
3
- [![npm version](https://badge.fury.io/js/hubot-grafana.svg)](http://badge.fury.io/js/hubot-grafana) [![Build Status](https://travis-ci.org/stephenyeargin/hubot-grafana.png)](https://travis-ci.org/stephenyeargin/hubot-grafana)
3
+ [![npm version](https://badge.fury.io/js/hubot-grafana.svg)](http://badge.fury.io/js/hubot-grafana) [![Node CI](https://github.com/stephenyeargin/hubot-grafana/actions/workflows/nodejs.yml/badge.svg)](https://github.com/stephenyeargin/hubot-grafana/actions/workflows/nodejs.yml)
4
4
 
5
- ![Screenshot](screenshot.png)
5
+ Use Hubot to query Grafana dashboards. Inspired by the work of [`hubot-graphite`](https://github.com/github/hubot-scripts/blob/master/src/scripts/graphite.coffee) and [`hubot-graphme`](https://github.com/rick/hubot-graphme).
6
6
 
7
- Use Hubot to query Grafana dashboards. Inspired by the work of [`hubot-graphite`](https://github.com/github/hubot-scripts/blob/master/src/scripts/graphite.coffee) and [`hubot-graphme`](https://github.com/rick/hubot-graphme). Check out the [HOWTO](http://docs.grafana.org/tutorials/hubot_howto/) to get started with the bot.
8
-
9
- **Note:** This package requires Grafana 2.0.2 or higher.
7
+ **Note:** This package requires Grafana 5 or higher. If you need support for an older version, use the `v2.x` releases. As of version `3.x` you must use the `UID` of a given dashboard because of a change in the Grafana API. We strongly recommend using the [`hubot-alias`](https://www.npmjs.com/package/hubot-alias) to save some time in making common requests.
10
8
 
11
9
  ## Installation
12
10
 
@@ -28,16 +26,16 @@ Then add **hubot-grafana** to your `external-scripts.json`:
28
26
 
29
27
  | Configuration Variable | Required | Description |
30
28
  | --------------------------------- | -------- | ------------------------------ |
31
- | `HUBOT_GRAFANA_HOST` | **Yes^** | Host for your Grafana 2.x install, e.g. `http://play.grafana.org` |
29
+ | `HUBOT_GRAFANA_HOST` | **Yes^** | Host for your Grafana 2.x install, e.g. `https://play.grafana.org` |
32
30
  | `HUBOT_GRAFANA_API_KEY` | _Yes^^_ | Grafana API key (This can be "Viewer" role.) |
33
31
  | `HUBOT_GRAFANA_PER_ROOM` | No | Allow per room Grafana Host & API key configuration |
34
32
  | `HUBOT_GRAFANA_QUERY_TIME_RANGE` | No | Default time range for queries (defaults to 6h) |
35
33
  | `HUBOT_GRAFANA_DEFAULT_WIDTH` | No | Default width for rendered images (defaults to 1000) |
36
34
  | `HUBOT_GRAFANA_DEFAULT_HEIGHT` | No | Default height for rendered images (defaults to 500) |
37
35
  | `HUBOT_GRAFANA_DEFAULT_TIME_ZONE` | No | Default time zone for rendered images (defaults to `""`) |
38
- | `HUBOT_GRAFANA_ORG_ID` | No | Default organization id, need for image rendering in new versions of grafana (defaults to `""`) |
39
- | `HUBOT_GRAFANA_API_ENDPOINT` | No | Default rendering api endpoint, need for image rendering in new versions of grafana (defaults to `"dashboard-solo"`) |
40
- | `HUBOT_GRAFANA_USE_UID` | No | Allow use of dashboard uid instead of `db`, need for image rendering in new versions of grafana (defaults to `""`) |
36
+ | `HUBOT_GRAFANA_ORG_ID` | No | Default organization id, need for image rendering in new versions of Grafana (defaults to `""`) |
37
+ | `HUBOT_GRAFANA_API_ENDPOINT` | No | Default rendering api endpoint, need for image rendering in new versions of Grafana (defaults to `d-solo`) |
38
+ | `HUBOT_GRAFANA_MAX_RETURNED_DASHBOARDS` | No | Count of dashboards to return to prevent chat flood (defaults to `25`) |
41
39
 
42
40
  ^ _Not required when `HUBOT_GRAFANA_PER_ROOM` is set to 1._
43
41
 
@@ -58,7 +56,7 @@ You can use one of the following strategies to host the generated images from Gr
58
56
  ### Example Configuration
59
57
 
60
58
  ```
61
- export HUBOT_GRAFANA_HOST=http://play.grafana.org
59
+ export HUBOT_GRAFANA_HOST=https://play.grafana.org
62
60
  export HUBOT_GRAFANA_API_KEY=abcd01234deadbeef01234
63
61
  export HUBOT_GRAFANA_QUERY_TIME_RANGE=1h
64
62
  export HUBOT_GRAFANA_S3_BUCKET=mybucket
@@ -70,18 +68,18 @@ export HUBOT_GRAFANA_S3_PREFIX=graphs
70
68
  ## Sample Interaction
71
69
 
72
70
  ```
73
- user1>> hubot graf db graphite-carbon-metrics
74
- hubot>> Graphite Carbon Metrics: http://play.grafana.org/render/dashboard/solo/graphite-carbon-metrics/?panelId=1&width=1000&height=500&from=now-6h - http://play.grafana.org/dashboard/db/graphite-carbon-metrics/?panelId=1&fullscreen&from=now-6h
71
+ user1>> hubot graf db 000000011
72
+ hubot>> Graphite Carbon Metrics: https://play.grafana.org/render/d-solo/000000011/graphite-carbon-metrics/?panelId=1&width=1000&height=500&from=now-6h - https://play.grafana.org/d/000000011/graphite-carbon-metrics?panelId=1&fullscreen&from=now-6h
75
73
  ```
76
74
 
77
75
  ## Grafana Commands
78
76
 
79
77
  ### Retrieve a Dashboard
80
78
 
81
- Get all panels in a dashboard. In this example, `graphite-carbon-metrics` is the slug for the given dashboard.
79
+ Get all panels in a dashboard. In this example, `000000011` is the UID for the given dashboard. To obtain the UID, use `hubot graf list` or `hubot graf search <term>`.
82
80
 
83
81
  ```
84
- hubot graf db graphite-carbon-metrics
82
+ hubot graf db 000000011
85
83
  ```
86
84
 
87
85
  ### Retrieve Specific Panels
@@ -89,19 +87,19 @@ hubot graf db graphite-carbon-metrics
89
87
  Get a single panel of a dashboard. In this example, only the third panel would be returned. Note that this is the _visual_ panel ID, counted from top to bottom, left to right, rather than the unique identifier stored with the panel itself.
90
88
 
91
89
  ```
92
- hubot graf db graphite-carbon-metrics:3
90
+ hubot graf db 000000011:3
93
91
  ```
94
92
 
95
93
  If you want to refer to the API Panel ID, use the `:panel-<identifier>` format to retrieve it. These will not change when the dashboard is re-arranged.
96
94
 
97
95
  ```
98
- hubot graf db graphite-carbon-metrics:panel-8
96
+ hubot graf db 000000011:panel-8
99
97
  ```
100
98
 
101
99
  Get all panels matching a particular title (case insensitive) in a dashboard. In this case, only panels containing `cpu` would be returned.
102
100
 
103
101
  ```
104
- hubot graf db graphite-carbon-metrics:cpu
102
+ hubot graf db 000000011:cpu
105
103
  ```
106
104
 
107
105
  ### Retrieve Dashboards in a Time Window
@@ -109,19 +107,19 @@ hubot graf db graphite-carbon-metrics:cpu
109
107
  Specify a time range for the dashboard. In this example, the dashboard would be set to display data from 12 hours ago to now.
110
108
 
111
109
  ```
112
- hubot graf db graphite-carbon-metrics now-12hr
110
+ hubot graf db 000000011 now-12hr
113
111
  ```
114
112
 
115
113
  If you don't want to show the dashboard uptil now, you can add an extra time specification, which will be the `to` time slot. In this example, the dashboard would be set to display data from 24 hours ago to 12 hours ago.
116
114
 
117
115
  ```
118
- hubot graf db graphite-carbon-metrics now-24hr now-12hr
116
+ hubot graf db 000000011 now-24hr now-12hr
119
117
  ```
120
118
 
121
119
  You can combine multiple commands in this format as well. In this example, retrieve only the third panel of the `graphite-carbon-metrics` dashboard with a window of eight days ago to yesterday.
122
120
 
123
121
  ```
124
- hubot graf db graphite-carbon-metrics:3 now-8d now-1d
122
+ hubot graf db 000000011:3 now-8d now-1d
125
123
  ```
126
124
 
127
125
  ### Templated Dashboards
@@ -129,7 +127,7 @@ hubot graf db graphite-carbon-metrics:3 now-8d now-1d
129
127
  Grafana allows dashboards to be set up as templates and accept arguments to generate them through the API. In this example, we get a templated dashboard with the `$host` parameter set to `carbon-a`
130
128
 
131
129
  ```
132
- hubot graf db graphite-carbon-metrics host=carbon-a
130
+ hubot graf db 000000011 host=carbon-a
133
131
  ```
134
132
 
135
133
  ### Utility Commands
@@ -157,6 +155,6 @@ hubot graf search elb
157
155
  When `HUBOT_GRAFANA_PER_ROOM` is set to '1' the following commands configure the Grafana Host and API key for the room in which the commands are issued.
158
156
 
159
157
  ```
160
- hubot graf set host http://play.grafana.org
158
+ hubot graf set host https://play.grafana.org
161
159
  hubot graf set api_key abcd01234deadbeef01234
162
160
  ```
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "hubot-grafana",
3
3
  "description": "Query Grafana dashboards",
4
- "version": "2.5.2",
4
+ "version": "3.1.1",
5
5
  "author": "Stephen Yeargin <stephen@yearg.in>",
6
6
  "license": "MIT",
7
- "keywords": "hubot, hubot-scripts, grafana, graphs",
7
+ "keywords": [
8
+ "hubot",
9
+ "hubot-scripts",
10
+ "grafana",
11
+ "graphs"
12
+ ],
8
13
  "repository": {
9
14
  "type": "git",
10
15
  "url": "git://github.com/stephenyeargin/hubot-grafana.git"
@@ -20,16 +25,15 @@
20
25
  "hubot": "^3"
21
26
  },
22
27
  "devDependencies": {
23
- "chai": "^4.3.4",
28
+ "chai": "^4.3.6",
24
29
  "coffee-script": "^1.12.7",
25
30
  "hubot-test-helper": "^1.9.0",
26
- "husky": "^6.0.0",
27
- "matchdep": "^2.0.0",
28
- "mocha": "^9.0.1",
29
- "nock": "^13.1.0",
30
- "release-it": "^14.10.0",
31
+ "husky": "^7.0.4",
32
+ "mocha": "^9.2.0",
33
+ "nock": "^13.2.4",
34
+ "release-it": "^14.12.4",
31
35
  "require-dir": "^1.2.0",
32
- "sinon": "^11.1.1",
36
+ "sinon": "^13.0.1",
33
37
  "sinon-chai": "^3.7.0",
34
38
  "travis-cov": "^0.2.5"
35
39
  },
@@ -14,7 +14,7 @@
14
14
  # - `hubot graf db graphite-carbon-metrics:3 tz=Europe/Amsterdam` - Get only the third panel of a particular dashboard and render in the time zone Europe/Amsterdam
15
15
  #
16
16
  # Configuration:
17
- # HUBOT_GRAFANA_HOST - Host for your Grafana 2.0 install, e.g. 'http://play.grafana.org'
17
+ # HUBOT_GRAFANA_HOST - Host for your Grafana 2.0 install, e.g. 'https://play.grafana.org'
18
18
  # HUBOT_GRAFANA_API_KEY - API key for a particular user (leave unset if unauthenticated)
19
19
  # HUBOT_GRAFANA_PER_ROOM - Optional; if set use robot brain to store host & API key per room
20
20
  # HUBOT_GRAFANA_QUERY_TIME_RANGE - Optional; Default time range for queries (defaults to 6h)
@@ -43,7 +43,7 @@
43
43
  #
44
44
  # Commands:
45
45
  # hubot graf set `[host|api_key]` <value> - Setup Grafana host or API key
46
- # hubot graf db <dashboard slug>[:<panel id>][ <template variables>][ <from clause>][ <to clause>] - Show grafana dashboard graphs
46
+ # hubot graf db <dashboard uid>[:<panel id>][ <template variables>][ <from clause>][ <to clause>] - Show grafana dashboard graphs
47
47
  # hubot graf list <tag> - Lists all dashboards available (optional: <tag>)
48
48
  # hubot graf search <keyword> - Search available dashboards by <keyword>
49
49
  # hubot graf alerts[ <state>] - Show all alerts (optional: <state>)
@@ -75,6 +75,7 @@ module.exports = (robot) ->
75
75
  rocketchat_url = process.env.ROCKETCHAT_URL
76
76
  rocketchat_user = process.env.ROCKETCHAT_USER
77
77
  rocketchat_password = process.env.ROCKETCHAT_PASSWORD
78
+ max_return_dashboards = process.env.HUBOT_GRAFANA_MAX_RETURNED_DASHBOARDS or 25
78
79
 
79
80
  if rocketchat_url && ! rocketchat_url.startsWith 'http'
80
81
  rocketchat_url = 'http://' + rocketchat_url
@@ -118,7 +119,7 @@ module.exports = (robot) ->
118
119
 
119
120
  # Get a specific dashboard with options
120
121
  robot.respond /(?:grafana|graph|graf) (?:dash|dashboard|db) ([A-Za-z0-9\-\:_]+)(.*)?/i, (msg) ->
121
- slug = msg.match[1].trim()
122
+ uid = msg.match[1].trim()
122
123
  remainder = msg.match[2]
123
124
  timespan = {
124
125
  from: "now-#{grafana_query_time_range}"
@@ -134,16 +135,15 @@ module.exports = (robot) ->
134
135
  height: process.env.HUBOT_GRAFANA_DEFAULT_HEIGHT or 500
135
136
  tz: process.env.HUBOT_GRAFANA_DEFAULT_TIME_ZONE or ""
136
137
  orgId: process.env.HUBOT_GRAFANA_ORG_ID or ""
137
- apiEndpoint: process.env.HUBOT_GRAFANA_API_ENDPOINT or "dashboard-solo"
138
- useUid: process.env.HUBOT_GRAFANA_USE_UID or ""
138
+ apiEndpoint: process.env.HUBOT_GRAFANA_API_ENDPOINT or "d-solo"
139
139
  endpoint = get_grafana_endpoint(msg)
140
140
  if not endpoint
141
141
  sendError 'No Grafana endpoint configured.', msg
142
142
  return
143
143
  # Parse out a specific panel
144
- if /\:/.test slug
145
- parts = slug.split(':')
146
- slug = parts[0]
144
+ if /\:/.test uid
145
+ parts = uid.split(':')
146
+ uid = parts[0]
147
147
  visualPanelId = parseInt parts[1], 10
148
148
  if isNaN visualPanelId
149
149
  visualPanelId = false
@@ -174,7 +174,7 @@ module.exports = (robot) ->
174
174
  timespan[timeFields.shift()] = part.trim()
175
175
 
176
176
  robot.logger.debug msg.match
177
- robot.logger.debug slug
177
+ robot.logger.debug uid
178
178
  robot.logger.debug timespan
179
179
  robot.logger.debug variables
180
180
  robot.logger.debug template_params
@@ -183,14 +183,23 @@ module.exports = (robot) ->
183
183
  robot.logger.debug pname
184
184
 
185
185
  # Call the API to get information about this dashboard
186
- callGrafana endpoint, "dashboards/db/#{slug}", (dashboard) ->
186
+ callGrafana endpoint, "dashboards/uid/#{uid}", (dashboard) ->
187
187
  robot.logger.debug dashboard
188
-
189
188
  # Check dashboard information
190
189
  if !dashboard
191
190
  return sendError 'An error ocurred. Check your logs for more details.', msg
192
191
  if dashboard.message
193
- return sendError dashboard.message, msg
192
+ # Search for URL slug to offer help
193
+ if dashboard.message = "Dashboard not found"
194
+ callGrafana endpoint, "search?type=dash-db", (results) ->
195
+ for item in results
196
+ if item.url.match(new RegExp("\/d\/[a-z0-9\-]+\/#{uid}$", 'i'))
197
+ sendError "Try your query again with `#{item.uid}` instead of `#{uid}`", msg
198
+ return
199
+ sendError dashboard.message, msg
200
+ else
201
+ sendError dashboard.message, msg
202
+ return
194
203
 
195
204
  # Defaults
196
205
  data = dashboard.dashboard
@@ -219,6 +228,7 @@ module.exports = (robot) ->
219
228
 
220
229
  # Return dashboard rows
221
230
  panelNumber = 0
231
+ returnedCount = 0
222
232
  for row in data.rows
223
233
  for panel in row.panels
224
234
  robot.logger.debug panel
@@ -236,17 +246,25 @@ module.exports = (robot) ->
236
246
  if pname && panel.title.toLowerCase().indexOf(pname) is -1
237
247
  continue
238
248
 
249
+ # Skip if we have already returned max count of dashboards
250
+ if returnedCount > max_return_dashboards
251
+ continue
252
+
239
253
  # Build links for message sending
240
254
  title = formatTitleWithTemplate(panel.title, template_map)
241
- db = if query.useUid then dashboard.dashboard.uid else "db"
242
- imageUrl = "#{endpoint.host}/render/#{query.apiEndpoint}/#{db}/#{slug}/?panelId=#{panel.id}&width=#{query.width}&height=#{query.height}&from=#{timespan.from}&to=#{timespan.to}#{variables}"
255
+ uid = dashboard.dashboard.uid
256
+ imageUrl = "#{endpoint.host}/render/#{query.apiEndpoint}/#{uid}/?panelId=#{panel.id}&width=#{query.width}&height=#{query.height}&from=#{timespan.from}&to=#{timespan.to}#{variables}"
243
257
  if query.tz
244
258
  imageUrl += "&tz=#{encodeURIComponent query.tz}"
245
259
  if query.orgId
246
260
  imageUrl += "&orgId=#{encodeURIComponent query.orgId}"
247
- link = "#{endpoint.host}/dashboard/db/#{slug}/?panelId=#{panel.id}&fullscreen&from=#{timespan.from}&to=#{timespan.to}#{variables}"
261
+ link = "#{endpoint.host}/d/#{uid}/?panelId=#{panel.id}&fullscreen&from=#{timespan.from}&to=#{timespan.to}#{variables}"
248
262
 
249
263
  sendDashboardChart msg, title, imageUrl, link
264
+ returnedCount += 1
265
+
266
+ if returnedCount == 0
267
+ return sendError "Could not locate desired panel.", msg
250
268
 
251
269
  # Process the bot response
252
270
  sendDashboardChart = (msg, title, imageUrl, link) ->
@@ -352,28 +370,23 @@ module.exports = (robot) ->
352
370
 
353
371
  # Send Dashboard list
354
372
  sendDashboardList = (dashboards, response, msg) ->
355
- # Handle refactor done for version 2.0.2+
356
- if dashboards.dashboards
357
- list = dashboards.dashboards
358
- else
359
- list = dashboards
360
-
361
- robot.logger.debug list
362
- unless list.length > 0
373
+ robot.logger.debug dashboards
374
+ unless dashboards.length > 0
363
375
  return
364
376
 
365
- for dashboard in list
366
- # Handle refactor done for version 2.0.2+
367
- if dashboard.uri
368
- slug = dashboard.uri.replace /^db\//, ''
369
- else
370
- slug = dashboard.slug
371
- response = response + "- #{slug}: #{dashboard.title}\n"
377
+ remaing = 0
378
+ if dashboards.length > max_return_dashboards
379
+ remaining = dashboards.length - max_return_dashboards
380
+ dashboards = dashboards.slice(0, max_return_dashboards - 1)
381
+
382
+ list = []
383
+ for dashboard in dashboards
384
+ list.push "- #{dashboard.uid}: #{dashboard.title}"
372
385
 
373
- # Remove trailing newline
374
- response.trim()
386
+ if remaining
387
+ list.push " (and #{remaining} more)"
375
388
 
376
- msg.send response
389
+ msg.send response + list.join("\n")
377
390
 
378
391
  # Handle generic errors
379
392
  sendError = (message, msg) ->
@@ -609,6 +622,8 @@ module.exports = (robot) ->
609
622
  # function and use it inside your service upload implementation.
610
623
  grafanaDashboardRequest = (callback) ->
611
624
  request url, requestHeaders, (err, res, body) ->
625
+ if err
626
+ return sendError err, msg
612
627
  robot.logger.debug "Uploading file: #{body.length} bytes, content-type[#{res.headers['content-type']}]"
613
628
  if callback
614
629
  callback(err, res, body)
@@ -0,0 +1 @@
1
+ [{"id":2,"dashboardId":74,"dashboardUid":"000000074","dashboardSlug":"alerting","panelId":2,"name":"API Error / 1min alert","state":"no_data","newStateDate":"2021-06-05T13:18:08Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"noData":true},"executionError":"","url":"/d/000000074/alerting"},{"id":11,"dashboardId":110,"dashboardUid":"000000110","dashboardSlug":"business-metrics","panelId":19,"name":"Customer Reviews alert","state":"ok","newStateDate":"2021-06-09T14:49:08Z","evalDate":"0001-01-01T00:00:00Z","evalData":{},"executionError":"","url":"/d/000000110/business-metrics"},{"id":4,"dashboardId":74,"dashboardUid":"000000074","dashboardSlug":"alerting","panelId":5,"name":"Dashboard Loads Peaking","state":"alerting","newStateDate":"2021-06-09T14:36:04Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"Dashboard loads / min","tags":null,"value":48}]},"executionError":"","url":"/d/000000074/alerting"},{"id":1,"dashboardId":74,"dashboardUid":"000000074","dashboardSlug":"alerting","panelId":1,"name":"Metric Requests Peaking","state":"alerting","newStateDate":"2021-06-09T14:04:01Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"req / s","tags":null,"value":15.48095238095238},{"metric":"req / s","tags":null,"value":42}]},"executionError":"","url":"/d/000000074/alerting"},{"id":29,"dashboardId":587,"dashboardUid":"4QfoqzGZk","dashboardSlug":"alert-on-multiple-series","panelId":2,"name":"Multi series alerting","state":"alerting","newStateDate":"2021-06-09T09:51:52Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"mobile","tags":null,"value":2.4000000000000004}]},"executionError":"","url":"/d/4QfoqzGZk/alert-on-multiple-series"},{"id":10,"dashboardId":110,"dashboardUid":"000000110","dashboardSlug":"business-metrics","panelId":4,"name":"Payments Completed/s alert","state":"ok","newStateDate":"2021-06-06T03:57:16Z","evalDate":"0001-01-01T00:00:00Z","evalData":{},"executionError":"","url":"/d/000000110/business-metrics"},{"id":12,"dashboardId":110,"dashboardUid":"000000110","dashboardSlug":"business-metrics","panelId":20,"name":"Payments Completed/s alert","state":"ok","newStateDate":"2021-06-09T10:56:30Z","evalDate":"0001-01-01T00:00:00Z","evalData":{},"executionError":"","url":"/d/000000110/business-metrics"},{"id":3,"dashboardId":74,"dashboardUid":"000000074","dashboardSlug":"alerting","panelId":4,"name":"Request Time Average \u003c 190ms alert","state":"ok","newStateDate":"2021-06-09T09:41:06Z","evalDate":"0001-01-01T00:00:00Z","evalData":{},"executionError":"","url":"/d/000000074/alerting"},{"id":7,"dashboardId":83,"dashboardUid":"000000083","dashboardSlug":"influxdb-raw-query-template-var","panelId":1,"name":"Selected Servers alert","state":"alerting","newStateDate":"2020-10-31T13:30:08Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"logins.count.mean { hostname: server1 }","tags":{"hostname":"server1"},"value":-106.71717064921944}]},"executionError":"","url":"/d/000000083/influxdb-raw-query-template-var"},{"id":8,"dashboardId":84,"dashboardUid":"000000084","dashboardSlug":"influxdb-group-by-time","panelId":1,"name":"Selected Servers alert","state":"alerting","newStateDate":"2020-11-11T13:30:20Z","evalDate":"0001-01-01T00:00:00Z","evalData":{"evalMatches":[{"metric":"ser1","tags":{"hostname":"server1"},"value":23.864825803271298}]},"executionError":"","url":"/d/000000084/influxdb-group-by-time"},{"id":30,"dashboardId":957,"dashboardUid":"avzwehmz","dashboardSlug":"demo-wind-farm","panelId":2,"name":"Wind Farm - Total power is low","state":"ok","newStateDate":"2021-03-17T17:57:52Z","evalDate":"0001-01-01T00:00:00Z","evalData":{},"executionError":"","url":"/d/avzwehmz/demo-wind-farm"}]
@@ -0,0 +1 @@
1
+ {"meta":{"type":"db","canSave":false,"canEdit":true,"canAdmin":false,"canStar":false,"slug":"flowcharting-grafana-play-home","url":"/d/97PlYC7Mk/flowcharting-grafana-play-home","expires":"0001-01-01T00:00:00Z","created":"2020-07-22T09:27:15Z","updated":"2020-07-22T10:28:59Z","updatedBy":"algenty","createdBy":"algenty","version":16,"hasAcl":false,"isFolder":false,"folderId":836,"folderUid":"yIhcIRjZz","folderTitle":"Visualization: Flowchart","folderUrl":"/dashboards/f/yIhcIRjZz/visualization-flowchart","provisioned":false,"provisionedExternalId":""},"dashboard":{"annotations":{"enable":false,"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Alerts","type":"dashboard"}]},"editable":true,"gnetId":null,"graphTooltip":1,"id":902,"links":[],"panels":[{"datasource":null,"fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"flowchartsData":{"flowcharts":[{"allowDrawio":false,"bgColor":null,"center":true,"csv":"## See more information for the syntax at https://drawio-app.com/import-from-csv-to-drawio/\n##\n## Example CSV. Use ## for comments and # for configuration.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is '%name_of_first_column%'.\n#\n# label: %name%\u003cbr\u003e\u003ci style=\"color:gray;\"\u003e%position%\u003c/i\u003e\u003cbr\u003e\u003ca href=\"mailto:%email%\"\u003eEmail\u003c/a\u003e\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {\"name\": \"style\", \"name\": \"style\"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {\"name\": \"label\", \"name\": \"label\"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows (\"from\": source colum, \"to\": target column).\n## Label, style and invert are optional. Defaults are '', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {\"from\": \"manager\", \"to\": \"name\", \"invert\": true, \"label\": \"manages\", \\\n# \"style\": \"curved=1;endArrow=blockThin;endFill=1;fontSize=11;\"}\n# connect: {\"from\": \"refs\", \"to\": \"id\", \"style\": \"curved=1;fontSize=11;\"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,\"emo,tva\",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n","download":false,"editorTheme":"kennedy","editorUrl":"https://www.draw.io","enableAnim":true,"grid":false,"lock":true,"name":"Main","scale":true,"tooltip":true,"type":"xml","url":"http://\u003cYourUrl\u003e/\u003cYour XML/drawio file/api\u003e","xml":"\u003cmxfile host=\"app.diagrams.net\" modified=\"2020-07-22T10:22:30.820Z\" agent=\"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36\" etag=\"nV0AEMHf-7Vv0eTn99K_\" version=\"13.5.0\"\u003e\u003cdiagram id=\"kIDd6iJ6KkdIknR0HMTp\" name=\"Page-1\"\u003e7Vpbc9o4FP41PML4Cvgx4dLuTHabbdrp7lNH2LLR1liMLAL0169kS77Jjg2YDDMhyQR0dLF1vu98ko49MGebwycCtus/sQfDgaF5h4E5HxiGPtYc9sEtx9RiT6apISDIE41ywwv6DYVRE9Yd8mBcakgxDinalo0ujiLo0pINEIL35WY+DstX3YIAKoYXF4Sq9Qfy6Dq1To1Jbv8MUbCWV9bHYsIbIBuLmcRr4OF9aVR4oEscUXGLX/EKUzywF2tK+eweBsaS/fm8xSjAOAgh2KJ45OINM7sxa7L0wQaF3LWiMxvWXAzMGcGYpt82hxkMOSbS3entLBtqs/kSGNEuHWyB5ysId8JnYr70KJ1I8C7yIO+gD8zH/RpR+LIFLq/dM9ow25puQlHtozCc4RCTpK85d/gvs2f+442CEPD5zzX2Xb1jMYlXSCg8FExiBp8g3kBKjqyJqLXMkWGnnQRPxwK1fQ66LpFcFwA3bWEEAsUgGzx3Gvsi/FbvQ3PS7sOAOXHbfapZRICVHEF70wVTrTT/qTp/azyyVQeMzR7mb7TPH+9oiCI4y+KcQ++BeJ3wihe4DxCL3CewguEzjhFFOGJ1LDAoC5m8wUOIAl5BMaceECWX+RSSMhcZ57b8+ptDwOVtBPaxOaIEeMnYIPwZQ/KadKqwdjKfzCYzTlTemI0s6yIcwVrOZhxoJ+37YDJux0S6B20SFS16rt7XrRCFvOIRuL+CRDMKHvWTH9YkudhDvM1ZAGTBRwfOhkdxP/OykLpeZI0QCwsfMTUiQkc9QAH74PaYfYY4wPFwRUDkxUPm2qVhsX8MRR9EYKgb09E2Ci5CT9YqkmOqIVenOEYfgtNBtN9ZcPQaxb0iu5274mQkuBHFsbS74pygON3RuwXFsfR2cN9ZcTLCvQ+773ucnAS3ojjmXXG6K84J6N2E4lg3pzim8a6KY98VJyPBrSjO/VR1iuJ0R+8mFKfDqUqC6x7DxF/t+bBVmjx7WmWGDMgvafQKe23YlpnSFE/dJbDR8+a4sruq0bpxjePNPhzf4TQHvQC+iCImdM0YyaRmkVsfy1nKvM0T5r5LjP9BSo8iSQ12FFd0jRL8K0sT27z9brOVFw0SYJmDyfEfDtJoasvyv0lZy8rzg0AxLR2LpWdIEHMQZ05iTC9aB2qVApkcNKId4x1xoVyrUhsFJIAyHgXBuS/f5ASBIaDotZxDvwRhW92pfV38/X3x8q0W6EQJy+AoC1LVPRvkeSkPYIx+ixWee3iLkcjR248De87DCEd0Wcm8N6qsWJt4nzqUuF1ShN/n8tsxEYigfj2TTL94azLURrpmG6WYHQovd4ZPjP7MPVQY2jJGZRG2ZVkOgn0/ZqyqMiC7zW6k0GrBv4Eo7zMo+wu2erR0+SxLJuIcozxEqgqiVw6YMpApH31VVwA5UColykAPhIBjoZmIt8Ybrl5H3nBOpHTEs2mlHhxuTmua1KRdg3KtUQgn46kXcdE0uVpcqiZ6Ce3pNYREr0X2FCFRNeAMaSlsDvTK5sC5YHNQ1KpmZaonWqMsXXdf0CRVlT3mtKIwDVJ1DiXUg9oHEYHekh8aO4pZFanuRxHks0m5bXGuoQmXHyH61oTqgaFVE9TwP/EIcaImFM8PMvt0I+cH9Q2LDxLORp9ruuNY14hnS6ucF4a6dp0TQ4dEgczQ+CE8PPA3yJKw8cTXucvfPELu4K13lhxnuXSUd5bK0Wi8GXjnnSUbA7M14ApJGrsmSSNtlwLtNOSITj5qtIzTcNI4gzEyZXV1xsxmy+WdMcqOr/rI1jmPMEO9baQeKaM+6v7jL4U0TI1pXWKhClyBJ8LUfSWqyyznWxTt5JWokS3d08QMiEqWQK95JnalBP3YUJD58l3dAXxQaJRHJ7UvSPQDDSvmryinMZa/P24u/gc=\u003c/diagram\u003e\u003c/mxfile\u003e","zoom":"100%"}]},"format":"short","graphId":"flowchart_23763571993","gridPos":{"h":9,"w":13,"x":0,"y":0},"id":13,"newFlag":false,"pluginVersion":"7.1.0","rulesData":{"rulesData":[{"aggregation":"current","alias":"web_server_01","colors":["rgba(50, 172, 45, 0.97)","rgba(237, 129, 40, 0.89)","rgba(245, 54, 54, 0.9)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":true,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":1,"overlayIcon":false,"pattern":"web_server_01","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[{"colorOn":"a","hidden":false,"pattern":"32","style":"fillColor"},{"colorOn":"n","hidden":false,"pattern":"36","style":"fillColor"},{"colorOn":"a","hidden":false,"pattern":"49","style":"strokeColor"}],"shapeProp":"id","shapeRegEx":false,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"53","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":true,"tooltipColors":true,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":true,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"200px","tpGraphType":"line","type":"number","unit":"short","valueData":[]},{"aggregation":"current","alias":"web_server_02","colors":["rgba(50, 172, 45, 0.97)","rgba(237, 129, 40, 0.89)","rgba(245, 54, 54, 0.9)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":true,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":2,"overlayIcon":false,"pattern":"web_server_02","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[{"colorOn":"a","hidden":false,"pattern":"39","style":"fillColor"},{"colorOn":"n","hidden":false,"pattern":"40","style":"fillColor"},{"colorOn":"a","hidden":false,"pattern":"50","style":"strokeColor"}],"shapeProp":"id","shapeRegEx":false,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"54","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":true,"tooltipColors":true,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":true,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"200px","tpGraphType":"line","type":"number","unit":"short","valueData":[]},{"aggregation":"current","alias":"web_server_04","colors":["rgba(50, 172, 45, 0.97)","rgba(237, 129, 40, 0.89)","rgba(245, 54, 54, 0.9)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":true,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":3,"overlayIcon":false,"pattern":"web_server_04","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[{"colorOn":"a","hidden":false,"pattern":"45","style":"fillColor"},{"colorOn":"n","hidden":false,"pattern":"46","style":"fillColor"},{"colorOn":"a","hidden":false,"pattern":"52","style":"strokeColor"}],"shapeProp":"id","shapeRegEx":false,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"57","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":true,"tooltipColors":true,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":true,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"200px","tpGraphType":"line","type":"number","unit":"short","valueData":[]},{"aggregation":"current","alias":"web_server_03","colors":["rgba(50, 172, 45, 0.97)","rgba(237, 129, 40, 0.89)","rgba(245, 54, 54, 0.9)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":true,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":4,"overlayIcon":false,"pattern":"web_server_03","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[{"colorOn":"a","hidden":false,"pattern":"42","style":"fillColor"},{"colorOn":"n","hidden":false,"pattern":"43","style":"fillColor"},{"colorOn":"a","hidden":false,"pattern":"51","style":"strokeColor"}],"shapeProp":"id","shapeRegEx":false,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"56","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":true,"tooltipColors":true,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":true,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"200px","tpGraphType":"line","type":"number","unit":"short","valueData":[]},{"aggregation":"current_notnull","alias":"In","colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":false,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":5,"overlayIcon":false,"pattern":"cpu1","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[],"shapeProp":"id","shapeRegEx":true,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"59","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":false,"tooltipColors":false,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":false,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"100%","tpGraphType":"line","type":"number","unit":"decbits","valueData":[]},{"aggregation":"current_notnull","alias":"Out","colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"column":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":0,"eventData":[],"eventProp":"id","eventRegEx":false,"gradient":false,"hidden":false,"invert":false,"linkData":[],"linkProp":"id","linkRegEx":true,"mappingType":1,"metricType":"serie","order":6,"overlayIcon":false,"pattern":"cpu2","rangeData":[],"reduce":true,"refId":"A","sanitize":false,"shapeData":[],"shapeProp":"id","shapeRegEx":true,"stringThresholds":["/.*/","/.*/"],"textData":[{"hidden":false,"pattern":"60","textOn":"wmd","textPattern":"/.*/","textReplace":"content"}],"textProp":"id","textRegEx":true,"thresholds":[50,80],"tooltip":false,"tooltipColors":false,"tooltipLabel":"","tooltipOn":"a","tpDirection":"v","tpGraph":false,"tpGraphHigh":null,"tpGraphLow":null,"tpGraphScale":"linear","tpGraphSize":"100%","tpGraphType":"line","type":"number","unit":"decbits","valueData":[]}]},"targets":[{"refCount":0,"refId":"A","target":"aliasByNode(movingAverage(scaleToSeconds(apps.fakesite.*.counters.requests.count, 1), 2), 2)","textEditor":true},{"refCount":0,"refId":"C","target":"alias(scale(statsd.fakesite.timers.ads_timer.upper_95,1),'cpu1')","textEditor":true},{"refCount":0,"refId":"D","target":"alias(scale(statsd.fakesite.timers.ads_timer.upper_75,-1),'cpu2')","textEditor":true}],"timeFrom":null,"timeShift":null,"title":"Grafana diagram architecture","type":"agenty-flowcharting-panel","valueName":"current","version":"0.9.0"},{"aliasColors":{"web_server_01":"#70dbed","web_server_02":"#5195ce","web_server_03":"#0a50a1","web_server_04":"#0a437c"},"annotate":{"enable":false},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"editable":true,"fieldConfig":{"defaults":{"custom":{},"links":[]},"overrides":[]},"fill":5,"fillGradient":0,"grid":{"max":null,"min":0},"gridPos":{"h":9,"w":11,"x":13,"y":0},"hiddenSeries":false,"id":2,"interactive":true,"legend":{"alignAsTable":false,"avg":false,"current":false,"max":false,"min":false,"rightSide":false,"show":true,"total":false,"values":false},"legend_counts":true,"lines":true,"linewidth":1,"nullPointMode":"connected","paceLength":10,"percentage":false,"pluginVersion":"7.1.0","pointradius":5,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[],"spaceLength":10,"spyable":true,"stack":true,"steppedLine":false,"targets":[{"refId":"A","target":"aliasByNode(movingAverage(scaleToSeconds(apps.fakesite.*.counters.requests.count, 1), 2), 2)","textEditor":true}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"timezone":"browser","title":"server requests","tooltip":{"query_as_alias":true,"shared":true,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"$$hashKey":"object:2954","format":"short","logBase":1,"max":null,"min":null,"show":true},{"$$hashKey":"object:2955","format":"short","logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true},{"aliasColors":{"upper_25":"#F9E2D2","upper_50":"#F2C96D","upper_75":"#EAB839"},"annotate":{"enable":false},"bars":true,"dashLength":10,"dashes":false,"datasource":null,"description":"","editable":true,"fieldConfig":{"defaults":{"custom":{},"links":[]},"overrides":[]},"fill":1,"fillGradient":0,"grid":{"max":null,"min":0},"gridPos":{"h":7,"w":13,"x":0,"y":9},"hiddenSeries":false,"id":5,"interactive":true,"legend":{"alignAsTable":true,"avg":true,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":true},"legend_counts":true,"lines":false,"linewidth":2,"links":[],"nullPointMode":"connected","paceLength":10,"percentage":false,"pluginVersion":"7.1.0","pointradius":5,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[],"spaceLength":10,"spyable":true,"stack":true,"steppedLine":false,"targets":[{"refId":"A","target":"aliasByNode(summarize(statsd.fakesite.timers.ads_timer.*, '4min', 'avg'), 4)"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"timezone":"browser","title":"client side full page load","tooltip":{"query_as_alias":true,"shared":false,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","logBase":1,"max":null,"min":null,"show":true},{"format":"short","logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true},{"aliasColors":{"cpu":"#E24D42","memory":"#6ED0E0","statsd.fakesite.counters.session_start.desktop.count":"#6ED0E0"},"annotate":{"enable":false},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"editable":true,"fieldConfig":{"defaults":{"custom":{},"links":[]},"overrides":[]},"fill":3,"fillGradient":0,"grid":{"max":null,"min":0},"gridPos":{"h":7,"w":11,"x":13,"y":9},"hiddenSeries":false,"id":4,"interactive":true,"legend":{"avg":false,"current":true,"max":false,"min":true,"show":true,"total":false,"values":false},"legend_counts":true,"lines":true,"linewidth":2,"nullPointMode":"connected","paceLength":10,"percentage":false,"pluginVersion":"7.1.0","pointradius":5,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[{"alias":"cpu","fill":0,"lines":true,"yaxis":2,"zindex":2},{"alias":"memory","pointradius":2,"points":true}],"spaceLength":10,"spyable":true,"stack":false,"steppedLine":false,"targets":[{"hide":false,"refId":"A","target":"alias(movingAverage(scaleToSeconds(apps.fakesite.web_server_01.counters.request_status.code_302.count, 10), 20), 'cpu')"},{"refId":"B","target":"alias(statsd.fakesite.counters.session_start.desktop.count, 'memory')"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"timezone":"browser","title":"Memory / CPU","tooltip":{"query_as_alias":true,"shared":false,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","logBase":1,"max":null,"min":null,"show":true},{"format":"percent","logBase":1,"max":null,"min":0,"show":true}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true},{"aliasColors":{"cpu1":"#82b5d8","cpu2":"#1f78c1","upper_25":"#B7DBAB","upper_50":"#7EB26D","upper_75":"#629E51","upper_90":"#629E51","upper_95":"#508642"},"annotate":{"enable":false},"bars":false,"dashLength":10,"dashes":false,"datasource":"graphite","editable":true,"fieldConfig":{"defaults":{"custom":{},"links":[]},"overrides":[]},"fill":3,"fillGradient":0,"grid":{"max":null,"min":null},"gridPos":{"h":7,"w":13,"x":0,"y":16},"hiddenSeries":false,"id":11,"interactive":true,"legend":{"alignAsTable":true,"avg":true,"current":true,"legendSideLastValue":true,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":true},"legend_counts":true,"lines":true,"linewidth":2,"links":[],"nullPointMode":"connected","paceLength":10,"percentage":false,"pluginVersion":"7.1.0","pointradius":1,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[{"alias":"this is test of brekaing","yaxis":1}],"spaceLength":10,"spyable":true,"stack":false,"steppedLine":false,"targets":[{"refCount":0,"refId":"A","target":"aliasByNode(statsd.fakesite.timers.ads_timer.*,4)","textEditor":true},{"refCount":0,"refId":"B","target":"alias(scale(statsd.fakesite.timers.ads_timer.upper_95,-1),'cpu1')","textEditor":true},{"refCount":0,"refId":"C","target":"alias(scale(statsd.fakesite.timers.ads_timer.upper_75,-1),'cpu2')","textEditor":true}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"timezone":"browser","title":"Traffic In/Out","tooltip":{"query_as_alias":true,"shared":true,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"$$hashKey":"object:952","format":"decbytes","logBase":1,"max":null,"min":null,"show":true},{"$$hashKey":"object:953","format":"short","logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true},{"aliasColors":{"logins":"#5195ce","logins (-1 day)":"#447EBC","logins (-1 hour)":"#e24d42"},"annotate":{"enable":false},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"editable":true,"fieldConfig":{"defaults":{"custom":{},"links":[]},"overrides":[]},"fill":1,"fillGradient":0,"grid":{"max":null,"min":0},"gridPos":{"h":7,"w":11,"x":13,"y":16},"hiddenSeries":false,"id":3,"interactive":true,"legend":{"alignAsTable":false,"avg":false,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"total":false,"values":false},"legend_counts":true,"lines":true,"linewidth":1,"nullPointMode":"connected","paceLength":10,"percentage":false,"pluginVersion":"7.1.0","pointradius":5,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[],"spaceLength":10,"spyable":true,"stack":true,"steppedLine":false,"targets":[{"refId":"A","target":"alias(movingAverage(scaleToSeconds(apps.fakesite.web_server_01.counters.requests.count, 1), 2), 'logins')"},{"refId":"B","target":"alias(movingAverage(timeShift(scaleToSeconds(apps.fakesite.web_server_01.counters.requests.count, 1), '1h'), 2), 'logins (-1 hour)')"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"timezone":"browser","title":"logins","tooltip":{"query_as_alias":true,"shared":false,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","logBase":1,"max":null,"min":null,"show":true},{"format":"short","logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true}],"refresh":false,"schemaVersion":26,"style":"dark","tags":["flowcharting"],"templating":{"list":[]},"time":{"from":"now-1h","to":"now"},"timepicker":{"collapse":false,"enable":true,"notice":false,"now":true,"refresh_intervals":["10s","30s","1m","5m","15m","30m","1h","2h","1d"],"status":"Stable","time_options":["5m","15m","1h","2h"," 6h","12h","24h","2d","7d","30d"],"type":"timepicker"},"timezone":"browser","title":"Flowcharting - Grafana Play Home","uid":"97PlYC7Mk","version":16}}
@@ -0,0 +1 @@
1
+ {"meta":{"type":"db","canSave":false,"canEdit":true,"canAdmin":false,"canStar":false,"slug":"influxdb-server-monitoring","url":"/d/AAy9r_bmk/influxdb-server-monitoring","expires":"0001-01-01T00:00:00Z","created":"2018-10-26T12:12:26Z","updated":"2018-12-07T10:20:43Z","updatedBy":"peter.hlmbrg@gmail.com","createdBy":"torkel.odegaard@gmail.com","version":5,"hasAcl":false,"isFolder":false,"folderId":461,"folderUid":"KbH7u4Pmz","folderTitle":"Data source: Influx DB","folderUrl":"/dashboards/f/KbH7u4Pmz/data-source-influx-db","provisioned":false,"provisionedExternalId":""},"dashboard":{"annotations":{"enable":false,"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Alerts","type":"dashboard"}]},"editable":true,"gnetId":null,"graphTooltip":0,"id":443,"links":[],"panels":[{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"InfluxDB","format":"percent","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":8,"x":0,"y":0},"id":3,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"$host ","prefixFontSize":"80%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"repeat":"host","repeatDirection":"h","scopedVars":{"host":{"selected":true,"text":"server1","value":"server1"}},"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"","targets":[{"groupBy":[{"params":["$__interval"],"type":"time"},{"params":["null"],"type":"fill"}],"measurement":"logins.count","orderByTime":"ASC","policy":"default","refId":"A","resultFormat":"time_series","select":[[{"params":["value"],"type":"field"},{"params":[],"type":"mean"},{"params":[" / 100"],"type":"math"}]],"tags":[{"key":"datacenter","operator":"=~","value":"/^$datacenter$/"},{"condition":"AND","key":"hostname","operator":"=~","value":"/^$host$/"}],"target":""}],"thresholds":"50,90","title":"CPU","type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"avg"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"InfluxDB","format":"percent","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":8,"x":8,"y":0},"id":7,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"$host ","prefixFontSize":"80%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"repeat":null,"repeatDirection":"h","repeatIteration":1541083165909,"repeatPanelId":3,"scopedVars":{"host":{"selected":true,"text":"server2","value":"server2"}},"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"","targets":[{"groupBy":[{"params":["$__interval"],"type":"time"},{"params":["null"],"type":"fill"}],"measurement":"logins.count","orderByTime":"ASC","policy":"default","refId":"A","resultFormat":"time_series","select":[[{"params":["value"],"type":"field"},{"params":[],"type":"mean"},{"params":[" / 100"],"type":"math"}]],"tags":[{"key":"datacenter","operator":"=~","value":"/^$datacenter$/"},{"condition":"AND","key":"hostname","operator":"=~","value":"/^$host$/"}],"target":""}],"thresholds":"50,90","title":"CPU","type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"avg"},{"cacheTimeout":null,"colorBackground":false,"colorValue":true,"colors":["#299c46","rgba(237, 129, 40, 0.89)","#d44a3a"],"datasource":"InfluxDB","format":"percent","gauge":{"maxValue":100,"minValue":0,"show":false,"thresholdLabels":false,"thresholdMarkers":true},"gridPos":{"h":4,"w":8,"x":16,"y":0},"id":8,"interval":null,"links":[],"mappingType":1,"mappingTypes":[{"name":"value to text","value":1},{"name":"range to text","value":2}],"maxDataPoints":100,"nullPointMode":"connected","nullText":null,"postfix":"","postfixFontSize":"50%","prefix":"$host ","prefixFontSize":"80%","rangeMaps":[{"from":"null","text":"N/A","to":"null"}],"repeat":null,"repeatDirection":"h","repeatIteration":1541083165909,"repeatPanelId":3,"scopedVars":{"host":{"selected":true,"text":"10.1.100.1","value":"10.1.100.1"}},"sparkline":{"fillColor":"rgba(31, 118, 189, 0.18)","full":false,"lineColor":"rgb(31, 120, 193)","show":true},"tableColumn":"","targets":[{"groupBy":[{"params":["$__interval"],"type":"time"},{"params":["null"],"type":"fill"}],"measurement":"logins.count","orderByTime":"ASC","policy":"default","refId":"A","resultFormat":"time_series","select":[[{"params":["value"],"type":"field"},{"params":[],"type":"mean"},{"params":[" / 100"],"type":"math"}]],"tags":[{"key":"datacenter","operator":"=~","value":"/^$datacenter$/"},{"condition":"AND","key":"hostname","operator":"=~","value":"/^$host$/"}],"target":""}],"thresholds":"50,90","title":"CPU","type":"singlestat","valueFontSize":"80%","valueMaps":[{"op":"=","text":"N/A","value":"null"}],"valueName":"avg"},{"aliasColors":{},"annotate":{"enable":false},"bars":false,"dashLength":10,"dashes":false,"datasource":"InfluxDB","editable":true,"error":false,"fill":2,"grid":{},"gridPos":{"h":8,"w":12,"x":0,"y":4},"id":1,"interval":"$summarize","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","percentage":false,"pointradius":5,"points":false,"renderer":"flot","resolution":100,"scale":1,"seriesOverrides":[],"spaceLength":10,"stack":true,"steppedLine":false,"targets":[{"alias":"$tag_hostname","dsType":"influxdb","groupBy":[{"params":["auto"],"type":"time"},{"params":["hostname"],"type":"tag"}],"measurement":"logins.count","orderByTime":"ASC","policy":"default","query":"SELECT mean(\"value\") FROM \"logins.count\" WHERE \"hostname\" =~ /$Hostname$/ AND $timeFilter GROUP BY time($interval), \"hostname\"","refId":"A","resultFormat":"time_series","select":[[{"params":["value"],"type":"field"},{"params":[],"type":"mean"}]],"tags":[{"key":"datacenter","operator":"=~","value":"/^$datacenter$/"},{"condition":"AND","key":"hostname","operator":"=~","value":"/^$host$/"}],"target":""}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Nginx Req/s","tooltip":{"msResolution":false,"query_as_alias":true,"shared":false,"sort":0,"value_type":"cumulative"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","logBase":1,"max":null,"min":null,"show":true},{"format":"short","logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null},"zerofill":true},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"InfluxDB","fill":1,"gridPos":{"h":8,"w":12,"x":12,"y":4},"id":6,"legend":{"alignAsTable":true,"avg":false,"current":true,"max":false,"min":false,"rightSide":false,"show":true,"total":false,"values":true},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"alias":"$tag_hostname","groupBy":[{"params":["$__interval"],"type":"time"},{"params":["hostname"],"type":"tag"},{"params":["null"],"type":"fill"}],"measurement":"logins.count","orderByTime":"ASC","policy":"default","refId":"A","resultFormat":"time_series","select":[[{"params":["value"],"type":"field"},{"params":[],"type":"mean"},{"params":["10s"],"type":"non_negative_derivative"},{"params":["*1000000000"],"type":"math"}]],"tags":[],"target":""}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Free memory","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"refresh":false,"schemaVersion":16,"style":"dark","tags":["influxdb","templated","presentation"],"templating":{"list":[{"allValue":null,"current":{"tags":[],"text":"America","value":"America"},"datasource":"InfluxDB","hide":0,"includeAll":false,"label":null,"multi":false,"name":"datacenter","options":[],"query":"SHOW TAG VALUES WITH KEY = \"datacenter\" ","refresh":1,"regex":"","skipUrlSync":false,"sort":0,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allFormat":"regex values","allValue":null,"current":{"selected":false,"tags":[],"text":"server1 + server2 + 10.1.100.1","value":["server1","server2","10.1.100.1"]},"datasource":"InfluxDB","hide":0,"includeAll":true,"label":null,"multi":true,"multiFormat":"regex values","name":"host","options":[],"query":"SHOW TAG VALUES WITH KEY = \"hostname\" WHERE \"datacenter\" =~ /^$datacenter$/","refresh":1,"refresh_on_load":false,"regex":"","skipUrlSync":false,"sort":0,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allFormat":"glob","auto":true,"auto_count":5,"auto_min":"10s","current":{"tags":[],"text":"auto","value":"$__auto_interval_summarize"},"datasource":null,"hide":0,"includeAll":false,"label":"","name":"summarize","options":[{"selected":true,"text":"auto","value":"$__auto_interval_summarize"},{"selected":false,"text":"1m","value":"1m"},{"selected":false,"text":"10m","value":"10m"},{"selected":false,"text":"30m","value":"30m"},{"selected":false,"text":"1h","value":"1h"},{"selected":false,"text":"6h","value":"6h"},{"selected":false,"text":"12h","value":"12h"},{"selected":false,"text":"1d","value":"1d"},{"selected":false,"text":"7d","value":"7d"},{"selected":false,"text":"14d","value":"14d"},{"selected":false,"text":"30d","value":"30d"}],"query":"1m,10m,30m,1h,6h,12h,1d,7d,14d,30d","refresh":2,"refresh_on_load":false,"skipUrlSync":false,"type":"interval"},{"datasource":"InfluxDB","filters":[],"hide":0,"label":null,"name":"adhoc","skipUrlSync":false,"type":"adhoc"}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"collapse":false,"enable":true,"notice":false,"now":true,"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"status":"Stable","time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"],"type":"timepicker"},"timezone":"browser","title":"InfluxDB Server Monitoring","uid":"AAy9r_bmk","version":5}}
@@ -0,0 +1 @@
1
+ {"meta":{"type":"db","canSave":false,"canEdit":true,"canAdmin":false,"canStar":false,"slug":"templating-showcase","url":"/d/000000091/templating-showcase","expires":"0001-01-01T00:00:00Z","created":"2017-01-20T06:38:55Z","updated":"2020-08-18T19:57:10Z","updatedBy":"diana.payton@grafana.com","createdBy":"carl@raintank.io","version":22,"hasAcl":false,"isFolder":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","provisioned":false,"provisionedExternalId":""},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Alerts","type":"dashboard"}]},"editable":true,"gnetId":null,"graphTooltip":0,"id":91,"iteration":1597780597713,"links":[],"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$db","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":7,"w":24,"x":0,"y":0},"hiddenSeries":false,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"connected","percentage":false,"pluginVersion":"7.1.3","pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"refId":"A","target":"aliasByNode(apps.backend.$server.counters.requests.count, 2)","textEditor":false}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Graph","tooltip":{"msResolution":false,"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"columns":[{"text":"Avg","value":"avg"},{"text":"Total","value":"total"}],"datasource":"$db","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fontSize":"100%","gridPos":{"h":7,"w":16,"x":0,"y":7},"id":2,"links":[],"pageSize":null,"scroll":true,"showHeader":true,"sort":{"col":0,"desc":true},"styles":[{"align":"auto","dateFormat":"YYYY-MM-DD HH:mm:ss","pattern":"Time","type":"date"},{"align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"decimals":2,"pattern":"/.*/","thresholds":[],"type":"number","unit":"short"}],"targets":[{"refId":"A","target":"aliasByNode(apps.backend.$server.counters.requests.count, 2)","textEditor":false}],"title":"Table","transform":"timeseries_aggregations","type":"table-old"},{"cacheTimeout":null,"datasource":"$db","fieldConfig":{"defaults":{"custom":{},"mappings":[{"id":0,"op":"=","text":"N/A","type":1,"value":"null"}],"nullValueMode":"connected","thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"none"},"overrides":[]},"gridPos":{"h":7,"w":8,"x":16,"y":7},"id":3,"interval":null,"links":[],"maxDataPoints":100,"options":{"colorMode":"value","graphMode":"none","justifyMode":"auto","orientation":"horizontal","reduceOptions":{"calcs":["mean"],"fields":"/^sumSeries(apps.backend.{backend_01,backend_02,backend_03,backend_04}.counters.requests.count)$/","values":false},"textMode":"auto"},"pluginVersion":"7.1.3","targets":[{"refId":"A","target":"sumSeries(apps.backend.$server.counters.requests.count)"}],"title":"Stat","type":"stat"}],"schemaVersion":26,"style":"dark","tags":["graphite","templating"],"templating":{"list":[{"allValue":null,"current":{"text":"server1","value":"server1"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"custom","options":[{"selected":true,"text":"server1","value":"server1"},{"selected":false,"text":"server2","value":"server2"}],"query":"server1,server2","skipUrlSync":false,"type":"custom"},{"allValue":null,"current":{"tags":[],"text":"All","value":["$__all"]},"datasource":"graphite","definition":"","hide":0,"includeAll":true,"label":null,"multi":true,"name":"server","options":[{"selected":true,"text":"All","value":"$__all"},{"selected":false,"text":"backend_01","value":"backend_01"},{"selected":false,"text":"backend_02","value":"backend_02"},{"selected":false,"text":"backend_03","value":"backend_03"},{"selected":false,"text":"backend_04","value":"backend_04"}],"query":"apps.backend.*","refresh":0,"regex":"","skipUrlSync":false,"sort":0,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"allValue":null,"current":{"text":"All","value":"$__all"},"datasource":"graphite","definition":"","hide":0,"includeAll":true,"label":null,"multi":true,"name":"dependent","options":[{"selected":true,"text":"All","value":"$__all"},{"selected":false,"text":"counters","value":"counters"}],"query":"apps.backend.$server.*","refresh":0,"regex":"","skipUrlSync":false,"sort":0,"tagValuesQuery":null,"tags":[],"tagsQuery":null,"type":"query","useTags":false},{"current":{"tags":[],"text":"graphite","value":"graphite"},"hide":0,"includeAll":false,"label":null,"multi":false,"name":"db","options":[],"query":"graphite","refresh":1,"regex":"","skipUrlSync":false,"type":"datasource"}]},"time":{"from":"now-6h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"Templating showcase","uid":"000000091","version":22}}
@@ -0,0 +1 @@
1
+ [{"id":30,"uid":"000000030","title":"ElasticSearch - Custom Templated query","uri":"db/elasticsearch-custom-templated-query","url":"/d/000000030/elasticsearch-custom-templated-query","slug":"","type":"dash-db","tags":["elasticsearch"],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":617,"uid":"VzxU55SWk","title":"Elasticsearch Bar Gauge","uri":"db/elasticsearch-bar-gauge","url":"/d/VzxU55SWk/elasticsearch-bar-gauge","slug":"","type":"dash-db","tags":[],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":69,"uid":"000000069","title":"Elasticsearch Derivative","uri":"db/elasticsearch-derivative","url":"/d/000000069/elasticsearch-derivative","slug":"","type":"dash-db","tags":[],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":14,"uid":"000000014","title":"Elasticsearch Metrics","uri":"db/elasticsearch-metrics","url":"/d/000000014/elasticsearch-metrics","slug":"","type":"dash-db","tags":["elasticsearch","misc","presentation"],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":107,"uid":"000000107","title":"Elasticsearch Metrics Filter","uri":"db/elasticsearch-metrics-filter","url":"/d/000000107/elasticsearch-metrics-filter","slug":"","type":"dash-db","tags":[],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":149,"uid":"000000149","title":"Elasticsearch query filter","uri":"db/elasticsearch-query-filter","url":"/d/000000149/elasticsearch-query-filter","slug":"","type":"dash-db","tags":[],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":920,"uid":"CknOEXDMk","title":"Elasticsearch Templated","uri":"db/elasticsearch-templated","url":"/d/CknOEXDMk/elasticsearch-templated","slug":"","type":"dash-db","tags":["misc"],"isStarred":false,"folderId":459,"folderUid":"z6MMXVEmz","folderTitle":"Data source: Elasticsearch","folderUrl":"/dashboards/f/z6MMXVEmz/data-source-elasticsearch","sortMeta":0},{"id":953,"uid":"uQRtuCoGz","title":"Prometheus, InfluxDB, Elasticsearch DS Trends","uri":"db/prometheus-influxdb-elasticsearch-ds-trends","url":"/d/uQRtuCoGz/prometheus-influxdb-elasticsearch-ds-trends","slug":"","type":"dash-db","tags":[],"isStarred":false,"folderId":769,"folderUid":"bu1lvdEWz","folderTitle":"Grafana Stats","folderUrl":"/dashboards/f/bu1lvdEWz/grafana-stats","sortMeta":0}]
@@ -0,0 +1 @@
1
+ [{"id":16,"uid":"000000016","title":"1 - Time series graphs","uri":"db/1-time-series-graphs","url":"/d/000000016/1-time-series-graphs","slug":"","type":"dash-db","tags":["annotations","demo","presentation"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":1072,"uid":"Zb3f4veGk","title":"2 - Stats","uri":"db/2-stats","url":"/d/Zb3f4veGk/2-stats","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":1075,"uid":"OhR1ID6Mk","title":"3 - Table","uri":"db/3-table","url":"/d/OhR1ID6Mk/3-table","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":1071,"uid":"KIhkVD6Gk","title":"4 - Gauges","uri":"db/4-gauges","url":"/d/KIhkVD6Gk/4-gauges","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":1073,"uid":"ktMs4D6Mk","title":"5 - Bar charts and pie charts","uri":"db/5-bar-charts-and-pie-charts","url":"/d/ktMs4D6Mk/5-bar-charts-and-pie-charts","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":1074,"uid":"qD-rVv6Mz","title":"6 - State timeline and Status history","uri":"db/6-state-timeline-and-status-history","url":"/d/qD-rVv6Mz/6-state-timeline-and-status-history","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":1070,"folderUid":"pfwR7veGk","folderTitle":"Visualizations","folderUrl":"/dashboards/f/pfwR7veGk/visualizations","sortMeta":0},{"id":74,"uid":"000000074","title":"Alerting","uri":"db/alerting","url":"/d/000000074/alerting","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":10,"uid":"000000010","title":"Annotations","uri":"db/annotations","url":"/d/000000010/annotations","slug":"","type":"dash-db","tags":["annotations","demo","presentation"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":563,"uid":"vmie2cmWz","title":"Bar Gauge","uri":"db/bar-gauge","url":"/d/vmie2cmWz/bar-gauge","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":860,"uid":"3SWXxreWk","title":"Grafana Dashboard","uri":"db/grafana-dashboard","url":"/d/3SWXxreWk/grafana-dashboard","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":663,"uid":"37Dq903mk","title":"Graph Gradient Area Fills","uri":"db/graph-gradient-area-fills","url":"/d/37Dq903mk/graph-gradient-area-fills","slug":"","type":"dash-db","tags":["demo","gdev","graph","panel-tests"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":611,"uid":"iRY1K9VZk","title":"Lazy Loading","uri":"db/lazy-loading","url":"/d/iRY1K9VZk/lazy-loading","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":745,"uid":"6NmftOxZz","title":"Logs Panel","uri":"db/logs-panel","url":"/d/6NmftOxZz/logs-panel","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":100,"uid":"000000100","title":"Mixed Datasources","uri":"db/mixed-datasources","url":"/d/000000100/mixed-datasources","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":861,"uid":"U_bZIMRMk","title":"Table Panel Showcase","uri":"db/table-panel-showcase","url":"/d/U_bZIMRMk/table-panel-showcase","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":56,"uid":"000000056","title":"Templated dynamic dashboard","uri":"db/templated-dynamic-dashboard","url":"/d/000000056/templated-dynamic-dashboard","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":109,"uid":"000000109","title":"The Four Golden Signals","uri":"db/the-four-golden-signals","url":"/d/000000109/the-four-golden-signals","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":167,"uid":"000000167","title":"Threshold example","uri":"db/threshold-example","url":"/d/000000167/threshold-example","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0},{"id":41,"uid":"000000041","title":"Time range override","uri":"db/time-range-override","url":"/d/000000041/time-range-override","slug":"","type":"dash-db","tags":["demo"],"isStarred":false,"folderId":608,"folderUid":"PGJ1Fr4Zz","folderTitle":"Demos","folderUrl":"/dashboards/f/PGJ1Fr4Zz/demos","sortMeta":0}]