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