andrewfraley / arris_cable_modem_stats

Retrieves stats from Arris cable modems and sends to InfluxDB
53 stars 34 forks source link

issues with per host ping and availability summary page #49

Open ragesaq opened 2 years ago

ragesaq commented 2 years ago

I followed your instructions and got the docker container and telegraf config working, very nice!

However, the grafana page for the internet dashboard seems to have an issue extrapolating the different hosts that are a part of the ping test and building out the graphs like it does in your screenshots. I'm not sure if theres a variable I need to configure or something else to change, here is what I get. image

ragesaq commented 2 years ago

Found it, edited the source and remove the IP that I assume is your router and replaced it with my own, since its a valid target it builds out properly now.

Edit-add: Scratch that, upon saving and reloading the dashboard the issue returns.

ragesaq commented 2 years ago

Took another look at it and got it mostly sorted. The Internet Dashboard panel did not seem to have its variable set, reworked it and I think this mostly represents what you have. I'm not 100% sure though but you should probably check it out.

{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "datasource", "uid": "grafana" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "gnetId": 2690, "graphTooltip": 1, "id": 14, "iteration": 1662755287217, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "datasource": { "type": "influxdb", "uid": "fdtugjC7k" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 54, "panels": [], "title": "Cable Modem", "type": "row" }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": { "type": "influxdb", "uid": "N43idhM4k" }, "fieldConfig": { "defaults": { "links": [] }, "overrides": [] }, "fill": 10, "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 1 }, "hiddenSeries": false, "id": 64, "interval": "5m", "legend": { "avg": false, "current": true, "hideEmpty": false, "hideZero": false, "max": true, "min": false, "show": true, "total": true, "values": true }, "lines": false, "linewidth": 1, "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "8.5.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Downstream Uncorrectables", "color": "rgb(255, 53, 40)" } ], "spaceLength": 10, "stack": false, "steppedLine": true, "targets": [ { "alias": "Downstream Uncorrectables", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "downstream_statistics", "orderByTime": "ASC", "policy": "default", "query": "SELECT non_negative_derivative(max(\"uncorrectables\"), 5m) FROM \"downstream_statistics\" WHERE $timeFilter GROUP BY time($__interval) fill(none)", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "uncorrectables" ], "type": "field" }, { "params": [], "type": "sum" }, { "params": [ "5m" ], "type": "non_negative_derivative" } ] ], "tags": [] } ], "thresholds": [], "timeRegions": [], "title": "Downstream Uncorrectables", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "mode": "time", "show": true, "values": [] }, "yaxes": [ { "format": "short", "logBase": 1, "min": "0", "show": true }, { "format": "short", "logBase": 1, "show": true } ], "yaxis": { "align": false } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": { "type": "influxdb", "uid": "N43idhM4k" }, "fieldConfig": { "defaults": { "links": [] }, "overrides": [] }, "fill": 0, "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 1 }, "hiddenSeries": false, "id": 66, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": false, "total": false, "values": false }, "lines": true, "linewidth": 1, "nullPointMode": "null", "options": { "alertThreshold": true }, "percentage": false, "pluginVersion": "8.5.5", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "alias": "Channel $tag_channel_id", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "channel_id" ], "type": "tag" }, { "params": [ "none" ], "type": "fill" } ], "measurement": "downstream_statistics", "orderByTime": "ASC", "policy": "default", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "power" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [] } ], "thresholds": [], "timeRegions": [], "title": "Channel Power", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "mode": "time", "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Power", "logBase": 2, "show": true }, { "format": "short", "logBase": 1, "show": false } ], "yaxis": { "align": false } }, { "collapsed": false, "datasource": { "type": "influxdb", "uid": "fdtugjC7k" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 10 }, "id": 40, "panels": [], "title": "Ping", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "points", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineStyle": { "fill": "solid" }, "lineWidth": 1, "pointSize": 3, "scaleDistribution": { "type": "linear" }, "showPoints": "always", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "links": [], "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "short" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 11 }, "id": 2, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "8.5.5", "targets": [ { "alias": "$tag_url", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "url" ], "type": "tag" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "ping", "orderByTime": "ASC", "policy": "default", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "average_response_ms" ], "type": "field" }, { "params": [], "type": "max" } ] ], "tags": [] } ], "title": "Ping Average Response Time", "type": "timeseries" }, { "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 100, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 0, "links": [], "mappings": [], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "percent" }, "overrides": [ { "matcher": { "id": "byName", "options": "1.1.1.1" }, "properties": [ { "id": "color", "value": { "fixedColor": "#CA95E5", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 11 }, "id": 3, "links": [], "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi", "sort": "none" } }, "pluginVersion": "8.5.5", "targets": [ { "alias": "$tag_url", "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "url" ], "type": "tag" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "ping", "orderByTime": "ASC", "policy": "default", "query": "SELECT max(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" = '208.67.222.222' AND $timeFilter GROUP BY time(1m) fill(null)", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "percent_packet_loss" ], "type": "field" }, { "params": [], "type": "max" } ] ], "tags": [] } ], "title": "Packet Loss Percentage", "type": "timeseries" }, { "collapsed": false, "datasource": { "type": "influxdb", "uid": "fdtugjC7k" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 19 }, "id": 42, "panels": [], "title": "Availability Metrics", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "decimals": 0, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "max": 100, "min": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(245, 54, 54, 0.9)", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 95 }, { "color": "rgba(50, 172, 45, 0.97)", "value": 99.9 } ] }, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 7, "w": 4.8, "x": 0, "y": 20 }, "id": 9, "interval": "", "links": [], "maxDataPoints": 100, "maxPerRow": 6, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "pluginVersion": "8.5.5", "repeat": "ping_url", "repeatDirection": "h", "targets": [ { "alias": "Url $tag_url", "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "dsType": "influxdb", "groupBy": [ { "params": [ "1m" ], "type": "time" }, { "params": [ "url" ], "type": "tag" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "ping", "orderByTime": "ASC", "policy": "default", "query": "SELECT 100 - mean(\"percent_packet_loss\") FROM \"ping\" WHERE \"url\" =~ /^$PingURL$/ AND $timeFilter GROUP BY time(1m) fill(null)", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "percent_packet_loss" ], "type": "field" }, { "params": [], "type": "max" } ] ], "tags": [ { "key": "url", "operator": "=~", "value": "/^$ping_url$/" } ] } ], "title": "$ping_url Uptime", "type": "timeseries" }, { "collapsed": false, "datasource": { "type": "influxdb", "uid": "fdtugjC7k" }, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 27 }, "id": 43, "panels": [], "title": "Ping Metrics", "type": "row" }, { "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "decimals": 1, "mappings": [ { "options": { "match": "null", "result": { "text": "N/A" } }, "type": "special" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(50, 172, 45, 0.97)", "value": null }, { "color": "rgba(237, 129, 40, 0.89)", "value": 50 }, { "color": "rgba(245, 54, 54, 0.9)", "value": 100 } ] }, "unit": "ms" }, "overrides": [] }, "gridPos": { "h": 7, "w": 4.8, "x": 0, "y": 28 }, "id": 12, "links": [], "maxDataPoints": 100, "maxPerRow": 6, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "mean" ], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "8.5.5", "repeat": "ping_url", "repeatDirection": "h", "targets": [ { "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "dsType": "influxdb", "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "measurement": "ping", "orderByTime": "ASC", "policy": "default", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "average_response_ms" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [ { "key": "url", "operator": "=~", "value": "/^$ping_url$/" } ] } ], "title": "$ping_url Ping", "type": "stat" } ], "refresh": false, "schemaVersion": 36, "style": "dark", "tags": [], "templating": { "list": [ { "current": { "selected": false, "text": "All", "value": "$__all" }, "datasource": { "type": "influxdb", "uid": "Eoenpd67k" }, "definition": "select DISTINCT(\"url\") from (select ttl, url from ping WHERE $timeFilter)", "hide": 0, "includeAll": true, "multi": false, "name": "ping_url", "options": [], "query": "select DISTINCT(\"url\") from (select ttl, url from ping WHERE $timeFilter)", "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 3, "type": "query" } ] }, "time": { "from": "now-12h", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "browser", "title": "Internet Dasboard", "uid": "XtLU7pKZz", "version": 19, "weekStart": "" }