Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/operations/observability/mixins/workspace/dashboards/components/ws-proxy.json
2506 views
1
{
2
"__inputs": [],
3
"__requires": [
4
{
5
"type": "grafana",
6
"id": "grafana",
7
"name": "Grafana",
8
"version": "8.1.2"
9
},
10
{
11
"type": "panel",
12
"id": "graph",
13
"name": "Graph (old)",
14
"version": ""
15
},
16
{
17
"type": "datasource",
18
"id": "prometheus",
19
"name": "Prometheus",
20
"version": "1.0.0"
21
},
22
{
23
"type": "panel",
24
"id": "timeseries",
25
"name": "Time series",
26
"version": ""
27
}
28
],
29
"annotations": {
30
"list": [
31
{
32
"builtIn": 1,
33
"datasource": "-- Grafana --",
34
"enable": true,
35
"hide": true,
36
"iconColor": "rgba(0, 211, 255, 1)",
37
"name": "Annotations & Alerts",
38
"target": {
39
"limit": 100,
40
"matchAny": false,
41
"tags": [],
42
"type": "dashboard"
43
},
44
"type": "dashboard"
45
}
46
]
47
},
48
"editable": true,
49
"gnetId": null,
50
"graphTooltip": 1,
51
"id": null,
52
"iteration": 1630955945669,
53
"links": [],
54
"panels": [
55
{
56
"collapsed": false,
57
"datasource": null,
58
"fieldConfig": {
59
"defaults": {},
60
"overrides": []
61
},
62
"gridPos": {
63
"h": 1,
64
"w": 24,
65
"x": 0,
66
"y": 0
67
},
68
"id": 16,
69
"panels": [],
70
"title": "Pod Metrics",
71
"type": "row"
72
},
73
{
74
"datasource": "$datasource",
75
"fieldConfig": {
76
"defaults": {
77
"color": {
78
"mode": "palette-classic"
79
},
80
"custom": {
81
"axisLabel": "",
82
"axisPlacement": "auto",
83
"barAlignment": 0,
84
"drawStyle": "line",
85
"fillOpacity": 0,
86
"gradientMode": "none",
87
"hideFrom": {
88
"legend": false,
89
"tooltip": false,
90
"viz": false
91
},
92
"lineInterpolation": "linear",
93
"lineWidth": 1,
94
"pointSize": 5,
95
"scaleDistribution": {
96
"type": "linear"
97
},
98
"showPoints": "auto",
99
"spanNulls": false,
100
"stacking": {
101
"group": "A",
102
"mode": "none"
103
},
104
"thresholdsStyle": {
105
"mode": "off"
106
}
107
},
108
"mappings": [],
109
"thresholds": {
110
"mode": "absolute",
111
"steps": [
112
{
113
"color": "green",
114
"value": null
115
},
116
{
117
"color": "red",
118
"value": 80
119
}
120
]
121
}
122
},
123
"overrides": []
124
},
125
"gridPos": {
126
"h": 7,
127
"w": 10,
128
"x": 0,
129
"y": 1
130
},
131
"id": 34,
132
"options": {
133
"legend": {
134
"calcs": [],
135
"displayMode": "table",
136
"placement": "right"
137
},
138
"tooltip": {
139
"mode": "single"
140
}
141
},
142
"targets": [
143
{
144
"exemplar": true,
145
"expr": "kube_pod_container_info{cluster=~\"$cluster\", pod=~\"$pod\", image=~\".+\", container=\"ws-proxy\"}",
146
"interval": "",
147
"legendFormat": "{{cluster}} - {{image}}",
148
"queryType": "randomWalk",
149
"refId": "A"
150
}
151
],
152
"title": "Container image version",
153
"type": "timeseries"
154
},
155
{
156
"aliasColors": {},
157
"bars": false,
158
"dashLength": 10,
159
"dashes": false,
160
"datasource": "$datasource",
161
"decimals": 2,
162
"fill": 1,
163
"fillGradient": 0,
164
"gridPos": {
165
"h": 7,
166
"w": 7,
167
"x": 10,
168
"y": 1
169
},
170
"hiddenSeries": false,
171
"id": 2,
172
"legend": {
173
"alignAsTable": true,
174
"avg": true,
175
"current": true,
176
"max": true,
177
"min": false,
178
"show": true,
179
"sort": "current",
180
"sortDesc": true,
181
"total": false,
182
"values": true
183
},
184
"lines": true,
185
"linewidth": 1,
186
"nullPointMode": "null",
187
"options": {
188
"alertThreshold": true
189
},
190
"percentage": false,
191
"pluginVersion": "8.1.2",
192
"pointradius": 2,
193
"points": false,
194
"renderer": "flot",
195
"seriesOverrides": [],
196
"spaceLength": 10,
197
"stack": false,
198
"steppedLine": false,
199
"targets": [
200
{
201
"expr": "sum(\n rate(container_cpu_usage_seconds_total{container!=\"POD\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
202
"interval": "",
203
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Cores being used",
204
"queryType": "randomWalk",
205
"refId": "A"
206
}
207
],
208
"thresholds": [],
209
"timeFrom": null,
210
"timeRegions": [],
211
"timeShift": null,
212
"title": "CPU Utilization",
213
"tooltip": {
214
"shared": true,
215
"sort": 2,
216
"value_type": "individual"
217
},
218
"type": "graph",
219
"xaxis": {
220
"buckets": null,
221
"mode": "time",
222
"name": null,
223
"show": true,
224
"values": []
225
},
226
"yaxes": [
227
{
228
"decimals": 2,
229
"format": "short",
230
"label": null,
231
"logBase": 1,
232
"max": null,
233
"min": "0",
234
"show": true
235
},
236
{
237
"format": "short",
238
"label": null,
239
"logBase": 1,
240
"max": null,
241
"min": null,
242
"show": true
243
}
244
],
245
"yaxis": {
246
"align": false,
247
"alignLevel": null
248
}
249
},
250
{
251
"aliasColors": {},
252
"bars": false,
253
"dashLength": 10,
254
"dashes": false,
255
"datasource": "$datasource",
256
"description": "Saturation > 100% means that the container is requesting more than its limits.\n\nKubernetes will start to throttle CPU when that happens. That's a sign of degraded performance.\n\n'No Data' indicates that the pod has no CPU limits.",
257
"fill": 1,
258
"fillGradient": 0,
259
"gridPos": {
260
"h": 7,
261
"w": 7,
262
"x": 17,
263
"y": 1
264
},
265
"hiddenSeries": false,
266
"id": 4,
267
"legend": {
268
"avg": false,
269
"current": false,
270
"max": false,
271
"min": false,
272
"show": true,
273
"total": false,
274
"values": false
275
},
276
"lines": true,
277
"linewidth": 1,
278
"nullPointMode": "null",
279
"options": {
280
"alertThreshold": true
281
},
282
"percentage": false,
283
"pluginVersion": "8.1.2",
284
"pointradius": 2,
285
"points": false,
286
"renderer": "flot",
287
"seriesOverrides": [
288
{
289
"alias": "/.*CPU Throttles/",
290
"yaxis": 2
291
}
292
],
293
"spaceLength": 10,
294
"stack": false,
295
"steppedLine": false,
296
"targets": [
297
{
298
"expr": "sum(\n rate(container_cpu_usage_seconds_total{container!=\"POD\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)\n/\nsum(\n kube_pod_container_resource_limits_cpu_cores{container!=\"POD\", cluster=\"$cluster\", pod=~\"$pod\"}\n) by (pod, cluster, node)\n",
299
"interval": "",
300
"legendFormat": "{{cluster}} - {{node} - {{pod}} - CPU Saturation",
301
"queryType": "randomWalk",
302
"refId": "A"
303
},
304
{
305
"expr": "sum(\nrate(container_cpu_cfs_throttled_seconds_total{container!=\"POD\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod)",
306
"interval": "",
307
"legendFormat": "{{pod}} - CPU Throttles",
308
"queryType": "randomWalk",
309
"refId": "B"
310
}
311
],
312
"thresholds": [],
313
"timeFrom": null,
314
"timeRegions": [],
315
"timeShift": null,
316
"title": "CPU Saturation",
317
"tooltip": {
318
"shared": true,
319
"sort": 2,
320
"value_type": "individual"
321
},
322
"type": "graph",
323
"xaxis": {
324
"buckets": null,
325
"mode": "time",
326
"name": null,
327
"show": true,
328
"values": []
329
},
330
"yaxes": [
331
{
332
"decimals": 2,
333
"format": "percentunit",
334
"label": null,
335
"logBase": 1,
336
"max": null,
337
"min": "0",
338
"show": true
339
},
340
{
341
"format": "s",
342
"label": null,
343
"logBase": 1,
344
"max": null,
345
"min": null,
346
"show": true
347
}
348
],
349
"yaxis": {
350
"align": false,
351
"alignLevel": null
352
}
353
},
354
{
355
"aliasColors": {},
356
"bars": false,
357
"dashLength": 10,
358
"dashes": false,
359
"datasource": "$datasource",
360
"fill": 1,
361
"fillGradient": 0,
362
"gridPos": {
363
"h": 7,
364
"w": 12,
365
"x": 0,
366
"y": 8
367
},
368
"hiddenSeries": false,
369
"id": 6,
370
"legend": {
371
"alignAsTable": true,
372
"avg": true,
373
"current": true,
374
"max": true,
375
"min": false,
376
"show": true,
377
"total": false,
378
"values": true
379
},
380
"lines": true,
381
"linewidth": 1,
382
"nullPointMode": "null",
383
"options": {
384
"alertThreshold": true
385
},
386
"percentage": false,
387
"pluginVersion": "8.1.2",
388
"pointradius": 2,
389
"points": false,
390
"renderer": "flot",
391
"seriesOverrides": [],
392
"spaceLength": 10,
393
"stack": false,
394
"steppedLine": false,
395
"targets": [
396
{
397
"expr": "sum(container_memory_working_set_bytes{container!=\"POD\", container!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}) by (pod, cluster, node)",
398
"interval": "",
399
"legendFormat": "{{cluster}} - {{node}} - {{pod}}",
400
"queryType": "randomWalk",
401
"refId": "A"
402
}
403
],
404
"thresholds": [],
405
"timeFrom": null,
406
"timeRegions": [],
407
"timeShift": null,
408
"title": "Memory Utilization",
409
"tooltip": {
410
"shared": true,
411
"sort": 2,
412
"value_type": "individual"
413
},
414
"type": "graph",
415
"xaxis": {
416
"buckets": null,
417
"mode": "time",
418
"name": null,
419
"show": true,
420
"values": []
421
},
422
"yaxes": [
423
{
424
"format": "bytes",
425
"label": null,
426
"logBase": 1,
427
"max": null,
428
"min": "0",
429
"show": true
430
},
431
{
432
"format": "short",
433
"label": null,
434
"logBase": 1,
435
"max": null,
436
"min": null,
437
"show": true
438
}
439
],
440
"yaxis": {
441
"align": false,
442
"alignLevel": null
443
}
444
},
445
{
446
"aliasColors": {},
447
"bars": false,
448
"dashLength": 10,
449
"dashes": false,
450
"datasource": "$datasource",
451
"decimals": 4,
452
"description": "Memory can't be throttled. When a container reaches 100% of its memory limits, Kubernetes will kill the container and restart it.\n\n'No Data' indicates that the pod doesn't have Memory limits.",
453
"fill": 1,
454
"fillGradient": 0,
455
"gridPos": {
456
"h": 7,
457
"w": 12,
458
"x": 12,
459
"y": 8
460
},
461
"hiddenSeries": false,
462
"id": 8,
463
"legend": {
464
"alignAsTable": true,
465
"avg": true,
466
"current": true,
467
"max": true,
468
"min": false,
469
"show": true,
470
"total": false,
471
"values": true
472
},
473
"lines": true,
474
"linewidth": 1,
475
"nullPointMode": "null",
476
"options": {
477
"alertThreshold": true
478
},
479
"percentage": false,
480
"pluginVersion": "8.1.2",
481
"pointradius": 2,
482
"points": false,
483
"renderer": "flot",
484
"seriesOverrides": [],
485
"spaceLength": 10,
486
"stack": false,
487
"steppedLine": false,
488
"targets": [
489
{
490
"expr": "sum(\nrate(container_memory_working_set_bytes{container!=\"POD\", container!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)\n/\nsum(\n kube_pod_container_resource_limits{container!=\"POD\", cluster=\"$cluster\", pod=~\"$pod\", resource=\"memory\"}\n) by (pod, cluster, node)\n",
491
"interval": "",
492
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Memory Saturation",
493
"queryType": "randomWalk",
494
"refId": "A"
495
}
496
],
497
"thresholds": [],
498
"timeFrom": null,
499
"timeRegions": [],
500
"timeShift": null,
501
"title": "Memory Saturation",
502
"tooltip": {
503
"shared": true,
504
"sort": 2,
505
"value_type": "individual"
506
},
507
"type": "graph",
508
"xaxis": {
509
"buckets": null,
510
"mode": "time",
511
"name": null,
512
"show": true,
513
"values": []
514
},
515
"yaxes": [
516
{
517
"decimals": 2,
518
"format": "percentunit",
519
"label": null,
520
"logBase": 1,
521
"max": null,
522
"min": "0",
523
"show": true
524
},
525
{
526
"format": "short",
527
"label": null,
528
"logBase": 1,
529
"max": null,
530
"min": null,
531
"show": true
532
}
533
],
534
"yaxis": {
535
"align": false,
536
"alignLevel": null
537
}
538
},
539
{
540
"aliasColors": {},
541
"bars": false,
542
"dashLength": 10,
543
"dashes": false,
544
"datasource": "$datasource",
545
"fill": 1,
546
"fillGradient": 0,
547
"gridPos": {
548
"h": 7,
549
"w": 8,
550
"x": 0,
551
"y": 15
552
},
553
"hiddenSeries": false,
554
"id": 10,
555
"legend": {
556
"alignAsTable": true,
557
"avg": false,
558
"current": true,
559
"max": false,
560
"min": false,
561
"show": true,
562
"total": false,
563
"values": true
564
},
565
"lines": true,
566
"linewidth": 1,
567
"nullPointMode": "null",
568
"options": {
569
"alertThreshold": true
570
},
571
"percentage": false,
572
"pluginVersion": "8.1.2",
573
"pointradius": 2,
574
"points": false,
575
"renderer": "flot",
576
"seriesOverrides": [],
577
"spaceLength": 10,
578
"stack": false,
579
"steppedLine": false,
580
"targets": [
581
{
582
"expr": "sum (\n rate(container_network_receive_bytes_total{container!=\"POD\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
583
"interval": "",
584
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Received",
585
"queryType": "randomWalk",
586
"refId": "A"
587
},
588
{
589
"expr": "sum (\n rate(container_network_transmit_bytes_total{container!=\"POD\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
590
"interval": "",
591
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Transmitted",
592
"queryType": "randomWalk",
593
"refId": "B"
594
}
595
],
596
"thresholds": [],
597
"timeFrom": null,
598
"timeRegions": [],
599
"timeShift": null,
600
"title": "Network Utilization",
601
"tooltip": {
602
"shared": true,
603
"sort": 2,
604
"value_type": "individual"
605
},
606
"type": "graph",
607
"xaxis": {
608
"buckets": null,
609
"mode": "time",
610
"name": null,
611
"show": true,
612
"values": []
613
},
614
"yaxes": [
615
{
616
"decimals": 2,
617
"format": "binBps",
618
"label": null,
619
"logBase": 1,
620
"max": null,
621
"min": "0",
622
"show": true
623
},
624
{
625
"format": "short",
626
"label": null,
627
"logBase": 1,
628
"max": null,
629
"min": null,
630
"show": true
631
}
632
],
633
"yaxis": {
634
"align": false,
635
"alignLevel": null
636
}
637
},
638
{
639
"aliasColors": {},
640
"bars": false,
641
"dashLength": 10,
642
"dashes": false,
643
"datasource": "$datasource",
644
"fill": 1,
645
"fillGradient": 0,
646
"gridPos": {
647
"h": 7,
648
"w": 8,
649
"x": 8,
650
"y": 15
651
},
652
"hiddenSeries": false,
653
"id": 30,
654
"legend": {
655
"alignAsTable": true,
656
"avg": false,
657
"current": true,
658
"max": false,
659
"min": false,
660
"rightSide": false,
661
"show": true,
662
"total": false,
663
"values": true
664
},
665
"lines": true,
666
"linewidth": 1,
667
"nullPointMode": "null",
668
"options": {
669
"alertThreshold": true
670
},
671
"percentage": false,
672
"pluginVersion": "8.1.2",
673
"pointradius": 2,
674
"points": false,
675
"renderer": "flot",
676
"seriesOverrides": [],
677
"spaceLength": 10,
678
"stack": false,
679
"steppedLine": false,
680
"targets": [
681
{
682
"expr": "sum (\n rate(container_network_receive_packets_dropped_total{container!=\"POD\", pod!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
683
"interval": "",
684
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Receive",
685
"queryType": "randomWalk",
686
"refId": "A"
687
},
688
{
689
"expr": "sum (\n rate(container_network_transmit_packets_dropped_total{container!=\"POD\", pod!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
690
"interval": "",
691
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Transmit",
692
"queryType": "randomWalk",
693
"refId": "B"
694
}
695
],
696
"thresholds": [],
697
"timeFrom": null,
698
"timeRegions": [],
699
"timeShift": null,
700
"title": "Network Saturation (Packets Dropped)",
701
"tooltip": {
702
"shared": true,
703
"sort": 2,
704
"value_type": "individual"
705
},
706
"type": "graph",
707
"xaxis": {
708
"buckets": null,
709
"mode": "time",
710
"name": null,
711
"show": true,
712
"values": []
713
},
714
"yaxes": [
715
{
716
"decimals": 2,
717
"format": "pps",
718
"label": null,
719
"logBase": 1,
720
"max": null,
721
"min": "0",
722
"show": true
723
},
724
{
725
"format": "short",
726
"label": null,
727
"logBase": 1,
728
"max": null,
729
"min": null,
730
"show": true
731
}
732
],
733
"yaxis": {
734
"align": false,
735
"alignLevel": null
736
}
737
},
738
{
739
"aliasColors": {},
740
"bars": false,
741
"dashLength": 10,
742
"dashes": false,
743
"datasource": "$datasource",
744
"fill": 1,
745
"fillGradient": 0,
746
"gridPos": {
747
"h": 7,
748
"w": 8,
749
"x": 16,
750
"y": 15
751
},
752
"hiddenSeries": false,
753
"id": 32,
754
"legend": {
755
"alignAsTable": true,
756
"avg": false,
757
"current": true,
758
"max": false,
759
"min": false,
760
"show": true,
761
"total": false,
762
"values": true
763
},
764
"lines": true,
765
"linewidth": 1,
766
"nullPointMode": "null",
767
"options": {
768
"alertThreshold": true
769
},
770
"percentage": false,
771
"pluginVersion": "8.1.2",
772
"pointradius": 2,
773
"points": false,
774
"renderer": "flot",
775
"seriesOverrides": [],
776
"spaceLength": 10,
777
"stack": false,
778
"steppedLine": false,
779
"targets": [
780
{
781
"expr": "sum (\n rate(container_network_receive_errors_total{container!=\"POD\", pod!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
782
"interval": "",
783
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Received",
784
"queryType": "randomWalk",
785
"refId": "A"
786
},
787
{
788
"expr": "sum (\n rate(container_network_transmit_errors_total{container!=\"POD\", pod!=\"\", cluster=~\"$cluster\", node=~\"$node\", pod=~\"$pod\"}[1m])\n) by (pod, cluster, node)",
789
"interval": "",
790
"legendFormat": "{{cluster}} - {{node}} - {{pod}} - Transmitted",
791
"queryType": "randomWalk",
792
"refId": "B"
793
}
794
],
795
"thresholds": [],
796
"timeFrom": null,
797
"timeRegions": [],
798
"timeShift": null,
799
"title": "Network Errors",
800
"tooltip": {
801
"shared": true,
802
"sort": 2,
803
"value_type": "individual"
804
},
805
"type": "graph",
806
"xaxis": {
807
"buckets": null,
808
"mode": "time",
809
"name": null,
810
"show": true,
811
"values": []
812
},
813
"yaxes": [
814
{
815
"decimals": 2,
816
"format": "Errors/s",
817
"label": null,
818
"logBase": 1,
819
"max": null,
820
"min": "0",
821
"show": true
822
},
823
{
824
"format": "short",
825
"label": null,
826
"logBase": 1,
827
"max": null,
828
"min": null,
829
"show": true
830
}
831
],
832
"yaxis": {
833
"align": false,
834
"alignLevel": null
835
}
836
},
837
{
838
"aliasColors": {},
839
"bars": false,
840
"dashLength": 10,
841
"dashes": false,
842
"datasource": "$datasource",
843
"decimals": 4,
844
"description": "",
845
"fill": 1,
846
"fillGradient": 0,
847
"gridPos": {
848
"h": 9,
849
"w": 8,
850
"x": 0,
851
"y": 22
852
},
853
"hiddenSeries": false,
854
"id": 22,
855
"legend": {
856
"alignAsTable": true,
857
"avg": true,
858
"current": true,
859
"max": true,
860
"min": false,
861
"show": true,
862
"total": false,
863
"values": true
864
},
865
"lines": true,
866
"linewidth": 1,
867
"nullPointMode": "null",
868
"options": {
869
"alertThreshold": true
870
},
871
"percentage": false,
872
"pluginVersion": "8.1.2",
873
"pointradius": 2,
874
"points": false,
875
"renderer": "flot",
876
"seriesOverrides": [],
877
"spaceLength": 10,
878
"stack": false,
879
"steppedLine": false,
880
"targets": [
881
{
882
"expr": "rate(kube_pod_container_status_restarts_total{cluster=~\"$cluster\", pod=~\"$pod\"}[1m])",
883
"interval": "",
884
"legendFormat": "{{cluster}} - {{kubernetes_pod_node_name}} - {{pod}} ",
885
"queryType": "randomWalk",
886
"refId": "A"
887
}
888
],
889
"thresholds": [],
890
"timeFrom": null,
891
"timeRegions": [],
892
"timeShift": null,
893
"title": "Pod Restarts",
894
"tooltip": {
895
"shared": true,
896
"sort": 2,
897
"value_type": "individual"
898
},
899
"type": "graph",
900
"xaxis": {
901
"buckets": null,
902
"mode": "time",
903
"name": null,
904
"show": true,
905
"values": []
906
},
907
"yaxes": [
908
{
909
"decimals": 2,
910
"format": "short",
911
"label": null,
912
"logBase": 1,
913
"max": null,
914
"min": "0",
915
"show": true
916
},
917
{
918
"format": "short",
919
"label": null,
920
"logBase": 1,
921
"max": null,
922
"min": null,
923
"show": true
924
}
925
],
926
"yaxis": {
927
"align": false,
928
"alignLevel": null
929
}
930
},
931
{
932
"aliasColors": {},
933
"bars": false,
934
"dashLength": 10,
935
"dashes": false,
936
"datasource": "$datasource",
937
"decimals": 0,
938
"description": "",
939
"fill": 1,
940
"fillGradient": 0,
941
"gridPos": {
942
"h": 9,
943
"w": 8,
944
"x": 8,
945
"y": 22
946
},
947
"hiddenSeries": false,
948
"id": 28,
949
"legend": {
950
"alignAsTable": true,
951
"avg": false,
952
"current": true,
953
"max": false,
954
"min": false,
955
"show": true,
956
"total": false,
957
"values": true
958
},
959
"lines": true,
960
"linewidth": 1,
961
"nullPointMode": "null",
962
"options": {
963
"alertThreshold": true
964
},
965
"percentage": false,
966
"pluginVersion": "8.1.2",
967
"pointradius": 2,
968
"points": false,
969
"renderer": "flot",
970
"seriesOverrides": [],
971
"spaceLength": 10,
972
"stack": false,
973
"steppedLine": false,
974
"targets": [
975
{
976
"expr": "kube_pod_container_status_running{cluster=~\"$cluster\", pod=~\"$pod\"} == 1 ",
977
"interval": "",
978
"legendFormat": "{{pod}} - RUNNING",
979
"queryType": "randomWalk",
980
"refId": "A"
981
},
982
{
983
"expr": "(\n sum by (pod) (kube_pod_container_status_terminated{cluster=~\"$cluster\", pod=~\"$pod\"}) == 1\n) * on(pod) group_left(reason) (\n sum by (pod, reason) (kube_pod_container_status_terminated_reason{cluster=~\"$cluster\", pod=~\"$pod\"}) == 1\n)",
984
"interval": "",
985
"legendFormat": "{{pod}} - TERMINATED -> {{reason}}",
986
"queryType": "randomWalk",
987
"refId": "B"
988
},
989
{
990
"expr": "(\n sum by (pod) (kube_pod_container_status_waiting{cluster=~\"$cluster\", pod=~\"$pod\"}) == 1\n) * on(pod) group_left(reason) (\n sum by (pod, reason) (kube_pod_container_status_waiting_reason{cluster=~\"$cluster\", pod=~\"$pod\"}) == 1\n)",
991
"interval": "",
992
"legendFormat": "{{pod}} - WAITING -> {{reason}}",
993
"queryType": "randomWalk",
994
"refId": "C"
995
}
996
],
997
"thresholds": [],
998
"timeFrom": null,
999
"timeRegions": [],
1000
"timeShift": null,
1001
"title": "Pod Status",
1002
"tooltip": {
1003
"shared": true,
1004
"sort": 2,
1005
"value_type": "individual"
1006
},
1007
"type": "graph",
1008
"xaxis": {
1009
"buckets": null,
1010
"mode": "time",
1011
"name": null,
1012
"show": true,
1013
"values": []
1014
},
1015
"yaxes": [
1016
{
1017
"decimals": 0,
1018
"format": "short",
1019
"label": null,
1020
"logBase": 1,
1021
"max": null,
1022
"min": null,
1023
"show": true
1024
},
1025
{
1026
"format": "short",
1027
"label": null,
1028
"logBase": 1,
1029
"max": null,
1030
"min": null,
1031
"show": true
1032
}
1033
],
1034
"yaxis": {
1035
"align": false,
1036
"alignLevel": null
1037
}
1038
},
1039
{
1040
"aliasColors": {},
1041
"bars": false,
1042
"dashLength": 10,
1043
"dashes": false,
1044
"datasource": "$datasource",
1045
"decimals": 0,
1046
"fill": 1,
1047
"fillGradient": 0,
1048
"gridPos": {
1049
"h": 9,
1050
"w": 8,
1051
"x": 16,
1052
"y": 22
1053
},
1054
"hiddenSeries": false,
1055
"id": 26,
1056
"legend": {
1057
"alignAsTable": true,
1058
"avg": false,
1059
"current": true,
1060
"max": false,
1061
"min": false,
1062
"show": true,
1063
"total": false,
1064
"values": true
1065
},
1066
"lines": true,
1067
"linewidth": 1,
1068
"nullPointMode": "null",
1069
"options": {
1070
"alertThreshold": true
1071
},
1072
"percentage": false,
1073
"pluginVersion": "8.1.2",
1074
"pointradius": 2,
1075
"points": false,
1076
"renderer": "flot",
1077
"seriesOverrides": [],
1078
"spaceLength": 10,
1079
"stack": false,
1080
"steppedLine": false,
1081
"targets": [
1082
{
1083
"expr": "kube_deployment_spec_replicas{cluster=~\"$cluster\", deployment=\"ws-proxy\"}",
1084
"interval": "",
1085
"legendFormat": "{{cluster}} - {{deployment}} - Desired",
1086
"queryType": "randomWalk",
1087
"refId": "C"
1088
},
1089
{
1090
"expr": "kube_deployment_status_replicas_available{cluster=~\"$cluster\", deployment=\"ws-proxy\"}",
1091
"interval": "",
1092
"legendFormat": "{{cluster}} - {{deployment}} - Available replicas",
1093
"queryType": "randomWalk",
1094
"refId": "A"
1095
},
1096
{
1097
"expr": "kube_deployment_status_replicas_unavailable{cluster=~\"$cluster\", deployment=\"ws-proxy\"}",
1098
"interval": "",
1099
"legendFormat": "{{cluster}} - {{deployment}} - Unvailable replicas",
1100
"queryType": "randomWalk",
1101
"refId": "B"
1102
}
1103
],
1104
"thresholds": [],
1105
"timeFrom": null,
1106
"timeRegions": [],
1107
"timeShift": null,
1108
"title": "Replicas availability",
1109
"tooltip": {
1110
"shared": true,
1111
"sort": 2,
1112
"value_type": "individual"
1113
},
1114
"type": "graph",
1115
"xaxis": {
1116
"buckets": null,
1117
"mode": "time",
1118
"name": null,
1119
"show": true,
1120
"values": []
1121
},
1122
"yaxes": [
1123
{
1124
"decimals": 0,
1125
"format": "short",
1126
"label": null,
1127
"logBase": 1,
1128
"max": null,
1129
"min": null,
1130
"show": true
1131
},
1132
{
1133
"format": "short",
1134
"label": null,
1135
"logBase": 1,
1136
"max": null,
1137
"min": null,
1138
"show": true
1139
}
1140
],
1141
"yaxis": {
1142
"align": false,
1143
"alignLevel": null
1144
}
1145
}
1146
],
1147
"refresh": "30s",
1148
"schemaVersion": 30,
1149
"style": "dark",
1150
"tags": [
1151
"gitpod-mixin"
1152
],
1153
"templating": {
1154
"list": [
1155
{
1156
"allValue": null,
1157
"current": {},
1158
"datasource": "$datasource",
1159
"definition": "label_values(container_cpu_usage_seconds_total, cluster)",
1160
"description": null,
1161
"error": null,
1162
"hide": 0,
1163
"includeAll": true,
1164
"label": "Cluster",
1165
"multi": true,
1166
"name": "cluster",
1167
"options": [],
1168
"query": {
1169
"query": "label_values(container_cpu_usage_seconds_total, cluster)",
1170
"refId": "StandardVariableQuery"
1171
},
1172
"refresh": 2,
1173
"regex": "",
1174
"skipUrlSync": false,
1175
"sort": 0,
1176
"tagValuesQuery": "",
1177
"tagsQuery": "",
1178
"type": "query",
1179
"useTags": false
1180
},
1181
{
1182
"allValue": null,
1183
"current": {},
1184
"datasource": "$datasource",
1185
"definition": "label_values(container_cpu_usage_seconds_total{cluster=~\"$cluster\", pod=~\"ws-proxy.*\"}, node)",
1186
"description": null,
1187
"error": null,
1188
"hide": 0,
1189
"includeAll": true,
1190
"label": "Node",
1191
"multi": true,
1192
"name": "node",
1193
"options": [],
1194
"query": {
1195
"query": "label_values(container_cpu_usage_seconds_total{cluster=~\"$cluster\", pod=~\"ws-proxy.*\"}, node)",
1196
"refId": "StandardVariableQuery"
1197
},
1198
"refresh": 2,
1199
"regex": "",
1200
"skipUrlSync": false,
1201
"sort": 0,
1202
"tagValuesQuery": "",
1203
"tagsQuery": "",
1204
"type": "query",
1205
"useTags": false
1206
},
1207
{
1208
"allValue": null,
1209
"current": {},
1210
"datasource": "$datasource",
1211
"definition": "label_values(container_cpu_usage_seconds_total{cluster=~\"$cluster\", node=~\"$node\", pod=~\"ws-proxy.*\"}, pod)",
1212
"description": null,
1213
"error": null,
1214
"hide": 0,
1215
"includeAll": true,
1216
"label": "Pod",
1217
"multi": true,
1218
"name": "pod",
1219
"options": [],
1220
"query": {
1221
"query": "label_values(container_cpu_usage_seconds_total{cluster=~\"$cluster\", node=~\"$node\", pod=~\"ws-proxy.*\"}, pod)",
1222
"refId": "StandardVariableQuery"
1223
},
1224
"refresh": 2,
1225
"regex": "",
1226
"skipUrlSync": false,
1227
"sort": 0,
1228
"tagValuesQuery": "",
1229
"tagsQuery": "",
1230
"type": "query",
1231
"useTags": false
1232
},
1233
{
1234
"current": {
1235
"selected": false,
1236
"text": "VictoriaMetrics",
1237
"value": "VictoriaMetrics"
1238
},
1239
"description": null,
1240
"error": null,
1241
"hide": 2,
1242
"includeAll": false,
1243
"label": null,
1244
"multi": false,
1245
"name": "datasource",
1246
"options": [],
1247
"query": "prometheus",
1248
"refresh": 2,
1249
"regex": "",
1250
"skipUrlSync": false,
1251
"type": "datasource"
1252
}
1253
]
1254
},
1255
"time": {
1256
"from": "now-1h",
1257
"to": "now"
1258
},
1259
"timepicker": {},
1260
"timezone": "utc",
1261
"title": "Gitpod / Component / ws-proxy",
1262
"uid": "ws-proxy",
1263
"version": 1
1264
}
1265