● Zion Boggan
repos/Drophawk/infra/grafana/dashboards/drophawk-overview.json
zionboggan.com ↗
310 lines · json
History for this file →
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
  "__requires": [
13
    { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "13.0.0" },
14
    { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "1.0.0" },
15
    { "type": "panel", "id": "timeseries", "name": "Time series", "version": "" },
16
    { "type": "panel", "id": "stat", "name": "Stat", "version": "" },
17
    { "type": "panel", "id": "gauge", "name": "Gauge", "version": "" }
18
  ],
19
  "annotations": {
20
    "list": []
21
  },
22
  "description": "DropHawk operational overview - drops, source health, detection latency",
23
  "editable": true,
24
  "fiscalYearStartMonth": 0,
25
  "graphTooltip": 1,
26
  "id": null,
27
  "links": [],
28
  "panels": [
29
    {
30
      "id": 1,
31
      "gridPos": { "h": 4, "w": 4, "x": 0, "y": 0 },
32
      "title": "Drops / 24h",
33
      "type": "stat",
34
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
35
      "fieldConfig": {
36
        "defaults": {
37
          "color": { "mode": "thresholds" },
38
          "thresholds": {
39
            "mode": "absolute",
40
            "steps": [
41
              { "color": "green", "value": null },
42
              { "color": "yellow", "value": 50 },
43
              { "color": "red", "value": 200 }
44
            ]
45
          },
46
          "unit": "short"
47
        },
48
        "overrides": []
49
      },
50
      "options": {
51
        "reduceOptions": {
52
          "values": false,
53
          "calcs": ["lastNotNull"],
54
          "fields": ""
55
        },
56
        "orientation": "auto",
57
        "textMode": "auto",
58
        "colorMode": "background",
59
        "graphMode": "area"
60
      },
61
      "targets": [
62
        {
63
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
64
          "expr": "increase(drophawk_drops_total[24h])",
65
          "legendFormat": "Drops / 24h",
66
          "refId": "A"
67
        }
68
      ]
69
    },
70
    {
71
      "id": 2,
72
      "gridPos": { "h": 4, "w": 4, "x": 4, "y": 0 },
73
      "title": "Sources Healthy",
74
      "type": "stat",
75
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
76
      "fieldConfig": {
77
        "defaults": {
78
          "color": { "mode": "thresholds" },
79
          "thresholds": {
80
            "mode": "absolute",
81
            "steps": [
82
              { "color": "red", "value": null },
83
              { "color": "yellow", "value": 0.75 },
84
              { "color": "green", "value": 0.9 }
85
            ]
86
          },
87
          "unit": "percentunit",
88
          "min": 0,
89
          "max": 1
90
        },
91
        "overrides": []
92
      },
93
      "options": {
94
        "reduceOptions": {
95
          "values": false,
96
          "calcs": ["lastNotNull"],
97
          "fields": ""
98
        },
99
        "orientation": "auto",
100
        "textMode": "auto",
101
        "colorMode": "background",
102
        "graphMode": "none"
103
      },
104
      "targets": [
105
        {
106
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
107
          "expr": "count(drophawk_source_up{status=\"healthy\"}) / count(drophawk_source_up)",
108
          "legendFormat": "Health ratio",
109
          "refId": "A"
110
        }
111
      ]
112
    },
113
    {
114
      "id": 3,
115
      "gridPos": { "h": 4, "w": 4, "x": 8, "y": 0 },
116
      "title": "Detection Latency p99",
117
      "type": "stat",
118
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
119
      "fieldConfig": {
120
        "defaults": {
121
          "color": { "mode": "thresholds" },
122
          "thresholds": {
123
            "mode": "absolute",
124
            "steps": [
125
              { "color": "green", "value": null },
126
              { "color": "yellow", "value": 5000 },
127
              { "color": "red", "value": 15000 }
128
            ]
129
          },
130
          "unit": "ms"
131
        },
132
        "overrides": []
133
      },
134
      "options": {
135
        "reduceOptions": {
136
          "values": false,
137
          "calcs": ["lastNotNull"],
138
          "fields": ""
139
        },
140
        "orientation": "auto",
141
        "textMode": "auto",
142
        "colorMode": "background",
143
        "graphMode": "none"
144
      },
145
      "targets": [
146
        {
147
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
148
          "expr": "histogram_quantile(0.99, sum(rate(drophawk_detection_latency_ms_bucket[5m])) by (le))",
149
          "legendFormat": "p99 latency",
150
          "refId": "A"
151
        }
152
      ]
153
    },
154
    {
155
      "id": 4,
156
      "gridPos": { "h": 4, "w": 4, "x": 12, "y": 0 },
157
      "title": "SSE Connections",
158
      "type": "stat",
159
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
160
      "fieldConfig": {
161
        "defaults": {
162
          "color": { "mode": "thresholds" },
163
          "thresholds": {
164
            "mode": "absolute",
165
            "steps": [
166
              { "color": "blue", "value": null }
167
            ]
168
          },
169
          "unit": "short"
170
        },
171
        "overrides": []
172
      },
173
      "options": {
174
        "reduceOptions": {
175
          "values": false,
176
          "calcs": ["lastNotNull"],
177
          "fields": ""
178
        },
179
        "orientation": "auto",
180
        "textMode": "auto",
181
        "colorMode": "value",
182
        "graphMode": "none"
183
      },
184
      "targets": [
185
        {
186
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
187
          "expr": "drophawk_sse_connections",
188
          "legendFormat": "Clients",
189
          "refId": "A"
190
        }
191
      ]
192
    },
193
    {
194
      "id": 5,
195
      "gridPos": { "h": 8, "w": 12, "x": 0, "y": 4 },
196
      "title": "Drop Rate Over Time",
197
      "type": "timeseries",
198
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
199
      "fieldConfig": {
200
        "defaults": {
201
          "color": { "mode": "palette-classic" },
202
          "custom": {
203
            "lineWidth": 2,
204
            "fillOpacity": 10,
205
            "gradientMode": "opacity",
206
            "showPoints": "auto",
207
            "spanNulls": false
208
          },
209
          "unit": "short"
210
        },
211
        "overrides": []
212
      },
213
      "options": {
214
        "tooltip": { "mode": "multi", "sort": "desc" },
215
        "legend": { "displayMode": "list", "placement": "bottom" }
216
      },
217
      "targets": [
218
        {
219
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
220
          "expr": "rate(drophawk_drops_total[5m]) * 60",
221
          "legendFormat": "{{type}} drops/min",
222
          "refId": "A"
223
        }
224
      ]
225
    },
226
    {
227
      "id": 6,
228
      "gridPos": { "h": 8, "w": 12, "x": 12, "y": 4 },
229
      "title": "Source Poll Latency (p50 / p99)",
230
      "type": "timeseries",
231
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
232
      "fieldConfig": {
233
        "defaults": {
234
          "color": { "mode": "palette-classic" },
235
          "custom": {
236
            "lineWidth": 2,
237
            "fillOpacity": 5
238
          },
239
          "unit": "ms"
240
        },
241
        "overrides": []
242
      },
243
      "options": {
244
        "tooltip": { "mode": "multi", "sort": "desc" },
245
        "legend": { "displayMode": "list", "placement": "bottom" }
246
      },
247
      "targets": [
248
        {
249
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
250
          "expr": "histogram_quantile(0.50, sum(rate(drophawk_source_poll_duration_ms_bucket[5m])) by (le, source))",
251
          "legendFormat": "{{source}} p50",
252
          "refId": "A"
253
        },
254
        {
255
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
256
          "expr": "histogram_quantile(0.99, sum(rate(drophawk_source_poll_duration_ms_bucket[5m])) by (le, source))",
257
          "legendFormat": "{{source}} p99",
258
          "refId": "B"
259
        }
260
      ]
261
    },
262
    {
263
      "id": 7,
264
      "gridPos": { "h": 6, "w": 24, "x": 0, "y": 12 },
265
      "title": "Notification Success Rate",
266
      "type": "timeseries",
267
      "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
268
      "fieldConfig": {
269
        "defaults": {
270
          "color": { "mode": "palette-classic" },
271
          "custom": {
272
            "lineWidth": 2,
273
            "fillOpacity": 10
274
          },
275
          "unit": "percentunit",
276
          "min": 0,
277
          "max": 1
278
        },
279
        "overrides": []
280
      },
281
      "options": {
282
        "tooltip": { "mode": "multi", "sort": "desc" },
283
        "legend": { "displayMode": "list", "placement": "bottom" }
284
      },
285
      "targets": [
286
        {
287
          "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" },
288
          "expr": "rate(drophawk_notifications_total{result=\"ok\"}[5m]) / rate(drophawk_notifications_total[5m])",
289
          "legendFormat": "Success rate",
290
          "refId": "A"
291
        }
292
      ]
293
    }
294
  ],
295
  "refresh": "30s",
296
  "schemaVersion": 41,
297
  "tags": ["drophawk", "overview"],
298
  "templating": {
299
    "list": []
300
  },
301
  "time": {
302
    "from": "now-6h",
303
    "to": "now"
304
  },
305
  "timepicker": {},
306
  "timezone": "browser",
307
  "title": "DropHawk Overview",
308
  "uid": "drophawk-overview-v1",
309
  "version": 1
310
}