Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/operations/observability/mixins/meta/dashboards/components/usage.json
2501 views
1
{
2
"annotations": {
3
"list": [
4
{
5
"builtIn": 1,
6
"datasource": {
7
"type": "grafana",
8
"uid": "-- Grafana --"
9
},
10
"enable": true,
11
"hide": true,
12
"iconColor": "rgba(0, 211, 255, 1)",
13
"name": "Annotations & Alerts",
14
"target": {
15
"limit": 100,
16
"matchAny": false,
17
"tags": [],
18
"type": "dashboard"
19
},
20
"type": "dashboard"
21
}
22
]
23
},
24
"description": "",
25
"editable": true,
26
"fiscalYearStartMonth": 0,
27
"graphTooltip": 1,
28
"id": 54,
29
"links": [
30
{
31
"asDropdown": false,
32
"icon": "cloud",
33
"includeVars": false,
34
"keepTime": false,
35
"tags": [],
36
"targetBlank": true,
37
"title": "GCP Logs",
38
"tooltip": "See usage component logs in GCP",
39
"type": "link",
40
"url": "https://cloudlogging.app.goo.gl/6en8Xwu5tz7mTex9A"
41
},
42
{
43
"asDropdown": false,
44
"icon": "dashboard",
45
"includeVars": true,
46
"keepTime": true,
47
"tags": [
48
"grpc",
49
"server"
50
],
51
"targetBlank": true,
52
"title": "gRPC Server Metrics",
53
"tooltip": "",
54
"type": "dashboards",
55
"url": ""
56
}
57
],
58
"liveNow": false,
59
"panels": [
60
{
61
"gridPos": {
62
"h": 1,
63
"w": 24,
64
"x": 0,
65
"y": 0
66
},
67
"id": 8,
68
"title": "APIs",
69
"type": "row"
70
},
71
{
72
"datasource": {
73
"type": "prometheus",
74
"uid": "${datasource}"
75
},
76
"fieldConfig": {
77
"defaults": {
78
"color": {
79
"mode": "palette-classic"
80
},
81
"custom": {
82
"axisCenteredZero": false,
83
"axisColorMode": "text",
84
"axisLabel": "",
85
"axisPlacement": "auto",
86
"barAlignment": 0,
87
"drawStyle": "line",
88
"fillOpacity": 0,
89
"gradientMode": "none",
90
"hideFrom": {
91
"legend": false,
92
"tooltip": false,
93
"viz": false
94
},
95
"lineInterpolation": "linear",
96
"lineWidth": 1,
97
"pointSize": 5,
98
"scaleDistribution": {
99
"type": "linear"
100
},
101
"showPoints": "auto",
102
"spanNulls": false,
103
"stacking": {
104
"group": "A",
105
"mode": "none"
106
},
107
"thresholdsStyle": {
108
"mode": "off"
109
}
110
},
111
"mappings": [],
112
"thresholds": {
113
"mode": "absolute",
114
"steps": [
115
{
116
"color": "green",
117
"value": null
118
},
119
{
120
"color": "red",
121
"value": 80
122
}
123
]
124
},
125
"unit": "opm"
126
},
127
"overrides": []
128
},
129
"gridPos": {
130
"h": 8,
131
"w": 12,
132
"x": 0,
133
"y": 1
134
},
135
"id": 10,
136
"options": {
137
"legend": {
138
"calcs": [],
139
"displayMode": "list",
140
"placement": "bottom",
141
"showLegend": true
142
},
143
"tooltip": {
144
"mode": "single",
145
"sort": "none"
146
}
147
},
148
"targets": [
149
{
150
"datasource": {
151
"type": "prometheus",
152
"uid": "${datasource}"
153
},
154
"editorMode": "code",
155
"expr": "sum(increase(grpc_server_handled_total{job=\"usage\", grpc_method=~\"$method\", grpc_service=~\"$service\", cluster=~\"$cluster\"}[1m])) by (grpc_method, grpc_code)",
156
"legendFormat": "__auto",
157
"range": true,
158
"refId": "A"
159
}
160
],
161
"title": "Usage RPCs & Codes",
162
"type": "timeseries"
163
},
164
{
165
"datasource": {
166
"type": "prometheus",
167
"uid": "${datasource}"
168
},
169
"fieldConfig": {
170
"defaults": {
171
"color": {
172
"mode": "palette-classic"
173
},
174
"custom": {
175
"axisCenteredZero": false,
176
"axisColorMode": "text",
177
"axisLabel": "",
178
"axisPlacement": "auto",
179
"barAlignment": 0,
180
"drawStyle": "line",
181
"fillOpacity": 0,
182
"gradientMode": "none",
183
"hideFrom": {
184
"legend": false,
185
"tooltip": false,
186
"viz": false
187
},
188
"lineInterpolation": "linear",
189
"lineWidth": 1,
190
"pointSize": 5,
191
"scaleDistribution": {
192
"type": "linear"
193
},
194
"showPoints": "auto",
195
"spanNulls": false,
196
"stacking": {
197
"group": "A",
198
"mode": "none"
199
},
200
"thresholdsStyle": {
201
"mode": "off"
202
}
203
},
204
"mappings": [],
205
"thresholds": {
206
"mode": "absolute",
207
"steps": [
208
{
209
"color": "green",
210
"value": null
211
},
212
{
213
"color": "red",
214
"value": 80
215
}
216
]
217
},
218
"unit": "s"
219
},
220
"overrides": []
221
},
222
"gridPos": {
223
"h": 8,
224
"w": 12,
225
"x": 12,
226
"y": 1
227
},
228
"id": 12,
229
"options": {
230
"legend": {
231
"calcs": [],
232
"displayMode": "list",
233
"placement": "bottom",
234
"showLegend": true
235
},
236
"tooltip": {
237
"mode": "single",
238
"sort": "none"
239
}
240
},
241
"targets": [
242
{
243
"datasource": {
244
"type": "prometheus",
245
"uid": "${datasource}"
246
},
247
"editorMode": "code",
248
"expr": "histogram_quantile(0.95, sum(rate(grpc_server_handling_seconds_bucket{job=\"usage\", cluster=~\"$cluster\", grpc_method=~\"$method\", grpc_service=~\"$service\"}[$__rate_interval])) by (le, grpc_method))",
249
"legendFormat": "95th, {{grpc_method}}",
250
"range": true,
251
"refId": "A"
252
},
253
{
254
"datasource": {
255
"type": "prometheus",
256
"uid": "${datasource}"
257
},
258
"editorMode": "code",
259
"expr": "histogram_quantile(0.5, sum(rate(grpc_server_handling_seconds_bucket{job=\"usage\", cluster=~\"$cluster\", grpc_method=~\"$method\", grpc_service=~\"$service\"}[$__rate_interval])) by (le, grpc_method))",
260
"hide": false,
261
"legendFormat": "50th, {{grpc_method}}",
262
"range": true,
263
"refId": "B"
264
}
265
],
266
"title": "RPC Latency",
267
"type": "timeseries"
268
},
269
{
270
"collapsed": false,
271
"gridPos": {
272
"h": 1,
273
"w": 24,
274
"x": 0,
275
"y": 9
276
},
277
"id": 14,
278
"panels": [],
279
"title": "Scheduled jobs",
280
"type": "row"
281
},
282
{
283
"datasource": {
284
"type": "prometheus",
285
"uid": "${datasource}"
286
},
287
"description": "",
288
"fieldConfig": {
289
"defaults": {
290
"color": {
291
"mode": "palette-classic"
292
},
293
"custom": {
294
"axisCenteredZero": false,
295
"axisColorMode": "text",
296
"axisLabel": "# of events",
297
"axisPlacement": "auto",
298
"barAlignment": 0,
299
"drawStyle": "line",
300
"fillOpacity": 0,
301
"gradientMode": "none",
302
"hideFrom": {
303
"legend": false,
304
"tooltip": false,
305
"viz": false
306
},
307
"lineInterpolation": "linear",
308
"lineWidth": 1,
309
"pointSize": 5,
310
"scaleDistribution": {
311
"type": "linear"
312
},
313
"showPoints": "auto",
314
"spanNulls": false,
315
"stacking": {
316
"group": "A",
317
"mode": "none"
318
},
319
"thresholdsStyle": {
320
"mode": "off"
321
}
322
},
323
"mappings": [],
324
"thresholds": {
325
"mode": "absolute",
326
"steps": [
327
{
328
"color": "green",
329
"value": null
330
},
331
{
332
"color": "red",
333
"value": 80
334
}
335
]
336
}
337
},
338
"overrides": []
339
},
340
"gridPos": {
341
"h": 8,
342
"w": 12,
343
"x": 0,
344
"y": 10
345
},
346
"id": 4,
347
"options": {
348
"legend": {
349
"calcs": [],
350
"displayMode": "list",
351
"placement": "bottom",
352
"showLegend": true
353
},
354
"tooltip": {
355
"mode": "single",
356
"sort": "none"
357
}
358
},
359
"targets": [
360
{
361
"datasource": {
362
"type": "prometheus",
363
"uid": "${datasource}"
364
},
365
"editorMode": "code",
366
"expr": "sum(increase(gitpod_usage_scheduler_job_started_total{cluster=~\"$cluster\"}[1m])) by (job)",
367
"legendFormat": "{{job}} started",
368
"range": true,
369
"refId": "A"
370
},
371
{
372
"datasource": {
373
"type": "prometheus",
374
"uid": "${datasource}"
375
},
376
"editorMode": "code",
377
"exemplar": false,
378
"expr": "sum(increase(gitpod_usage_scheduler_job_completed_seconds_count{cluster=~\"$cluster\"}[1m])) by (job, outcome)",
379
"hide": false,
380
"instant": false,
381
"legendFormat": "{{job}} completed: {{outcome}}",
382
"range": true,
383
"refId": "B"
384
}
385
],
386
"title": "Scheduled jobs started & completed",
387
"type": "timeseries"
388
},
389
{
390
"datasource": {
391
"type": "prometheus",
392
"uid": "${datasource}"
393
},
394
"description": "How long a tick of the usage controller takes",
395
"fieldConfig": {
396
"defaults": {
397
"color": {
398
"mode": "palette-classic"
399
},
400
"custom": {
401
"axisCenteredZero": false,
402
"axisColorMode": "text",
403
"axisGridShow": true,
404
"axisLabel": "",
405
"axisPlacement": "auto",
406
"barAlignment": 0,
407
"drawStyle": "points",
408
"fillOpacity": 0,
409
"gradientMode": "none",
410
"hideFrom": {
411
"legend": false,
412
"tooltip": false,
413
"viz": false
414
},
415
"lineInterpolation": "linear",
416
"lineWidth": 1,
417
"pointSize": 5,
418
"scaleDistribution": {
419
"type": "linear"
420
},
421
"showPoints": "auto",
422
"spanNulls": false,
423
"stacking": {
424
"group": "A",
425
"mode": "none"
426
},
427
"thresholdsStyle": {
428
"mode": "off"
429
}
430
},
431
"mappings": [],
432
"thresholds": {
433
"mode": "absolute",
434
"steps": [
435
{
436
"color": "green",
437
"value": null
438
},
439
{
440
"color": "red",
441
"value": 80
442
}
443
]
444
},
445
"unit": "s"
446
},
447
"overrides": []
448
},
449
"gridPos": {
450
"h": 8,
451
"w": 12,
452
"x": 12,
453
"y": 10
454
},
455
"id": 6,
456
"options": {
457
"legend": {
458
"calcs": [],
459
"displayMode": "list",
460
"placement": "bottom",
461
"showLegend": true
462
},
463
"tooltip": {
464
"mode": "single",
465
"sort": "none"
466
}
467
},
468
"targets": [
469
{
470
"datasource": {
471
"type": "prometheus",
472
"uid": "${datasource}"
473
},
474
"editorMode": "code",
475
"expr": "histogram_quantile(0.5, sum(rate(gitpod_usage_scheduler_job_completed_seconds_bucket{cluster=~\"$cluster\"}[$__rate_interval])) by (le))",
476
"legendFormat": "50th percentile",
477
"range": true,
478
"refId": "A"
479
},
480
{
481
"datasource": {
482
"type": "prometheus",
483
"uid": "${datasource}"
484
},
485
"editorMode": "code",
486
"expr": "histogram_quantile(0.9, sum(rate(gitpod_usage_scheduler_job_completed_seconds_bucket{cluster=~\"$cluster\"}[$__rate_interval])) by (le))",
487
"hide": false,
488
"legendFormat": "90th percentile",
489
"range": true,
490
"refId": "B"
491
}
492
],
493
"title": "Scheduled job duration",
494
"type": "timeseries"
495
},
496
{
497
"collapsed": false,
498
"gridPos": {
499
"h": 1,
500
"w": 24,
501
"x": 0,
502
"y": 18
503
},
504
"id": 16,
505
"panels": [],
506
"title": "Ledger reconciler",
507
"type": "row"
508
},
509
{
510
"datasource": {
511
"type": "prometheus",
512
"uid": "${datasource}"
513
},
514
"fieldConfig": {
515
"defaults": {
516
"color": {
517
"mode": "thresholds"
518
},
519
"mappings": [],
520
"thresholds": {
521
"mode": "absolute",
522
"steps": [
523
{
524
"color": "green",
525
"value": null
526
},
527
{
528
"color": "red",
529
"value": 900
530
}
531
]
532
},
533
"unit": "s"
534
},
535
"overrides": []
536
},
537
"gridPos": {
538
"h": 8,
539
"w": 12,
540
"x": 0,
541
"y": 19
542
},
543
"id": 18,
544
"options": {
545
"colorMode": "value",
546
"graphMode": "area",
547
"justifyMode": "auto",
548
"orientation": "auto",
549
"reduceOptions": {
550
"calcs": [
551
"lastNotNull"
552
],
553
"fields": "",
554
"values": false
555
},
556
"textMode": "value"
557
},
558
"pluginVersion": "9.1.6",
559
"targets": [
560
{
561
"datasource": {
562
"type": "prometheus",
563
"uid": "${datasource}"
564
},
565
"editorMode": "code",
566
"expr": "time() - max_over_time(max(gitpod_usage_ledger_last_completed_time{outcome=\"success\"}[15m]))",
567
"legendFormat": "__auto",
568
"range": true,
569
"refId": "A"
570
}
571
],
572
"title": "Time since last successful run",
573
"type": "stat"
574
},
575
{
576
"datasource": {
577
"type": "prometheus",
578
"uid": "${datasource}"
579
},
580
"description": "Rate of records being updated against stripe, by outcome",
581
"fieldConfig": {
582
"defaults": {
583
"color": {
584
"mode": "palette-classic"
585
},
586
"custom": {
587
"axisCenteredZero": false,
588
"axisColorMode": "text",
589
"axisLabel": "",
590
"axisPlacement": "auto",
591
"barAlignment": 0,
592
"drawStyle": "line",
593
"fillOpacity": 0,
594
"gradientMode": "none",
595
"hideFrom": {
596
"legend": false,
597
"tooltip": false,
598
"viz": false
599
},
600
"lineInterpolation": "linear",
601
"lineWidth": 1,
602
"pointSize": 5,
603
"scaleDistribution": {
604
"type": "linear"
605
},
606
"showPoints": "auto",
607
"spanNulls": false,
608
"stacking": {
609
"group": "A",
610
"mode": "none"
611
},
612
"thresholdsStyle": {
613
"mode": "off"
614
}
615
},
616
"mappings": [],
617
"thresholds": {
618
"mode": "absolute",
619
"steps": [
620
{
621
"color": "green",
622
"value": null
623
},
624
{
625
"color": "red",
626
"value": 80
627
}
628
]
629
}
630
},
631
"overrides": []
632
},
633
"gridPos": {
634
"h": 8,
635
"w": 12,
636
"x": 12,
637
"y": 19
638
},
639
"id": 22,
640
"options": {
641
"legend": {
642
"calcs": [],
643
"displayMode": "list",
644
"placement": "bottom",
645
"showLegend": true
646
},
647
"tooltip": {
648
"mode": "single",
649
"sort": "none"
650
}
651
},
652
"targets": [
653
{
654
"datasource": {
655
"type": "prometheus",
656
"uid": "${datasource}"
657
},
658
"editorMode": "code",
659
"expr": "sum(increase(gitpod_stripe_usage_records_updated_total[1m])) by (outcome)",
660
"legendFormat": "__auto",
661
"range": true,
662
"refId": "A"
663
}
664
],
665
"title": "Stripe Usage Records updated [1m]",
666
"type": "timeseries"
667
}
668
],
669
"refresh": false,
670
"schemaVersion": 37,
671
"style": "dark",
672
"tags": [
673
"webapp",
674
"usage"
675
],
676
"templating": {
677
"list": [
678
{
679
"current": {
680
"selected": false,
681
"text": "VictoriaMetrics",
682
"value": "VictoriaMetrics"
683
},
684
"hide": 0,
685
"includeAll": false,
686
"multi": false,
687
"name": "datasource",
688
"options": [],
689
"query": "prometheus",
690
"refresh": 1,
691
"regex": "",
692
"skipUrlSync": false,
693
"type": "datasource"
694
},
695
{
696
"allValue": ".*",
697
"current": {
698
"selected": false,
699
"text": "All",
700
"value": "$__all"
701
},
702
"datasource": {
703
"type": "prometheus",
704
"uid": "${datasource}"
705
},
706
"definition": "label_values(up{job=\"server\"}, cluster)",
707
"hide": 0,
708
"includeAll": true,
709
"label": "Cluster",
710
"multi": true,
711
"name": "cluster",
712
"options": [],
713
"query": {
714
"query": "label_values(up{job=\"server\"}, cluster)",
715
"refId": "StandardVariableQuery"
716
},
717
"refresh": 1,
718
"regex": "",
719
"skipUrlSync": false,
720
"sort": 0,
721
"type": "query"
722
},
723
{
724
"allValue": ".*",
725
"current": {
726
"selected": false,
727
"text": "All",
728
"value": "$__all"
729
},
730
"datasource": {
731
"type": "prometheus",
732
"uid": "${datasource}"
733
},
734
"definition": "label_values(grpc_server_handled_total{job=\"usage\", cluster=~\"$cluster\"}, grpc_service)",
735
"hide": 0,
736
"includeAll": true,
737
"label": "Service",
738
"multi": true,
739
"name": "service",
740
"options": [],
741
"query": {
742
"query": "label_values(grpc_server_handled_total{job=\"usage\", cluster=~\"$cluster\"}, grpc_service)",
743
"refId": "StandardVariableQuery"
744
},
745
"refresh": 1,
746
"regex": "",
747
"skipUrlSync": false,
748
"sort": 0,
749
"type": "query"
750
},
751
{
752
"allValue": ".*",
753
"current": {
754
"selected": true,
755
"text": [
756
"All"
757
],
758
"value": [
759
"$__all"
760
]
761
},
762
"datasource": {
763
"type": "prometheus",
764
"uid": "${datasource}"
765
},
766
"definition": "label_values(grpc_server_handled_total{job=\"usage\", cluster=~\"$cluster\", grpc_service=~\"$service\"}, grpc_method)",
767
"hide": 0,
768
"includeAll": true,
769
"label": "Method",
770
"multi": true,
771
"name": "method",
772
"options": [],
773
"query": {
774
"query": "label_values(grpc_server_handled_total{job=\"usage\", cluster=~\"$cluster\", grpc_service=~\"$service\"}, grpc_method)",
775
"refId": "StandardVariableQuery"
776
},
777
"refresh": 1,
778
"regex": "",
779
"skipUrlSync": false,
780
"sort": 0,
781
"type": "query"
782
}
783
]
784
},
785
"time": {
786
"from": "now-6h",
787
"to": "now"
788
},
789
"timepicker": {
790
"refresh_intervals": [
791
"30s",
792
"1m",
793
"5m",
794
"15m",
795
"30m",
796
"1h",
797
"2h",
798
"1d"
799
]
800
},
801
"timezone": "utc",
802
"title": "Gitpod / Component / Usage",
803
"uid": "8W7P-jg4z",
804
"version": 1,
805
"weekStart": "monday"
806
}
807
808