{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], "liveNow": false, "panels": [ { "id": 10, "type": "stat", "title": "Points Last 30 Days", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 0, "y": 0, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT count(*)::double precision AS points\nFROM points\nWHERE timestamp >= extract(epoch from now() - interval '30 days')::integer\n AND timestamp <= extract(epoch from now())::integer\n AND lonlat IS NOT NULL;" } ], "fieldConfig": { "defaults": { "unit": "short", "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "points", "values": false }, "textMode": "auto", "wideLayout": true } }, { "id": 11, "type": "stat", "title": "Kilometers Last 30 Days", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 6, "y": 0, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT round(coalesce(sum(distance),0)::numeric / 1000.0, 2)::double precision AS km\nFROM tracks\nWHERE start_at >= now() - interval '30 days';" } ], "fieldConfig": { "defaults": { "unit": "km", "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "km", "values": false }, "textMode": "auto", "wideLayout": true } }, { "id": 12, "type": "stat", "title": "Tracks Last 30 Days", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 12, "y": 0, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT count(*)::double precision AS tracks\nFROM tracks\nWHERE start_at >= now() - interval '30 days';" } ], "fieldConfig": { "defaults": { "unit": "short", "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "tracks", "values": false }, "textMode": "auto", "wideLayout": true } }, { "id": 13, "type": "stat", "title": "Anomalies Last 30 Days", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 18, "y": 0, "w": 6, "h": 4 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT count(*)::double precision AS anomalies\nFROM points\nWHERE timestamp >= extract(epoch from now() - interval '30 days')::integer\n AND timestamp <= extract(epoch from now())::integer\n AND anomaly IS TRUE;" } ], "fieldConfig": { "defaults": { "unit": "short", "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "anomalies", "values": false }, "textMode": "auto", "wideLayout": true } }, { "id": 1, "type": "geomap", "title": "Location Points", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 0, "y": 4, "w": 14, "h": 12 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT\n ST_Y(lonlat::geometry)::double precision AS lat,\n ST_X(lonlat::geometry)::double precision AS lon,\n accuracy::double precision AS accuracy,\n to_timestamp(timestamp) AS seen_at\nFROM points\nWHERE timestamp >= extract(epoch from now() - interval '30 days')::integer\n AND timestamp <= extract(epoch from now())::integer\n AND lonlat IS NOT NULL\nORDER BY timestamp DESC\nLIMIT 5000;" } ], "fieldConfig": { "defaults": { "custom": { "hideFrom": { "legend": false, "tooltip": false, "viz": false } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "basemap": { "config": {}, "name": "Layer 0", "type": "default" }, "controls": { "mouseWheelZoom": true, "showAttribution": true, "showDebug": false, "showMeasure": false, "showScale": true, "showZoom": true }, "layers": [ { "config": { "showLegend": false, "style": { "color": { "fixed": "green" }, "opacity": 0.7, "size": { "fixed": 5, "max": 15, "min": 2 }, "symbol": { "fixed": "img/icons/marker/circle.svg", "mode": "fixed" } } }, "location": { "latitude": "lat", "longitude": "lon", "mode": "coords" }, "name": "Points", "tooltip": true, "type": "markers" } ], "tooltip": { "mode": "details" }, "view": { "allLayers": true, "id": "fit", "lat": 52.0, "lon": 7.5, "zoom": 8 } } }, { "id": 2, "type": "table", "title": "Kilometers per Day", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 14, "y": 4, "w": 10, "h": 6 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT\n date_trunc('day', start_at)::date AS day,\n round(coalesce(sum(distance),0)::numeric / 1000.0, 2)::double precision AS km\nFROM tracks\nWHERE start_at >= now() - interval '30 days'\nGROUP BY 1\nORDER BY 1 DESC;" } ], "fieldConfig": { "defaults": { "custom": { "align": "auto", "cellOptions": { "type": "auto" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true } }, { "id": 3, "type": "table", "title": "Points per Day", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 14, "y": 10, "w": 10, "h": 6 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT\n date_trunc('day', to_timestamp(timestamp))::date AS day,\n count(*)::double precision AS points\nFROM points\nWHERE timestamp >= extract(epoch from now() - interval '30 days')::integer\n AND timestamp <= extract(epoch from now())::integer\nGROUP BY 1\nORDER BY 1 DESC;" } ], "fieldConfig": { "defaults": { "custom": { "align": "auto", "cellOptions": { "type": "auto" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true } }, { "id": 4, "type": "table", "title": "Recent Tracks", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "pluginVersion": "13.0.2", "gridPos": { "x": 0, "y": 16, "w": 24, "h": 7 }, "targets": [ { "refId": "A", "datasource": { "type": "postgres", "uid": "dawarich-postgres" }, "editorMode": "code", "format": "table", "rawQuery": true, "rawSql": "SELECT\n start_at AS start,\n end_at AS end,\n round((distance::numeric / 1000.0), 2)::double precision AS km,\n round((duration::numeric / 60.0), 1)::double precision AS minutes\nFROM tracks\nWHERE start_at >= now() - interval '30 days'\nORDER BY start_at DESC\nLIMIT 50;" } ], "fieldConfig": { "defaults": { "custom": { "align": "auto", "cellOptions": { "type": "auto" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null } ] } }, "overrides": [] }, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": [ "sum" ], "show": false }, "showHeader": true } } ], "refresh": "5m", "schemaVersion": 41, "tags": [ "homelab", "dawarich" ], "templating": { "list": [] }, "time": { "from": "now-30d", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "Dawarich", "uid": "dawarich", "version": 5, "weekStart": "" }