├── .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 | [![travis](https://badgen.net/travis/unifi-poller/dashboards?icon=travis&label=build "Travis Build")](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 | } --------------------------------------------------------------------------------