├── .github
└── workflows
│ └── stale.yaml
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── dashboards.sh
├── v1.6.3
├── README.md
├── unifi-poller-client-insights-influxdb_rev4.json
├── unifi-poller-client-insights-prometheus_rev6.json
├── unifi-poller-network-sites-influxdb_rev3.json
├── unifi-poller-network-sites-prometheus_rev2.json
├── unifi-poller-uap-insights-influxdb_rev4.json
├── unifi-poller-uap-insights-prometheus_rev6.json
├── unifi-poller-usg-insights-influxdb_rev5.json
├── unifi-poller-usg-insights-prometheus_rev5.json
├── unifi-poller-usw-insights-influxdb_rev4.json
└── unifi-poller-usw-insights-prometheus_rev5.json
└── v2.0.0
├── README.md
├── UniFi-Poller_ Client DPI - InfluxDB.json
├── UniFi-Poller_ Client DPI - Prometheus.json
├── UniFi-Poller_ Client Insights - InfluxDB.json
├── UniFi-Poller_ Client Insights - Prometheus.json
├── UniFi-Poller_ Network Sites - InfluxDB.json
├── UniFi-Poller_ Network Sites - Prometheus.json
├── UniFi-Poller_ UAP Insights - InfluxDB.json
├── UniFi-Poller_ UAP Insights - Prometheus.json
├── UniFi-Poller_ USG Insights - InfluxDB.json
├── UniFi-Poller_ USG Insights - Prometheus.json
├── UniFi-Poller_ USW Insights - InfluxDB.json
└── UniFi-Poller_ USW Insights - Prometheus.json
/.github/workflows/stale.yaml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues and PRs'
2 | on:
3 | schedule:
4 | - cron: '30 1 * * *'
5 |
6 | jobs:
7 | stale:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/stale@v9
11 | with:
12 | stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
13 | stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
14 | close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.'
15 | close-pr-message: 'This PR was closed because it has been stalled for 10 days with no activity.'
16 | days-before-issue-stale: 30
17 | days-before-pr-stale: 30
18 | days-before-issue-close: 7
19 | days-before-pr-close: 7
20 | stale-pr-label: 'stale'
21 | exempt-pr-labels: 'pinned,security,enhancement,bug'
22 | stale-issue-label: 'stale'
23 | exempt-issue-labels: 'pinned,security,enhancement,bug'
24 | exempt-all-pr-milestones: true
25 |
26 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS*
2 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | script: ./dashboards.sh check
2 | deploy:
3 | - provider: script
4 | script: bash ./dashboards.sh deploy
5 | on:
6 | branch: master
7 | env:
8 | matrix:
9 | secure: "JR1XtNTutuh+z+3gkuvwMV2et2iP9YjqFi1CEUJW1thU0byoSAcoMBev12BqIe6eAwd0Y0JvQ62IX46+lygkGmsAclLHHjnLiwXIIJCfUPKTKV+J2WkV0xs6VbNIfXCrJtYN270UZNUswjyR2zkZpkkylEXitqUc9rWDWbxV/3IXpW4/yjUNK+bEP2ZFot8Gg3jqh/HMLEnCI6nXfdIQjGC2WLxlZSdxM27UMKwMQ+4/j2VQM/c0ZL+M/6rz6KMFlmcMoir4AJezGqghPSYnO3YlRAh2Do/6TZiWxKVAeL2i5akZirwAYEfTNh2no5RpPPHNoM9YB/rJ5fwQ2FSRbR4Xk1H35JsNypuqRD5AvErL6CQDRLGeEPQFhHyZGsBtg0qCwxjnKxIWLZc4Ig3v+MpqCE/mvESS/UIyv8nO9+a+8/ZBpiJIP42vEH3RtHFJMoGf85a00Nf/yU27wbMRMBesnSawmEFSFoo4R1MVjevh0QQjzZt703pVT8JEhZdNYAw/AAdSKmBKQBkPl5XVDQ4Vt+/DQhu7KhD8BQoBhz4BKiT8vZa8WczwCowFADlmKcrXTuoh0SwAuIDgFCayhTPO447yaSXFfZG8wO6RulhzsybiOS+oieaTtWVy1ODX4/bd6BqkksR/UwJ3SNeOeLV1SYU2+vAI8poYRK6the4="
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT LICENSE.
2 | Copyright (c) 2018-2020 David Newhall II
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining
5 | a copy of this software and associated documentation files (the
6 | "Software"), to deal in the Software without restriction, including
7 | without limitation the rights to use, copy, modify, merge, publish,
8 | distribute, sublicense, and/or sell copies of the Software, and to
9 | permit persons to whom the Software is furnished to do so, subject to
10 | the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # UniFi Poller Dashboards
2 |
3 | [](https://travis-ci.org/unifi-poller/dashboards)
4 |
5 | Dashboards for UniFi Poller live in this repo.
6 | [Shared on Grafana.com](https://grafana.com/grafana/dashboards?search=unifi-poller).
7 |
8 | They are deployed to Grafana.com when a change to `master` is detected.
9 |
--------------------------------------------------------------------------------
/dashboards.sh:
--------------------------------------------------------------------------------
1 | #/bin/bash
2 |
3 | if [ "$TRAVIS_COMMIT_RANGE" = "" ]; then
4 | echo "This only works in travis-ci. Branches need at least 2 commits."
5 | exit 1
6 | fi
7 |
8 | CHANGES=$(git diff --name-only --diff-filter=AM $TRAVIS_COMMIT_RANGE)
9 | echo "CHANGED (per git):"
10 | echo "$CHANGES"
11 |
12 | declare -a DASHMAP
13 |
14 | WHERE="v2.0.0/"
15 | # Map of grafana.com public shared dashboard ID to filename.
16 | DASHMAP[11312]="UniFi-Poller_ USW Insights - Prometheus.json"
17 | DASHMAP[10417]="UniFi-Poller_ USW Insights - InfluxDB.json"
18 | DASHMAP[11313]="UniFi-Poller_ USG Insights - Prometheus.json"
19 | DASHMAP[10416]="UniFi-Poller_ USG Insights - InfluxDB.json"
20 | DASHMAP[11314]="UniFi-Poller_ UAP Insights - Prometheus.json"
21 | DASHMAP[10415]="UniFi-Poller_ UAP Insights - InfluxDB.json"
22 | DASHMAP[11311]="UniFi-Poller_ Network Sites - Prometheus.json"
23 | DASHMAP[10414]="UniFi-Poller_ Network Sites - InfluxDB.json"
24 | DASHMAP[11315]="UniFi-Poller_ Client Insights - Prometheus.json"
25 | DASHMAP[10418]="UniFi-Poller_ Client Insights - InfluxDB.json"
26 | DASHMAP[11310]="UniFi-Poller_ Client DPI - Prometheus.json"
27 | DASHMAP[10419]="UniFi-Poller_ Client DPI - InfluxDB.json"
28 |
29 | SAVEIFS=$IFS
30 | # unobtainium
31 | IFS=$(echo -en "\n\b")
32 |
33 | # Simple function to make sure no stray files got uploaded.
34 | function check {
35 | echo
36 | echo -n "Checking dashboards in: "
37 | pushd "${WHERE}"
38 | local file=""
39 |
40 | for file in *; do
41 | local found=0
42 | local i=""
43 | [ "$file" != "README.md" ] || continue
44 |
45 | # Check for this file's existence in the DASHMAP variable.
46 | for i in ${!DASHMAP[@]}; do
47 | if [ "${DASHMAP[$i]}" = "$file" ]; then
48 | found=1
49 | echo "found! $file -> $i"
50 | break
51 | fi
52 | done
53 |
54 | if [ "$found" = "0" ]; then
55 | echo "uh oh. file not found in DASHMAP: $file"
56 | popd >> /dev/null
57 | exit 2
58 | fi
59 |
60 | done
61 | popd >> /dev/null
62 | }
63 |
64 | # Simple function to make sure no expected files are missing.
65 | function check2 {
66 | echo
67 | echo -n "Checking file existence in: "
68 | pushd "${WHERE}"
69 | local files=$(ls)
70 | popd >> /dev/null
71 | local i=""
72 |
73 | for i in ${!DASHMAP[@]}; do
74 | local found=0
75 | local file=""
76 |
77 | for file in $files; do
78 | if [ "${DASHMAP[$i]}" = "$file" ]; then
79 | local found=1
80 | echo "found! $i -> $file"
81 | break
82 | fi
83 | done
84 |
85 | if [ "$found" = "0" ]; then
86 | echo "uh oh. configured DASHMAP file missing: ${DASHMAP[$i]}"
87 | exit 2
88 | fi
89 | done
90 | }
91 |
92 | # check if a dashboard (or file) has been modified
93 | function isChanged {
94 | local changed=false
95 | local filename=$1
96 | local file=""
97 |
98 | for file in $CHANGES; do
99 | if [ "$file" = "$filename" ]; then
100 | local changed=true
101 | break
102 | fi
103 | done
104 |
105 | if [ "$changed" = "true" ]; then
106 | true
107 | else
108 | false
109 | fi
110 | }
111 |
112 | # Upload all the (changed) dashboards to grafana.com.
113 | function deploy {
114 | local i=""
115 | for i in ${!DASHMAP[@]}; do
116 | isChanged "${WHERE}${DASHMAP[$i]}"
117 | if [ "$?" = "1" ]; then
118 | echo "Not changed (skipping): ${WHERE}${DASHMAP[$i]}"
119 | continue
120 | fi
121 |
122 | echo "curl -H \"Content-Type: multipart/form-data\" \
123 | https://grafana.com/api/dashboards/$i/revisions --form \"json=@${WHERE}${DASHMAP[$i]};type=application/json\""
124 |
125 | curl -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${GRAFANA_API_KEY}" \
126 | "https://grafana.com/api/dashboards/$i/revisions" --form "json=@${WHERE}${DASHMAP[$i]};type=application/json"
127 | echo
128 |
129 | done
130 | }
131 |
132 | if [ "$1" = "deploy" ]; then
133 | deploy
134 | elif [ "$1" = "check" ]; then
135 | check
136 | check2
137 | echo
138 | else
139 | echo "provide command: deploy or check"
140 | exit 1
141 | fi
142 |
--------------------------------------------------------------------------------
/v1.6.3/README.md:
--------------------------------------------------------------------------------
1 | These were exported from grafana.com and work with version 1.6.3 of UniFi Poller.
2 |
3 | These are unlikely to ever receive updates.
4 |
--------------------------------------------------------------------------------
/v1.6.3/unifi-poller-network-sites-prometheus_rev2.json:
--------------------------------------------------------------------------------
1 | {
2 | "__inputs": [
3 | {
4 | "name": "DS_PROMETHEUS",
5 | "label": "Prometheus",
6 | "description": "UniFi Poller",
7 | "type": "datasource",
8 | "pluginId": "prometheus",
9 | "pluginName": "Prometheus"
10 | }
11 | ],
12 | "__requires": [
13 | {
14 | "type": "panel",
15 | "id": "gauge",
16 | "name": "Gauge",
17 | "version": ""
18 | },
19 | {
20 | "type": "grafana",
21 | "id": "grafana",
22 | "name": "Grafana",
23 | "version": "6.4.4"
24 | },
25 | {
26 | "type": "panel",
27 | "id": "graph",
28 | "name": "Graph",
29 | "version": ""
30 | },
31 | {
32 | "type": "datasource",
33 | "id": "prometheus",
34 | "name": "Prometheus",
35 | "version": "1.0.0"
36 | },
37 | {
38 | "type": "panel",
39 | "id": "singlestat",
40 | "name": "Singlestat",
41 | "version": ""
42 | },
43 | {
44 | "type": "panel",
45 | "id": "text",
46 | "name": "Text",
47 | "version": ""
48 | }
49 | ],
50 | "annotations": {
51 | "list": [
52 | {
53 | "builtIn": 1,
54 | "datasource": "-- Grafana --",
55 | "enable": true,
56 | "hide": true,
57 | "iconColor": "rgba(0, 211, 255, 1)",
58 | "name": "Annotations & Alerts",
59 | "type": "dashboard"
60 | }
61 | ]
62 | },
63 | "description": "UniFi Poller v1.6 Displays detailed information for network Sites in a UniFi controller using Prometheus.",
64 | "editable": true,
65 | "gnetId": 11311,
66 | "graphTooltip": 1,
67 | "id": null,
68 | "iteration": 1575263111599,
69 | "links": [
70 | {
71 | "asDropdown": true,
72 | "icon": "external link",
73 | "includeVars": false,
74 | "keepTime": true,
75 | "tags": [
76 | "unifi-poller"
77 | ],
78 | "title": "UniFi Poller",
79 | "type": "dashboards"
80 | }
81 | ],
82 | "panels": [
83 | {
84 | "cacheTimeout": null,
85 | "colorBackground": false,
86 | "colorValue": false,
87 | "colors": [
88 | "#299c46",
89 | "rgba(237, 129, 40, 0.89)",
90 | "#d44a3a"
91 | ],
92 | "datasource": "${DS_PROMETHEUS}",
93 | "decimals": null,
94 | "format": "none",
95 | "gauge": {
96 | "maxValue": 100,
97 | "minValue": 0,
98 | "show": false,
99 | "thresholdLabels": false,
100 | "thresholdMarkers": true
101 | },
102 | "gridPos": {
103 | "h": 3,
104 | "w": 2,
105 | "x": 0,
106 | "y": 0
107 | },
108 | "id": 41,
109 | "interval": null,
110 | "links": [],
111 | "mappingType": 1,
112 | "mappingTypes": [
113 | {
114 | "name": "value to text",
115 | "value": 1
116 | },
117 | {
118 | "name": "range to text",
119 | "value": 2
120 | }
121 | ],
122 | "maxDataPoints": 100,
123 | "nullPointMode": "connected",
124 | "nullText": null,
125 | "options": {},
126 | "pluginVersion": "6.4.4",
127 | "postfix": "",
128 | "postfixFontSize": "50%",
129 | "prefix": "",
130 | "prefixFontSize": "50%",
131 | "rangeMaps": [
132 | {
133 | "from": "null",
134 | "text": "N/A",
135 | "to": "null"
136 | }
137 | ],
138 | "sparkline": {
139 | "fillColor": "rgba(31, 118, 189, 0.18)",
140 | "full": false,
141 | "lineColor": "rgb(31, 120, 193)",
142 | "show": false,
143 | "ymax": null,
144 | "ymin": null
145 | },
146 | "tableColumn": "",
147 | "targets": [
148 | {
149 | "expr": "sum(unifipoller_site_switches)",
150 | "format": "time_series",
151 | "instant": true,
152 | "interval": "$Smooth",
153 | "refId": "A"
154 | }
155 | ],
156 | "thresholds": "",
157 | "timeFrom": null,
158 | "timeShift": null,
159 | "title": "USW",
160 | "type": "singlestat",
161 | "valueFontSize": "80%",
162 | "valueMaps": [
163 | {
164 | "op": "=",
165 | "text": "N/A",
166 | "value": "null"
167 | }
168 | ],
169 | "valueName": "current"
170 | },
171 | {
172 | "cacheTimeout": null,
173 | "colorBackground": false,
174 | "colorValue": false,
175 | "colors": [
176 | "#299c46",
177 | "rgba(237, 129, 40, 0.89)",
178 | "#d44a3a"
179 | ],
180 | "datasource": "${DS_PROMETHEUS}",
181 | "decimals": null,
182 | "format": "none",
183 | "gauge": {
184 | "maxValue": 100,
185 | "minValue": 0,
186 | "show": false,
187 | "thresholdLabels": false,
188 | "thresholdMarkers": true
189 | },
190 | "gridPos": {
191 | "h": 3,
192 | "w": 2,
193 | "x": 2,
194 | "y": 0
195 | },
196 | "id": 42,
197 | "interval": null,
198 | "links": [],
199 | "mappingType": 1,
200 | "mappingTypes": [
201 | {
202 | "name": "value to text",
203 | "value": 1
204 | },
205 | {
206 | "name": "range to text",
207 | "value": 2
208 | }
209 | ],
210 | "maxDataPoints": 100,
211 | "nullPointMode": "connected",
212 | "nullText": null,
213 | "options": {},
214 | "pluginVersion": "6.4.4",
215 | "postfix": "",
216 | "postfixFontSize": "50%",
217 | "prefix": "",
218 | "prefixFontSize": "50%",
219 | "rangeMaps": [
220 | {
221 | "from": "null",
222 | "text": "N/A",
223 | "to": "null"
224 | }
225 | ],
226 | "sparkline": {
227 | "fillColor": "rgba(31, 118, 189, 0.18)",
228 | "full": false,
229 | "lineColor": "rgb(31, 120, 193)",
230 | "show": false,
231 | "ymax": null,
232 | "ymin": null
233 | },
234 | "tableColumn": "",
235 | "targets": [
236 | {
237 | "expr": "sum(unifipoller_site_aps)",
238 | "format": "time_series",
239 | "instant": true,
240 | "interval": "$Smooth",
241 | "refId": "A"
242 | }
243 | ],
244 | "thresholds": "",
245 | "timeFrom": null,
246 | "timeShift": null,
247 | "title": "UAP",
248 | "type": "singlestat",
249 | "valueFontSize": "80%",
250 | "valueMaps": [
251 | {
252 | "op": "=",
253 | "text": "N/A",
254 | "value": "null"
255 | }
256 | ],
257 | "valueName": "current"
258 | },
259 | {
260 | "cacheTimeout": null,
261 | "colorBackground": false,
262 | "colorValue": false,
263 | "colors": [
264 | "#299c46",
265 | "rgba(237, 129, 40, 0.89)",
266 | "#d44a3a"
267 | ],
268 | "datasource": "${DS_PROMETHEUS}",
269 | "decimals": null,
270 | "format": "none",
271 | "gauge": {
272 | "maxValue": 100,
273 | "minValue": 0,
274 | "show": false,
275 | "thresholdLabels": false,
276 | "thresholdMarkers": true
277 | },
278 | "gridPos": {
279 | "h": 3,
280 | "w": 2,
281 | "x": 4,
282 | "y": 0
283 | },
284 | "id": 43,
285 | "interval": null,
286 | "links": [],
287 | "mappingType": 1,
288 | "mappingTypes": [
289 | {
290 | "name": "value to text",
291 | "value": 1
292 | },
293 | {
294 | "name": "range to text",
295 | "value": 2
296 | }
297 | ],
298 | "maxDataPoints": 100,
299 | "nullPointMode": "connected",
300 | "nullText": null,
301 | "options": {},
302 | "pluginVersion": "6.4.4",
303 | "postfix": "",
304 | "postfixFontSize": "50%",
305 | "prefix": "",
306 | "prefixFontSize": "50%",
307 | "rangeMaps": [
308 | {
309 | "from": "null",
310 | "text": "N/A",
311 | "to": "null"
312 | }
313 | ],
314 | "sparkline": {
315 | "fillColor": "rgba(31, 118, 189, 0.18)",
316 | "full": false,
317 | "lineColor": "rgb(31, 120, 193)",
318 | "show": false,
319 | "ymax": null,
320 | "ymin": null
321 | },
322 | "tableColumn": "",
323 | "targets": [
324 | {
325 | "expr": "sum(unifipoller_site_gateways)",
326 | "format": "time_series",
327 | "instant": true,
328 | "interval": "$Smooth",
329 | "refId": "A"
330 | }
331 | ],
332 | "thresholds": "",
333 | "timeFrom": null,
334 | "timeShift": null,
335 | "title": "USG",
336 | "type": "singlestat",
337 | "valueFontSize": "80%",
338 | "valueMaps": [
339 | {
340 | "op": "=",
341 | "text": "N/A",
342 | "value": "null"
343 | }
344 | ],
345 | "valueName": "current"
346 | },
347 | {
348 | "cacheTimeout": null,
349 | "colorBackground": false,
350 | "colorValue": false,
351 | "colors": [
352 | "#299c46",
353 | "rgba(237, 129, 40, 0.89)",
354 | "#d44a3a"
355 | ],
356 | "datasource": "${DS_PROMETHEUS}",
357 | "decimals": null,
358 | "format": "none",
359 | "gauge": {
360 | "maxValue": 100,
361 | "minValue": 0,
362 | "show": false,
363 | "thresholdLabels": false,
364 | "thresholdMarkers": true
365 | },
366 | "gridPos": {
367 | "h": 3,
368 | "w": 2,
369 | "x": 6,
370 | "y": 0
371 | },
372 | "id": 44,
373 | "interval": null,
374 | "links": [],
375 | "mappingType": 1,
376 | "mappingTypes": [
377 | {
378 | "name": "value to text",
379 | "value": 1
380 | },
381 | {
382 | "name": "range to text",
383 | "value": 2
384 | }
385 | ],
386 | "maxDataPoints": 100,
387 | "nullPointMode": "connected",
388 | "nullText": null,
389 | "options": {},
390 | "pluginVersion": "6.4.4",
391 | "postfix": "",
392 | "postfixFontSize": "50%",
393 | "prefix": "",
394 | "prefixFontSize": "50%",
395 | "rangeMaps": [
396 | {
397 | "from": "null",
398 | "text": "N/A",
399 | "to": "null"
400 | }
401 | ],
402 | "sparkline": {
403 | "fillColor": "rgba(31, 118, 189, 0.18)",
404 | "full": false,
405 | "lineColor": "rgb(31, 120, 193)",
406 | "show": true,
407 | "ymax": null,
408 | "ymin": null
409 | },
410 | "tableColumn": "",
411 | "targets": [
412 | {
413 | "expr": "sum(unifipoller_site_stations)",
414 | "format": "time_series",
415 | "instant": false,
416 | "interval": "$Smooth",
417 | "refId": "A"
418 | }
419 | ],
420 | "thresholds": "",
421 | "timeFrom": null,
422 | "timeShift": null,
423 | "title": "Stations",
424 | "type": "singlestat",
425 | "valueFontSize": "80%",
426 | "valueMaps": [
427 | {
428 | "op": "=",
429 | "text": "N/A",
430 | "value": "null"
431 | }
432 | ],
433 | "valueName": "current"
434 | },
435 | {
436 | "content": "Each site contains 5 subsystems: wan, lan, wlan, www, vpn. Each subsystem contains data specific to that system. All subsystems except vpn have data rate. VPN has data transfer though.\nThere's not a ton of juicy info here, and most of it can be gleaned on other the dashboards.\n",
437 | "datasource": null,
438 | "gridPos": {
439 | "h": 3,
440 | "w": 14,
441 | "x": 8,
442 | "y": 0
443 | },
444 | "id": 37,
445 | "links": [],
446 | "mode": "html",
447 | "options": {},
448 | "timeFrom": null,
449 | "timeShift": null,
450 | "title": "Information",
451 | "type": "text"
452 | },
453 | {
454 | "collapsed": false,
455 | "datasource": null,
456 | "gridPos": {
457 | "h": 1,
458 | "w": 24,
459 | "x": 0,
460 | "y": 3
461 | },
462 | "id": 4,
463 | "panels": [],
464 | "repeat": "Site",
465 | "title": "Site: $Site",
466 | "type": "row"
467 | },
468 | {
469 | "cacheTimeout": null,
470 | "colorBackground": false,
471 | "colorValue": false,
472 | "colors": [
473 | "#299c46",
474 | "rgba(237, 129, 40, 0.89)",
475 | "#d44a3a"
476 | ],
477 | "datasource": "${DS_PROMETHEUS}",
478 | "decimals": null,
479 | "format": "s",
480 | "gauge": {
481 | "maxValue": 100,
482 | "minValue": 0,
483 | "show": false,
484 | "thresholdLabels": false,
485 | "thresholdMarkers": true
486 | },
487 | "gridPos": {
488 | "h": 3,
489 | "w": 6,
490 | "x": 0,
491 | "y": 4
492 | },
493 | "id": 40,
494 | "interval": null,
495 | "links": [],
496 | "mappingType": 1,
497 | "mappingTypes": [
498 | {
499 | "name": "value to text",
500 | "value": 1
501 | },
502 | {
503 | "name": "range to text",
504 | "value": 2
505 | }
506 | ],
507 | "maxDataPoints": 100,
508 | "nullPointMode": "connected",
509 | "nullText": null,
510 | "options": {},
511 | "pluginVersion": "6.4.4",
512 | "postfix": "",
513 | "postfixFontSize": "50%",
514 | "prefix": "",
515 | "prefixFontSize": "50%",
516 | "rangeMaps": [
517 | {
518 | "from": "null",
519 | "text": "N/A",
520 | "to": "null"
521 | }
522 | ],
523 | "sparkline": {
524 | "fillColor": "rgba(31, 118, 189, 0.18)",
525 | "full": false,
526 | "lineColor": "rgb(31, 120, 193)",
527 | "show": false,
528 | "ymax": null,
529 | "ymin": null
530 | },
531 | "tableColumn": "",
532 | "targets": [
533 | {
534 | "expr": "unifipoller_site_uptime_seconds",
535 | "format": "time_series",
536 | "instant": true,
537 | "interval": "$Smooth",
538 | "refId": "A"
539 | }
540 | ],
541 | "thresholds": "",
542 | "timeFrom": null,
543 | "timeShift": null,
544 | "title": "Uplink Uptime",
545 | "type": "singlestat",
546 | "valueFontSize": "80%",
547 | "valueMaps": [
548 | {
549 | "op": "=",
550 | "text": "N/A",
551 | "value": "null"
552 | }
553 | ],
554 | "valueName": "current"
555 | },
556 | {
557 | "aliasColors": {},
558 | "bars": false,
559 | "dashLength": 10,
560 | "dashes": false,
561 | "datasource": "${DS_PROMETHEUS}",
562 | "decimals": 0,
563 | "description": "These are counters, totals, but they don't change much so the graph does not show rate.",
564 | "fill": 0,
565 | "fillGradient": 0,
566 | "gridPos": {
567 | "h": 11,
568 | "w": 18,
569 | "x": 6,
570 | "y": 4
571 | },
572 | "id": 38,
573 | "legend": {
574 | "alignAsTable": true,
575 | "avg": false,
576 | "current": true,
577 | "hideEmpty": true,
578 | "hideZero": false,
579 | "max": true,
580 | "min": false,
581 | "rightSide": true,
582 | "show": true,
583 | "sort": "current",
584 | "sortDesc": true,
585 | "total": false,
586 | "values": true
587 | },
588 | "lines": true,
589 | "linewidth": 2,
590 | "links": [],
591 | "nullPointMode": "null",
592 | "options": {
593 | "dataLinks": []
594 | },
595 | "percentage": false,
596 | "pointradius": 2,
597 | "points": false,
598 | "renderer": "flot",
599 | "repeatDirection": "h",
600 | "seriesOverrides": [],
601 | "spaceLength": 10,
602 | "stack": false,
603 | "steppedLine": false,
604 | "targets": [
605 | {
606 | "expr": "unifipoller_site_iots{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
607 | "interval": "$Smooth",
608 | "legendFormat": "{{subsystem}} IoT",
609 | "refId": "A"
610 | },
611 | {
612 | "expr": "unifipoller_site_adopted{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
613 | "interval": "$Smooth",
614 | "legendFormat": "{{subsystem}} Adopted",
615 | "refId": "B"
616 | },
617 | {
618 | "expr": "unifipoller_site_disabled{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
619 | "interval": "$Smooth",
620 | "legendFormat": "{{subsystem}} Disabled",
621 | "refId": "C"
622 | },
623 | {
624 | "expr": "unifipoller_site_disconnected{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
625 | "interval": "$Smooth",
626 | "legendFormat": "{{subsystem}} Disconnected",
627 | "refId": "D"
628 | },
629 | {
630 | "expr": "unifipoller_site_pending{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
631 | "interval": "$Smooth",
632 | "legendFormat": "{{subsystem}} Pending",
633 | "refId": "E"
634 | },
635 | {
636 | "expr": "unifipoller_site_gateways{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
637 | "interval": "$Smooth",
638 | "legendFormat": "{{subsystem}} Gateways",
639 | "refId": "F"
640 | },
641 | {
642 | "expr": "unifipoller_site_switches{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
643 | "interval": "$Smooth",
644 | "legendFormat": "{{subsystem}} Switches",
645 | "refId": "G"
646 | },
647 | {
648 | "expr": "unifipoller_site_intenet_drops_total{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
649 | "interval": "$Smooth",
650 | "legendFormat": "{{subsystem}} Drops",
651 | "refId": "H"
652 | }
653 | ],
654 | "thresholds": [],
655 | "timeFrom": null,
656 | "timeRegions": [],
657 | "timeShift": null,
658 | "title": "Item Counts",
659 | "tooltip": {
660 | "shared": true,
661 | "sort": 2,
662 | "value_type": "individual"
663 | },
664 | "type": "graph",
665 | "xaxis": {
666 | "buckets": null,
667 | "mode": "time",
668 | "name": null,
669 | "show": true,
670 | "values": []
671 | },
672 | "yaxes": [
673 | {
674 | "decimals": 0,
675 | "format": "short",
676 | "label": "Item Counts",
677 | "logBase": 1,
678 | "max": null,
679 | "min": null,
680 | "show": true
681 | },
682 | {
683 | "format": "short",
684 | "label": null,
685 | "logBase": 1,
686 | "max": null,
687 | "min": null,
688 | "show": true
689 | }
690 | ],
691 | "yaxis": {
692 | "align": false,
693 | "alignLevel": null
694 | }
695 | },
696 | {
697 | "cacheTimeout": null,
698 | "datasource": "${DS_PROMETHEUS}",
699 | "gridPos": {
700 | "h": 8,
701 | "w": 3,
702 | "x": 0,
703 | "y": 7
704 | },
705 | "id": 32,
706 | "links": [],
707 | "options": {
708 | "fieldOptions": {
709 | "calcs": [
710 | "lastNotNull"
711 | ],
712 | "defaults": {
713 | "decimals": 0,
714 | "mappings": [
715 | {
716 | "id": 0,
717 | "op": "=",
718 | "text": "N/A",
719 | "type": 1,
720 | "value": "null"
721 | }
722 | ],
723 | "max": 400,
724 | "min": 10,
725 | "nullValueMode": "connected",
726 | "thresholds": [
727 | {
728 | "color": "#299c46",
729 | "value": null
730 | },
731 | {
732 | "color": "rgba(237, 129, 40, 0.89)",
733 | "value": 100
734 | },
735 | {
736 | "color": "#d44a3a",
737 | "value": 200
738 | }
739 | ],
740 | "title": "Latency",
741 | "unit": "s"
742 | },
743 | "override": {},
744 | "values": false
745 | },
746 | "orientation": "horizontal",
747 | "showThresholdLabels": false,
748 | "showThresholdMarkers": true
749 | },
750 | "pluginVersion": "6.4.4",
751 | "targets": [
752 | {
753 | "expr": "unifipoller_site_latency_seconds{site_name=~\"$Site\"}",
754 | "instant": true,
755 | "interval": "$Smooth",
756 | "refId": "A"
757 | }
758 | ],
759 | "timeFrom": null,
760 | "timeShift": null,
761 | "title": "",
762 | "type": "gauge"
763 | },
764 | {
765 | "cacheTimeout": null,
766 | "datasource": "${DS_PROMETHEUS}",
767 | "gridPos": {
768 | "h": 8,
769 | "w": 3,
770 | "x": 3,
771 | "y": 7
772 | },
773 | "id": 33,
774 | "links": [],
775 | "options": {
776 | "fieldOptions": {
777 | "calcs": [
778 | "lastNotNull"
779 | ],
780 | "defaults": {
781 | "mappings": [
782 | {
783 | "id": 0,
784 | "op": "=",
785 | "text": "N/A",
786 | "type": 1,
787 | "value": "null"
788 | }
789 | ],
790 | "max": 200,
791 | "min": 1,
792 | "nullValueMode": "connected",
793 | "thresholds": [
794 | {
795 | "color": "#299c46",
796 | "value": null
797 | },
798 | {
799 | "color": "rgba(237, 129, 40, 0.89)",
800 | "value": 50
801 | },
802 | {
803 | "color": "#d44a3a",
804 | "value": 100
805 | }
806 | ],
807 | "title": "Speed Test Ping",
808 | "unit": "s"
809 | },
810 | "override": {},
811 | "values": false
812 | },
813 | "orientation": "horizontal",
814 | "showThresholdLabels": false,
815 | "showThresholdMarkers": true
816 | },
817 | "pluginVersion": "6.4.4",
818 | "targets": [
819 | {
820 | "expr": "unifipoller_site_speedtest_ping{site_name=~\"$Site\"}",
821 | "interval": "$Smooth",
822 | "refId": "A"
823 | }
824 | ],
825 | "timeFrom": null,
826 | "timeShift": null,
827 | "title": "",
828 | "type": "gauge"
829 | },
830 | {
831 | "aliasColors": {},
832 | "bars": false,
833 | "dashLength": 10,
834 | "dashes": false,
835 | "datasource": "${DS_PROMETHEUS}",
836 | "decimals": null,
837 | "description": "Shows data transfer for each subsystem on the site. RX is on the negative axis.",
838 | "fill": 0,
839 | "fillGradient": 0,
840 | "gridPos": {
841 | "h": 8,
842 | "w": 24,
843 | "x": 0,
844 | "y": 15
845 | },
846 | "id": 15,
847 | "legend": {
848 | "alignAsTable": true,
849 | "avg": false,
850 | "current": true,
851 | "max": true,
852 | "min": false,
853 | "rightSide": true,
854 | "show": true,
855 | "sort": "max",
856 | "sortDesc": true,
857 | "total": false,
858 | "values": true
859 | },
860 | "lines": true,
861 | "linewidth": 1,
862 | "links": [],
863 | "maxPerRow": 2,
864 | "nullPointMode": "connected",
865 | "options": {
866 | "dataLinks": []
867 | },
868 | "percentage": false,
869 | "pointradius": 2,
870 | "points": false,
871 | "renderer": "flot",
872 | "repeatDirection": "h",
873 | "seriesOverrides": [
874 | {
875 | "alias": "/Rx$/",
876 | "transform": "negative-Y"
877 | }
878 | ],
879 | "spaceLength": 10,
880 | "stack": false,
881 | "steppedLine": false,
882 | "targets": [
883 | {
884 | "expr": "unifipoller_site_transmit_rate_bytes{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
885 | "interval": "$Smooth",
886 | "legendFormat": "{{subsystem}} Tx",
887 | "refId": "A"
888 | },
889 | {
890 | "expr": "unifipoller_site_receive_rate_bytes{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
891 | "interval": "$Smooth",
892 | "legendFormat": "{{subsystem}} Rx",
893 | "refId": "B"
894 | }
895 | ],
896 | "thresholds": [],
897 | "timeFrom": null,
898 | "timeRegions": [],
899 | "timeShift": null,
900 | "title": "Data Transfer",
901 | "tooltip": {
902 | "shared": true,
903 | "sort": 2,
904 | "value_type": "individual"
905 | },
906 | "type": "graph",
907 | "xaxis": {
908 | "buckets": null,
909 | "mode": "time",
910 | "name": null,
911 | "show": true,
912 | "values": []
913 | },
914 | "yaxes": [
915 | {
916 | "decimals": null,
917 | "format": "Bps",
918 | "label": "bytes / second",
919 | "logBase": 1,
920 | "max": null,
921 | "min": null,
922 | "show": true
923 | },
924 | {
925 | "format": "short",
926 | "label": null,
927 | "logBase": 1,
928 | "max": null,
929 | "min": null,
930 | "show": true
931 | }
932 | ],
933 | "yaxis": {
934 | "align": false,
935 | "alignLevel": null
936 | }
937 | },
938 | {
939 | "aliasColors": {},
940 | "bars": false,
941 | "dashLength": 10,
942 | "dashes": false,
943 | "datasource": "${DS_PROMETHEUS}",
944 | "decimals": 0,
945 | "description": "This graphs shows clients connected to the site.",
946 | "fill": 0,
947 | "fillGradient": 0,
948 | "gridPos": {
949 | "h": 7,
950 | "w": 24,
951 | "x": 0,
952 | "y": 23
953 | },
954 | "id": 2,
955 | "legend": {
956 | "alignAsTable": true,
957 | "avg": false,
958 | "current": true,
959 | "max": true,
960 | "min": false,
961 | "rightSide": true,
962 | "show": true,
963 | "sort": "current",
964 | "sortDesc": true,
965 | "total": false,
966 | "values": true
967 | },
968 | "lines": true,
969 | "linewidth": 3,
970 | "links": [],
971 | "nullPointMode": "connected",
972 | "options": {
973 | "dataLinks": []
974 | },
975 | "percentage": false,
976 | "pointradius": 2,
977 | "points": false,
978 | "renderer": "flot",
979 | "repeat": null,
980 | "repeatDirection": "h",
981 | "seriesOverrides": [],
982 | "spaceLength": 10,
983 | "stack": false,
984 | "steppedLine": false,
985 | "targets": [
986 | {
987 | "expr": "unifipoller_site_users{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
988 | "interval": "$Smooth",
989 | "legendFormat": "{{subsystem}} Users",
990 | "refId": "A"
991 | },
992 | {
993 | "expr": "unifipoller_site_guests{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
994 | "interval": "$Smooth",
995 | "legendFormat": "{{subsystem}} Guests",
996 | "refId": "B"
997 | },
998 | {
999 | "expr": "unifipoller_site_remote_user_active{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1000 | "interval": "$Smooth",
1001 | "legendFormat": "{{subsystem}} Active",
1002 | "refId": "C"
1003 | },
1004 | {
1005 | "expr": "unifipoller_site_remote_user_inactive{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1006 | "interval": "$Smooth",
1007 | "legendFormat": "{{subsystem}} Inactive",
1008 | "refId": "D"
1009 | },
1010 | {
1011 | "expr": "unifipoller_site_stations{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1012 | "interval": "$Smooth",
1013 | "legendFormat": "{{subsystem}} Stations",
1014 | "refId": "E"
1015 | }
1016 | ],
1017 | "thresholds": [],
1018 | "timeFrom": null,
1019 | "timeRegions": [],
1020 | "timeShift": null,
1021 | "title": "Client Counts",
1022 | "tooltip": {
1023 | "shared": true,
1024 | "sort": 2,
1025 | "value_type": "individual"
1026 | },
1027 | "type": "graph",
1028 | "xaxis": {
1029 | "buckets": null,
1030 | "mode": "time",
1031 | "name": null,
1032 | "show": true,
1033 | "values": []
1034 | },
1035 | "yaxes": [
1036 | {
1037 | "decimals": 0,
1038 | "format": "short",
1039 | "label": null,
1040 | "logBase": 1,
1041 | "max": null,
1042 | "min": null,
1043 | "show": true
1044 | },
1045 | {
1046 | "format": "short",
1047 | "label": null,
1048 | "logBase": 1,
1049 | "max": null,
1050 | "min": null,
1051 | "show": true
1052 | }
1053 | ],
1054 | "yaxis": {
1055 | "align": false,
1056 | "alignLevel": null
1057 | }
1058 | },
1059 | {
1060 | "aliasColors": {},
1061 | "bars": false,
1062 | "dashLength": 10,
1063 | "dashes": false,
1064 | "datasource": "${DS_PROMETHEUS}",
1065 | "decimals": 0,
1066 | "description": "This graphs shows clients connected to the site.",
1067 | "fill": 0,
1068 | "fillGradient": 0,
1069 | "gridPos": {
1070 | "h": 7,
1071 | "w": 24,
1072 | "x": 0,
1073 | "y": 30
1074 | },
1075 | "id": 39,
1076 | "legend": {
1077 | "alignAsTable": true,
1078 | "avg": false,
1079 | "current": true,
1080 | "max": true,
1081 | "min": false,
1082 | "rightSide": true,
1083 | "show": true,
1084 | "sort": "current",
1085 | "sortDesc": true,
1086 | "total": false,
1087 | "values": true
1088 | },
1089 | "lines": true,
1090 | "linewidth": 3,
1091 | "links": [],
1092 | "nullPointMode": "connected",
1093 | "options": {
1094 | "dataLinks": []
1095 | },
1096 | "percentage": false,
1097 | "pointradius": 2,
1098 | "points": false,
1099 | "renderer": "flot",
1100 | "repeatDirection": "h",
1101 | "seriesOverrides": [
1102 | {
1103 | "alias": "/Rx$/",
1104 | "transform": "negative-Y"
1105 | }
1106 | ],
1107 | "spaceLength": 10,
1108 | "stack": false,
1109 | "steppedLine": false,
1110 | "targets": [
1111 | {
1112 | "expr": "rate(unifipoller_site_remote_user_transmit_bytes_total{site_name=~\"$Site\"}[$__interval])",
1113 | "interval": "$Smooth",
1114 | "legendFormat": "VPN Users Tx",
1115 | "refId": "A"
1116 | },
1117 | {
1118 | "expr": "rate(unifipoller_site_remote_user_receive_bytes_total{site_name=~\"$Site\"}[$__interval])",
1119 | "interval": "$Smooth",
1120 | "legendFormat": "VPN Users Rx",
1121 | "refId": "B"
1122 | }
1123 | ],
1124 | "thresholds": [],
1125 | "timeFrom": null,
1126 | "timeRegions": [],
1127 | "timeShift": null,
1128 | "title": "VPN Users Data Rate",
1129 | "tooltip": {
1130 | "shared": true,
1131 | "sort": 2,
1132 | "value_type": "individual"
1133 | },
1134 | "type": "graph",
1135 | "xaxis": {
1136 | "buckets": null,
1137 | "mode": "time",
1138 | "name": null,
1139 | "show": true,
1140 | "values": []
1141 | },
1142 | "yaxes": [
1143 | {
1144 | "decimals": 0,
1145 | "format": "Bps",
1146 | "label": null,
1147 | "logBase": 1,
1148 | "max": null,
1149 | "min": null,
1150 | "show": true
1151 | },
1152 | {
1153 | "format": "short",
1154 | "label": null,
1155 | "logBase": 1,
1156 | "max": null,
1157 | "min": null,
1158 | "show": true
1159 | }
1160 | ],
1161 | "yaxis": {
1162 | "align": false,
1163 | "alignLevel": null
1164 | }
1165 | }
1166 | ],
1167 | "refresh": "1m",
1168 | "schemaVersion": 20,
1169 | "style": "dark",
1170 | "tags": [
1171 | "unifi",
1172 | "unifi-poller"
1173 | ],
1174 | "templating": {
1175 | "list": [
1176 | {
1177 | "allValue": null,
1178 | "current": {},
1179 | "datasource": "${DS_PROMETHEUS}",
1180 | "definition": "label_values(unifipoller_site_transmit_rate_bytes,site_name)",
1181 | "hide": 2,
1182 | "includeAll": true,
1183 | "label": "",
1184 | "multi": false,
1185 | "name": "Site",
1186 | "options": [],
1187 | "query": "label_values(unifipoller_site_transmit_rate_bytes,site_name)",
1188 | "refresh": 1,
1189 | "regex": "",
1190 | "skipUrlSync": false,
1191 | "sort": 1,
1192 | "tagValuesQuery": "",
1193 | "tags": [],
1194 | "tagsQuery": "",
1195 | "type": "query",
1196 | "useTags": false
1197 | },
1198 | {
1199 | "allValue": null,
1200 | "current": {},
1201 | "datasource": "${DS_PROMETHEUS}",
1202 | "definition": "label_values(subsystem)",
1203 | "hide": 0,
1204 | "includeAll": true,
1205 | "label": null,
1206 | "multi": true,
1207 | "name": "Subsystem",
1208 | "options": [],
1209 | "query": "label_values(subsystem)",
1210 | "refresh": 1,
1211 | "regex": "",
1212 | "skipUrlSync": false,
1213 | "sort": 0,
1214 | "tagValuesQuery": "",
1215 | "tags": [],
1216 | "tagsQuery": "",
1217 | "type": "query",
1218 | "useTags": false
1219 | },
1220 | {
1221 | "allValue": null,
1222 | "current": {
1223 | "selected": true,
1224 | "text": "2m",
1225 | "value": "2m"
1226 | },
1227 | "hide": 0,
1228 | "includeAll": false,
1229 | "label": null,
1230 | "multi": false,
1231 | "name": "Smooth",
1232 | "options": [
1233 | {
1234 | "selected": false,
1235 | "text": "30s",
1236 | "value": "30s"
1237 | },
1238 | {
1239 | "selected": false,
1240 | "text": "1m",
1241 | "value": "1m"
1242 | },
1243 | {
1244 | "selected": true,
1245 | "text": "2m",
1246 | "value": "2m"
1247 | },
1248 | {
1249 | "selected": false,
1250 | "text": "5m",
1251 | "value": "5m"
1252 | },
1253 | {
1254 | "selected": false,
1255 | "text": "10m",
1256 | "value": "10m"
1257 | }
1258 | ],
1259 | "query": "30s,1m,2m,5m,10m",
1260 | "skipUrlSync": false,
1261 | "type": "custom"
1262 | }
1263 | ]
1264 | },
1265 | "time": {
1266 | "from": "now-3h",
1267 | "to": "now"
1268 | },
1269 | "timepicker": {
1270 | "nowDelay": "5s",
1271 | "refresh_intervals": [
1272 | "30s",
1273 | "1m",
1274 | "5m",
1275 | "15m",
1276 | "30m",
1277 | "1h",
1278 | "2h"
1279 | ],
1280 | "time_options": [
1281 | "5m",
1282 | "15m",
1283 | "1h",
1284 | "6h",
1285 | "12h",
1286 | "24h",
1287 | "2d",
1288 | "7d",
1289 | "30d"
1290 | ]
1291 | },
1292 | "timezone": "browser",
1293 | "title": "UniFi-Poller: Network Sites - Prometheus",
1294 | "uid": "9WaGWZaZk",
1295 | "version": 13
1296 | }
--------------------------------------------------------------------------------
/v2.0.0/README.md:
--------------------------------------------------------------------------------
1 | These are the production dashboards.
2 |
--------------------------------------------------------------------------------
/v2.0.0/UniFi-Poller_ Client DPI - Prometheus.json:
--------------------------------------------------------------------------------
1 | {
2 | "__inputs": [
3 | {
4 | "name": "DS_PROMETHEUS",
5 | "label": "Prometheus",
6 | "description": "",
7 | "type": "datasource",
8 | "pluginId": "prometheus",
9 | "pluginName": "Prometheus"
10 | }
11 | ],
12 | "__elements": {},
13 | "__requires": [
14 | {
15 | "type": "grafana",
16 | "id": "grafana",
17 | "name": "Grafana",
18 | "version": "10.4.3"
19 | },
20 | {
21 | "type": "panel",
22 | "id": "piechart",
23 | "name": "Pie chart",
24 | "version": ""
25 | },
26 | {
27 | "type": "datasource",
28 | "id": "prometheus",
29 | "name": "Prometheus",
30 | "version": "1.0.0"
31 | },
32 | {
33 | "type": "panel",
34 | "id": "table",
35 | "name": "Table",
36 | "version": ""
37 | },
38 | {
39 | "type": "panel",
40 | "id": "text",
41 | "name": "Text",
42 | "version": ""
43 | },
44 | {
45 | "type": "panel",
46 | "id": "timeseries",
47 | "name": "Time series",
48 | "version": ""
49 | }
50 | ],
51 | "annotations": {
52 | "list": [
53 | {
54 | "builtIn": 1,
55 | "datasource": {
56 | "type": "datasource",
57 | "uid": "grafana"
58 | },
59 | "enable": true,
60 | "hide": true,
61 | "iconColor": "rgba(0, 211, 255, 1)",
62 | "name": "Annotations & Alerts",
63 | "type": "dashboard"
64 | }
65 | ]
66 | },
67 | "description": "UniFi Poller v2.0.1 Displays DPI information for clients in a UniFi network using Prometheus.",
68 | "editable": true,
69 | "fiscalYearStartMonth": 0,
70 | "gnetId": 11310,
71 | "graphTooltip": 1,
72 | "id": null,
73 | "links": [
74 | {
75 | "asDropdown": true,
76 | "icon": "external link",
77 | "includeVars": false,
78 | "keepTime": true,
79 | "tags": [
80 | "unifi-poller"
81 | ],
82 | "title": "UniFi Poller",
83 | "type": "dashboards"
84 | },
85 | {
86 | "icon": "question",
87 | "tags": [],
88 | "title": "Help",
89 | "type": "link",
90 | "url": "https://golift.io/unifi-poller/issues"
91 | },
92 | {
93 | "icon": "doc",
94 | "tags": [],
95 | "title": "Wiki",
96 | "type": "link",
97 | "url": "https://golift.io/unifi-poller/wiki"
98 | },
99 | {
100 | "icon": "bolt",
101 | "tags": [],
102 | "title": "Discord",
103 | "type": "link",
104 | "url": "https://discord.gg/KnyKYt2"
105 | }
106 | ],
107 | "panels": [
108 | {
109 | "datasource": {
110 | "type": "prometheus",
111 | "uid": "${DS_PROMETHEUS}"
112 | },
113 | "gridPos": {
114 | "h": 2,
115 | "w": 24,
116 | "x": 0,
117 | "y": 0
118 | },
119 | "id": 3409,
120 | "options": {
121 | "code": {
122 | "language": "plaintext",
123 | "showLineNumbers": false,
124 | "showMiniMap": false
125 | },
126 | "content": "
If this dashboard contains no data that means you need to enable DPI. It must be enabled on your UniFi controller AND in UniFi Poller. Two places! Please carefully check your configurations.",
127 | "mode": "html"
128 | },
129 | "pluginVersion": "10.4.3",
130 | "targets": [
131 | {
132 | "datasource": {
133 | "type": "prometheus",
134 | "uid": "${DS_PROMETHEUS}"
135 | },
136 | "refId": "A"
137 | }
138 | ],
139 | "title": "Information",
140 | "type": "text"
141 | },
142 | {
143 | "datasource": {
144 | "type": "prometheus",
145 | "uid": "${DS_PROMETHEUS}"
146 | },
147 | "description": "This shows lifetime rx+tx total and totals accumulated during the selected time range. The filters at the top of this page control _all_ of the graphs, and in some cases control the visibility of graphs. ie. Adding more clients displays more graphs under the collapsed Clients rows.",
148 | "fieldConfig": {
149 | "defaults": {
150 | "color": {
151 | "mode": "thresholds"
152 | },
153 | "custom": {
154 | "align": "auto",
155 | "cellOptions": {
156 | "type": "auto"
157 | },
158 | "inspect": false
159 | },
160 | "mappings": [],
161 | "thresholds": {
162 | "mode": "absolute",
163 | "steps": [
164 | {
165 | "color": "green",
166 | "value": null
167 | },
168 | {
169 | "color": "red",
170 | "value": 80
171 | }
172 | ]
173 | }
174 | },
175 | "overrides": [
176 | {
177 | "matcher": {
178 | "id": "byName",
179 | "options": "Time"
180 | },
181 | "properties": [
182 | {
183 | "id": "displayName",
184 | "value": "Time"
185 | },
186 | {
187 | "id": "custom.align"
188 | }
189 | ]
190 | },
191 | {
192 | "matcher": {
193 | "id": "byName",
194 | "options": "Value #A"
195 | },
196 | "properties": [
197 | {
198 | "id": "displayName",
199 | "value": "Bytes Rx"
200 | },
201 | {
202 | "id": "unit",
203 | "value": "bytes"
204 | },
205 | {
206 | "id": "custom.align"
207 | }
208 | ]
209 | },
210 | {
211 | "matcher": {
212 | "id": "byName",
213 | "options": "Value #B"
214 | },
215 | "properties": [
216 | {
217 | "id": "displayName",
218 | "value": "Bytes Tx"
219 | },
220 | {
221 | "id": "unit",
222 | "value": "bytes"
223 | },
224 | {
225 | "id": "custom.align"
226 | }
227 | ]
228 | },
229 | {
230 | "matcher": {
231 | "id": "byName",
232 | "options": "Value #C"
233 | },
234 | "properties": [
235 | {
236 | "id": "displayName",
237 | "value": "Rx Packets"
238 | },
239 | {
240 | "id": "unit",
241 | "value": "short"
242 | },
243 | {
244 | "id": "custom.align"
245 | }
246 | ]
247 | },
248 | {
249 | "matcher": {
250 | "id": "byName",
251 | "options": "Value #D"
252 | },
253 | "properties": [
254 | {
255 | "id": "displayName",
256 | "value": "Tx Packets"
257 | },
258 | {
259 | "id": "unit",
260 | "value": "short"
261 | },
262 | {
263 | "id": "custom.align"
264 | }
265 | ]
266 | },
267 | {
268 | "matcher": {
269 | "id": "byName",
270 | "options": "Value #E"
271 | },
272 | "properties": [
273 | {
274 | "id": "displayName",
275 | "value": "Bytes Tx TIOTAL"
276 | },
277 | {
278 | "id": "unit",
279 | "value": "bytes"
280 | },
281 | {
282 | "id": "custom.align"
283 | }
284 | ]
285 | },
286 | {
287 | "matcher": {
288 | "id": "byName",
289 | "options": "site_name"
290 | },
291 | "properties": [
292 | {
293 | "id": "displayName",
294 | "value": "Site"
295 | },
296 | {
297 | "id": "unit",
298 | "value": "short"
299 | },
300 | {
301 | "id": "decimals",
302 | "value": 2
303 | },
304 | {
305 | "id": "custom.align"
306 | }
307 | ]
308 | },
309 | {
310 | "matcher": {
311 | "id": "byName",
312 | "options": "category"
313 | },
314 | "properties": [
315 | {
316 | "id": "displayName",
317 | "value": "Category"
318 | },
319 | {
320 | "id": "unit",
321 | "value": "short"
322 | },
323 | {
324 | "id": "decimals",
325 | "value": 2
326 | },
327 | {
328 | "id": "custom.align"
329 | }
330 | ]
331 | },
332 | {
333 | "matcher": {
334 | "id": "byName",
335 | "options": "Value #F"
336 | },
337 | "properties": [
338 | {
339 | "id": "displayName",
340 | "value": "Bytes Rx TOTAL"
341 | },
342 | {
343 | "id": "unit",
344 | "value": "decbytes"
345 | },
346 | {
347 | "id": "custom.align"
348 | }
349 | ]
350 | }
351 | ]
352 | },
353 | "gridPos": {
354 | "h": 22,
355 | "w": 24,
356 | "x": 0,
357 | "y": 2
358 | },
359 | "id": 437,
360 | "options": {
361 | "cellHeight": "sm",
362 | "footer": {
363 | "countRows": false,
364 | "fields": "",
365 | "reducer": [
366 | "sum"
367 | ],
368 | "show": false
369 | },
370 | "showHeader": true
371 | },
372 | "pluginVersion": "10.4.3",
373 | "targets": [
374 | {
375 | "datasource": {
376 | "type": "prometheus",
377 | "uid": "${DS_PROMETHEUS}"
378 | },
379 | "expr": "sum by (site_name, category) (unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"})",
380 | "format": "table",
381 | "instant": true,
382 | "interval": "",
383 | "legendFormat": "",
384 | "refId": "F"
385 | },
386 | {
387 | "datasource": {
388 | "type": "prometheus",
389 | "uid": "${DS_PROMETHEUS}"
390 | },
391 | "expr": "sum by (site_name, category) (unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"})",
392 | "format": "table",
393 | "instant": true,
394 | "interval": "",
395 | "legendFormat": "",
396 | "refId": "E"
397 | },
398 | {
399 | "datasource": {
400 | "type": "prometheus",
401 | "uid": "${DS_PROMETHEUS}"
402 | },
403 | "expr": "sum by (site_name, category) (increase(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"}[$__range]))",
404 | "format": "table",
405 | "instant": true,
406 | "interval": "",
407 | "legendFormat": "",
408 | "refId": "A"
409 | },
410 | {
411 | "datasource": {
412 | "type": "prometheus",
413 | "uid": "${DS_PROMETHEUS}"
414 | },
415 | "expr": "sum by (site_name, category) (increase(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"}[$__range]))",
416 | "format": "table",
417 | "hide": false,
418 | "instant": true,
419 | "interval": "",
420 | "legendFormat": "",
421 | "refId": "B"
422 | },
423 | {
424 | "datasource": {
425 | "type": "prometheus",
426 | "uid": "${DS_PROMETHEUS}"
427 | },
428 | "expr": "sum by (site_name, category) (increase(unpoller_client_dpi_receive_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"}[$__range]))",
429 | "format": "table",
430 | "hide": false,
431 | "instant": true,
432 | "interval": "",
433 | "legendFormat": "",
434 | "refId": "C"
435 | },
436 | {
437 | "datasource": {
438 | "type": "prometheus",
439 | "uid": "${DS_PROMETHEUS}"
440 | },
441 | "expr": "sum by (site_name, category) (increase(unpoller_client_dpi_transmit_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", category=~\"$Category\"}[$__range]))",
442 | "format": "table",
443 | "hide": false,
444 | "instant": true,
445 | "interval": "",
446 | "legendFormat": "",
447 | "refId": "D"
448 | }
449 | ],
450 | "title": "Totals Category",
451 | "transformations": [
452 | {
453 | "id": "seriesToRows",
454 | "options": {
455 | "reducers": []
456 | }
457 | }
458 | ],
459 | "type": "table"
460 | },
461 | {
462 | "aliasColors": {},
463 | "breakPoint": "50%",
464 | "combine": {
465 | "label": "Other",
466 | "threshold": "0.005"
467 | },
468 | "datasource": {
469 | "type": "prometheus",
470 | "uid": "${DS_PROMETHEUS}"
471 | },
472 | "description": "Showing traffic by category.\nThis updates with the variables on the dashboard.",
473 | "fieldConfig": {
474 | "defaults": {
475 | "color": {
476 | "mode": "palette-classic"
477 | },
478 | "custom": {
479 | "hideFrom": {
480 | "legend": false,
481 | "tooltip": false,
482 | "viz": false
483 | }
484 | },
485 | "mappings": []
486 | },
487 | "overrides": []
488 | },
489 | "fontSize": "70%",
490 | "format": "bytes",
491 | "gridPos": {
492 | "h": 12,
493 | "w": 12,
494 | "x": 0,
495 | "y": 24
496 | },
497 | "hideTimeOverride": false,
498 | "id": 9,
499 | "legend": {
500 | "header": "Rx+Tx",
501 | "percentage": false,
502 | "show": true,
503 | "sort": "current",
504 | "sortDesc": true,
505 | "values": true
506 | },
507 | "legendType": "Right side",
508 | "maxDataPoints": 3,
509 | "nullPointMode": "connected",
510 | "options": {
511 | "legend": {
512 | "displayMode": "list",
513 | "placement": "bottom",
514 | "showLegend": true
515 | },
516 | "pieType": "pie",
517 | "reduceOptions": {
518 | "calcs": [
519 | "lastNotNull"
520 | ],
521 | "fields": "",
522 | "values": false
523 | },
524 | "tooltip": {
525 | "mode": "single",
526 | "sort": "none"
527 | }
528 | },
529 | "pieType": "pie",
530 | "strokeWidth": "1",
531 | "targets": [
532 | {
533 | "datasource": {
534 | "type": "prometheus",
535 | "uid": "${DS_PROMETHEUS}"
536 | },
537 | "expr": "sum by (category) (increase(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__range])+increase(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__range]))",
538 | "instant": true,
539 | "interval": "",
540 | "legendFormat": "{{category}}",
541 | "refId": "A"
542 | }
543 | ],
544 | "title": "Total Traffic by Category",
545 | "transparent": true,
546 | "type": "piechart",
547 | "valueName": "current"
548 | },
549 | {
550 | "aliasColors": {},
551 | "breakPoint": "50%",
552 | "combine": {
553 | "label": "Other",
554 | "threshold": "0.009"
555 | },
556 | "datasource": {
557 | "type": "prometheus",
558 | "uid": "${DS_PROMETHEUS}"
559 | },
560 | "description": "Showing traffic by application for selected clients. This updates with the variables on the dashboard.",
561 | "fieldConfig": {
562 | "defaults": {
563 | "color": {
564 | "mode": "palette-classic"
565 | },
566 | "custom": {
567 | "hideFrom": {
568 | "legend": false,
569 | "tooltip": false,
570 | "viz": false
571 | }
572 | },
573 | "mappings": []
574 | },
575 | "overrides": []
576 | },
577 | "fontSize": "70%",
578 | "format": "bytes",
579 | "gridPos": {
580 | "h": 12,
581 | "w": 12,
582 | "x": 12,
583 | "y": 24
584 | },
585 | "hideTimeOverride": false,
586 | "id": 10,
587 | "legend": {
588 | "header": "Rx+Tx",
589 | "percentage": false,
590 | "show": true,
591 | "sort": "current",
592 | "sortDesc": true,
593 | "values": true
594 | },
595 | "legendType": "Right side",
596 | "maxDataPoints": 3,
597 | "nullPointMode": "connected",
598 | "options": {
599 | "legend": {
600 | "displayMode": "list",
601 | "placement": "bottom",
602 | "showLegend": true
603 | },
604 | "pieType": "pie",
605 | "reduceOptions": {
606 | "calcs": [
607 | "lastNotNull"
608 | ],
609 | "fields": "",
610 | "values": false
611 | },
612 | "tooltip": {
613 | "mode": "single",
614 | "sort": "none"
615 | }
616 | },
617 | "pieType": "pie",
618 | "strokeWidth": "1",
619 | "targets": [
620 | {
621 | "datasource": {
622 | "type": "prometheus",
623 | "uid": "${DS_PROMETHEUS}"
624 | },
625 | "expr": " sum by (category, application) (increase(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__range])+increase(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__range]))",
626 | "instant": true,
627 | "interval": "",
628 | "legendFormat": "{{application}} ({{category}})",
629 | "refId": "A"
630 | }
631 | ],
632 | "title": "Total Traffic by Application",
633 | "transparent": true,
634 | "type": "piechart",
635 | "valueName": "current"
636 | },
637 | {
638 | "datasource": {
639 | "type": "prometheus",
640 | "uid": "${DS_PROMETHEUS}"
641 | },
642 | "description": "Bytes Transferred by Category. Receive is on the negative axis.",
643 | "fieldConfig": {
644 | "defaults": {
645 | "color": {
646 | "mode": "palette-classic"
647 | },
648 | "custom": {
649 | "axisBorderShow": false,
650 | "axisCenteredZero": false,
651 | "axisColorMode": "text",
652 | "axisLabel": "",
653 | "axisPlacement": "auto",
654 | "barAlignment": 0,
655 | "drawStyle": "line",
656 | "fillOpacity": 0,
657 | "gradientMode": "none",
658 | "hideFrom": {
659 | "legend": false,
660 | "tooltip": false,
661 | "viz": false
662 | },
663 | "insertNulls": false,
664 | "lineInterpolation": "linear",
665 | "lineWidth": 1,
666 | "pointSize": 5,
667 | "scaleDistribution": {
668 | "type": "linear"
669 | },
670 | "showPoints": "never",
671 | "spanNulls": false,
672 | "stacking": {
673 | "group": "A",
674 | "mode": "none"
675 | },
676 | "thresholdsStyle": {
677 | "mode": "off"
678 | }
679 | },
680 | "links": [],
681 | "mappings": [],
682 | "thresholds": {
683 | "mode": "absolute",
684 | "steps": [
685 | {
686 | "color": "green",
687 | "value": null
688 | },
689 | {
690 | "color": "red",
691 | "value": 80
692 | }
693 | ]
694 | },
695 | "unit": "Bps"
696 | },
697 | "overrides": [
698 | {
699 | "matcher": {
700 | "id": "byRegexp",
701 | "options": "/Rx/"
702 | },
703 | "properties": [
704 | {
705 | "id": "custom.transform",
706 | "value": "negative-Y"
707 | }
708 | ]
709 | },
710 | {
711 | "matcher": {
712 | "id": "byValue",
713 | "options": {
714 | "op": "gte",
715 | "reducer": "allIsZero",
716 | "value": 0
717 | }
718 | },
719 | "properties": [
720 | {
721 | "id": "custom.hideFrom",
722 | "value": {
723 | "legend": true,
724 | "tooltip": true,
725 | "viz": false
726 | }
727 | }
728 | ]
729 | },
730 | {
731 | "matcher": {
732 | "id": "byValue",
733 | "options": {
734 | "op": "gte",
735 | "reducer": "allIsNull",
736 | "value": 0
737 | }
738 | },
739 | "properties": [
740 | {
741 | "id": "custom.hideFrom",
742 | "value": {
743 | "legend": true,
744 | "tooltip": true,
745 | "viz": false
746 | }
747 | }
748 | ]
749 | }
750 | ]
751 | },
752 | "gridPos": {
753 | "h": 17,
754 | "w": 24,
755 | "x": 0,
756 | "y": 36
757 | },
758 | "id": 304,
759 | "options": {
760 | "legend": {
761 | "calcs": [
762 | "mean",
763 | "max"
764 | ],
765 | "displayMode": "table",
766 | "placement": "right",
767 | "showLegend": true
768 | },
769 | "tooltip": {
770 | "mode": "multi",
771 | "sort": "desc"
772 | }
773 | },
774 | "pluginVersion": "10.4.3",
775 | "targets": [
776 | {
777 | "datasource": {
778 | "type": "prometheus",
779 | "uid": "${DS_PROMETHEUS}"
780 | },
781 | "expr": "sum by (category)(rate(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__interval]))",
782 | "interval": "$Smooth",
783 | "legendFormat": " {{category}} Rx",
784 | "refId": "A"
785 | },
786 | {
787 | "datasource": {
788 | "type": "prometheus",
789 | "uid": "${DS_PROMETHEUS}"
790 | },
791 | "expr": "sum by (category)(rate(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__interval]))",
792 | "interval": "$Smooth",
793 | "legendFormat": "{{category}} Tx",
794 | "refId": "B"
795 | }
796 | ],
797 | "title": "Bytes Transferred per Category",
798 | "type": "timeseries"
799 | },
800 | {
801 | "datasource": {
802 | "type": "prometheus",
803 | "uid": "${DS_PROMETHEUS}"
804 | },
805 | "description": "Packets Transferred by Category. Receive is on the negative axis.",
806 | "fieldConfig": {
807 | "defaults": {
808 | "color": {
809 | "mode": "palette-classic"
810 | },
811 | "custom": {
812 | "axisBorderShow": false,
813 | "axisCenteredZero": false,
814 | "axisColorMode": "text",
815 | "axisLabel": "",
816 | "axisPlacement": "auto",
817 | "barAlignment": 0,
818 | "drawStyle": "line",
819 | "fillOpacity": 0,
820 | "gradientMode": "none",
821 | "hideFrom": {
822 | "legend": false,
823 | "tooltip": false,
824 | "viz": false
825 | },
826 | "insertNulls": false,
827 | "lineInterpolation": "linear",
828 | "lineWidth": 1,
829 | "pointSize": 5,
830 | "scaleDistribution": {
831 | "type": "linear"
832 | },
833 | "showPoints": "never",
834 | "spanNulls": false,
835 | "stacking": {
836 | "group": "A",
837 | "mode": "none"
838 | },
839 | "thresholdsStyle": {
840 | "mode": "off"
841 | }
842 | },
843 | "links": [],
844 | "mappings": [],
845 | "thresholds": {
846 | "mode": "absolute",
847 | "steps": [
848 | {
849 | "color": "green",
850 | "value": null
851 | },
852 | {
853 | "color": "red",
854 | "value": 80
855 | }
856 | ]
857 | },
858 | "unit": "pps"
859 | },
860 | "overrides": [
861 | {
862 | "matcher": {
863 | "id": "byRegexp",
864 | "options": "/Rx/"
865 | },
866 | "properties": [
867 | {
868 | "id": "custom.transform",
869 | "value": "negative-Y"
870 | }
871 | ]
872 | },
873 | {
874 | "matcher": {
875 | "id": "byValue",
876 | "options": {
877 | "op": "gte",
878 | "reducer": "allIsZero",
879 | "value": 0
880 | }
881 | },
882 | "properties": [
883 | {
884 | "id": "custom.hideFrom",
885 | "value": {
886 | "legend": true,
887 | "tooltip": true,
888 | "viz": false
889 | }
890 | }
891 | ]
892 | },
893 | {
894 | "matcher": {
895 | "id": "byValue",
896 | "options": {
897 | "op": "gte",
898 | "reducer": "allIsNull",
899 | "value": 0
900 | }
901 | },
902 | "properties": [
903 | {
904 | "id": "custom.hideFrom",
905 | "value": {
906 | "legend": true,
907 | "tooltip": true,
908 | "viz": false
909 | }
910 | }
911 | ]
912 | }
913 | ]
914 | },
915 | "gridPos": {
916 | "h": 17,
917 | "w": 24,
918 | "x": 0,
919 | "y": 53
920 | },
921 | "id": 305,
922 | "options": {
923 | "legend": {
924 | "calcs": [
925 | "mean",
926 | "max"
927 | ],
928 | "displayMode": "table",
929 | "placement": "right",
930 | "showLegend": true
931 | },
932 | "tooltip": {
933 | "mode": "multi",
934 | "sort": "desc"
935 | }
936 | },
937 | "pluginVersion": "10.4.3",
938 | "targets": [
939 | {
940 | "datasource": {
941 | "type": "prometheus",
942 | "uid": "${DS_PROMETHEUS}"
943 | },
944 | "expr": "sum by (category)(rate(unpoller_client_dpi_receive_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__interval]))",
945 | "interval": "$Smooth",
946 | "legendFormat": " {{category}} Rx",
947 | "refId": "A"
948 | },
949 | {
950 | "datasource": {
951 | "type": "prometheus",
952 | "uid": "${DS_PROMETHEUS}"
953 | },
954 | "expr": "sum by (category)(rate(unpoller_client_dpi_transmit_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=~\"$Category\"}[$__interval]))",
955 | "interval": "$Smooth",
956 | "legendFormat": "{{category}} Tx",
957 | "refId": "B"
958 | }
959 | ],
960 | "title": "Packets Transferred per Category",
961 | "type": "timeseries"
962 | },
963 | {
964 | "collapsed": false,
965 | "datasource": {
966 | "type": "prometheus",
967 | "uid": "DS_PROMETHEUS"
968 | },
969 | "gridPos": {
970 | "h": 1,
971 | "w": 24,
972 | "x": 0,
973 | "y": 70
974 | },
975 | "id": 2191,
976 | "panels": [],
977 | "targets": [
978 | {
979 | "datasource": {
980 | "type": "prometheus",
981 | "uid": "DS_PROMETHEUS"
982 | },
983 | "refId": "A"
984 | }
985 | ],
986 | "title": "Clients Rx Packets",
987 | "type": "row"
988 | },
989 | {
990 | "datasource": {
991 | "type": "prometheus",
992 | "uid": "${DS_PROMETHEUS}"
993 | },
994 | "description": "Receive Packets per Application for $Client",
995 | "fieldConfig": {
996 | "defaults": {
997 | "color": {
998 | "mode": "palette-classic"
999 | },
1000 | "custom": {
1001 | "axisBorderShow": false,
1002 | "axisCenteredZero": false,
1003 | "axisColorMode": "text",
1004 | "axisLabel": "",
1005 | "axisPlacement": "auto",
1006 | "barAlignment": 0,
1007 | "drawStyle": "line",
1008 | "fillOpacity": 0,
1009 | "gradientMode": "none",
1010 | "hideFrom": {
1011 | "legend": false,
1012 | "tooltip": false,
1013 | "viz": false
1014 | },
1015 | "insertNulls": false,
1016 | "lineInterpolation": "linear",
1017 | "lineWidth": 1,
1018 | "pointSize": 5,
1019 | "scaleDistribution": {
1020 | "type": "linear"
1021 | },
1022 | "showPoints": "never",
1023 | "spanNulls": false,
1024 | "stacking": {
1025 | "group": "A",
1026 | "mode": "none"
1027 | },
1028 | "thresholdsStyle": {
1029 | "mode": "off"
1030 | }
1031 | },
1032 | "links": [],
1033 | "mappings": [],
1034 | "thresholds": {
1035 | "mode": "absolute",
1036 | "steps": [
1037 | {
1038 | "color": "green",
1039 | "value": null
1040 | },
1041 | {
1042 | "color": "red",
1043 | "value": 80
1044 | }
1045 | ]
1046 | },
1047 | "unit": "pps"
1048 | },
1049 | "overrides": [
1050 | {
1051 | "matcher": {
1052 | "id": "byValue",
1053 | "options": {
1054 | "op": "gte",
1055 | "reducer": "allIsNull",
1056 | "value": 0
1057 | }
1058 | },
1059 | "properties": [
1060 | {
1061 | "id": "custom.hideFrom",
1062 | "value": {
1063 | "legend": true,
1064 | "tooltip": true,
1065 | "viz": false
1066 | }
1067 | }
1068 | ]
1069 | }
1070 | ]
1071 | },
1072 | "gridPos": {
1073 | "h": 10,
1074 | "w": 24,
1075 | "x": 0,
1076 | "y": 71
1077 | },
1078 | "id": 2325,
1079 | "options": {
1080 | "legend": {
1081 | "calcs": [
1082 | "mean",
1083 | "max"
1084 | ],
1085 | "displayMode": "table",
1086 | "placement": "right",
1087 | "showLegend": true
1088 | },
1089 | "tooltip": {
1090 | "mode": "multi",
1091 | "sort": "desc"
1092 | }
1093 | },
1094 | "pluginVersion": "10.4.3",
1095 | "repeat": "Client",
1096 | "repeatDirection": "v",
1097 | "targets": [
1098 | {
1099 | "datasource": {
1100 | "type": "prometheus",
1101 | "uid": "${DS_PROMETHEUS}"
1102 | },
1103 | "expr": "rate(unpoller_client_dpi_receive_packets{site_name=~\"$Site\", [[Identifier]]!~\"TOTAL\", [[Identifier]]=~\"$Client\"}[$__interval])",
1104 | "interval": "$Smooth",
1105 | "legendFormat": "{{application}} ({{category}})",
1106 | "refId": "A"
1107 | }
1108 | ],
1109 | "title": "Receive Packets - $Client",
1110 | "type": "timeseries"
1111 | },
1112 | {
1113 | "collapsed": false,
1114 | "datasource": {
1115 | "type": "prometheus",
1116 | "uid": "DS_PROMETHEUS"
1117 | },
1118 | "gridPos": {
1119 | "h": 1,
1120 | "w": 24,
1121 | "x": 0,
1122 | "y": 81
1123 | },
1124 | "id": 2189,
1125 | "panels": [],
1126 | "targets": [
1127 | {
1128 | "datasource": {
1129 | "type": "prometheus",
1130 | "uid": "DS_PROMETHEUS"
1131 | },
1132 | "refId": "A"
1133 | }
1134 | ],
1135 | "title": "Clients Tx Bytes",
1136 | "type": "row"
1137 | },
1138 | {
1139 | "datasource": {
1140 | "type": "prometheus",
1141 | "uid": "${DS_PROMETHEUS}"
1142 | },
1143 | "description": "Transmit Bytes per Application for $Client",
1144 | "fieldConfig": {
1145 | "defaults": {
1146 | "color": {
1147 | "mode": "palette-classic"
1148 | },
1149 | "custom": {
1150 | "axisBorderShow": false,
1151 | "axisCenteredZero": false,
1152 | "axisColorMode": "text",
1153 | "axisLabel": "",
1154 | "axisPlacement": "auto",
1155 | "barAlignment": 0,
1156 | "drawStyle": "line",
1157 | "fillOpacity": 0,
1158 | "gradientMode": "none",
1159 | "hideFrom": {
1160 | "legend": false,
1161 | "tooltip": false,
1162 | "viz": false
1163 | },
1164 | "insertNulls": false,
1165 | "lineInterpolation": "linear",
1166 | "lineWidth": 1,
1167 | "pointSize": 5,
1168 | "scaleDistribution": {
1169 | "type": "linear"
1170 | },
1171 | "showPoints": "never",
1172 | "spanNulls": false,
1173 | "stacking": {
1174 | "group": "A",
1175 | "mode": "none"
1176 | },
1177 | "thresholdsStyle": {
1178 | "mode": "off"
1179 | }
1180 | },
1181 | "links": [],
1182 | "mappings": [],
1183 | "thresholds": {
1184 | "mode": "absolute",
1185 | "steps": [
1186 | {
1187 | "color": "green",
1188 | "value": null
1189 | },
1190 | {
1191 | "color": "red",
1192 | "value": 80
1193 | }
1194 | ]
1195 | },
1196 | "unit": "Bps"
1197 | },
1198 | "overrides": [
1199 | {
1200 | "matcher": {
1201 | "id": "byValue",
1202 | "options": {
1203 | "op": "gte",
1204 | "reducer": "allIsNull",
1205 | "value": 0
1206 | }
1207 | },
1208 | "properties": [
1209 | {
1210 | "id": "custom.hideFrom",
1211 | "value": {
1212 | "legend": true,
1213 | "tooltip": true,
1214 | "viz": false
1215 | }
1216 | }
1217 | ]
1218 | }
1219 | ]
1220 | },
1221 | "gridPos": {
1222 | "h": 10,
1223 | "w": 24,
1224 | "x": 0,
1225 | "y": 82
1226 | },
1227 | "id": 2329,
1228 | "options": {
1229 | "legend": {
1230 | "calcs": [
1231 | "mean",
1232 | "max"
1233 | ],
1234 | "displayMode": "table",
1235 | "placement": "right",
1236 | "showLegend": true
1237 | },
1238 | "tooltip": {
1239 | "mode": "multi",
1240 | "sort": "desc"
1241 | }
1242 | },
1243 | "pluginVersion": "10.4.3",
1244 | "repeat": "Client",
1245 | "repeatDirection": "v",
1246 | "targets": [
1247 | {
1248 | "datasource": {
1249 | "type": "prometheus",
1250 | "uid": "${DS_PROMETHEUS}"
1251 | },
1252 | "expr": "rate(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]!~\"TOTAL\", [[Identifier]]=~\"$Client\"}[$__interval])",
1253 | "interval": "$Smooth",
1254 | "legendFormat": "{{application}} ({{category}})",
1255 | "refId": "A"
1256 | }
1257 | ],
1258 | "title": "Transmit Bytes - $Client",
1259 | "type": "timeseries"
1260 | },
1261 | {
1262 | "collapsed": false,
1263 | "datasource": {
1264 | "type": "prometheus",
1265 | "uid": "DS_PROMETHEUS"
1266 | },
1267 | "gridPos": {
1268 | "h": 1,
1269 | "w": 24,
1270 | "x": 0,
1271 | "y": 92
1272 | },
1273 | "id": 894,
1274 | "panels": [],
1275 | "targets": [
1276 | {
1277 | "datasource": {
1278 | "type": "prometheus",
1279 | "uid": "DS_PROMETHEUS"
1280 | },
1281 | "refId": "A"
1282 | }
1283 | ],
1284 | "title": "Clients Tx Packets",
1285 | "type": "row"
1286 | },
1287 | {
1288 | "datasource": {
1289 | "type": "prometheus",
1290 | "uid": "${DS_PROMETHEUS}"
1291 | },
1292 | "description": "Transmit Packets per Application for $Client",
1293 | "fieldConfig": {
1294 | "defaults": {
1295 | "color": {
1296 | "mode": "palette-classic"
1297 | },
1298 | "custom": {
1299 | "axisBorderShow": false,
1300 | "axisCenteredZero": false,
1301 | "axisColorMode": "text",
1302 | "axisLabel": "",
1303 | "axisPlacement": "auto",
1304 | "barAlignment": 0,
1305 | "drawStyle": "line",
1306 | "fillOpacity": 0,
1307 | "gradientMode": "none",
1308 | "hideFrom": {
1309 | "legend": false,
1310 | "tooltip": false,
1311 | "viz": false
1312 | },
1313 | "insertNulls": false,
1314 | "lineInterpolation": "linear",
1315 | "lineWidth": 1,
1316 | "pointSize": 5,
1317 | "scaleDistribution": {
1318 | "type": "linear"
1319 | },
1320 | "showPoints": "never",
1321 | "spanNulls": false,
1322 | "stacking": {
1323 | "group": "A",
1324 | "mode": "none"
1325 | },
1326 | "thresholdsStyle": {
1327 | "mode": "off"
1328 | }
1329 | },
1330 | "links": [],
1331 | "mappings": [],
1332 | "thresholds": {
1333 | "mode": "absolute",
1334 | "steps": [
1335 | {
1336 | "color": "green",
1337 | "value": null
1338 | },
1339 | {
1340 | "color": "red",
1341 | "value": 80
1342 | }
1343 | ]
1344 | },
1345 | "unit": "pps"
1346 | },
1347 | "overrides": [
1348 | {
1349 | "matcher": {
1350 | "id": "byValue",
1351 | "options": {
1352 | "op": "gte",
1353 | "reducer": "allIsNull",
1354 | "value": 0
1355 | }
1356 | },
1357 | "properties": [
1358 | {
1359 | "id": "custom.hideFrom",
1360 | "value": {
1361 | "legend": true,
1362 | "tooltip": true,
1363 | "viz": false
1364 | }
1365 | }
1366 | ]
1367 | }
1368 | ]
1369 | },
1370 | "gridPos": {
1371 | "h": 10,
1372 | "w": 24,
1373 | "x": 0,
1374 | "y": 93
1375 | },
1376 | "id": 1035,
1377 | "options": {
1378 | "legend": {
1379 | "calcs": [
1380 | "mean",
1381 | "max"
1382 | ],
1383 | "displayMode": "table",
1384 | "placement": "right",
1385 | "showLegend": true
1386 | },
1387 | "tooltip": {
1388 | "mode": "multi",
1389 | "sort": "desc"
1390 | }
1391 | },
1392 | "pluginVersion": "10.4.3",
1393 | "repeat": "Client",
1394 | "repeatDirection": "v",
1395 | "targets": [
1396 | {
1397 | "datasource": {
1398 | "type": "prometheus",
1399 | "uid": "${DS_PROMETHEUS}"
1400 | },
1401 | "expr": "rate(unpoller_client_dpi_transmit_packets{site_name=~\"$Site\", [[Identifier]]!~\"TOTAL\", [[Identifier]]=~\"$Client\"}[$__interval])",
1402 | "interval": "$Smooth",
1403 | "legendFormat": "{{application}} ({{category}})",
1404 | "refId": "A"
1405 | }
1406 | ],
1407 | "title": "Transmit Packets - $Client",
1408 | "type": "timeseries"
1409 | },
1410 | {
1411 | "collapsed": false,
1412 | "datasource": {
1413 | "type": "prometheus",
1414 | "uid": "DS_PROMETHEUS"
1415 | },
1416 | "gridPos": {
1417 | "h": 1,
1418 | "w": 24,
1419 | "x": 0,
1420 | "y": 103
1421 | },
1422 | "id": 569,
1423 | "panels": [],
1424 | "targets": [
1425 | {
1426 | "datasource": {
1427 | "type": "prometheus",
1428 | "uid": "DS_PROMETHEUS"
1429 | },
1430 | "refId": "A"
1431 | }
1432 | ],
1433 | "title": "Clients Rx Bytes",
1434 | "type": "row"
1435 | },
1436 | {
1437 | "datasource": {
1438 | "type": "prometheus",
1439 | "uid": "${DS_PROMETHEUS}"
1440 | },
1441 | "description": "Receive Bytes per Application for $Client",
1442 | "fieldConfig": {
1443 | "defaults": {
1444 | "color": {
1445 | "mode": "palette-classic"
1446 | },
1447 | "custom": {
1448 | "axisBorderShow": false,
1449 | "axisCenteredZero": false,
1450 | "axisColorMode": "text",
1451 | "axisLabel": "",
1452 | "axisPlacement": "auto",
1453 | "barAlignment": 0,
1454 | "drawStyle": "line",
1455 | "fillOpacity": 0,
1456 | "gradientMode": "none",
1457 | "hideFrom": {
1458 | "legend": false,
1459 | "tooltip": false,
1460 | "viz": false
1461 | },
1462 | "insertNulls": false,
1463 | "lineInterpolation": "linear",
1464 | "lineWidth": 1,
1465 | "pointSize": 5,
1466 | "scaleDistribution": {
1467 | "type": "linear"
1468 | },
1469 | "showPoints": "never",
1470 | "spanNulls": false,
1471 | "stacking": {
1472 | "group": "A",
1473 | "mode": "none"
1474 | },
1475 | "thresholdsStyle": {
1476 | "mode": "off"
1477 | }
1478 | },
1479 | "links": [],
1480 | "mappings": [],
1481 | "thresholds": {
1482 | "mode": "absolute",
1483 | "steps": [
1484 | {
1485 | "color": "green",
1486 | "value": null
1487 | },
1488 | {
1489 | "color": "red",
1490 | "value": 80
1491 | }
1492 | ]
1493 | },
1494 | "unit": "Bps"
1495 | },
1496 | "overrides": [
1497 | {
1498 | "matcher": {
1499 | "id": "byValue",
1500 | "options": {
1501 | "op": "gte",
1502 | "reducer": "allIsNull",
1503 | "value": 0
1504 | }
1505 | },
1506 | "properties": [
1507 | {
1508 | "id": "custom.hideFrom",
1509 | "value": {
1510 | "legend": true,
1511 | "tooltip": true,
1512 | "viz": false
1513 | }
1514 | }
1515 | ]
1516 | }
1517 | ]
1518 | },
1519 | "gridPos": {
1520 | "h": 10,
1521 | "w": 24,
1522 | "x": 0,
1523 | "y": 104
1524 | },
1525 | "id": 700,
1526 | "options": {
1527 | "legend": {
1528 | "calcs": [
1529 | "mean",
1530 | "max"
1531 | ],
1532 | "displayMode": "table",
1533 | "placement": "right",
1534 | "showLegend": true
1535 | },
1536 | "tooltip": {
1537 | "mode": "multi",
1538 | "sort": "desc"
1539 | }
1540 | },
1541 | "pluginVersion": "10.4.3",
1542 | "repeat": "Client",
1543 | "repeatDirection": "v",
1544 | "targets": [
1545 | {
1546 | "datasource": {
1547 | "type": "prometheus",
1548 | "uid": "${DS_PROMETHEUS}"
1549 | },
1550 | "expr": "rate(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]!~\"TOTAL\", [[Identifier]]=~\"$Client\"}[$__interval])",
1551 | "instant": false,
1552 | "interval": "$Smooth",
1553 | "legendFormat": "{{application}} ({{category}})",
1554 | "refId": "A"
1555 | }
1556 | ],
1557 | "title": "Receive Bytes - $Client",
1558 | "type": "timeseries"
1559 | },
1560 | {
1561 | "collapsed": false,
1562 | "datasource": {
1563 | "type": "prometheus",
1564 | "uid": "DS_PROMETHEUS"
1565 | },
1566 | "gridPos": {
1567 | "h": 1,
1568 | "w": 24,
1569 | "x": 0,
1570 | "y": 114
1571 | },
1572 | "id": 12,
1573 | "panels": [],
1574 | "repeat": "Category",
1575 | "targets": [
1576 | {
1577 | "datasource": {
1578 | "type": "prometheus",
1579 | "uid": "DS_PROMETHEUS"
1580 | },
1581 | "refId": "A"
1582 | }
1583 | ],
1584 | "title": "$Category",
1585 | "type": "row"
1586 | },
1587 | {
1588 | "datasource": {
1589 | "type": "prometheus",
1590 | "uid": "${DS_PROMETHEUS}"
1591 | },
1592 | "description": "Receive Bytes per Client / Application",
1593 | "fieldConfig": {
1594 | "defaults": {
1595 | "color": {
1596 | "mode": "palette-classic"
1597 | },
1598 | "custom": {
1599 | "axisBorderShow": false,
1600 | "axisCenteredZero": false,
1601 | "axisColorMode": "text",
1602 | "axisLabel": "",
1603 | "axisPlacement": "auto",
1604 | "barAlignment": 0,
1605 | "drawStyle": "line",
1606 | "fillOpacity": 0,
1607 | "gradientMode": "none",
1608 | "hideFrom": {
1609 | "legend": false,
1610 | "tooltip": false,
1611 | "viz": false
1612 | },
1613 | "insertNulls": false,
1614 | "lineInterpolation": "linear",
1615 | "lineWidth": 1,
1616 | "pointSize": 5,
1617 | "scaleDistribution": {
1618 | "type": "linear"
1619 | },
1620 | "showPoints": "never",
1621 | "spanNulls": false,
1622 | "stacking": {
1623 | "group": "A",
1624 | "mode": "none"
1625 | },
1626 | "thresholdsStyle": {
1627 | "mode": "off"
1628 | }
1629 | },
1630 | "links": [],
1631 | "mappings": [],
1632 | "thresholds": {
1633 | "mode": "absolute",
1634 | "steps": [
1635 | {
1636 | "color": "green",
1637 | "value": null
1638 | },
1639 | {
1640 | "color": "red",
1641 | "value": 80
1642 | }
1643 | ]
1644 | },
1645 | "unit": "Bps"
1646 | },
1647 | "overrides": [
1648 | {
1649 | "matcher": {
1650 | "id": "byValue",
1651 | "options": {
1652 | "op": "gte",
1653 | "reducer": "allIsNull",
1654 | "value": 0
1655 | }
1656 | },
1657 | "properties": [
1658 | {
1659 | "id": "custom.hideFrom",
1660 | "value": {
1661 | "legend": true,
1662 | "tooltip": true,
1663 | "viz": false
1664 | }
1665 | }
1666 | ]
1667 | }
1668 | ]
1669 | },
1670 | "gridPos": {
1671 | "h": 9,
1672 | "w": 24,
1673 | "x": 0,
1674 | "y": 115
1675 | },
1676 | "id": 40,
1677 | "options": {
1678 | "legend": {
1679 | "calcs": [
1680 | "mean",
1681 | "max"
1682 | ],
1683 | "displayMode": "table",
1684 | "placement": "right",
1685 | "showLegend": true
1686 | },
1687 | "tooltip": {
1688 | "mode": "multi",
1689 | "sort": "desc"
1690 | }
1691 | },
1692 | "pluginVersion": "10.4.3",
1693 | "targets": [
1694 | {
1695 | "datasource": {
1696 | "type": "prometheus",
1697 | "uid": "${DS_PROMETHEUS}"
1698 | },
1699 | "expr": "sum by ($Identifier,application) (rate(unpoller_client_dpi_receive_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=\"$Category\"}[$__interval]))",
1700 | "interval": "$Smooth",
1701 | "legendFormat": "{{name}} {{mac}} ({{application}})",
1702 | "refId": "A"
1703 | }
1704 | ],
1705 | "title": "Receive Bytes - $Category",
1706 | "type": "timeseries"
1707 | },
1708 | {
1709 | "datasource": {
1710 | "type": "prometheus",
1711 | "uid": "${DS_PROMETHEUS}"
1712 | },
1713 | "description": "Transmit Bytes per Client / Application",
1714 | "fieldConfig": {
1715 | "defaults": {
1716 | "color": {
1717 | "mode": "palette-classic"
1718 | },
1719 | "custom": {
1720 | "axisBorderShow": false,
1721 | "axisCenteredZero": false,
1722 | "axisColorMode": "text",
1723 | "axisLabel": "",
1724 | "axisPlacement": "auto",
1725 | "barAlignment": 0,
1726 | "drawStyle": "line",
1727 | "fillOpacity": 0,
1728 | "gradientMode": "none",
1729 | "hideFrom": {
1730 | "legend": false,
1731 | "tooltip": false,
1732 | "viz": false
1733 | },
1734 | "insertNulls": false,
1735 | "lineInterpolation": "linear",
1736 | "lineWidth": 1,
1737 | "pointSize": 5,
1738 | "scaleDistribution": {
1739 | "type": "linear"
1740 | },
1741 | "showPoints": "never",
1742 | "spanNulls": false,
1743 | "stacking": {
1744 | "group": "A",
1745 | "mode": "none"
1746 | },
1747 | "thresholdsStyle": {
1748 | "mode": "off"
1749 | }
1750 | },
1751 | "links": [],
1752 | "mappings": [],
1753 | "thresholds": {
1754 | "mode": "absolute",
1755 | "steps": [
1756 | {
1757 | "color": "green",
1758 | "value": null
1759 | },
1760 | {
1761 | "color": "red",
1762 | "value": 80
1763 | }
1764 | ]
1765 | },
1766 | "unit": "Bps"
1767 | },
1768 | "overrides": [
1769 | {
1770 | "matcher": {
1771 | "id": "byValue",
1772 | "options": {
1773 | "op": "gte",
1774 | "reducer": "allIsNull",
1775 | "value": 0
1776 | }
1777 | },
1778 | "properties": [
1779 | {
1780 | "id": "custom.hideFrom",
1781 | "value": {
1782 | "legend": true,
1783 | "tooltip": true,
1784 | "viz": false
1785 | }
1786 | }
1787 | ]
1788 | }
1789 | ]
1790 | },
1791 | "gridPos": {
1792 | "h": 9,
1793 | "w": 24,
1794 | "x": 0,
1795 | "y": 124
1796 | },
1797 | "id": 93,
1798 | "options": {
1799 | "legend": {
1800 | "calcs": [
1801 | "mean",
1802 | "max"
1803 | ],
1804 | "displayMode": "table",
1805 | "placement": "right",
1806 | "showLegend": true
1807 | },
1808 | "tooltip": {
1809 | "mode": "multi",
1810 | "sort": "desc"
1811 | }
1812 | },
1813 | "pluginVersion": "10.4.3",
1814 | "targets": [
1815 | {
1816 | "datasource": {
1817 | "type": "prometheus",
1818 | "uid": "${DS_PROMETHEUS}"
1819 | },
1820 | "expr": "sum by ($Identifier,application) (rate(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=\"$Category\"}[$__interval]))",
1821 | "interval": "$Smooth",
1822 | "legendFormat": "{{name}} {{mac}} ({{application}})",
1823 | "refId": "A"
1824 | }
1825 | ],
1826 | "title": "Transmit Bytes - $Category",
1827 | "type": "timeseries"
1828 | },
1829 | {
1830 | "datasource": {
1831 | "type": "prometheus",
1832 | "uid": "${DS_PROMETHEUS}"
1833 | },
1834 | "description": "Receive Packets per Client / Application",
1835 | "fieldConfig": {
1836 | "defaults": {
1837 | "color": {
1838 | "mode": "palette-classic"
1839 | },
1840 | "custom": {
1841 | "axisBorderShow": false,
1842 | "axisCenteredZero": false,
1843 | "axisColorMode": "text",
1844 | "axisLabel": "",
1845 | "axisPlacement": "auto",
1846 | "barAlignment": 0,
1847 | "drawStyle": "line",
1848 | "fillOpacity": 0,
1849 | "gradientMode": "none",
1850 | "hideFrom": {
1851 | "legend": false,
1852 | "tooltip": false,
1853 | "viz": false
1854 | },
1855 | "insertNulls": false,
1856 | "lineInterpolation": "linear",
1857 | "lineWidth": 1,
1858 | "pointSize": 5,
1859 | "scaleDistribution": {
1860 | "type": "linear"
1861 | },
1862 | "showPoints": "never",
1863 | "spanNulls": false,
1864 | "stacking": {
1865 | "group": "A",
1866 | "mode": "none"
1867 | },
1868 | "thresholdsStyle": {
1869 | "mode": "off"
1870 | }
1871 | },
1872 | "links": [],
1873 | "mappings": [],
1874 | "thresholds": {
1875 | "mode": "absolute",
1876 | "steps": [
1877 | {
1878 | "color": "green",
1879 | "value": null
1880 | },
1881 | {
1882 | "color": "red",
1883 | "value": 80
1884 | }
1885 | ]
1886 | },
1887 | "unit": "pps"
1888 | },
1889 | "overrides": [
1890 | {
1891 | "matcher": {
1892 | "id": "byValue",
1893 | "options": {
1894 | "op": "gte",
1895 | "reducer": "allIsNull",
1896 | "value": 0
1897 | }
1898 | },
1899 | "properties": [
1900 | {
1901 | "id": "custom.hideFrom",
1902 | "value": {
1903 | "legend": true,
1904 | "tooltip": true,
1905 | "viz": false
1906 | }
1907 | }
1908 | ]
1909 | }
1910 | ]
1911 | },
1912 | "gridPos": {
1913 | "h": 9,
1914 | "w": 24,
1915 | "x": 0,
1916 | "y": 133
1917 | },
1918 | "id": 173,
1919 | "options": {
1920 | "legend": {
1921 | "calcs": [
1922 | "mean",
1923 | "max"
1924 | ],
1925 | "displayMode": "table",
1926 | "placement": "right",
1927 | "showLegend": true
1928 | },
1929 | "tooltip": {
1930 | "mode": "multi",
1931 | "sort": "desc"
1932 | }
1933 | },
1934 | "pluginVersion": "10.4.3",
1935 | "targets": [
1936 | {
1937 | "datasource": {
1938 | "type": "prometheus",
1939 | "uid": "${DS_PROMETHEUS}"
1940 | },
1941 | "expr": "sum by ($Identifier,application) (rate(unpoller_client_dpi_receive_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=\"$Category\"}[$__interval]))",
1942 | "interval": "$Smooth",
1943 | "legendFormat": "{{name}} {{mac}} ({{application}})",
1944 | "refId": "A"
1945 | }
1946 | ],
1947 | "title": "Receive Packets - $Category",
1948 | "type": "timeseries"
1949 | },
1950 | {
1951 | "datasource": {
1952 | "type": "prometheus",
1953 | "uid": "${DS_PROMETHEUS}"
1954 | },
1955 | "description": "Transmit Packets per Client / Application",
1956 | "fieldConfig": {
1957 | "defaults": {
1958 | "color": {
1959 | "mode": "palette-classic"
1960 | },
1961 | "custom": {
1962 | "axisBorderShow": false,
1963 | "axisCenteredZero": false,
1964 | "axisColorMode": "text",
1965 | "axisLabel": "",
1966 | "axisPlacement": "auto",
1967 | "barAlignment": 0,
1968 | "drawStyle": "line",
1969 | "fillOpacity": 0,
1970 | "gradientMode": "none",
1971 | "hideFrom": {
1972 | "legend": false,
1973 | "tooltip": false,
1974 | "viz": false
1975 | },
1976 | "insertNulls": false,
1977 | "lineInterpolation": "linear",
1978 | "lineWidth": 1,
1979 | "pointSize": 5,
1980 | "scaleDistribution": {
1981 | "type": "linear"
1982 | },
1983 | "showPoints": "never",
1984 | "spanNulls": false,
1985 | "stacking": {
1986 | "group": "A",
1987 | "mode": "none"
1988 | },
1989 | "thresholdsStyle": {
1990 | "mode": "off"
1991 | }
1992 | },
1993 | "links": [],
1994 | "mappings": [],
1995 | "thresholds": {
1996 | "mode": "absolute",
1997 | "steps": [
1998 | {
1999 | "color": "green",
2000 | "value": null
2001 | },
2002 | {
2003 | "color": "red",
2004 | "value": 80
2005 | }
2006 | ]
2007 | },
2008 | "unit": "pps"
2009 | },
2010 | "overrides": [
2011 | {
2012 | "matcher": {
2013 | "id": "byValue",
2014 | "options": {
2015 | "op": "gte",
2016 | "reducer": "allIsNull",
2017 | "value": 0
2018 | }
2019 | },
2020 | "properties": [
2021 | {
2022 | "id": "custom.hideFrom",
2023 | "value": {
2024 | "legend": true,
2025 | "tooltip": true,
2026 | "viz": false
2027 | }
2028 | }
2029 | ]
2030 | }
2031 | ]
2032 | },
2033 | "gridPos": {
2034 | "h": 9,
2035 | "w": 24,
2036 | "x": 0,
2037 | "y": 142
2038 | },
2039 | "id": 172,
2040 | "options": {
2041 | "legend": {
2042 | "calcs": [
2043 | "mean",
2044 | "max"
2045 | ],
2046 | "displayMode": "table",
2047 | "placement": "right",
2048 | "showLegend": true
2049 | },
2050 | "tooltip": {
2051 | "mode": "multi",
2052 | "sort": "desc"
2053 | }
2054 | },
2055 | "pluginVersion": "10.4.3",
2056 | "targets": [
2057 | {
2058 | "datasource": {
2059 | "type": "prometheus",
2060 | "uid": "${DS_PROMETHEUS}"
2061 | },
2062 | "expr": "sum by ($Identifier,application) (rate(unpoller_client_dpi_transmit_packets{site_name=~\"$Site\", [[Identifier]]=~\"$Client\", [[Identifier]]!~\"TOTAL\", category=\"$Category\"}[$__interval]))",
2063 | "interval": "$Smooth",
2064 | "legendFormat": "{{name}} {{mac}} ({{application}})",
2065 | "refId": "A"
2066 | }
2067 | ],
2068 | "title": "Transmit Packets - $Category",
2069 | "type": "timeseries"
2070 | }
2071 | ],
2072 | "refresh": "1m",
2073 | "schemaVersion": 39,
2074 | "tags": [
2075 | "unifi",
2076 | "unifi-poller"
2077 | ],
2078 | "templating": {
2079 | "list": [
2080 | {
2081 | "allValue": ".*",
2082 | "current": {},
2083 | "datasource": {
2084 | "type": "prometheus",
2085 | "uid": "${DS_PROMETHEUS}"
2086 | },
2087 | "definition": "label_values(source)",
2088 | "hide": 2,
2089 | "includeAll": true,
2090 | "multi": true,
2091 | "name": "Controller",
2092 | "options": [],
2093 | "query": "label_values(source)",
2094 | "refresh": 1,
2095 | "regex": "",
2096 | "skipUrlSync": false,
2097 | "sort": 2,
2098 | "tagValuesQuery": "",
2099 | "tagsQuery": "",
2100 | "type": "query",
2101 | "useTags": false
2102 | },
2103 | {
2104 | "allValue": "",
2105 | "current": {},
2106 | "datasource": {
2107 | "type": "prometheus",
2108 | "uid": "${DS_PROMETHEUS}"
2109 | },
2110 | "definition": "label_values(unpoller_client_uptime_seconds{source=~\"$Controller\"},site_name)",
2111 | "hide": 0,
2112 | "includeAll": false,
2113 | "multi": true,
2114 | "name": "Site",
2115 | "options": [],
2116 | "query": "label_values(unpoller_client_uptime_seconds{source=~\"$Controller\"},site_name)",
2117 | "refresh": 1,
2118 | "regex": "",
2119 | "skipUrlSync": false,
2120 | "sort": 1,
2121 | "tagValuesQuery": "",
2122 | "tagsQuery": "",
2123 | "type": "query",
2124 | "useTags": false
2125 | },
2126 | {
2127 | "current": {
2128 | "selected": false,
2129 | "text": "name",
2130 | "value": "name"
2131 | },
2132 | "hide": 0,
2133 | "includeAll": false,
2134 | "multi": false,
2135 | "name": "Identifier",
2136 | "options": [
2137 | {
2138 | "selected": true,
2139 | "text": "name",
2140 | "value": "name"
2141 | },
2142 | {
2143 | "selected": false,
2144 | "text": "mac",
2145 | "value": "mac"
2146 | }
2147 | ],
2148 | "query": "name,mac",
2149 | "queryValue": "",
2150 | "skipUrlSync": false,
2151 | "type": "custom"
2152 | },
2153 | {
2154 | "allValue": "",
2155 | "current": {},
2156 | "datasource": {
2157 | "type": "prometheus",
2158 | "uid": "${DS_PROMETHEUS}"
2159 | },
2160 | "definition": "label_values(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\"},[[Identifier]])",
2161 | "hide": 0,
2162 | "includeAll": true,
2163 | "multi": true,
2164 | "name": "Client",
2165 | "options": [],
2166 | "query": "label_values(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\"},[[Identifier]])",
2167 | "refresh": 1,
2168 | "regex": "",
2169 | "skipUrlSync": false,
2170 | "sort": 1,
2171 | "tagValuesQuery": "",
2172 | "tagsQuery": "",
2173 | "type": "query",
2174 | "useTags": false
2175 | },
2176 | {
2177 | "allValue": ".*",
2178 | "current": {},
2179 | "datasource": {
2180 | "type": "prometheus",
2181 | "uid": "${DS_PROMETHEUS}"
2182 | },
2183 | "definition": "label_values(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\"},category)",
2184 | "hide": 0,
2185 | "includeAll": true,
2186 | "multi": true,
2187 | "name": "Category",
2188 | "options": [],
2189 | "query": "label_values(unpoller_client_dpi_transmit_bytes{site_name=~\"$Site\"},category)",
2190 | "refresh": 1,
2191 | "regex": "",
2192 | "skipUrlSync": false,
2193 | "sort": 1,
2194 | "tagValuesQuery": "",
2195 | "tagsQuery": "",
2196 | "type": "query",
2197 | "useTags": false
2198 | },
2199 | {
2200 | "current": {
2201 | "selected": false,
2202 | "text": "2m",
2203 | "value": "2m"
2204 | },
2205 | "hide": 0,
2206 | "includeAll": false,
2207 | "multi": false,
2208 | "name": "Smooth",
2209 | "options": [
2210 | {
2211 | "selected": false,
2212 | "text": "30s",
2213 | "value": "30s"
2214 | },
2215 | {
2216 | "selected": false,
2217 | "text": "1m",
2218 | "value": "1m"
2219 | },
2220 | {
2221 | "selected": true,
2222 | "text": "2m",
2223 | "value": "2m"
2224 | },
2225 | {
2226 | "selected": false,
2227 | "text": "5m",
2228 | "value": "5m"
2229 | },
2230 | {
2231 | "selected": false,
2232 | "text": "10m",
2233 | "value": "10m"
2234 | },
2235 | {
2236 | "selected": false,
2237 | "text": "15m",
2238 | "value": "15m"
2239 | },
2240 | {
2241 | "selected": false,
2242 | "text": "30m",
2243 | "value": "30m"
2244 | },
2245 | {
2246 | "selected": false,
2247 | "text": "1h",
2248 | "value": "1h"
2249 | }
2250 | ],
2251 | "query": "30s,1m,2m,5m,10m,15m,30m,1h",
2252 | "skipUrlSync": false,
2253 | "type": "custom"
2254 | }
2255 | ]
2256 | },
2257 | "time": {
2258 | "from": "now-3h",
2259 | "to": "now"
2260 | },
2261 | "timepicker": {
2262 | "nowDelay": "",
2263 | "refresh_intervals": [
2264 | "30s",
2265 | "1m",
2266 | "5m",
2267 | "15m",
2268 | "30m",
2269 | "1h",
2270 | "2h"
2271 | ],
2272 | "time_options": [
2273 | "5m",
2274 | "15m",
2275 | "1h",
2276 | "6h",
2277 | "12h",
2278 | "24h",
2279 | "2d",
2280 | "7d",
2281 | "30d"
2282 | ]
2283 | },
2284 | "timezone": "browser",
2285 | "title": "UniFi-Poller: Client DPI - Prometheus",
2286 | "uid": "w3usaHLZk",
2287 | "version": 52,
2288 | "weekStart": ""
2289 | }
--------------------------------------------------------------------------------
/v2.0.0/UniFi-Poller_ Network Sites - Prometheus.json:
--------------------------------------------------------------------------------
1 | {
2 | "__inputs": [
3 | {
4 | "name": "DS_PROMETHEUS",
5 | "label": "Prometheus",
6 | "description": "",
7 | "type": "datasource",
8 | "pluginId": "prometheus",
9 | "pluginName": "Prometheus"
10 | }
11 | ],
12 | "__elements": {},
13 | "__requires": [
14 | {
15 | "type": "panel",
16 | "id": "gauge",
17 | "name": "Gauge",
18 | "version": ""
19 | },
20 | {
21 | "type": "grafana",
22 | "id": "grafana",
23 | "name": "Grafana",
24 | "version": "10.4.3"
25 | },
26 | {
27 | "type": "datasource",
28 | "id": "prometheus",
29 | "name": "Prometheus",
30 | "version": "1.0.0"
31 | },
32 | {
33 | "type": "panel",
34 | "id": "stat",
35 | "name": "Stat",
36 | "version": ""
37 | },
38 | {
39 | "type": "panel",
40 | "id": "text",
41 | "name": "Text",
42 | "version": ""
43 | },
44 | {
45 | "type": "panel",
46 | "id": "timeseries",
47 | "name": "Time series",
48 | "version": ""
49 | }
50 | ],
51 | "annotations": {
52 | "list": [
53 | {
54 | "builtIn": 1,
55 | "datasource": {
56 | "type": "datasource",
57 | "uid": "grafana"
58 | },
59 | "enable": true,
60 | "hide": true,
61 | "iconColor": "rgba(0, 211, 255, 1)",
62 | "name": "Annotations & Alerts",
63 | "type": "dashboard"
64 | }
65 | ]
66 | },
67 | "description": "UniFi Poller v2.0 Displays detailed information for network Sites in a UniFi controller using Prometheus.",
68 | "editable": true,
69 | "fiscalYearStartMonth": 0,
70 | "gnetId": 11311,
71 | "graphTooltip": 1,
72 | "id": null,
73 | "links": [
74 | {
75 | "asDropdown": true,
76 | "icon": "external link",
77 | "includeVars": false,
78 | "keepTime": true,
79 | "tags": [
80 | "unifi-poller"
81 | ],
82 | "title": "UniFi Poller",
83 | "type": "dashboards"
84 | },
85 | {
86 | "icon": "question",
87 | "tags": [],
88 | "title": "Help",
89 | "type": "link",
90 | "url": "https://golift.io/unifi-poller/issues"
91 | },
92 | {
93 | "icon": "doc",
94 | "tags": [],
95 | "title": "Wiki",
96 | "type": "link",
97 | "url": "https://golift.io/unifi-poller/wiki"
98 | },
99 | {
100 | "icon": "bolt",
101 | "tags": [],
102 | "title": "Discord",
103 | "type": "link",
104 | "url": "https://discord.gg/KnyKYt2"
105 | }
106 | ],
107 | "panels": [
108 | {
109 | "datasource": {
110 | "type": "prometheus",
111 | "uid": "${DS_PROMETHEUS}"
112 | },
113 | "fieldConfig": {
114 | "defaults": {
115 | "color": {
116 | "mode": "thresholds"
117 | },
118 | "mappings": [
119 | {
120 | "options": {
121 | "match": "null",
122 | "result": {
123 | "text": "N/A"
124 | }
125 | },
126 | "type": "special"
127 | }
128 | ],
129 | "thresholds": {
130 | "mode": "absolute",
131 | "steps": [
132 | {
133 | "color": "green",
134 | "value": null
135 | },
136 | {
137 | "color": "red",
138 | "value": 80
139 | }
140 | ]
141 | },
142 | "unit": "none"
143 | },
144 | "overrides": []
145 | },
146 | "gridPos": {
147 | "h": 4,
148 | "w": 3,
149 | "x": 0,
150 | "y": 0
151 | },
152 | "id": 41,
153 | "maxDataPoints": 100,
154 | "options": {
155 | "colorMode": "none",
156 | "graphMode": "none",
157 | "justifyMode": "auto",
158 | "orientation": "horizontal",
159 | "reduceOptions": {
160 | "calcs": [
161 | "lastNotNull"
162 | ],
163 | "fields": "",
164 | "values": false
165 | },
166 | "showPercentChange": false,
167 | "textMode": "auto",
168 | "wideLayout": true
169 | },
170 | "pluginVersion": "10.4.3",
171 | "targets": [
172 | {
173 | "datasource": {
174 | "type": "prometheus",
175 | "uid": "${DS_PROMETHEUS}"
176 | },
177 | "expr": "sum(unpoller_site_switches)",
178 | "format": "time_series",
179 | "instant": true,
180 | "interval": "$Smooth",
181 | "refId": "A"
182 | }
183 | ],
184 | "title": "USW",
185 | "type": "stat"
186 | },
187 | {
188 | "datasource": {
189 | "type": "prometheus",
190 | "uid": "${DS_PROMETHEUS}"
191 | },
192 | "fieldConfig": {
193 | "defaults": {
194 | "color": {
195 | "mode": "thresholds"
196 | },
197 | "mappings": [
198 | {
199 | "options": {
200 | "match": "null",
201 | "result": {
202 | "text": "N/A"
203 | }
204 | },
205 | "type": "special"
206 | }
207 | ],
208 | "thresholds": {
209 | "mode": "absolute",
210 | "steps": [
211 | {
212 | "color": "green",
213 | "value": null
214 | },
215 | {
216 | "color": "red",
217 | "value": 80
218 | }
219 | ]
220 | },
221 | "unit": "none"
222 | },
223 | "overrides": []
224 | },
225 | "gridPos": {
226 | "h": 4,
227 | "w": 3,
228 | "x": 3,
229 | "y": 0
230 | },
231 | "id": 42,
232 | "maxDataPoints": 100,
233 | "options": {
234 | "colorMode": "none",
235 | "graphMode": "none",
236 | "justifyMode": "auto",
237 | "orientation": "horizontal",
238 | "reduceOptions": {
239 | "calcs": [
240 | "lastNotNull"
241 | ],
242 | "fields": "",
243 | "values": false
244 | },
245 | "showPercentChange": false,
246 | "textMode": "auto",
247 | "wideLayout": true
248 | },
249 | "pluginVersion": "10.4.3",
250 | "targets": [
251 | {
252 | "datasource": {
253 | "type": "prometheus",
254 | "uid": "${DS_PROMETHEUS}"
255 | },
256 | "expr": "sum(unpoller_site_aps)",
257 | "format": "time_series",
258 | "instant": true,
259 | "interval": "$Smooth",
260 | "refId": "A"
261 | }
262 | ],
263 | "title": "UAP",
264 | "type": "stat"
265 | },
266 | {
267 | "datasource": {
268 | "type": "prometheus",
269 | "uid": "${DS_PROMETHEUS}"
270 | },
271 | "fieldConfig": {
272 | "defaults": {
273 | "color": {
274 | "mode": "thresholds"
275 | },
276 | "mappings": [
277 | {
278 | "options": {
279 | "match": "null",
280 | "result": {
281 | "text": "N/A"
282 | }
283 | },
284 | "type": "special"
285 | }
286 | ],
287 | "thresholds": {
288 | "mode": "absolute",
289 | "steps": [
290 | {
291 | "color": "green",
292 | "value": null
293 | },
294 | {
295 | "color": "red",
296 | "value": 80
297 | }
298 | ]
299 | },
300 | "unit": "none"
301 | },
302 | "overrides": []
303 | },
304 | "gridPos": {
305 | "h": 4,
306 | "w": 3,
307 | "x": 6,
308 | "y": 0
309 | },
310 | "id": 43,
311 | "maxDataPoints": 100,
312 | "options": {
313 | "colorMode": "none",
314 | "graphMode": "none",
315 | "justifyMode": "auto",
316 | "orientation": "horizontal",
317 | "reduceOptions": {
318 | "calcs": [
319 | "lastNotNull"
320 | ],
321 | "fields": "",
322 | "values": false
323 | },
324 | "showPercentChange": false,
325 | "textMode": "auto",
326 | "wideLayout": true
327 | },
328 | "pluginVersion": "10.4.3",
329 | "targets": [
330 | {
331 | "datasource": {
332 | "type": "prometheus",
333 | "uid": "${DS_PROMETHEUS}"
334 | },
335 | "expr": "sum(unpoller_site_gateways)",
336 | "format": "time_series",
337 | "instant": true,
338 | "interval": "$Smooth",
339 | "refId": "A"
340 | }
341 | ],
342 | "title": "USG",
343 | "type": "stat"
344 | },
345 | {
346 | "datasource": {
347 | "type": "prometheus",
348 | "uid": "${DS_PROMETHEUS}"
349 | },
350 | "fieldConfig": {
351 | "defaults": {
352 | "color": {
353 | "fixedColor": "rgb(31, 120, 193)",
354 | "mode": "fixed"
355 | },
356 | "mappings": [
357 | {
358 | "options": {
359 | "match": "null",
360 | "result": {
361 | "text": "N/A"
362 | }
363 | },
364 | "type": "special"
365 | }
366 | ],
367 | "thresholds": {
368 | "mode": "absolute",
369 | "steps": [
370 | {
371 | "color": "green",
372 | "value": null
373 | },
374 | {
375 | "color": "red",
376 | "value": 80
377 | }
378 | ]
379 | },
380 | "unit": "none"
381 | },
382 | "overrides": []
383 | },
384 | "gridPos": {
385 | "h": 4,
386 | "w": 3,
387 | "x": 9,
388 | "y": 0
389 | },
390 | "id": 44,
391 | "maxDataPoints": 100,
392 | "options": {
393 | "colorMode": "none",
394 | "graphMode": "area",
395 | "justifyMode": "auto",
396 | "orientation": "horizontal",
397 | "reduceOptions": {
398 | "calcs": [
399 | "lastNotNull"
400 | ],
401 | "fields": "",
402 | "values": false
403 | },
404 | "showPercentChange": false,
405 | "textMode": "auto",
406 | "wideLayout": true
407 | },
408 | "pluginVersion": "10.4.3",
409 | "targets": [
410 | {
411 | "datasource": {
412 | "type": "prometheus",
413 | "uid": "${DS_PROMETHEUS}"
414 | },
415 | "expr": "sum(unpoller_site_stations)",
416 | "format": "time_series",
417 | "instant": false,
418 | "interval": "$Smooth",
419 | "refId": "A"
420 | }
421 | ],
422 | "title": "Stations",
423 | "type": "stat"
424 | },
425 | {
426 | "datasource": {
427 | "type": "prometheus",
428 | "uid": "${DS_PROMETHEUS}"
429 | },
430 | "gridPos": {
431 | "h": 4,
432 | "w": 12,
433 | "x": 12,
434 | "y": 0
435 | },
436 | "id": 37,
437 | "options": {
438 | "code": {
439 | "language": "plaintext",
440 | "showLineNumbers": false,
441 | "showMiniMap": false
442 | },
443 | "content": "Each site contains 5 subsystems: wan, lan, wlan, www, vpn. Each subsystem contains data specific to that system. \nAll subsystems except vpn have data rate. VPN has data transfer though.\nThere's not a ton of juicy info here, and most of it can be gleaned on other the dashboards.\nThe row below is purposely collapsed because some installationd have hundreds of sites. \nLoading them all at once is often not possible.\n",
444 | "mode": "html"
445 | },
446 | "pluginVersion": "10.4.3",
447 | "targets": [
448 | {
449 | "datasource": {
450 | "type": "prometheus",
451 | "uid": "${DS_PROMETHEUS}"
452 | },
453 | "refId": "A"
454 | }
455 | ],
456 | "title": "Information",
457 | "type": "text"
458 | },
459 | {
460 | "collapsed": false,
461 | "datasource": {
462 | "type": "prometheus",
463 | "uid": "bdkj55oguty4gd"
464 | },
465 | "gridPos": {
466 | "h": 1,
467 | "w": 24,
468 | "x": 0,
469 | "y": 4
470 | },
471 | "id": 4,
472 | "panels": [],
473 | "repeat": "Site",
474 | "targets": [
475 | {
476 | "datasource": {
477 | "type": "prometheus",
478 | "uid": "bdkj55oguty4gd"
479 | },
480 | "refId": "A"
481 | }
482 | ],
483 | "title": "Site: $Site",
484 | "type": "row"
485 | },
486 | {
487 | "datasource": {
488 | "type": "prometheus",
489 | "uid": "${DS_PROMETHEUS}"
490 | },
491 | "fieldConfig": {
492 | "defaults": {
493 | "color": {
494 | "mode": "thresholds"
495 | },
496 | "mappings": [
497 | {
498 | "options": {
499 | "match": "null",
500 | "result": {
501 | "text": "N/A"
502 | }
503 | },
504 | "type": "special"
505 | }
506 | ],
507 | "thresholds": {
508 | "mode": "absolute",
509 | "steps": [
510 | {
511 | "color": "green",
512 | "value": null
513 | },
514 | {
515 | "color": "red",
516 | "value": 80
517 | }
518 | ]
519 | },
520 | "unit": "s"
521 | },
522 | "overrides": []
523 | },
524 | "gridPos": {
525 | "h": 3,
526 | "w": 6,
527 | "x": 0,
528 | "y": 5
529 | },
530 | "id": 40,
531 | "maxDataPoints": 100,
532 | "options": {
533 | "colorMode": "none",
534 | "graphMode": "none",
535 | "justifyMode": "auto",
536 | "orientation": "horizontal",
537 | "reduceOptions": {
538 | "calcs": [
539 | "lastNotNull"
540 | ],
541 | "fields": "",
542 | "values": false
543 | },
544 | "showPercentChange": false,
545 | "textMode": "auto",
546 | "wideLayout": true
547 | },
548 | "pluginVersion": "10.4.3",
549 | "targets": [
550 | {
551 | "datasource": {
552 | "type": "prometheus",
553 | "uid": "${DS_PROMETHEUS}"
554 | },
555 | "expr": "unpoller_site_uptime_seconds",
556 | "format": "time_series",
557 | "instant": true,
558 | "interval": "$Smooth",
559 | "refId": "A"
560 | }
561 | ],
562 | "title": "Uplink Uptime",
563 | "type": "stat"
564 | },
565 | {
566 | "datasource": {
567 | "type": "prometheus",
568 | "uid": "${DS_PROMETHEUS}"
569 | },
570 | "description": "These are counters, totals, but they don't change much so the graph does not show rate.",
571 | "fieldConfig": {
572 | "defaults": {
573 | "color": {
574 | "mode": "palette-classic"
575 | },
576 | "custom": {
577 | "axisBorderShow": false,
578 | "axisCenteredZero": false,
579 | "axisColorMode": "text",
580 | "axisLabel": "Item Counts",
581 | "axisPlacement": "auto",
582 | "barAlignment": 0,
583 | "drawStyle": "line",
584 | "fillOpacity": 0,
585 | "gradientMode": "none",
586 | "hideFrom": {
587 | "legend": false,
588 | "tooltip": false,
589 | "viz": false
590 | },
591 | "insertNulls": false,
592 | "lineInterpolation": "linear",
593 | "lineWidth": 2,
594 | "pointSize": 5,
595 | "scaleDistribution": {
596 | "type": "linear"
597 | },
598 | "showPoints": "never",
599 | "spanNulls": false,
600 | "stacking": {
601 | "group": "A",
602 | "mode": "none"
603 | },
604 | "thresholdsStyle": {
605 | "mode": "off"
606 | }
607 | },
608 | "decimals": 0,
609 | "links": [],
610 | "mappings": [],
611 | "thresholds": {
612 | "mode": "absolute",
613 | "steps": [
614 | {
615 | "color": "green",
616 | "value": null
617 | },
618 | {
619 | "color": "red",
620 | "value": 80
621 | }
622 | ]
623 | },
624 | "unit": "short"
625 | },
626 | "overrides": [
627 | {
628 | "matcher": {
629 | "id": "byValue",
630 | "options": {
631 | "op": "gte",
632 | "reducer": "allIsNull",
633 | "value": 0
634 | }
635 | },
636 | "properties": [
637 | {
638 | "id": "custom.hideFrom",
639 | "value": {
640 | "legend": true,
641 | "tooltip": true,
642 | "viz": false
643 | }
644 | }
645 | ]
646 | }
647 | ]
648 | },
649 | "gridPos": {
650 | "h": 11,
651 | "w": 18,
652 | "x": 6,
653 | "y": 5
654 | },
655 | "id": 38,
656 | "options": {
657 | "legend": {
658 | "calcs": [
659 | "lastNotNull",
660 | "max"
661 | ],
662 | "displayMode": "table",
663 | "placement": "right",
664 | "showLegend": true
665 | },
666 | "tooltip": {
667 | "mode": "multi",
668 | "sort": "desc"
669 | }
670 | },
671 | "pluginVersion": "10.4.3",
672 | "repeatDirection": "h",
673 | "targets": [
674 | {
675 | "datasource": {
676 | "type": "prometheus",
677 | "uid": "${DS_PROMETHEUS}"
678 | },
679 | "expr": "unpoller_site_iots{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
680 | "interval": "$Smooth",
681 | "legendFormat": "{{subsystem}} IoT",
682 | "refId": "A"
683 | },
684 | {
685 | "datasource": {
686 | "type": "prometheus",
687 | "uid": "${DS_PROMETHEUS}"
688 | },
689 | "expr": "unpoller_site_adopted{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
690 | "interval": "$Smooth",
691 | "legendFormat": "{{subsystem}} Adopted",
692 | "refId": "B"
693 | },
694 | {
695 | "datasource": {
696 | "type": "prometheus",
697 | "uid": "${DS_PROMETHEUS}"
698 | },
699 | "expr": "unpoller_site_disabled{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
700 | "interval": "$Smooth",
701 | "legendFormat": "{{subsystem}} Disabled",
702 | "refId": "C"
703 | },
704 | {
705 | "datasource": {
706 | "type": "prometheus",
707 | "uid": "${DS_PROMETHEUS}"
708 | },
709 | "expr": "unpoller_site_disconnected{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
710 | "interval": "$Smooth",
711 | "legendFormat": "{{subsystem}} Disconnected",
712 | "refId": "D"
713 | },
714 | {
715 | "datasource": {
716 | "type": "prometheus",
717 | "uid": "${DS_PROMETHEUS}"
718 | },
719 | "expr": "unpoller_site_pending{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
720 | "interval": "$Smooth",
721 | "legendFormat": "{{subsystem}} Pending",
722 | "refId": "E"
723 | },
724 | {
725 | "datasource": {
726 | "type": "prometheus",
727 | "uid": "${DS_PROMETHEUS}"
728 | },
729 | "expr": "unpoller_site_gateways{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
730 | "interval": "$Smooth",
731 | "legendFormat": "{{subsystem}} Gateways",
732 | "refId": "F"
733 | },
734 | {
735 | "datasource": {
736 | "type": "prometheus",
737 | "uid": "${DS_PROMETHEUS}"
738 | },
739 | "expr": "unpoller_site_switches{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
740 | "interval": "$Smooth",
741 | "legendFormat": "{{subsystem}} Switches",
742 | "refId": "G"
743 | },
744 | {
745 | "datasource": {
746 | "type": "prometheus",
747 | "uid": "${DS_PROMETHEUS}"
748 | },
749 | "expr": "unpoller_site_intenet_drops_total{site_name=~\"$Site\",subsystem=~\"$Subsystem\"}",
750 | "interval": "$Smooth",
751 | "legendFormat": "{{subsystem}} Drops",
752 | "refId": "H"
753 | }
754 | ],
755 | "title": "Item Counts",
756 | "type": "timeseries"
757 | },
758 | {
759 | "datasource": {
760 | "type": "prometheus",
761 | "uid": "${DS_PROMETHEUS}"
762 | },
763 | "fieldConfig": {
764 | "defaults": {
765 | "color": {
766 | "mode": "thresholds"
767 | },
768 | "decimals": 0,
769 | "displayName": "Latency",
770 | "mappings": [
771 | {
772 | "id": 0,
773 | "op": "=",
774 | "text": "N/A",
775 | "type": 1,
776 | "value": "null"
777 | }
778 | ],
779 | "max": 400,
780 | "min": 10,
781 | "thresholds": {
782 | "mode": "absolute",
783 | "steps": [
784 | {
785 | "color": "#299c46",
786 | "value": null
787 | },
788 | {
789 | "color": "rgba(237, 129, 40, 0.89)",
790 | "value": 100
791 | },
792 | {
793 | "color": "#d44a3a",
794 | "value": 200
795 | }
796 | ]
797 | },
798 | "unit": "s"
799 | },
800 | "overrides": []
801 | },
802 | "gridPos": {
803 | "h": 8,
804 | "w": 3,
805 | "x": 0,
806 | "y": 8
807 | },
808 | "id": 32,
809 | "options": {
810 | "minVizHeight": 75,
811 | "minVizWidth": 75,
812 | "orientation": "horizontal",
813 | "reduceOptions": {
814 | "calcs": [
815 | "lastNotNull"
816 | ],
817 | "fields": "",
818 | "values": false
819 | },
820 | "showThresholdLabels": false,
821 | "showThresholdMarkers": true,
822 | "sizing": "auto"
823 | },
824 | "pluginVersion": "10.4.3",
825 | "targets": [
826 | {
827 | "datasource": {
828 | "type": "prometheus",
829 | "uid": "${DS_PROMETHEUS}"
830 | },
831 | "expr": "unpoller_site_latency_seconds{site_name=~\"$Site\"}",
832 | "instant": true,
833 | "interval": "$Smooth",
834 | "refId": "A"
835 | }
836 | ],
837 | "type": "gauge"
838 | },
839 | {
840 | "datasource": {
841 | "type": "prometheus",
842 | "uid": "${DS_PROMETHEUS}"
843 | },
844 | "fieldConfig": {
845 | "defaults": {
846 | "color": {
847 | "mode": "thresholds"
848 | },
849 | "displayName": "Speed Test Ping",
850 | "mappings": [
851 | {
852 | "id": 0,
853 | "op": "=",
854 | "text": "N/A",
855 | "type": 1,
856 | "value": "null"
857 | }
858 | ],
859 | "max": 200,
860 | "min": 1,
861 | "thresholds": {
862 | "mode": "absolute",
863 | "steps": [
864 | {
865 | "color": "#299c46",
866 | "value": null
867 | },
868 | {
869 | "color": "rgba(237, 129, 40, 0.89)",
870 | "value": 50
871 | },
872 | {
873 | "color": "#d44a3a",
874 | "value": 100
875 | }
876 | ]
877 | },
878 | "unit": "s"
879 | },
880 | "overrides": []
881 | },
882 | "gridPos": {
883 | "h": 8,
884 | "w": 3,
885 | "x": 3,
886 | "y": 8
887 | },
888 | "id": 33,
889 | "options": {
890 | "minVizHeight": 75,
891 | "minVizWidth": 75,
892 | "orientation": "horizontal",
893 | "reduceOptions": {
894 | "calcs": [
895 | "lastNotNull"
896 | ],
897 | "fields": "",
898 | "values": false
899 | },
900 | "showThresholdLabels": false,
901 | "showThresholdMarkers": true,
902 | "sizing": "auto"
903 | },
904 | "pluginVersion": "10.4.3",
905 | "targets": [
906 | {
907 | "datasource": {
908 | "type": "prometheus",
909 | "uid": "${DS_PROMETHEUS}"
910 | },
911 | "expr": "unpoller_site_speedtest_ping{site_name=~\"$Site\"}",
912 | "interval": "$Smooth",
913 | "refId": "A"
914 | }
915 | ],
916 | "type": "gauge"
917 | },
918 | {
919 | "datasource": {
920 | "type": "prometheus",
921 | "uid": "${DS_PROMETHEUS}"
922 | },
923 | "description": "Shows data transfer for each subsystem on the site. RX is on the negative axis.",
924 | "fieldConfig": {
925 | "defaults": {
926 | "color": {
927 | "mode": "palette-classic"
928 | },
929 | "custom": {
930 | "axisBorderShow": false,
931 | "axisCenteredZero": false,
932 | "axisColorMode": "text",
933 | "axisLabel": "bytes / second",
934 | "axisPlacement": "auto",
935 | "barAlignment": 0,
936 | "drawStyle": "line",
937 | "fillOpacity": 0,
938 | "gradientMode": "none",
939 | "hideFrom": {
940 | "legend": false,
941 | "tooltip": false,
942 | "viz": false
943 | },
944 | "insertNulls": false,
945 | "lineInterpolation": "linear",
946 | "lineWidth": 1,
947 | "pointSize": 5,
948 | "scaleDistribution": {
949 | "type": "linear"
950 | },
951 | "showPoints": "never",
952 | "spanNulls": true,
953 | "stacking": {
954 | "group": "A",
955 | "mode": "none"
956 | },
957 | "thresholdsStyle": {
958 | "mode": "off"
959 | }
960 | },
961 | "links": [],
962 | "mappings": [],
963 | "thresholds": {
964 | "mode": "absolute",
965 | "steps": [
966 | {
967 | "color": "green",
968 | "value": null
969 | },
970 | {
971 | "color": "red",
972 | "value": 80
973 | }
974 | ]
975 | },
976 | "unit": "Bps"
977 | },
978 | "overrides": [
979 | {
980 | "matcher": {
981 | "id": "byRegexp",
982 | "options": "/Rx$/"
983 | },
984 | "properties": [
985 | {
986 | "id": "custom.transform",
987 | "value": "negative-Y"
988 | }
989 | ]
990 | }
991 | ]
992 | },
993 | "gridPos": {
994 | "h": 8,
995 | "w": 24,
996 | "x": 0,
997 | "y": 16
998 | },
999 | "id": 15,
1000 | "options": {
1001 | "legend": {
1002 | "calcs": [
1003 | "lastNotNull",
1004 | "max"
1005 | ],
1006 | "displayMode": "table",
1007 | "placement": "right",
1008 | "showLegend": true
1009 | },
1010 | "tooltip": {
1011 | "mode": "multi",
1012 | "sort": "desc"
1013 | }
1014 | },
1015 | "pluginVersion": "10.4.3",
1016 | "repeatDirection": "h",
1017 | "targets": [
1018 | {
1019 | "datasource": {
1020 | "type": "prometheus",
1021 | "uid": "${DS_PROMETHEUS}"
1022 | },
1023 | "expr": "unpoller_site_transmit_rate_bytes{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1024 | "interval": "$Smooth",
1025 | "legendFormat": "{{subsystem}} Tx",
1026 | "refId": "A"
1027 | },
1028 | {
1029 | "datasource": {
1030 | "type": "prometheus",
1031 | "uid": "${DS_PROMETHEUS}"
1032 | },
1033 | "expr": "unpoller_site_receive_rate_bytes{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1034 | "interval": "$Smooth",
1035 | "legendFormat": "{{subsystem}} Rx",
1036 | "refId": "B"
1037 | }
1038 | ],
1039 | "title": "Data Transfer",
1040 | "type": "timeseries"
1041 | },
1042 | {
1043 | "datasource": {
1044 | "type": "prometheus",
1045 | "uid": "${DS_PROMETHEUS}"
1046 | },
1047 | "description": "This graphs shows clients connected to the site.",
1048 | "fieldConfig": {
1049 | "defaults": {
1050 | "color": {
1051 | "mode": "palette-classic"
1052 | },
1053 | "custom": {
1054 | "axisBorderShow": false,
1055 | "axisCenteredZero": false,
1056 | "axisColorMode": "text",
1057 | "axisLabel": "",
1058 | "axisPlacement": "auto",
1059 | "barAlignment": 0,
1060 | "drawStyle": "line",
1061 | "fillOpacity": 0,
1062 | "gradientMode": "none",
1063 | "hideFrom": {
1064 | "legend": false,
1065 | "tooltip": false,
1066 | "viz": false
1067 | },
1068 | "insertNulls": false,
1069 | "lineInterpolation": "linear",
1070 | "lineWidth": 3,
1071 | "pointSize": 5,
1072 | "scaleDistribution": {
1073 | "type": "linear"
1074 | },
1075 | "showPoints": "never",
1076 | "spanNulls": true,
1077 | "stacking": {
1078 | "group": "A",
1079 | "mode": "none"
1080 | },
1081 | "thresholdsStyle": {
1082 | "mode": "off"
1083 | }
1084 | },
1085 | "decimals": 0,
1086 | "links": [],
1087 | "mappings": [],
1088 | "thresholds": {
1089 | "mode": "absolute",
1090 | "steps": [
1091 | {
1092 | "color": "green",
1093 | "value": null
1094 | },
1095 | {
1096 | "color": "red",
1097 | "value": 80
1098 | }
1099 | ]
1100 | },
1101 | "unit": "short"
1102 | },
1103 | "overrides": []
1104 | },
1105 | "gridPos": {
1106 | "h": 7,
1107 | "w": 24,
1108 | "x": 0,
1109 | "y": 24
1110 | },
1111 | "id": 2,
1112 | "options": {
1113 | "legend": {
1114 | "calcs": [
1115 | "lastNotNull",
1116 | "max"
1117 | ],
1118 | "displayMode": "table",
1119 | "placement": "right",
1120 | "showLegend": true
1121 | },
1122 | "tooltip": {
1123 | "mode": "multi",
1124 | "sort": "desc"
1125 | }
1126 | },
1127 | "pluginVersion": "10.4.3",
1128 | "repeatDirection": "h",
1129 | "targets": [
1130 | {
1131 | "datasource": {
1132 | "type": "prometheus",
1133 | "uid": "${DS_PROMETHEUS}"
1134 | },
1135 | "expr": "unpoller_site_users{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1136 | "interval": "$Smooth",
1137 | "legendFormat": "{{subsystem}} Users",
1138 | "refId": "A"
1139 | },
1140 | {
1141 | "datasource": {
1142 | "type": "prometheus",
1143 | "uid": "${DS_PROMETHEUS}"
1144 | },
1145 | "expr": "unpoller_site_guests{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1146 | "interval": "$Smooth",
1147 | "legendFormat": "{{subsystem}} Guests",
1148 | "refId": "B"
1149 | },
1150 | {
1151 | "datasource": {
1152 | "type": "prometheus",
1153 | "uid": "${DS_PROMETHEUS}"
1154 | },
1155 | "expr": "unpoller_site_remote_user_active{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1156 | "interval": "$Smooth",
1157 | "legendFormat": "{{subsystem}} Active",
1158 | "refId": "C"
1159 | },
1160 | {
1161 | "datasource": {
1162 | "type": "prometheus",
1163 | "uid": "${DS_PROMETHEUS}"
1164 | },
1165 | "expr": "unpoller_site_remote_user_inactive{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1166 | "interval": "$Smooth",
1167 | "legendFormat": "{{subsystem}} Inactive",
1168 | "refId": "D"
1169 | },
1170 | {
1171 | "datasource": {
1172 | "type": "prometheus",
1173 | "uid": "${DS_PROMETHEUS}"
1174 | },
1175 | "expr": "unpoller_site_stations{site_name=~\"$Site\", subsystem=~\"$Subsystem\"}",
1176 | "interval": "$Smooth",
1177 | "legendFormat": "{{subsystem}} Stations",
1178 | "refId": "E"
1179 | }
1180 | ],
1181 | "title": "Client Counts",
1182 | "type": "timeseries"
1183 | },
1184 | {
1185 | "datasource": {
1186 | "type": "prometheus",
1187 | "uid": "${DS_PROMETHEUS}"
1188 | },
1189 | "description": "This graphs shows clients connected to the site.",
1190 | "fieldConfig": {
1191 | "defaults": {
1192 | "color": {
1193 | "mode": "palette-classic"
1194 | },
1195 | "custom": {
1196 | "axisBorderShow": false,
1197 | "axisCenteredZero": false,
1198 | "axisColorMode": "text",
1199 | "axisLabel": "",
1200 | "axisPlacement": "auto",
1201 | "barAlignment": 0,
1202 | "drawStyle": "line",
1203 | "fillOpacity": 0,
1204 | "gradientMode": "none",
1205 | "hideFrom": {
1206 | "legend": false,
1207 | "tooltip": false,
1208 | "viz": false
1209 | },
1210 | "insertNulls": false,
1211 | "lineInterpolation": "linear",
1212 | "lineWidth": 3,
1213 | "pointSize": 5,
1214 | "scaleDistribution": {
1215 | "type": "linear"
1216 | },
1217 | "showPoints": "never",
1218 | "spanNulls": true,
1219 | "stacking": {
1220 | "group": "A",
1221 | "mode": "none"
1222 | },
1223 | "thresholdsStyle": {
1224 | "mode": "off"
1225 | }
1226 | },
1227 | "decimals": 0,
1228 | "links": [],
1229 | "mappings": [],
1230 | "thresholds": {
1231 | "mode": "absolute",
1232 | "steps": [
1233 | {
1234 | "color": "green",
1235 | "value": null
1236 | },
1237 | {
1238 | "color": "red",
1239 | "value": 80
1240 | }
1241 | ]
1242 | },
1243 | "unit": "Bps"
1244 | },
1245 | "overrides": [
1246 | {
1247 | "matcher": {
1248 | "id": "byRegexp",
1249 | "options": "/Rx$/"
1250 | },
1251 | "properties": [
1252 | {
1253 | "id": "custom.transform",
1254 | "value": "negative-Y"
1255 | }
1256 | ]
1257 | }
1258 | ]
1259 | },
1260 | "gridPos": {
1261 | "h": 7,
1262 | "w": 24,
1263 | "x": 0,
1264 | "y": 31
1265 | },
1266 | "id": 39,
1267 | "options": {
1268 | "legend": {
1269 | "calcs": [
1270 | "lastNotNull",
1271 | "max"
1272 | ],
1273 | "displayMode": "table",
1274 | "placement": "right",
1275 | "showLegend": true
1276 | },
1277 | "tooltip": {
1278 | "mode": "multi",
1279 | "sort": "desc"
1280 | }
1281 | },
1282 | "pluginVersion": "10.4.3",
1283 | "repeatDirection": "h",
1284 | "targets": [
1285 | {
1286 | "datasource": {
1287 | "type": "prometheus",
1288 | "uid": "${DS_PROMETHEUS}"
1289 | },
1290 | "expr": "rate(unpoller_site_remote_user_transmit_bytes_total{site_name=~\"$Site\"}[$__interval])",
1291 | "interval": "$Smooth",
1292 | "legendFormat": "VPN Users Tx",
1293 | "refId": "A"
1294 | },
1295 | {
1296 | "datasource": {
1297 | "type": "prometheus",
1298 | "uid": "${DS_PROMETHEUS}"
1299 | },
1300 | "expr": "rate(unpoller_site_remote_user_receive_bytes_total{site_name=~\"$Site\"}[$__interval])",
1301 | "interval": "$Smooth",
1302 | "legendFormat": "VPN Users Rx",
1303 | "refId": "B"
1304 | }
1305 | ],
1306 | "title": "VPN Users Data Rate",
1307 | "type": "timeseries"
1308 | },
1309 | {
1310 | "datasource": {
1311 | "type": "prometheus",
1312 | "uid": "${DS_PROMETHEUS}"
1313 | },
1314 | "description": "This graph only works if DPI is enabled on the controller and DPI collection is enabled in UniFi Poller. Rx is on the negative axis.",
1315 | "fieldConfig": {
1316 | "defaults": {
1317 | "color": {
1318 | "mode": "palette-classic"
1319 | },
1320 | "custom": {
1321 | "axisBorderShow": false,
1322 | "axisCenteredZero": false,
1323 | "axisColorMode": "text",
1324 | "axisLabel": "",
1325 | "axisPlacement": "auto",
1326 | "barAlignment": 0,
1327 | "drawStyle": "line",
1328 | "fillOpacity": 0,
1329 | "gradientMode": "none",
1330 | "hideFrom": {
1331 | "legend": false,
1332 | "tooltip": false,
1333 | "viz": false
1334 | },
1335 | "insertNulls": false,
1336 | "lineInterpolation": "linear",
1337 | "lineWidth": 3,
1338 | "pointSize": 5,
1339 | "scaleDistribution": {
1340 | "type": "linear"
1341 | },
1342 | "showPoints": "never",
1343 | "spanNulls": true,
1344 | "stacking": {
1345 | "group": "A",
1346 | "mode": "none"
1347 | },
1348 | "thresholdsStyle": {
1349 | "mode": "off"
1350 | }
1351 | },
1352 | "decimals": 0,
1353 | "links": [],
1354 | "mappings": [],
1355 | "thresholds": {
1356 | "mode": "absolute",
1357 | "steps": [
1358 | {
1359 | "color": "green",
1360 | "value": null
1361 | },
1362 | {
1363 | "color": "red",
1364 | "value": 80
1365 | }
1366 | ]
1367 | },
1368 | "unit": "Bps"
1369 | },
1370 | "overrides": [
1371 | {
1372 | "matcher": {
1373 | "id": "byRegexp",
1374 | "options": "/Rx$/"
1375 | },
1376 | "properties": [
1377 | {
1378 | "id": "custom.transform",
1379 | "value": "negative-Y"
1380 | }
1381 | ]
1382 | },
1383 | {
1384 | "matcher": {
1385 | "id": "byValue",
1386 | "options": {
1387 | "op": "gte",
1388 | "reducer": "allIsZero",
1389 | "value": 0
1390 | }
1391 | },
1392 | "properties": [
1393 | {
1394 | "id": "custom.hideFrom",
1395 | "value": {
1396 | "legend": true,
1397 | "tooltip": true,
1398 | "viz": false
1399 | }
1400 | }
1401 | ]
1402 | },
1403 | {
1404 | "matcher": {
1405 | "id": "byValue",
1406 | "options": {
1407 | "op": "gte",
1408 | "reducer": "allIsNull",
1409 | "value": 0
1410 | }
1411 | },
1412 | "properties": [
1413 | {
1414 | "id": "custom.hideFrom",
1415 | "value": {
1416 | "legend": true,
1417 | "tooltip": true,
1418 | "viz": false
1419 | }
1420 | }
1421 | ]
1422 | }
1423 | ]
1424 | },
1425 | "gridPos": {
1426 | "h": 17,
1427 | "w": 24,
1428 | "x": 0,
1429 | "y": 38
1430 | },
1431 | "id": 45,
1432 | "options": {
1433 | "legend": {
1434 | "calcs": [
1435 | "mean",
1436 | "max"
1437 | ],
1438 | "displayMode": "table",
1439 | "placement": "right",
1440 | "showLegend": true
1441 | },
1442 | "tooltip": {
1443 | "mode": "multi",
1444 | "sort": "desc"
1445 | }
1446 | },
1447 | "pluginVersion": "10.4.3",
1448 | "repeatDirection": "h",
1449 | "targets": [
1450 | {
1451 | "datasource": {
1452 | "type": "prometheus",
1453 | "uid": "${DS_PROMETHEUS}"
1454 | },
1455 | "expr": "sum by (category) (rate(unpoller_site_dpi_receive_bytes{site_name=~\"$Site\"}[$__interval]))",
1456 | "hide": false,
1457 | "interval": "$Smooth",
1458 | "legendFormat": "{{category}} Rx",
1459 | "refId": "A"
1460 | },
1461 | {
1462 | "datasource": {
1463 | "type": "prometheus",
1464 | "uid": "${DS_PROMETHEUS}"
1465 | },
1466 | "expr": "sum by (category) (rate(unpoller_site_dpi_transmit_bytes{site_name=~\"$Site\"}[$__interval]))",
1467 | "hide": false,
1468 | "interval": "$Smooth",
1469 | "legendFormat": "{{category}} Tx",
1470 | "refId": "B"
1471 | }
1472 | ],
1473 | "title": "Data Transfer by Category",
1474 | "type": "timeseries"
1475 | }
1476 | ],
1477 | "refresh": "1m",
1478 | "schemaVersion": 39,
1479 | "tags": [
1480 | "unifi",
1481 | "unifi-poller"
1482 | ],
1483 | "templating": {
1484 | "list": [
1485 | {
1486 | "current": {},
1487 | "datasource": {
1488 | "type": "prometheus",
1489 | "uid": "${DS_PROMETHEUS}"
1490 | },
1491 | "definition": "label_values(unpoller_site_transmit_rate_bytes,source)",
1492 | "hide": 0,
1493 | "includeAll": true,
1494 | "label": "",
1495 | "multi": true,
1496 | "name": "Controller",
1497 | "options": [],
1498 | "query": "label_values(unpoller_site_transmit_rate_bytes,source)",
1499 | "refresh": 1,
1500 | "regex": "",
1501 | "skipUrlSync": false,
1502 | "sort": 1,
1503 | "tagValuesQuery": "",
1504 | "tagsQuery": "",
1505 | "type": "query",
1506 | "useTags": false
1507 | },
1508 | {
1509 | "allValue": ".*",
1510 | "current": {},
1511 | "datasource": {
1512 | "type": "prometheus",
1513 | "uid": "${DS_PROMETHEUS}"
1514 | },
1515 | "definition": "label_values(unpoller_site_transmit_rate_bytes{source=~\"$Controller\"},site_name)",
1516 | "hide": 2,
1517 | "includeAll": true,
1518 | "label": "",
1519 | "multi": false,
1520 | "name": "Site",
1521 | "options": [],
1522 | "query": "label_values(unpoller_site_transmit_rate_bytes{source=~\"$Controller\"},site_name)",
1523 | "refresh": 1,
1524 | "regex": "",
1525 | "skipUrlSync": false,
1526 | "sort": 1,
1527 | "tagValuesQuery": "",
1528 | "tagsQuery": "",
1529 | "type": "query",
1530 | "useTags": false
1531 | },
1532 | {
1533 | "allValue": ".*",
1534 | "current": {},
1535 | "datasource": {
1536 | "type": "prometheus",
1537 | "uid": "${DS_PROMETHEUS}"
1538 | },
1539 | "definition": "label_values(subsystem)",
1540 | "hide": 2,
1541 | "includeAll": true,
1542 | "multi": true,
1543 | "name": "Subsystem",
1544 | "options": [],
1545 | "query": "label_values(subsystem)",
1546 | "refresh": 1,
1547 | "regex": "",
1548 | "skipUrlSync": false,
1549 | "sort": 0,
1550 | "tagValuesQuery": "",
1551 | "tagsQuery": "",
1552 | "type": "query",
1553 | "useTags": false
1554 | },
1555 | {
1556 | "current": {
1557 | "selected": false,
1558 | "text": "2m",
1559 | "value": "2m"
1560 | },
1561 | "hide": 0,
1562 | "includeAll": false,
1563 | "multi": false,
1564 | "name": "Smooth",
1565 | "options": [
1566 | {
1567 | "selected": false,
1568 | "text": "30s",
1569 | "value": "30s"
1570 | },
1571 | {
1572 | "selected": false,
1573 | "text": "1m",
1574 | "value": "1m"
1575 | },
1576 | {
1577 | "selected": true,
1578 | "text": "2m",
1579 | "value": "2m"
1580 | },
1581 | {
1582 | "selected": false,
1583 | "text": "5m",
1584 | "value": "5m"
1585 | },
1586 | {
1587 | "selected": false,
1588 | "text": "10m",
1589 | "value": "10m"
1590 | }
1591 | ],
1592 | "query": "30s,1m,2m,5m,10m",
1593 | "skipUrlSync": false,
1594 | "type": "custom"
1595 | }
1596 | ]
1597 | },
1598 | "time": {
1599 | "from": "now-3h",
1600 | "to": "now"
1601 | },
1602 | "timepicker": {
1603 | "nowDelay": "5s",
1604 | "refresh_intervals": [
1605 | "30s",
1606 | "1m",
1607 | "5m",
1608 | "15m",
1609 | "30m",
1610 | "1h",
1611 | "2h"
1612 | ],
1613 | "time_options": [
1614 | "5m",
1615 | "15m",
1616 | "1h",
1617 | "6h",
1618 | "12h",
1619 | "24h",
1620 | "2d",
1621 | "7d",
1622 | "30d"
1623 | ]
1624 | },
1625 | "timezone": "browser",
1626 | "title": "UniFi-Poller: Network Sites - Prometheus",
1627 | "uid": "9WaGWZaZk",
1628 | "version": 11,
1629 | "weekStart": ""
1630 | }
--------------------------------------------------------------------------------