1{
2 "__inputs": [
3 {
4 "name": "datasource",
5 "label": "prometheus",
6 "description": "",
7 "type": "datasource",
8 "pluginId": "prometheus",
9 "pluginName": "Prometheus"
10 }
11 ],
12 "__elements": [],
13 "__requires": [
14 {
15 "type": "panel",
16 "id": "gauge",
17 "name": "Gauge",
18 "version": ""
19 },
20 {
21 "type": "grafana",
22 "id": "grafana",
23 "name": "Grafana",
24 "version": "8.3.3"
25 },
26 {
27 "type": "panel",
28 "id": "graph",
29 "name": "Graph (old)",
30 "version": ""
31 },
32 {
33 "type": "panel",
34 "id": "heatmap",
35 "name": "Heatmap",
36 "version": ""
37 },
38 {
39 "type": "datasource",
40 "id": "prometheus",
41 "name": "Prometheus",
42 "version": "1.0.0"
43 },
44 {
45 "type": "panel",
46 "id": "stat",
47 "name": "Stat",
48 "version": ""
49 },
50 {
51 "type": "panel",
52 "id": "text",
53 "name": "Text",
54 "version": ""
55 }
56 ],
57 "annotations": {
58 "list": [
59 {
60 "builtIn": 1,
61 "datasource": "-- Grafana --",
62 "enable": true,
63 "hide": true,
64 "iconColor": "rgba(0, 211, 255, 1)",
65 "name": "Annotations & Alerts",
66 "type": "dashboard"
67 }
68 ]
69 },
70 "editable": true,
71 "gnetId": null,
72 "graphTooltip": 1,
73 "id": null,
74 "iteration": 1531434418636,
75 "links": [],
76 "panels": [
77 {
78 "content": "<div style=\"display: flex; align-items: center\">\n <img src=\"https://linkerd.io/images/identity/favicon/linkerd-favicon.png\" style=\"height:32px;\"/> \n <span style=\"font-size: 32px\">po/$pod</span>\n</div>",
79 "gridPos": {
80 "h": 2,
81 "w": 24,
82 "x": 0,
83 "y": 0
84 },
85 "id": 20,
86 "links": [],
87 "mode": "html",
88 "options": {},
89 "title": "",
90 "transparent": true,
91 "type": "text"
92 },
93 {
94 "cacheTimeout": null,
95 "colorBackground": false,
96 "colorValue": false,
97 "colors": [
98 "#d44a3a",
99 "rgba(237, 129, 40, 0.89)",
100 "#299c46"
101 ],
102 "datasource": {
103 "type": "prometheus",
104 "uid": "${datasource}"
105 },
106 "decimals": null,
107 "format": "percentunit",
108 "gauge": {
109 "maxValue": 1,
110 "minValue": 0,
111 "show": true,
112 "thresholdLabels": false,
113 "thresholdMarkers": true
114 },
115 "gridPos": {
116 "h": 4,
117 "w": 8,
118 "x": 0,
119 "y": 2
120 },
121 "id": 5,
122 "interval": null,
123 "links": [],
124 "mappingType": 1,
125 "mappingTypes": [
126 {
127 "name": "value to text",
128 "value": 1
129 },
130 {
131 "name": "range to text",
132 "value": 2
133 }
134 ],
135 "maxDataPoints": 100,
136 "nullPointMode": "connected",
137 "nullText": null,
138 "options": {},
139 "postfix": "",
140 "postfixFontSize": "50%",
141 "prefix": "",
142 "prefixFontSize": "50%",
143 "rangeMaps": [
144 {
145 "from": "null",
146 "text": "N/A",
147 "to": "null"
148 }
149 ],
150 "sparkline": {
151 "fillColor": "rgba(31, 118, 189, 0.18)",
152 "full": true,
153 "lineColor": "rgb(31, 120, 193)",
154 "show": true
155 },
156 "tableColumn": "",
157 "targets": [
158 {
159 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) / sum(irate(response_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval]))",
160 "format": "time_series",
161 "instant": false,
162 "intervalFactor": 1,
163 "legendFormat": "",
164 "refId": "A"
165 }
166 ],
167 "thresholds": "0.9,.99",
168 "title": "SUCCESS RATE",
169 "transparent": true,
170 "type": "singlestat",
171 "valueFontSize": "80%",
172 "valueMaps": [
173 {
174 "op": "=",
175 "text": "N/A",
176 "value": "null"
177 }
178 ],
179 "valueName": "current"
180 },
181 {
182 "cacheTimeout": null,
183 "colorBackground": false,
184 "colorValue": false,
185 "colors": [
186 "#299c46",
187 "rgba(237, 129, 40, 0.89)",
188 "#d44a3a"
189 ],
190 "datasource": {
191 "type": "prometheus",
192 "uid": "${datasource}"
193 },
194 "decimals": null,
195 "format": "none",
196 "gauge": {
197 "maxValue": 100,
198 "minValue": 0,
199 "show": false,
200 "thresholdLabels": false,
201 "thresholdMarkers": true
202 },
203 "gridPos": {
204 "h": 4,
205 "w": 8,
206 "x": 8,
207 "y": 2
208 },
209 "id": 4,
210 "interval": null,
211 "links": [],
212 "mappingType": 1,
213 "mappingTypes": [
214 {
215 "name": "value to text",
216 "value": 1
217 },
218 {
219 "name": "range to text",
220 "value": 2
221 }
222 ],
223 "maxDataPoints": 100,
224 "nullPointMode": "connected",
225 "nullText": null,
226 "options": {},
227 "postfix": " RPS",
228 "postfixFontSize": "100%",
229 "prefix": "",
230 "prefixFontSize": "50%",
231 "rangeMaps": [
232 {
233 "from": "null",
234 "text": "N/A",
235 "to": "null"
236 }
237 ],
238 "sparkline": {
239 "fillColor": "rgba(31, 118, 189, 0.18)",
240 "full": true,
241 "lineColor": "rgb(31, 120, 193)",
242 "show": true
243 },
244 "tableColumn": "",
245 "targets": [
246 {
247 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval]))",
248 "format": "time_series",
249 "instant": false,
250 "intervalFactor": 1,
251 "legendFormat": "",
252 "refId": "A"
253 }
254 ],
255 "thresholds": "",
256 "title": "REQUEST RATE",
257 "transparent": true,
258 "type": "singlestat",
259 "valueFontSize": "100%",
260 "valueMaps": [
261 {
262 "op": "=",
263 "text": "N/A",
264 "value": "null"
265 }
266 ],
267 "valueName": "current"
268 },
269 {
270 "cacheTimeout": null,
271 "colorBackground": false,
272 "colorValue": false,
273 "colors": [
274 "#299c46",
275 "rgba(237, 129, 40, 0.89)",
276 "#d44a3a"
277 ],
278 "datasource": {
279 "type": "prometheus",
280 "uid": "${datasource}"
281 },
282 "decimals": null,
283 "format": "none",
284 "gauge": {
285 "maxValue": 100,
286 "minValue": 0,
287 "show": false,
288 "thresholdLabels": false,
289 "thresholdMarkers": true
290 },
291 "gridPos": {
292 "h": 4,
293 "w": 4,
294 "x": 16,
295 "y": 2
296 },
297 "id": 11,
298 "interval": null,
299 "links": [],
300 "mappingType": 1,
301 "mappingTypes": [
302 {
303 "name": "value to text",
304 "value": 1
305 },
306 {
307 "name": "range to text",
308 "value": 2
309 }
310 ],
311 "maxDataPoints": 100,
312 "nullPointMode": "connected",
313 "nullText": null,
314 "options": {},
315 "postfix": "",
316 "postfixFontSize": "100%",
317 "prefix": "",
318 "prefixFontSize": "100%",
319 "rangeMaps": [
320 {
321 "from": "null",
322 "text": "N/A",
323 "to": "null"
324 }
325 ],
326 "sparkline": {
327 "fillColor": "rgba(31, 118, 189, 0.18)",
328 "full": false,
329 "lineColor": "rgb(31, 120, 193)",
330 "show": false
331 },
332 "tableColumn": "",
333 "targets": [
334 {
335 "expr": "count(count(request_total{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}) by (namespace, pod))",
336 "format": "time_series",
337 "interval": "",
338 "intervalFactor": 1,
339 "legendFormat": "",
340 "refId": "A"
341 }
342 ],
343 "thresholds": "",
344 "title": "INBOUND PODS",
345 "transparent": true,
346 "type": "singlestat",
347 "valueFontSize": "100%",
348 "valueMaps": [
349 {
350 "op": "=",
351 "text": "N/A",
352 "value": "null"
353 }
354 ],
355 "valueName": "current"
356 },
357 {
358 "cacheTimeout": null,
359 "colorBackground": false,
360 "colorValue": false,
361 "colors": [
362 "#299c46",
363 "rgba(237, 129, 40, 0.89)",
364 "#d44a3a"
365 ],
366 "datasource": {
367 "type": "prometheus",
368 "uid": "${datasource}"
369 },
370 "format": "none",
371 "gauge": {
372 "maxValue": 100,
373 "minValue": 0,
374 "show": false,
375 "thresholdLabels": false,
376 "thresholdMarkers": true
377 },
378 "gridPos": {
379 "h": 4,
380 "w": 4,
381 "x": 20,
382 "y": 2
383 },
384 "id": 15,
385 "interval": null,
386 "links": [],
387 "mappingType": 1,
388 "mappingTypes": [
389 {
390 "name": "value to text",
391 "value": 1
392 },
393 {
394 "name": "range to text",
395 "value": 2
396 }
397 ],
398 "maxDataPoints": 100,
399 "nullPointMode": "connected",
400 "nullText": null,
401 "options": {},
402 "postfix": "",
403 "postfixFontSize": "100%",
404 "prefix": "",
405 "prefixFontSize": "50%",
406 "rangeMaps": [
407 {
408 "from": "null",
409 "text": "N/A",
410 "to": "null"
411 }
412 ],
413 "sparkline": {
414 "fillColor": "rgba(31, 118, 189, 0.18)",
415 "full": false,
416 "lineColor": "rgb(31, 120, 193)",
417 "show": false
418 },
419 "tableColumn": "",
420 "targets": [
421 {
422 "expr": "count(count(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}) by (namespace, dst_pod))",
423 "format": "time_series",
424 "intervalFactor": 1,
425 "legendFormat": "",
426 "refId": "A"
427 }
428 ],
429 "thresholds": "",
430 "title": "OUTBOUND PODS",
431 "transparent": true,
432 "type": "singlestat",
433 "valueFontSize": "100%",
434 "valueMaps": [
435 {
436 "op": "=",
437 "text": "N/A",
438 "value": "null"
439 }
440 ],
441 "valueName": "current"
442 },
443 {
444 "content": "<div class=\"text-center dashboard-header\">\n <span>INBOUND TRAFFIC</span>\n</div>",
445 "gridPos": {
446 "h": 2,
447 "w": 24,
448 "x": 0,
449 "y": 6
450 },
451 "id": 17,
452 "links": [],
453 "mode": "html",
454 "options": {},
455 "title": "",
456 "transparent": true,
457 "type": "text"
458 },
459 {
460 "aliasColors": {},
461 "bars": false,
462 "dashLength": 10,
463 "dashes": false,
464 "datasource": {
465 "type": "prometheus",
466 "uid": "${datasource}"
467 },
468 "fill": 1,
469 "gridPos": {
470 "h": 7,
471 "w": 8,
472 "x": 0,
473 "y": 8
474 },
475 "id": 67,
476 "legend": {
477 "avg": false,
478 "current": false,
479 "max": false,
480 "min": false,
481 "show": false,
482 "total": false,
483 "values": false
484 },
485 "lines": true,
486 "linewidth": 2,
487 "links": [],
488 "nullPointMode": "null",
489 "options": {},
490 "percentage": false,
491 "pointradius": 5,
492 "points": false,
493 "renderer": "flot",
494 "seriesOverrides": [],
495 "spaceLength": 10,
496 "stack": false,
497 "steppedLine": false,
498 "targets": [
499 {
500 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) by (pod) / sum(irate(response_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) by (pod)",
501 "format": "time_series",
502 "intervalFactor": 1,
503 "legendFormat": "po/{{pod}}",
504 "refId": "A"
505 }
506 ],
507 "thresholds": [],
508 "timeFrom": null,
509 "timeRegions": [],
510 "timeShift": null,
511 "title": "SUCCESS RATE",
512 "tooltip": {
513 "shared": true,
514 "sort": 2,
515 "value_type": "individual"
516 },
517 "type": "graph",
518 "xaxis": {
519 "buckets": null,
520 "mode": "time",
521 "name": null,
522 "show": true,
523 "values": []
524 },
525 "yaxes": [
526 {
527 "decimals": null,
528 "format": "percentunit",
529 "label": "",
530 "logBase": 1,
531 "max": "1",
532 "min": null,
533 "show": true
534 },
535 {
536 "format": "short",
537 "label": null,
538 "logBase": 1,
539 "max": null,
540 "min": null,
541 "show": true
542 }
543 ],
544 "yaxis": {
545 "align": false,
546 "alignLevel": null
547 }
548 },
549 {
550 "aliasColors": {},
551 "bars": false,
552 "dashLength": 10,
553 "dashes": false,
554 "datasource": {
555 "type": "prometheus",
556 "uid": "${datasource}"
557 },
558 "fill": 0,
559 "gridPos": {
560 "h": 7,
561 "w": 8,
562 "x": 8,
563 "y": 8
564 },
565 "id": 2,
566 "legend": {
567 "avg": false,
568 "current": false,
569 "max": false,
570 "min": false,
571 "show": false,
572 "total": false,
573 "values": false
574 },
575 "lines": true,
576 "linewidth": 2,
577 "links": [],
578 "nullPointMode": "null",
579 "options": {},
580 "percentage": false,
581 "pointradius": 5,
582 "points": false,
583 "renderer": "flot",
584 "seriesOverrides": [],
585 "spaceLength": 10,
586 "stack": false,
587 "steppedLine": false,
588 "targets": [
589 {
590 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\", tls=\"true\"}[$__rate_interval])) by (pod)",
591 "format": "time_series",
592 "intervalFactor": 1,
593 "legendFormat": "🔒po/{{pod}}",
594 "refId": "A"
595 },
596 {
597 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\", tls!=\"true\"}[$__rate_interval])) by (pod)",
598 "format": "time_series",
599 "intervalFactor": 1,
600 "legendFormat": "po/{{pod}}",
601 "refId": "B"
602 }
603 ],
604 "thresholds": [],
605 "timeFrom": null,
606 "timeRegions": [],
607 "timeShift": null,
608 "title": "REQUEST RATE",
609 "tooltip": {
610 "shared": true,
611 "sort": 2,
612 "value_type": "individual"
613 },
614 "type": "graph",
615 "xaxis": {
616 "buckets": null,
617 "mode": "time",
618 "name": null,
619 "show": true,
620 "values": []
621 },
622 "yaxes": [
623 {
624 "decimals": null,
625 "format": "rps",
626 "label": "",
627 "logBase": 1,
628 "max": null,
629 "min": "0",
630 "show": true
631 },
632 {
633 "format": "short",
634 "label": null,
635 "logBase": 1,
636 "max": null,
637 "min": null,
638 "show": true
639 }
640 ],
641 "yaxis": {
642 "align": false,
643 "alignLevel": null
644 }
645 },
646 {
647 "aliasColors": {},
648 "bars": false,
649 "dashLength": 10,
650 "dashes": false,
651 "datasource": {
652 "type": "prometheus",
653 "uid": "${datasource}"
654 },
655 "fill": 1,
656 "gridPos": {
657 "h": 7,
658 "w": 8,
659 "x": 16,
660 "y": 8
661 },
662 "id": 68,
663 "legend": {
664 "avg": false,
665 "current": false,
666 "max": false,
667 "min": false,
668 "show": false,
669 "total": false,
670 "values": false
671 },
672 "lines": true,
673 "linewidth": 2,
674 "links": [],
675 "nullPointMode": "null",
676 "options": {},
677 "percentage": false,
678 "pointradius": 5,
679 "points": false,
680 "renderer": "flot",
681 "seriesOverrides": [],
682 "spaceLength": 10,
683 "stack": false,
684 "steppedLine": false,
685 "targets": [
686 {
687 "expr": "histogram_quantile(0.5, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) by (le, pod))",
688 "format": "time_series",
689 "intervalFactor": 1,
690 "legendFormat": "p50 po/{{pod}}",
691 "refId": "A"
692 },
693 {
694 "expr": "histogram_quantile(0.95, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) by (le, pod))",
695 "format": "time_series",
696 "hide": false,
697 "intervalFactor": 1,
698 "legendFormat": "p95 po/{{pod}}",
699 "refId": "B"
700 },
701 {
702 "expr": "histogram_quantile(0.99, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"inbound\"}[$__rate_interval])) by (le, pod))",
703 "format": "time_series",
704 "intervalFactor": 1,
705 "legendFormat": "p99 po/{{pod}}",
706 "refId": "C"
707 }
708 ],
709 "thresholds": [],
710 "timeFrom": null,
711 "timeRegions": [],
712 "timeShift": null,
713 "title": "LATENCY",
714 "tooltip": {
715 "shared": true,
716 "sort": 2,
717 "value_type": "individual"
718 },
719 "type": "graph",
720 "xaxis": {
721 "buckets": null,
722 "mode": "time",
723 "name": null,
724 "show": true,
725 "values": []
726 },
727 "yaxes": [
728 {
729 "decimals": null,
730 "format": "ms",
731 "label": "",
732 "logBase": 1,
733 "max": null,
734 "min": null,
735 "show": true
736 },
737 {
738 "format": "short",
739 "label": null,
740 "logBase": 1,
741 "max": null,
742 "min": null,
743 "show": true
744 }
745 ],
746 "yaxis": {
747 "align": false,
748 "alignLevel": null
749 }
750 },
751 {
752 "collapsed": true,
753 "gridPos": {
754 "h": 1,
755 "w": 24,
756 "x": 0,
757 "y": 15
758 },
759 "id": 201,
760 "panels": [
761 {
762 "aliasColors": {},
763 "bars": false,
764 "dashLength": 10,
765 "dashes": false,
766 "datasource": {
767 "type": "prometheus",
768 "uid": "${datasource}"
769 },
770 "fill": 1,
771 "gridPos": {
772 "h": 8,
773 "w": 8,
774 "x": 0,
775 "y": 16
776 },
777 "id": 173,
778 "legend": {
779 "avg": false,
780 "current": false,
781 "max": false,
782 "min": false,
783 "show": false,
784 "total": false,
785 "values": false
786 },
787 "lines": true,
788 "linewidth": 2,
789 "links": [],
790 "nullPointMode": "null",
791 "options": {},
792 "percentage": false,
793 "pointradius": 5,
794 "points": false,
795 "renderer": "flot",
796 "seriesOverrides": [],
797 "spaceLength": 10,
798 "stack": false,
799 "steppedLine": false,
800 "targets": [
801 {
802 "expr": "tcp_close_total{namespace=\"$namespace\", pod=\"$pod\" ,deployment=\"$deployment\", direction=\"inbound\",errno!=\"\"}",
803 "format": "time_series",
804 "intervalFactor": 1,
805 "legendFormat": "{{peer}} {{errno}}",
806 "refId": "A"
807 }
808 ],
809 "thresholds": [],
810 "timeFrom": null,
811 "timeRegions": [],
812 "timeShift": null,
813 "title": "TCP CONNECTIONS FAILURES",
814 "tooltip": {
815 "shared": true,
816 "sort": 0,
817 "value_type": "individual"
818 },
819 "type": "graph",
820 "xaxis": {
821 "buckets": null,
822 "mode": "time",
823 "name": null,
824 "show": true,
825 "values": []
826 },
827 "yaxes": [
828 {
829 "format": "short",
830 "label": null,
831 "logBase": 1,
832 "max": null,
833 "min": "0",
834 "show": true
835 },
836 {
837 "format": "short",
838 "label": null,
839 "logBase": 1,
840 "max": null,
841 "min": null,
842 "show": true
843 }
844 ],
845 "yaxis": {
846 "align": false,
847 "alignLevel": null
848 }
849 },
850 {
851 "aliasColors": {},
852 "bars": false,
853 "dashLength": 10,
854 "dashes": false,
855 "datasource": {
856 "type": "prometheus",
857 "uid": "${datasource}"
858 },
859 "fill": 1,
860 "gridPos": {
861 "h": 8,
862 "w": 8,
863 "x": 8,
864 "y": 16
865 },
866 "id": 175,
867 "legend": {
868 "avg": false,
869 "current": false,
870 "max": false,
871 "min": false,
872 "show": false,
873 "total": false,
874 "values": false
875 },
876 "lines": true,
877 "linewidth": 2,
878 "links": [],
879 "nullPointMode": "null",
880 "options": {},
881 "percentage": false,
882 "pointradius": 5,
883 "points": false,
884 "renderer": "flot",
885 "seriesOverrides": [],
886 "spaceLength": 10,
887 "stack": false,
888 "steppedLine": false,
889 "targets": [
890 {
891 "expr": "tcp_open_connections{namespace=\"$namespace\", pod=\"$pod\" ,deployment=\"$deployment\", direction=\"inbound\"}",
892 "format": "time_series",
893 "intervalFactor": 1,
894 "legendFormat": "{{peer}}",
895 "refId": "A"
896 }
897 ],
898 "thresholds": [],
899 "timeFrom": null,
900 "timeRegions": [],
901 "timeShift": null,
902 "title": "TCP CONNECTIONS OPEN",
903 "tooltip": {
904 "shared": true,
905 "sort": 0,
906 "value_type": "individual"
907 },
908 "type": "graph",
909 "xaxis": {
910 "buckets": null,
911 "mode": "time",
912 "name": null,
913 "show": true,
914 "values": []
915 },
916 "yaxes": [
917 {
918 "format": "short",
919 "label": null,
920 "logBase": 1,
921 "max": null,
922 "min": "0",
923 "show": true
924 },
925 {
926 "format": "short",
927 "label": null,
928 "logBase": 1,
929 "max": null,
930 "min": null,
931 "show": true
932 }
933 ],
934 "yaxis": {
935 "align": false,
936 "alignLevel": null
937 }
938 },
939 {
940 "cards": {
941 "cardPadding": null,
942 "cardRound": null
943 },
944 "color": {
945 "cardColor": "#b4ff00",
946 "colorScale": "sqrt",
947 "colorScheme": "interpolateOranges",
948 "exponent": 0.5,
949 "mode": "spectrum"
950 },
951 "dataFormat": "timeseries",
952 "datasource": {
953 "type": "prometheus",
954 "uid": "${datasource}"
955 },
956 "gridPos": {
957 "h": 8,
958 "w": 8,
959 "x": 16,
960 "y": 16
961 },
962 "heatmap": {},
963 "hideZeroBuckets": false,
964 "highlightCards": true,
965 "id": 177,
966 "legend": {
967 "show": false
968 },
969 "links": [],
970 "options": {},
971 "reverseYBuckets": false,
972 "targets": [
973 {
974 "expr": "tcp_connection_duration_ms_bucket{namespace=\"$namespace\", pod=\"$pod\" ,deployment=\"$deployment\", direction=\"inbound\"}",
975 "format": "heatmap",
976 "intervalFactor": 1,
977 "refId": "A"
978 }
979 ],
980 "title": "TCP CONNECTION DURATION",
981 "tooltip": {
982 "show": true,
983 "showHistogram": true
984 },
985 "type": "heatmap",
986 "xAxis": {
987 "show": true
988 },
989 "xBucketNumber": null,
990 "xBucketSize": null,
991 "yAxis": {
992 "decimals": null,
993 "format": "ms",
994 "logBase": 1,
995 "max": null,
996 "min": "0",
997 "show": true,
998 "splitFactor": null
999 },
1000 "yBucketBound": "auto",
1001 "yBucketNumber": null,
1002 "yBucketSize": null
1003 }
1004 ],
1005 "title": "Inbound TCP Metrics",
1006 "type": "row"
1007 },
1008 {
1009 "collapsed": false,
1010 "gridPos": {
1011 "h": 1,
1012 "w": 24,
1013 "x": 0,
1014 "y": 16
1015 },
1016 "id": 199,
1017 "panels": [],
1018 "title": "",
1019 "type": "row"
1020 },
1021 {
1022 "content": "<div class=\"text-center dashboard-header\">\n <span>INBOUND PODS</span>\n</div>",
1023 "gridPos": {
1024 "h": 2,
1025 "w": 24,
1026 "x": 0,
1027 "y": 17
1028 },
1029 "id": 80,
1030 "links": [],
1031 "mode": "html",
1032 "options": {},
1033 "title": "",
1034 "transparent": true,
1035 "type": "text"
1036 },
1037 {
1038 "aliasColors": {},
1039 "bars": false,
1040 "dashLength": 10,
1041 "dashes": false,
1042 "datasource": {
1043 "type": "prometheus",
1044 "uid": "${datasource}"
1045 },
1046 "fill": 1,
1047 "gridPos": {
1048 "h": 7,
1049 "w": 8,
1050 "x": 0,
1051 "y": 19
1052 },
1053 "id": 81,
1054 "legend": {
1055 "avg": false,
1056 "current": false,
1057 "max": false,
1058 "min": false,
1059 "show": false,
1060 "total": false,
1061 "values": false
1062 },
1063 "lines": true,
1064 "linewidth": 2,
1065 "links": [],
1066 "nullPointMode": "null",
1067 "options": {},
1068 "percentage": false,
1069 "pointradius": 5,
1070 "points": false,
1071 "renderer": "flot",
1072 "seriesOverrides": [],
1073 "spaceLength": 10,
1074 "stack": false,
1075 "steppedLine": false,
1076 "targets": [
1077 {
1078 "expr": "sum(irate(response_total{classification=\"success\", dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (pod) / sum(irate(response_total{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (pod)",
1079 "format": "time_series",
1080 "interval": "",
1081 "intervalFactor": 1,
1082 "legendFormat": "po/{{pod}}",
1083 "refId": "A"
1084 }
1085 ],
1086 "thresholds": [],
1087 "timeFrom": null,
1088 "timeRegions": [],
1089 "timeShift": null,
1090 "title": "SUCCESS RATE",
1091 "tooltip": {
1092 "shared": true,
1093 "sort": 2,
1094 "value_type": "individual"
1095 },
1096 "type": "graph",
1097 "xaxis": {
1098 "buckets": null,
1099 "mode": "time",
1100 "name": null,
1101 "show": true,
1102 "values": []
1103 },
1104 "yaxes": [
1105 {
1106 "decimals": null,
1107 "format": "percentunit",
1108 "label": "",
1109 "logBase": 1,
1110 "max": "1",
1111 "min": null,
1112 "show": true
1113 },
1114 {
1115 "format": "short",
1116 "label": null,
1117 "logBase": 1,
1118 "max": null,
1119 "min": null,
1120 "show": true
1121 }
1122 ],
1123 "yaxis": {
1124 "align": false,
1125 "alignLevel": null
1126 }
1127 },
1128 {
1129 "aliasColors": {},
1130 "bars": false,
1131 "dashLength": 10,
1132 "dashes": false,
1133 "datasource": {
1134 "type": "prometheus",
1135 "uid": "${datasource}"
1136 },
1137 "fill": 0,
1138 "gridPos": {
1139 "h": 7,
1140 "w": 8,
1141 "x": 8,
1142 "y": 19
1143 },
1144 "id": 82,
1145 "legend": {
1146 "avg": false,
1147 "current": false,
1148 "max": false,
1149 "min": false,
1150 "show": false,
1151 "total": false,
1152 "values": false
1153 },
1154 "lines": true,
1155 "linewidth": 2,
1156 "links": [],
1157 "nullPointMode": "null",
1158 "options": {},
1159 "percentage": false,
1160 "pointradius": 5,
1161 "points": false,
1162 "renderer": "flot",
1163 "seriesOverrides": [],
1164 "spaceLength": 10,
1165 "stack": false,
1166 "steppedLine": false,
1167 "targets": [
1168 {
1169 "expr": "sum(irate(request_total{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (pod)",
1170 "format": "time_series",
1171 "intervalFactor": 1,
1172 "legendFormat": "🔒po/{{pod}}",
1173 "refId": "A"
1174 },
1175 {
1176 "expr": "sum(irate(request_total{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (pod)",
1177 "format": "time_series",
1178 "intervalFactor": 1,
1179 "legendFormat": "po/{{pod}}",
1180 "refId": "B"
1181 }
1182 ],
1183 "thresholds": [],
1184 "timeFrom": null,
1185 "timeRegions": [],
1186 "timeShift": null,
1187 "title": "REQUEST RATE",
1188 "tooltip": {
1189 "shared": true,
1190 "sort": 2,
1191 "value_type": "individual"
1192 },
1193 "type": "graph",
1194 "xaxis": {
1195 "buckets": null,
1196 "mode": "time",
1197 "name": null,
1198 "show": true,
1199 "values": []
1200 },
1201 "yaxes": [
1202 {
1203 "decimals": null,
1204 "format": "rps",
1205 "label": "",
1206 "logBase": 1,
1207 "max": null,
1208 "min": "0",
1209 "show": true
1210 },
1211 {
1212 "format": "short",
1213 "label": null,
1214 "logBase": 1,
1215 "max": null,
1216 "min": null,
1217 "show": true
1218 }
1219 ],
1220 "yaxis": {
1221 "align": false,
1222 "alignLevel": null
1223 }
1224 },
1225 {
1226 "aliasColors": {},
1227 "bars": false,
1228 "dashLength": 10,
1229 "dashes": false,
1230 "datasource": {
1231 "type": "prometheus",
1232 "uid": "${datasource}"
1233 },
1234 "fill": 1,
1235 "gridPos": {
1236 "h": 7,
1237 "w": 8,
1238 "x": 16,
1239 "y": 19
1240 },
1241 "id": 83,
1242 "legend": {
1243 "avg": false,
1244 "current": false,
1245 "max": false,
1246 "min": false,
1247 "show": false,
1248 "total": false,
1249 "values": false
1250 },
1251 "lines": true,
1252 "linewidth": 2,
1253 "links": [],
1254 "nullPointMode": "null",
1255 "options": {},
1256 "percentage": false,
1257 "pointradius": 5,
1258 "points": false,
1259 "renderer": "flot",
1260 "seriesOverrides": [],
1261 "spaceLength": 10,
1262 "stack": false,
1263 "steppedLine": false,
1264 "targets": [
1265 {
1266 "expr": "histogram_quantile(0.5, sum(irate(response_latency_ms_bucket{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1267 "format": "time_series",
1268 "intervalFactor": 1,
1269 "legendFormat": "p50 po/{{pod}}",
1270 "refId": "A"
1271 },
1272 {
1273 "expr": "histogram_quantile(0.95, sum(irate(response_latency_ms_bucket{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1274 "format": "time_series",
1275 "hide": false,
1276 "intervalFactor": 1,
1277 "legendFormat": "p95 po/{{pod}}",
1278 "refId": "B"
1279 },
1280 {
1281 "expr": "histogram_quantile(0.99, sum(irate(response_latency_ms_bucket{dst_namespace=\"$namespace\", dst_pod!=\"\", dst_pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1282 "format": "time_series",
1283 "intervalFactor": 1,
1284 "legendFormat": "p99 po/{{pod}}",
1285 "refId": "C"
1286 }
1287 ],
1288 "thresholds": [],
1289 "timeFrom": null,
1290 "timeRegions": [],
1291 "timeShift": null,
1292 "title": "LATENCY",
1293 "tooltip": {
1294 "shared": true,
1295 "sort": 2,
1296 "value_type": "individual"
1297 },
1298 "type": "graph",
1299 "xaxis": {
1300 "buckets": null,
1301 "mode": "time",
1302 "name": null,
1303 "show": true,
1304 "values": []
1305 },
1306 "yaxes": [
1307 {
1308 "decimals": null,
1309 "format": "ms",
1310 "label": "",
1311 "logBase": 1,
1312 "max": null,
1313 "min": null,
1314 "show": true
1315 },
1316 {
1317 "format": "short",
1318 "label": null,
1319 "logBase": 1,
1320 "max": null,
1321 "min": null,
1322 "show": true
1323 }
1324 ],
1325 "yaxis": {
1326 "align": false,
1327 "alignLevel": null
1328 }
1329 },
1330 {
1331 "content": "<div class=\"text-center dashboard-header\">\n <span>OUTBOUND TRAFFIC</span>\n</div>",
1332 "gridPos": {
1333 "h": 2,
1334 "w": 24,
1335 "x": 0,
1336 "y": 26
1337 },
1338 "id": 88,
1339 "links": [],
1340 "mode": "html",
1341 "options": {},
1342 "title": "",
1343 "transparent": true,
1344 "type": "text"
1345 },
1346 {
1347 "aliasColors": {},
1348 "bars": false,
1349 "dashLength": 10,
1350 "dashes": false,
1351 "datasource": {
1352 "type": "prometheus",
1353 "uid": "${datasource}"
1354 },
1355 "fill": 1,
1356 "gridPos": {
1357 "h": 7,
1358 "w": 8,
1359 "x": 0,
1360 "y": 28
1361 },
1362 "id": 89,
1363 "legend": {
1364 "avg": false,
1365 "current": false,
1366 "max": false,
1367 "min": false,
1368 "show": false,
1369 "total": false,
1370 "values": false
1371 },
1372 "lines": true,
1373 "linewidth": 2,
1374 "links": [],
1375 "nullPointMode": "null",
1376 "options": {},
1377 "percentage": false,
1378 "pointradius": 5,
1379 "points": false,
1380 "renderer": "flot",
1381 "seriesOverrides": [],
1382 "spaceLength": 10,
1383 "stack": false,
1384 "steppedLine": false,
1385 "targets": [
1386 {
1387 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (pod) / sum(irate(response_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (pod)",
1388 "format": "time_series",
1389 "interval": "",
1390 "intervalFactor": 1,
1391 "legendFormat": "po/{{pod}}",
1392 "refId": "A"
1393 }
1394 ],
1395 "thresholds": [],
1396 "timeFrom": null,
1397 "timeRegions": [],
1398 "timeShift": null,
1399 "title": "SUCCESS RATE",
1400 "tooltip": {
1401 "shared": true,
1402 "sort": 2,
1403 "value_type": "individual"
1404 },
1405 "type": "graph",
1406 "xaxis": {
1407 "buckets": null,
1408 "mode": "time",
1409 "name": null,
1410 "show": true,
1411 "values": []
1412 },
1413 "yaxes": [
1414 {
1415 "decimals": null,
1416 "format": "percentunit",
1417 "label": "",
1418 "logBase": 1,
1419 "max": "1",
1420 "min": null,
1421 "show": true
1422 },
1423 {
1424 "format": "short",
1425 "label": null,
1426 "logBase": 1,
1427 "max": null,
1428 "min": null,
1429 "show": true
1430 }
1431 ],
1432 "yaxis": {
1433 "align": false,
1434 "alignLevel": null
1435 }
1436 },
1437 {
1438 "aliasColors": {},
1439 "bars": false,
1440 "dashLength": 10,
1441 "dashes": false,
1442 "datasource": {
1443 "type": "prometheus",
1444 "uid": "${datasource}"
1445 },
1446 "fill": 0,
1447 "gridPos": {
1448 "h": 7,
1449 "w": 8,
1450 "x": 8,
1451 "y": 28
1452 },
1453 "id": 90,
1454 "legend": {
1455 "avg": false,
1456 "current": false,
1457 "max": false,
1458 "min": false,
1459 "show": false,
1460 "total": false,
1461 "values": false
1462 },
1463 "lines": true,
1464 "linewidth": 2,
1465 "links": [],
1466 "nullPointMode": "null",
1467 "options": {},
1468 "percentage": false,
1469 "pointradius": 5,
1470 "points": false,
1471 "renderer": "flot",
1472 "seriesOverrides": [],
1473 "spaceLength": 10,
1474 "stack": false,
1475 "steppedLine": false,
1476 "targets": [
1477 {
1478 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (pod)",
1479 "format": "time_series",
1480 "intervalFactor": 1,
1481 "legendFormat": "🔒po/{{pod}}",
1482 "refId": "A"
1483 },
1484 {
1485 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (pod)",
1486 "format": "time_series",
1487 "intervalFactor": 1,
1488 "legendFormat": "po/{{pod}}",
1489 "refId": "B"
1490 }
1491 ],
1492 "thresholds": [],
1493 "timeFrom": null,
1494 "timeRegions": [],
1495 "timeShift": null,
1496 "title": "REQUEST RATE",
1497 "tooltip": {
1498 "shared": true,
1499 "sort": 2,
1500 "value_type": "individual"
1501 },
1502 "type": "graph",
1503 "xaxis": {
1504 "buckets": null,
1505 "mode": "time",
1506 "name": null,
1507 "show": true,
1508 "values": []
1509 },
1510 "yaxes": [
1511 {
1512 "decimals": null,
1513 "format": "rps",
1514 "label": "",
1515 "logBase": 1,
1516 "max": null,
1517 "min": "0",
1518 "show": true
1519 },
1520 {
1521 "format": "short",
1522 "label": null,
1523 "logBase": 1,
1524 "max": null,
1525 "min": null,
1526 "show": true
1527 }
1528 ],
1529 "yaxis": {
1530 "align": false,
1531 "alignLevel": null
1532 }
1533 },
1534 {
1535 "aliasColors": {},
1536 "bars": false,
1537 "dashLength": 10,
1538 "dashes": false,
1539 "datasource": {
1540 "type": "prometheus",
1541 "uid": "${datasource}"
1542 },
1543 "fill": 1,
1544 "gridPos": {
1545 "h": 7,
1546 "w": 8,
1547 "x": 16,
1548 "y": 28
1549 },
1550 "id": 91,
1551 "legend": {
1552 "avg": false,
1553 "current": false,
1554 "max": false,
1555 "min": false,
1556 "show": false,
1557 "total": false,
1558 "values": false
1559 },
1560 "lines": true,
1561 "linewidth": 2,
1562 "links": [],
1563 "nullPointMode": "null",
1564 "options": {},
1565 "percentage": false,
1566 "pointradius": 5,
1567 "points": false,
1568 "renderer": "flot",
1569 "seriesOverrides": [],
1570 "spaceLength": 10,
1571 "stack": false,
1572 "steppedLine": false,
1573 "targets": [
1574 {
1575 "expr": "histogram_quantile(0.5, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1576 "format": "time_series",
1577 "intervalFactor": 1,
1578 "legendFormat": "p50 po/{{pod}}",
1579 "refId": "A"
1580 },
1581 {
1582 "expr": "histogram_quantile(0.95, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1583 "format": "time_series",
1584 "hide": false,
1585 "intervalFactor": 1,
1586 "legendFormat": "p95 po/{{pod}}",
1587 "refId": "B"
1588 },
1589 {
1590 "expr": "histogram_quantile(0.99, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, pod))",
1591 "format": "time_series",
1592 "intervalFactor": 1,
1593 "legendFormat": "p99 po/{{pod}}",
1594 "refId": "C"
1595 }
1596 ],
1597 "thresholds": [],
1598 "timeFrom": null,
1599 "timeRegions": [],
1600 "timeShift": null,
1601 "title": "LATENCY",
1602 "tooltip": {
1603 "shared": true,
1604 "sort": 2,
1605 "value_type": "individual"
1606 },
1607 "type": "graph",
1608 "xaxis": {
1609 "buckets": null,
1610 "mode": "time",
1611 "name": null,
1612 "show": true,
1613 "values": []
1614 },
1615 "yaxes": [
1616 {
1617 "decimals": null,
1618 "format": "ms",
1619 "label": "",
1620 "logBase": 1,
1621 "max": null,
1622 "min": null,
1623 "show": true
1624 },
1625 {
1626 "format": "short",
1627 "label": null,
1628 "logBase": 1,
1629 "max": null,
1630 "min": null,
1631 "show": true
1632 }
1633 ],
1634 "yaxis": {
1635 "align": false,
1636 "alignLevel": null
1637 }
1638 },
1639 {
1640 "collapsed": true,
1641 "gridPos": {
1642 "h": 1,
1643 "w": 24,
1644 "x": 0,
1645 "y": 35
1646 },
1647 "id": 197,
1648 "panels": [
1649 {
1650 "aliasColors": {},
1651 "bars": false,
1652 "dashLength": 10,
1653 "dashes": false,
1654 "datasource": {
1655 "type": "prometheus",
1656 "uid": "${datasource}"
1657 },
1658 "fill": 1,
1659 "gridPos": {
1660 "h": 8,
1661 "w": 8,
1662 "x": 0,
1663 "y": 36
1664 },
1665 "id": 191,
1666 "legend": {
1667 "avg": false,
1668 "current": false,
1669 "max": false,
1670 "min": false,
1671 "show": false,
1672 "total": false,
1673 "values": false
1674 },
1675 "lines": true,
1676 "linewidth": 2,
1677 "links": [],
1678 "nullPointMode": "null",
1679 "options": {},
1680 "percentage": false,
1681 "pointradius": 5,
1682 "points": false,
1683 "renderer": "flot",
1684 "seriesOverrides": [],
1685 "spaceLength": 10,
1686 "stack": false,
1687 "steppedLine": false,
1688 "targets": [
1689 {
1690 "expr": "tcp_close_total{namespace=\"$namespace\", pod=\"$pod\", deployment=\"$deployment\", direction=\"outbound\",errno!=\"\"}",
1691 "format": "time_series",
1692 "intervalFactor": 1,
1693 "legendFormat": "{{peer}} {{errno}}",
1694 "refId": "A"
1695 }
1696 ],
1697 "thresholds": [],
1698 "timeFrom": null,
1699 "timeRegions": [],
1700 "timeShift": null,
1701 "title": "TCP CONNECTION FAILURES",
1702 "tooltip": {
1703 "shared": true,
1704 "sort": 0,
1705 "value_type": "individual"
1706 },
1707 "type": "graph",
1708 "xaxis": {
1709 "buckets": null,
1710 "mode": "time",
1711 "name": null,
1712 "show": true,
1713 "values": []
1714 },
1715 "yaxes": [
1716 {
1717 "format": "none",
1718 "label": null,
1719 "logBase": 1,
1720 "max": null,
1721 "min": "0",
1722 "show": true
1723 },
1724 {
1725 "format": "short",
1726 "label": null,
1727 "logBase": 1,
1728 "max": null,
1729 "min": null,
1730 "show": true
1731 }
1732 ],
1733 "yaxis": {
1734 "align": false,
1735 "alignLevel": null
1736 }
1737 },
1738 {
1739 "aliasColors": {},
1740 "bars": false,
1741 "dashLength": 10,
1742 "dashes": false,
1743 "datasource": {
1744 "type": "prometheus",
1745 "uid": "${datasource}"
1746 },
1747 "fill": 1,
1748 "gridPos": {
1749 "h": 8,
1750 "w": 8,
1751 "x": 8,
1752 "y": 36
1753 },
1754 "id": 183,
1755 "legend": {
1756 "avg": false,
1757 "current": false,
1758 "max": false,
1759 "min": false,
1760 "show": false,
1761 "total": false,
1762 "values": false
1763 },
1764 "lines": true,
1765 "linewidth": 2,
1766 "links": [],
1767 "nullPointMode": "null",
1768 "options": {},
1769 "percentage": false,
1770 "pointradius": 5,
1771 "points": false,
1772 "renderer": "flot",
1773 "seriesOverrides": [],
1774 "spaceLength": 10,
1775 "stack": false,
1776 "steppedLine": false,
1777 "targets": [
1778 {
1779 "expr": "tcp_open_connections{namespace=\"$namespace\", pod=\"$pod\" ,deployment=\"$deployment\", direction=\"outbound\"}",
1780 "format": "time_series",
1781 "intervalFactor": 1,
1782 "legendFormat": "{{peer}}",
1783 "refId": "A"
1784 }
1785 ],
1786 "thresholds": [],
1787 "timeFrom": null,
1788 "timeRegions": [],
1789 "timeShift": null,
1790 "title": "TCP CONNECTIONS OPEN",
1791 "tooltip": {
1792 "shared": true,
1793 "sort": 0,
1794 "value_type": "individual"
1795 },
1796 "type": "graph",
1797 "xaxis": {
1798 "buckets": null,
1799 "mode": "time",
1800 "name": null,
1801 "show": true,
1802 "values": []
1803 },
1804 "yaxes": [
1805 {
1806 "format": "short",
1807 "label": null,
1808 "logBase": 1,
1809 "max": null,
1810 "min": "0",
1811 "show": true
1812 },
1813 {
1814 "format": "short",
1815 "label": null,
1816 "logBase": 1,
1817 "max": null,
1818 "min": null,
1819 "show": true
1820 }
1821 ],
1822 "yaxis": {
1823 "align": false,
1824 "alignLevel": null
1825 }
1826 },
1827 {
1828 "cards": {
1829 "cardPadding": null,
1830 "cardRound": null
1831 },
1832 "color": {
1833 "cardColor": "#b4ff00",
1834 "colorScale": "sqrt",
1835 "colorScheme": "interpolateOranges",
1836 "exponent": 0.5,
1837 "mode": "spectrum"
1838 },
1839 "dataFormat": "timeseries",
1840 "datasource": {
1841 "type": "prometheus",
1842 "uid": "${datasource}"
1843 },
1844 "gridPos": {
1845 "h": 8,
1846 "w": 8,
1847 "x": 16,
1848 "y": 36
1849 },
1850 "heatmap": {},
1851 "hideZeroBuckets": false,
1852 "highlightCards": true,
1853 "id": 189,
1854 "legend": {
1855 "show": false
1856 },
1857 "links": [],
1858 "options": {},
1859 "reverseYBuckets": false,
1860 "targets": [
1861 {
1862 "expr": "tcp_connection_duration_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", deployment=\"$deployment\", direction=\"outbound\"}",
1863 "format": "heatmap",
1864 "intervalFactor": 1,
1865 "refId": "A"
1866 }
1867 ],
1868 "title": "TCP CONNECTION DURATION",
1869 "tooltip": {
1870 "show": true,
1871 "showHistogram": true
1872 },
1873 "type": "heatmap",
1874 "xAxis": {
1875 "show": true
1876 },
1877 "xBucketNumber": null,
1878 "xBucketSize": null,
1879 "yAxis": {
1880 "decimals": null,
1881 "format": "ms",
1882 "logBase": 1,
1883 "max": null,
1884 "min": "0",
1885 "show": true,
1886 "splitFactor": null
1887 },
1888 "yBucketBound": "auto",
1889 "yBucketNumber": null,
1890 "yBucketSize": null
1891 }
1892 ],
1893 "title": "Outbound TCP Metrics",
1894 "type": "row"
1895 },
1896 {
1897 "collapsed": false,
1898 "gridPos": {
1899 "h": 1,
1900 "w": 24,
1901 "x": 0,
1902 "y": 36
1903 },
1904 "id": 187,
1905 "panels": [],
1906 "title": "",
1907 "type": "row"
1908 },
1909 {
1910 "content": "<div class=\"text-center dashboard-header\">\n <span>OUTBOUND PODS</span>\n</div>",
1911 "gridPos": {
1912 "h": 2,
1913 "w": 24,
1914 "x": 0,
1915 "y": 37
1916 },
1917 "id": 84,
1918 "links": [],
1919 "mode": "html",
1920 "options": {},
1921 "title": "",
1922 "transparent": true,
1923 "type": "text"
1924 },
1925 {
1926 "aliasColors": {},
1927 "bars": false,
1928 "dashLength": 10,
1929 "dashes": false,
1930 "datasource": {
1931 "type": "prometheus",
1932 "uid": "${datasource}"
1933 },
1934 "fill": 1,
1935 "gridPos": {
1936 "h": 7,
1937 "w": 8,
1938 "x": 0,
1939 "y": 39
1940 },
1941 "id": 85,
1942 "legend": {
1943 "avg": false,
1944 "current": false,
1945 "max": false,
1946 "min": false,
1947 "show": false,
1948 "total": false,
1949 "values": false
1950 },
1951 "lines": true,
1952 "linewidth": 2,
1953 "links": [],
1954 "nullPointMode": "null",
1955 "options": {},
1956 "percentage": false,
1957 "pointradius": 5,
1958 "points": false,
1959 "renderer": "flot",
1960 "seriesOverrides": [],
1961 "spaceLength": 10,
1962 "stack": false,
1963 "steppedLine": false,
1964 "targets": [
1965 {
1966 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (dst_pod) / sum(irate(response_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (dst_pod)",
1967 "format": "time_series",
1968 "interval": "",
1969 "intervalFactor": 1,
1970 "legendFormat": "po/{{dst_pod}}",
1971 "refId": "A"
1972 }
1973 ],
1974 "thresholds": [],
1975 "timeFrom": null,
1976 "timeRegions": [],
1977 "timeShift": null,
1978 "title": "SUCCESS RATE",
1979 "tooltip": {
1980 "shared": true,
1981 "sort": 2,
1982 "value_type": "individual"
1983 },
1984 "type": "graph",
1985 "xaxis": {
1986 "buckets": null,
1987 "mode": "time",
1988 "name": null,
1989 "show": true,
1990 "values": []
1991 },
1992 "yaxes": [
1993 {
1994 "decimals": null,
1995 "format": "percentunit",
1996 "label": "",
1997 "logBase": 1,
1998 "max": "1",
1999 "min": null,
2000 "show": true
2001 },
2002 {
2003 "format": "short",
2004 "label": null,
2005 "logBase": 1,
2006 "max": null,
2007 "min": null,
2008 "show": true
2009 }
2010 ],
2011 "yaxis": {
2012 "align": false,
2013 "alignLevel": null
2014 }
2015 },
2016 {
2017 "aliasColors": {},
2018 "bars": false,
2019 "dashLength": 10,
2020 "dashes": false,
2021 "datasource": {
2022 "type": "prometheus",
2023 "uid": "${datasource}"
2024 },
2025 "fill": 0,
2026 "gridPos": {
2027 "h": 7,
2028 "w": 8,
2029 "x": 8,
2030 "y": 39
2031 },
2032 "id": 86,
2033 "legend": {
2034 "avg": false,
2035 "current": false,
2036 "max": false,
2037 "min": false,
2038 "show": false,
2039 "total": false,
2040 "values": false
2041 },
2042 "lines": true,
2043 "linewidth": 2,
2044 "links": [],
2045 "nullPointMode": "null",
2046 "options": {},
2047 "percentage": false,
2048 "pointradius": 5,
2049 "points": false,
2050 "renderer": "flot",
2051 "seriesOverrides": [],
2052 "spaceLength": 10,
2053 "stack": false,
2054 "steppedLine": false,
2055 "targets": [
2056 {
2057 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (dst_pod)",
2058 "format": "time_series",
2059 "intervalFactor": 1,
2060 "legendFormat": "🔒po/{{dst_pod}}",
2061 "refId": "A"
2062 },
2063 {
2064 "expr": "sum(irate(request_total{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (dst_pod)",
2065 "format": "time_series",
2066 "intervalFactor": 1,
2067 "legendFormat": "po/{{dst_pod}}",
2068 "refId": "B"
2069 }
2070 ],
2071 "thresholds": [],
2072 "timeFrom": null,
2073 "timeRegions": [],
2074 "timeShift": null,
2075 "title": "REQUEST RATE",
2076 "tooltip": {
2077 "shared": true,
2078 "sort": 2,
2079 "value_type": "individual"
2080 },
2081 "type": "graph",
2082 "xaxis": {
2083 "buckets": null,
2084 "mode": "time",
2085 "name": null,
2086 "show": true,
2087 "values": []
2088 },
2089 "yaxes": [
2090 {
2091 "decimals": null,
2092 "format": "rps",
2093 "label": "",
2094 "logBase": 1,
2095 "max": null,
2096 "min": "0",
2097 "show": true
2098 },
2099 {
2100 "format": "short",
2101 "label": null,
2102 "logBase": 1,
2103 "max": null,
2104 "min": null,
2105 "show": true
2106 }
2107 ],
2108 "yaxis": {
2109 "align": false,
2110 "alignLevel": null
2111 }
2112 },
2113 {
2114 "aliasColors": {},
2115 "bars": false,
2116 "dashLength": 10,
2117 "dashes": false,
2118 "datasource": {
2119 "type": "prometheus",
2120 "uid": "${datasource}"
2121 },
2122 "fill": 1,
2123 "gridPos": {
2124 "h": 7,
2125 "w": 8,
2126 "x": 16,
2127 "y": 39
2128 },
2129 "id": 87,
2130 "legend": {
2131 "avg": false,
2132 "current": false,
2133 "max": false,
2134 "min": false,
2135 "show": false,
2136 "total": false,
2137 "values": false
2138 },
2139 "lines": true,
2140 "linewidth": 2,
2141 "links": [],
2142 "nullPointMode": "null",
2143 "options": {},
2144 "percentage": false,
2145 "pointradius": 5,
2146 "points": false,
2147 "renderer": "flot",
2148 "seriesOverrides": [],
2149 "spaceLength": 10,
2150 "stack": false,
2151 "steppedLine": false,
2152 "targets": [
2153 {
2154 "expr": "histogram_quantile(0.5, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_pod))",
2155 "format": "time_series",
2156 "intervalFactor": 1,
2157 "legendFormat": "p50 po/{{dst_pod}}",
2158 "refId": "A"
2159 },
2160 {
2161 "expr": "histogram_quantile(0.95, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_pod))",
2162 "format": "time_series",
2163 "hide": false,
2164 "intervalFactor": 1,
2165 "legendFormat": "p95 po/{{dst_pod}}",
2166 "refId": "B"
2167 },
2168 {
2169 "expr": "histogram_quantile(0.99, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", pod=\"$pod\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_pod))",
2170 "format": "time_series",
2171 "intervalFactor": 1,
2172 "legendFormat": "p99 po/{{dst_pod}}",
2173 "refId": "C"
2174 }
2175 ],
2176 "thresholds": [],
2177 "timeFrom": null,
2178 "timeRegions": [],
2179 "timeShift": null,
2180 "title": "LATENCY",
2181 "tooltip": {
2182 "shared": true,
2183 "sort": 2,
2184 "value_type": "individual"
2185 },
2186 "type": "graph",
2187 "xaxis": {
2188 "buckets": null,
2189 "mode": "time",
2190 "name": null,
2191 "show": true,
2192 "values": []
2193 },
2194 "yaxes": [
2195 {
2196 "decimals": null,
2197 "format": "ms",
2198 "label": "",
2199 "logBase": 1,
2200 "max": null,
2201 "min": null,
2202 "show": true
2203 },
2204 {
2205 "format": "short",
2206 "label": null,
2207 "logBase": 1,
2208 "max": null,
2209 "min": null,
2210 "show": true
2211 }
2212 ],
2213 "yaxis": {
2214 "align": false,
2215 "alignLevel": null
2216 }
2217 },
2218 {
2219 "content": "<div>\n <div style=\"position: absolute; top: 0, left: 0\">\n <a href=\"https://linkerd.io\" target=\"_blank\"><img src=\"https://linkerd.io/images/identity/svg/linkerd_primary_color_white.svg\" style=\"height: 30px;\"></a>\n </div>\n <div id=\"version\" style=\"position: absolute; top: 0; right: 0; font-size: 15px\">\n </div>\n</div>\n<div style=\"display:none\">\n<script type=\"text/javascript\">\nvar localReqURL =\n window.location.href.substring(\n 0,\n window.location.href.indexOf(\n \"/grafana/\"\n )\n )+'/overview';\n\nfetch(localReqURL, {\n credentials: 'include',\n headers: {\n \"Content-Type\": \"text/html; charset=utf-8\",\n },\n})\n.then(response => response.text())\n.then(text => (new window.DOMParser()).parseFromString(text, \"text/html\"))\n.then(html => {\n var main = html.getElementById('main');\n var localVersion = main.getAttribute(\"data-release-version\");\n var versionElem = document.getElementById('version');\n\n var channel;\n var parts = localVersion.split(\"-\", 2);\n if (parts.length === 2) {\n channel = parts[0];\n versionElem.innerHTML += 'Running Linkerd ' + parts[1] + ' (' + parts[0] + ')' + '.<br>';\n } else {\n versionElem.innerHTML += 'Running Linkerd ' + localVersion + '.<br>';\n }\n var uuid = main.getAttribute(\"data-uuid\");\n\n fetch('https://versioncheck.linkerd.io/version.json?version='+localVersion+'&uuid='+uuid+'&source=grafana', {\n credentials: 'include',\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n })\n .then(response => response.json())\n .then(json => {\n if (!channel || !json[channel]) {\n versionElem.innerHTML += 'Version check failed.'\n } else if (json[channel] === localVersion) {\n versionElem.innerHTML += 'Linkerd is up to date.';\n } else {\n parts = json[channel].split(\"-\", 2);\n if (parts.length === 2) {\n versionElem.innerHTML += \"A new \"+parts[0]+\" version (\"+parts[1]+\") is available.\"\n } else {\n versionElem.innerHTML += \"A new version (\"+json[channel]+\") is available.\"\n }\n versionElem.innerHTML += \" <a href='https://versioncheck.linkerd.io/update' target='_blank'>Update now</a>.\";\n }\n });\n});\n</script>\n</div>",
2220 "gridPos": {
2221 "h": 3,
2222 "w": 24,
2223 "x": 0,
2224 "y": 46
2225 },
2226 "height": "1px",
2227 "id": 171,
2228 "links": [],
2229 "mode": "html",
2230 "options": {},
2231 "title": "",
2232 "transparent": true,
2233 "type": "text"
2234 }
2235 ],
2236 "refresh": "1m",
2237 "schemaVersion": 18,
2238 "style": "dark",
2239 "tags": [
2240 "linkerd"
2241 ],
2242 "templating": {
2243 "list": [
2244 {
2245 "current": {
2246 "text": "default",
2247 "value": "default"
2248 },
2249 "hide": 0,
2250 "label": "Data Source",
2251 "name": "datasource",
2252 "options": [],
2253 "query": "prometheus",
2254 "refresh": 1,
2255 "regex": "",
2256 "type": "datasource"
2257 },
2258 {
2259 "allValue": ".*",
2260 "current": {},
2261 "datasource": {
2262 "type": "prometheus",
2263 "uid": "${datasource}"
2264 },
2265 "definition": "",
2266 "hide": 0,
2267 "includeAll": false,
2268 "label": "Namespace",
2269 "multi": false,
2270 "name": "namespace",
2271 "options": [],
2272 "query": "label_values(process_start_time_seconds, namespace)",
2273 "refresh": 2,
2274 "regex": "",
2275 "skipUrlSync": false,
2276 "sort": 1,
2277 "tagValuesQuery": "",
2278 "tags": [],
2279 "tagsQuery": "",
2280 "type": "query",
2281 "useTags": false
2282 },
2283 {
2284 "allValue": ".*",
2285 "current": {},
2286 "datasource": {
2287 "type": "prometheus",
2288 "uid": "${datasource}"
2289 },
2290 "definition": "",
2291 "hide": 0,
2292 "includeAll": false,
2293 "label": "Pod",
2294 "multi": false,
2295 "name": "pod",
2296 "options": [],
2297 "query": "label_values(process_start_time_seconds{namespace=\"$namespace\"}, pod)",
2298 "refresh": 2,
2299 "regex": "",
2300 "skipUrlSync": false,
2301 "sort": 1,
2302 "tagValuesQuery": "",
2303 "tags": [],
2304 "tagsQuery": "",
2305 "type": "query",
2306 "useTags": false
2307 },
2308 {
2309 "allValue": ".*",
2310 "current": {},
2311 "datasource": {
2312 "type": "prometheus",
2313 "uid": "${datasource}"
2314 },
2315 "definition": "label_values(process_start_time_seconds{namespace=\"$namespace\"}, deployment)",
2316 "hide": 2,
2317 "includeAll": false,
2318 "label": "deployment",
2319 "multi": false,
2320 "name": "deployment",
2321 "options": [],
2322 "query": "label_values(process_start_time_seconds{namespace=\"$namespace\"}, deployment)",
2323 "refresh": 2,
2324 "regex": "",
2325 "skipUrlSync": false,
2326 "sort": 1,
2327 "tagValuesQuery": "",
2328 "tags": [],
2329 "tagsQuery": "",
2330 "type": "query",
2331 "useTags": false
2332 },
2333 {
2334 "allValue": ".*",
2335 "current": {
2336 "text": "All",
2337 "value": "$__all"
2338 },
2339 "datasource": {
2340 "type": "prometheus",
2341 "uid": "${datasource}"
2342 },
2343 "definition": "label_values(request_total{dst_namespace=\"$namespace\", dst_deployment=\"$deployment\"}, deployment)",
2344 "hide": 2,
2345 "includeAll": true,
2346 "label": null,
2347 "multi": false,
2348 "name": "inbound",
2349 "options": [],
2350 "query": "",
2351 "refresh": 2,
2352 "regex": "",
2353 "skipUrlSync": false,
2354 "sort": 1,
2355 "tagValuesQuery": "",
2356 "tags": [],
2357 "tagsQuery": "",
2358 "type": "query",
2359 "useTags": false
2360 },
2361 {
2362 "allValue": ".*",
2363 "current": {
2364 "text": "All",
2365 "value": "$__all"
2366 },
2367 "datasource": {
2368 "type": "prometheus",
2369 "uid": "${datasource}"
2370 },
2371 "definition": "label_values(request_total{namespace=\"$namespace\", deployment=\"$deployment\"}, dst_deployment)",
2372 "hide": 2,
2373 "includeAll": true,
2374 "label": null,
2375 "multi": false,
2376 "name": "outbound",
2377 "options": [],
2378 "query": "label_values(request_total{namespace=\"$namespace\", deployment=\"$deployment\"}, dst_deployment)",
2379 "refresh": 2,
2380 "regex": "",
2381 "skipUrlSync": false,
2382 "sort": 1,
2383 "tagValuesQuery": "",
2384 "tags": [],
2385 "tagsQuery": "",
2386 "type": "query",
2387 "useTags": false
2388 }
2389 ]
2390 },
2391 "time": {
2392 "from": "now-5m",
2393 "to": "now"
2394 },
2395 "timepicker": {
2396 "refresh_intervals": [
2397 "5s",
2398 "10s",
2399 "30s",
2400 "1m",
2401 "5m",
2402 "15m",
2403 "30m",
2404 "1h",
2405 "2h",
2406 "1d"
2407 ],
2408 "time_options": [
2409 "5m",
2410 "15m",
2411 "1h",
2412 "6h",
2413 "12h",
2414 "24h",
2415 "2d",
2416 "7d",
2417 "30d"
2418 ]
2419 },
2420 "timezone": "",
2421 "title": "Linkerd Pod",
2422 "uid": "linkerd-pod",
2423 "version": 1
2424}
View as plain text