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": 1547542312069,
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\">job/$job</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\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) / sum(irate(response_total{namespace=\"$namespace\", k8s_job=\"$job\", 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\", k8s_job=\"$job\", 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\", k8s_job!=\"\", dst_k8s_job!=\"\", dst_k8s_job=\"$job\", direction=\"outbound\"}) by (namespace, k8s_job))",
336 "format": "time_series",
337 "intervalFactor": 1,
338 "legendFormat": "",
339 "refId": "A"
340 }
341 ],
342 "thresholds": "",
343 "title": "INBOUND JOBS",
344 "transparent": true,
345 "type": "singlestat",
346 "valueFontSize": "100%",
347 "valueMaps": [
348 {
349 "op": "=",
350 "text": "N/A",
351 "value": "null"
352 }
353 ],
354 "valueName": "current"
355 },
356 {
357 "cacheTimeout": null,
358 "colorBackground": false,
359 "colorValue": false,
360 "colors": [
361 "#299c46",
362 "rgba(237, 129, 40, 0.89)",
363 "#d44a3a"
364 ],
365 "datasource": {
366 "type": "prometheus",
367 "uid": "${datasource}"
368 },
369 "format": "none",
370 "gauge": {
371 "maxValue": 100,
372 "minValue": 0,
373 "show": false,
374 "thresholdLabels": false,
375 "thresholdMarkers": true
376 },
377 "gridPos": {
378 "h": 4,
379 "w": 4,
380 "x": 20,
381 "y": 2
382 },
383 "id": 15,
384 "interval": null,
385 "links": [],
386 "mappingType": 1,
387 "mappingTypes": [
388 {
389 "name": "value to text",
390 "value": 1
391 },
392 {
393 "name": "range to text",
394 "value": 2
395 }
396 ],
397 "maxDataPoints": 100,
398 "nullPointMode": "connected",
399 "nullText": null,
400 "options": {},
401 "postfix": "",
402 "postfixFontSize": "100%",
403 "prefix": "",
404 "prefixFontSize": "50%",
405 "rangeMaps": [
406 {
407 "from": "null",
408 "text": "N/A",
409 "to": "null"
410 }
411 ],
412 "sparkline": {
413 "fillColor": "rgba(31, 118, 189, 0.18)",
414 "full": false,
415 "lineColor": "rgb(31, 120, 193)",
416 "show": false
417 },
418 "tableColumn": "",
419 "targets": [
420 {
421 "expr": "count(count(request_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}) by (namespace, dst_k8s_job))",
422 "format": "time_series",
423 "intervalFactor": 1,
424 "legendFormat": "",
425 "refId": "A"
426 }
427 ],
428 "thresholds": "",
429 "title": "OUTBOUND JOBS",
430 "transparent": true,
431 "type": "singlestat",
432 "valueFontSize": "100%",
433 "valueMaps": [
434 {
435 "op": "=",
436 "text": "N/A",
437 "value": "null"
438 }
439 ],
440 "valueName": "current"
441 },
442 {
443 "content": "<div class=\"text-center dashboard-header\">\n <span>INBOUND TRAFFIC</span>\n</div>",
444 "gridPos": {
445 "h": 2,
446 "w": 24,
447 "x": 0,
448 "y": 6
449 },
450 "id": 17,
451 "links": [],
452 "mode": "html",
453 "options": {},
454 "title": "",
455 "transparent": true,
456 "type": "text"
457 },
458 {
459 "aliasColors": {},
460 "bars": false,
461 "dashLength": 10,
462 "dashes": false,
463 "datasource": {
464 "type": "prometheus",
465 "uid": "${datasource}"
466 },
467 "fill": 1,
468 "gridPos": {
469 "h": 7,
470 "w": 8,
471 "x": 0,
472 "y": 8
473 },
474 "id": 67,
475 "legend": {
476 "avg": false,
477 "current": false,
478 "max": false,
479 "min": false,
480 "show": false,
481 "total": false,
482 "values": false
483 },
484 "lines": true,
485 "linewidth": 2,
486 "links": [],
487 "nullPointMode": "null",
488 "options": {},
489 "percentage": false,
490 "pointradius": 5,
491 "points": false,
492 "renderer": "flot",
493 "seriesOverrides": [],
494 "spaceLength": 10,
495 "stack": false,
496 "steppedLine": false,
497 "targets": [
498 {
499 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) by (k8s_job) / sum(irate(response_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) by (k8s_job)",
500 "format": "time_series",
501 "intervalFactor": 1,
502 "legendFormat": "job/{{k8s_job}}",
503 "refId": "A"
504 }
505 ],
506 "thresholds": [],
507 "timeFrom": null,
508 "timeRegions": [],
509 "timeShift": null,
510 "title": "SUCCESS RATE",
511 "tooltip": {
512 "shared": true,
513 "sort": 2,
514 "value_type": "individual"
515 },
516 "type": "graph",
517 "xaxis": {
518 "buckets": null,
519 "mode": "time",
520 "name": null,
521 "show": true,
522 "values": []
523 },
524 "yaxes": [
525 {
526 "decimals": null,
527 "format": "percentunit",
528 "label": "",
529 "logBase": 1,
530 "max": "1",
531 "min": null,
532 "show": true
533 },
534 {
535 "format": "short",
536 "label": null,
537 "logBase": 1,
538 "max": null,
539 "min": null,
540 "show": true
541 }
542 ],
543 "yaxis": {
544 "align": false,
545 "alignLevel": null
546 }
547 },
548 {
549 "aliasColors": {},
550 "bars": false,
551 "dashLength": 10,
552 "dashes": false,
553 "datasource": {
554 "type": "prometheus",
555 "uid": "${datasource}"
556 },
557 "fill": 0,
558 "gridPos": {
559 "h": 7,
560 "w": 8,
561 "x": 8,
562 "y": 8
563 },
564 "id": 2,
565 "legend": {
566 "avg": false,
567 "current": false,
568 "max": false,
569 "min": false,
570 "show": false,
571 "total": false,
572 "values": false
573 },
574 "lines": true,
575 "linewidth": 2,
576 "links": [],
577 "nullPointMode": "null",
578 "options": {},
579 "percentage": false,
580 "pointradius": 5,
581 "points": false,
582 "renderer": "flot",
583 "seriesOverrides": [],
584 "spaceLength": 10,
585 "stack": false,
586 "steppedLine": false,
587 "targets": [
588 {
589 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\", tls=\"true\"}[$__rate_interval])) by (k8s_job)",
590 "format": "time_series",
591 "intervalFactor": 1,
592 "legendFormat": "🔒job/{{k8s_job}}",
593 "refId": "A"
594 },
595 {
596 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\", tls!=\"true\"}[$__rate_interval])) by (k8s_job)",
597 "format": "time_series",
598 "intervalFactor": 1,
599 "legendFormat": "job/{{k8s_job}}",
600 "refId": "B"
601 }
602 ],
603 "thresholds": [],
604 "timeFrom": null,
605 "timeRegions": [],
606 "timeShift": null,
607 "title": "REQUEST RATE",
608 "tooltip": {
609 "shared": true,
610 "sort": 2,
611 "value_type": "individual"
612 },
613 "type": "graph",
614 "xaxis": {
615 "buckets": null,
616 "mode": "time",
617 "name": null,
618 "show": true,
619 "values": []
620 },
621 "yaxes": [
622 {
623 "decimals": null,
624 "format": "rps",
625 "label": "",
626 "logBase": 1,
627 "max": null,
628 "min": "0",
629 "show": true
630 },
631 {
632 "format": "short",
633 "label": null,
634 "logBase": 1,
635 "max": null,
636 "min": null,
637 "show": true
638 }
639 ],
640 "yaxis": {
641 "align": false,
642 "alignLevel": null
643 }
644 },
645 {
646 "aliasColors": {},
647 "bars": false,
648 "dashLength": 10,
649 "dashes": false,
650 "datasource": {
651 "type": "prometheus",
652 "uid": "${datasource}"
653 },
654 "fill": 1,
655 "gridPos": {
656 "h": 7,
657 "w": 8,
658 "x": 16,
659 "y": 8
660 },
661 "id": 68,
662 "legend": {
663 "avg": false,
664 "current": false,
665 "max": false,
666 "min": false,
667 "show": false,
668 "total": false,
669 "values": false
670 },
671 "lines": true,
672 "linewidth": 2,
673 "links": [],
674 "nullPointMode": "null",
675 "options": {},
676 "percentage": false,
677 "pointradius": 5,
678 "points": false,
679 "renderer": "flot",
680 "seriesOverrides": [],
681 "spaceLength": 10,
682 "stack": false,
683 "steppedLine": false,
684 "targets": [
685 {
686 "expr": "histogram_quantile(0.5, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) by (le, k8s_job))",
687 "format": "time_series",
688 "intervalFactor": 1,
689 "legendFormat": "p50 job/{{k8s_job}}",
690 "refId": "A"
691 },
692 {
693 "expr": "histogram_quantile(0.95, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) by (le, k8s_job))",
694 "format": "time_series",
695 "hide": false,
696 "intervalFactor": 1,
697 "legendFormat": "p95 job/{{k8s_job}}",
698 "refId": "B"
699 },
700 {
701 "expr": "histogram_quantile(0.99, sum(irate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\"}[$__rate_interval])) by (le, k8s_job))",
702 "format": "time_series",
703 "intervalFactor": 1,
704 "legendFormat": "p99 job/{{k8s_job}}",
705 "refId": "C"
706 }
707 ],
708 "thresholds": [],
709 "timeFrom": null,
710 "timeRegions": [],
711 "timeShift": null,
712 "title": "LATENCY",
713 "tooltip": {
714 "shared": true,
715 "sort": 2,
716 "value_type": "individual"
717 },
718 "type": "graph",
719 "xaxis": {
720 "buckets": null,
721 "mode": "time",
722 "name": null,
723 "show": true,
724 "values": []
725 },
726 "yaxes": [
727 {
728 "decimals": null,
729 "format": "ms",
730 "label": "",
731 "logBase": 1,
732 "max": null,
733 "min": null,
734 "show": true
735 },
736 {
737 "format": "short",
738 "label": null,
739 "logBase": 1,
740 "max": null,
741 "min": null,
742 "show": true
743 }
744 ],
745 "yaxis": {
746 "align": false,
747 "alignLevel": null
748 }
749 },
750 {
751 "collapsed": true,
752 "gridPos": {
753 "h": 1,
754 "w": 24,
755 "x": 0,
756 "y": 15
757 },
758 "id": 148,
759 "panels": [
760 {
761 "aliasColors": {},
762 "bars": false,
763 "dashLength": 10,
764 "dashes": false,
765 "datasource": {
766 "type": "prometheus",
767 "uid": "${datasource}"
768 },
769 "fill": 1,
770 "gridPos": {
771 "h": 7,
772 "w": 8,
773 "x": 0,
774 "y": 16
775 },
776 "id": 167,
777 "legend": {
778 "avg": false,
779 "current": false,
780 "max": false,
781 "min": false,
782 "show": false,
783 "total": false,
784 "values": false
785 },
786 "lines": true,
787 "linewidth": 2,
788 "links": [],
789 "nullPointMode": "null",
790 "options": {},
791 "percentage": false,
792 "pointradius": 5,
793 "points": false,
794 "renderer": "flot",
795 "seriesOverrides": [],
796 "spaceLength": 10,
797 "stack": false,
798 "steppedLine": false,
799 "targets": [
800 {
801 "expr": "tcp_close_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"inbound\",errno!=\"\"}",
802 "format": "time_series",
803 "intervalFactor": 1,
804 "legendFormat": "{{peer}} {{errno}}",
805 "refId": "A"
806 }
807 ],
808 "thresholds": [],
809 "timeFrom": null,
810 "timeRegions": [],
811 "timeShift": null,
812 "title": "TCP CONNECTION FAILURES",
813 "tooltip": {
814 "shared": true,
815 "sort": 0,
816 "value_type": "individual"
817 },
818 "type": "graph",
819 "xaxis": {
820 "buckets": null,
821 "mode": "time",
822 "name": null,
823 "show": true,
824 "values": []
825 },
826 "yaxes": [
827 {
828 "decimals": null,
829 "format": "none",
830 "label": "",
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": 0,
860 "gridPos": {
861 "h": 7,
862 "w": 8,
863 "x": 8,
864 "y": 16
865 },
866 "id": 168,
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\", k8s_job=\"$job\", 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": "",
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": 7,
958 "w": 8,
959 "x": 16,
960 "y": 16
961 },
962 "heatmap": {},
963 "hideZeroBuckets": false,
964 "highlightCards": true,
965 "id": 169,
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\", k8s_job=\"$job\", direction=\"inbound\"}",
975 "format": "time_series",
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": "dtdurationms",
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": 152,
1017 "panels": [],
1018 "title": "",
1019 "type": "row"
1020 },
1021 {
1022 "content": "<div class=\"text-center dashboard-header\">\n <span>INBOUND JOBS</span>\n</div>",
1023 "gridPos": {
1024 "h": 2,
1025 "w": 24,
1026 "x": 0,
1027 "y": 17
1028 },
1029 "id": 76,
1030 "links": [],
1031 "mode": "html",
1032 "options": {},
1033 "title": "",
1034 "transparent": true,
1035 "type": "text"
1036 },
1037 {
1038 "collapsed": true,
1039 "gridPos": {
1040 "h": 1,
1041 "w": 24,
1042 "x": 0,
1043 "y": 19
1044 },
1045 "id": 59,
1046 "panels": [
1047 {
1048 "content": "<div style=\"display: flex; align-items: center\">\n <img src=\"https://linkerd.io/images/identity/favicon/linkerd-favicon.png\" style=\"baseline; height:30px;\"/> \n <span style=\"font-size: 15px; border-image:none\">job/$inbound</span>\n</div>",
1049 "gridPos": {
1050 "h": 2,
1051 "w": 24,
1052 "x": 0,
1053 "y": 22.2
1054 },
1055 "id": 39,
1056 "links": [],
1057 "mode": "html",
1058 "options": {},
1059 "title": "",
1060 "transparent": true,
1061 "type": "text"
1062 },
1063 {
1064 "aliasColors": {},
1065 "bars": false,
1066 "dashLength": 10,
1067 "dashes": false,
1068 "datasource": {
1069 "type": "prometheus",
1070 "uid": "${datasource}"
1071 },
1072 "fill": 1,
1073 "gridPos": {
1074 "h": 7,
1075 "w": 8,
1076 "x": 0,
1077 "y": 24.2
1078 },
1079 "id": 36,
1080 "legend": {
1081 "avg": false,
1082 "current": false,
1083 "max": false,
1084 "min": false,
1085 "show": false,
1086 "total": false,
1087 "values": false
1088 },
1089 "lines": true,
1090 "linewidth": 2,
1091 "links": [],
1092 "nullPointMode": "null",
1093 "options": {},
1094 "percentage": false,
1095 "pointradius": 5,
1096 "points": false,
1097 "renderer": "flot",
1098 "seriesOverrides": [],
1099 "spaceLength": 10,
1100 "stack": false,
1101 "steppedLine": false,
1102 "targets": [
1103 {
1104 "expr": "sum(irate(response_total{classification=\"success\", k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (k8s_job, pod) / sum(irate(response_total{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (k8s_job, pod)",
1105 "format": "time_series",
1106 "instant": false,
1107 "intervalFactor": 1,
1108 "legendFormat": "po/{{pod}}",
1109 "refId": "A"
1110 }
1111 ],
1112 "thresholds": [],
1113 "timeFrom": null,
1114 "timeRegions": [],
1115 "timeShift": null,
1116 "title": "SUCCESS RATE",
1117 "tooltip": {
1118 "shared": true,
1119 "sort": 2,
1120 "value_type": "individual"
1121 },
1122 "type": "graph",
1123 "xaxis": {
1124 "buckets": null,
1125 "mode": "time",
1126 "name": null,
1127 "show": true,
1128 "values": []
1129 },
1130 "yaxes": [
1131 {
1132 "decimals": null,
1133 "format": "percentunit",
1134 "label": null,
1135 "logBase": 1,
1136 "max": "1",
1137 "min": null,
1138 "show": true
1139 },
1140 {
1141 "format": "short",
1142 "label": null,
1143 "logBase": 1,
1144 "max": null,
1145 "min": null,
1146 "show": true
1147 }
1148 ],
1149 "yaxis": {
1150 "align": false,
1151 "alignLevel": null
1152 }
1153 },
1154 {
1155 "aliasColors": {},
1156 "bars": false,
1157 "dashLength": 10,
1158 "dashes": false,
1159 "datasource": {
1160 "type": "prometheus",
1161 "uid": "${datasource}"
1162 },
1163 "fill": 0,
1164 "gridPos": {
1165 "h": 7,
1166 "w": 8,
1167 "x": 8,
1168 "y": 24.2
1169 },
1170 "id": 22,
1171 "legend": {
1172 "avg": false,
1173 "current": false,
1174 "max": false,
1175 "min": false,
1176 "show": false,
1177 "total": false,
1178 "values": false
1179 },
1180 "lines": true,
1181 "linewidth": 2,
1182 "links": [],
1183 "nullPointMode": "null",
1184 "options": {},
1185 "percentage": false,
1186 "pointradius": 5,
1187 "points": false,
1188 "renderer": "flot",
1189 "seriesOverrides": [],
1190 "spaceLength": 10,
1191 "stack": false,
1192 "steppedLine": false,
1193 "targets": [
1194 {
1195 "expr": "sum(irate(request_total{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (k8s_job, pod)",
1196 "format": "time_series",
1197 "intervalFactor": 1,
1198 "legendFormat": "🔒po/{{pod}}",
1199 "refId": "A"
1200 },
1201 {
1202 "expr": "sum(irate(request_total{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (k8s_job, pod)",
1203 "format": "time_series",
1204 "intervalFactor": 1,
1205 "legendFormat": "po/{{pod}}",
1206 "refId": "B"
1207 }
1208 ],
1209 "thresholds": [],
1210 "timeFrom": null,
1211 "timeRegions": [],
1212 "timeShift": null,
1213 "title": "REQUEST RATE",
1214 "tooltip": {
1215 "shared": true,
1216 "sort": 2,
1217 "value_type": "individual"
1218 },
1219 "type": "graph",
1220 "xaxis": {
1221 "buckets": null,
1222 "mode": "time",
1223 "name": null,
1224 "show": true,
1225 "values": []
1226 },
1227 "yaxes": [
1228 {
1229 "decimals": null,
1230 "format": "rps",
1231 "label": null,
1232 "logBase": 1,
1233 "max": null,
1234 "min": "0",
1235 "show": true
1236 },
1237 {
1238 "format": "short",
1239 "label": null,
1240 "logBase": 1,
1241 "max": null,
1242 "min": null,
1243 "show": true
1244 }
1245 ],
1246 "yaxis": {
1247 "align": false,
1248 "alignLevel": null
1249 }
1250 },
1251 {
1252 "aliasColors": {},
1253 "bars": false,
1254 "dashLength": 10,
1255 "dashes": false,
1256 "datasource": {
1257 "type": "prometheus",
1258 "uid": "${datasource}"
1259 },
1260 "fill": 1,
1261 "gridPos": {
1262 "h": 7,
1263 "w": 8,
1264 "x": 16,
1265 "y": 24.2
1266 },
1267 "id": 29,
1268 "legend": {
1269 "avg": false,
1270 "current": false,
1271 "max": false,
1272 "min": false,
1273 "show": false,
1274 "total": false,
1275 "values": false
1276 },
1277 "lines": true,
1278 "linewidth": 2,
1279 "links": [],
1280 "nullPointMode": "null",
1281 "options": {},
1282 "percentage": false,
1283 "pointradius": 5,
1284 "points": false,
1285 "renderer": "flot",
1286 "seriesOverrides": [],
1287 "spaceLength": 10,
1288 "stack": false,
1289 "steppedLine": false,
1290 "targets": [
1291 {
1292 "expr": "histogram_quantile(0.5, sum(rate(response_latency_ms_bucket{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (le, k8s_job))",
1293 "format": "time_series",
1294 "intervalFactor": 1,
1295 "legendFormat": "P50 job/{{k8s_job}}",
1296 "refId": "A"
1297 },
1298 {
1299 "expr": "histogram_quantile(0.95, sum(rate(response_latency_ms_bucket{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (le, k8s_job))",
1300 "format": "time_series",
1301 "intervalFactor": 1,
1302 "legendFormat": "P95 job/{{k8s_job}}",
1303 "refId": "B"
1304 },
1305 {
1306 "expr": "histogram_quantile(0.99, sum(rate(response_latency_ms_bucket{k8s_job!=\"\", k8s_job=\"$inbound\", dst_namespace=\"$namespace\", dst_k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (le, k8s_job))",
1307 "format": "time_series",
1308 "intervalFactor": 1,
1309 "legendFormat": "P99 job/{{k8s_job}}",
1310 "refId": "C"
1311 }
1312 ],
1313 "thresholds": [],
1314 "timeFrom": null,
1315 "timeRegions": [],
1316 "timeShift": null,
1317 "title": "LATENCY",
1318 "tooltip": {
1319 "shared": true,
1320 "sort": 2,
1321 "value_type": "individual"
1322 },
1323 "type": "graph",
1324 "xaxis": {
1325 "buckets": null,
1326 "mode": "time",
1327 "name": null,
1328 "show": true,
1329 "values": []
1330 },
1331 "yaxes": [
1332 {
1333 "format": "ms",
1334 "label": null,
1335 "logBase": 1,
1336 "max": null,
1337 "min": null,
1338 "show": true
1339 },
1340 {
1341 "format": "short",
1342 "label": null,
1343 "logBase": 1,
1344 "max": null,
1345 "min": null,
1346 "show": true
1347 }
1348 ],
1349 "yaxis": {
1350 "align": false,
1351 "alignLevel": null
1352 }
1353 }
1354 ],
1355 "repeat": "inbound",
1356 "title": "job/$inbound",
1357 "type": "row"
1358 },
1359 {
1360 "collapsed": false,
1361 "gridPos": {
1362 "h": 1,
1363 "w": 24,
1364 "x": 0,
1365 "y": 20
1366 },
1367 "id": 34,
1368 "panels": [],
1369 "repeat": null,
1370 "title": "",
1371 "type": "row"
1372 },
1373 {
1374 "content": "<div class=\"text-center dashboard-header\">\n <span>OUTBOUND TRAFFIC</span>\n</div>",
1375 "gridPos": {
1376 "h": 2,
1377 "w": 24,
1378 "x": 0,
1379 "y": 21
1380 },
1381 "id": 32,
1382 "links": [],
1383 "mode": "html",
1384 "options": {},
1385 "title": "",
1386 "transparent": true,
1387 "type": "text"
1388 },
1389 {
1390 "aliasColors": {},
1391 "bars": false,
1392 "dashLength": 10,
1393 "dashes": false,
1394 "datasource": {
1395 "type": "prometheus",
1396 "uid": "${datasource}"
1397 },
1398 "fill": 1,
1399 "gridPos": {
1400 "h": 7,
1401 "w": 8,
1402 "x": 0,
1403 "y": 23
1404 },
1405 "id": 77,
1406 "legend": {
1407 "avg": false,
1408 "current": false,
1409 "max": false,
1410 "min": false,
1411 "show": false,
1412 "total": false,
1413 "values": false
1414 },
1415 "lines": true,
1416 "linewidth": 2,
1417 "links": [],
1418 "nullPointMode": "null",
1419 "options": {},
1420 "percentage": false,
1421 "pointradius": 5,
1422 "points": false,
1423 "renderer": "flot",
1424 "seriesOverrides": [],
1425 "spaceLength": 10,
1426 "stack": false,
1427 "steppedLine": false,
1428 "targets": [
1429 {
1430 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (dst_k8s_job) / sum(irate(response_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (dst_k8s_job)",
1431 "format": "time_series",
1432 "intervalFactor": 1,
1433 "legendFormat": "job/{{dst_k8s_job}}",
1434 "refId": "A"
1435 }
1436 ],
1437 "thresholds": [],
1438 "timeFrom": null,
1439 "timeRegions": [],
1440 "timeShift": null,
1441 "title": "SUCCESS RATE",
1442 "tooltip": {
1443 "shared": true,
1444 "sort": 2,
1445 "value_type": "individual"
1446 },
1447 "type": "graph",
1448 "xaxis": {
1449 "buckets": null,
1450 "mode": "time",
1451 "name": null,
1452 "show": true,
1453 "values": []
1454 },
1455 "yaxes": [
1456 {
1457 "decimals": null,
1458 "format": "percentunit",
1459 "label": "",
1460 "logBase": 1,
1461 "max": "1",
1462 "min": null,
1463 "show": true
1464 },
1465 {
1466 "format": "short",
1467 "label": null,
1468 "logBase": 1,
1469 "max": null,
1470 "min": null,
1471 "show": true
1472 }
1473 ],
1474 "yaxis": {
1475 "align": false,
1476 "alignLevel": null
1477 }
1478 },
1479 {
1480 "aliasColors": {},
1481 "bars": false,
1482 "dashLength": 10,
1483 "dashes": false,
1484 "datasource": {
1485 "type": "prometheus",
1486 "uid": "${datasource}"
1487 },
1488 "fill": 0,
1489 "gridPos": {
1490 "h": 7,
1491 "w": 8,
1492 "x": 8,
1493 "y": 23
1494 },
1495 "id": 78,
1496 "legend": {
1497 "avg": false,
1498 "current": false,
1499 "max": false,
1500 "min": false,
1501 "show": false,
1502 "total": false,
1503 "values": false
1504 },
1505 "lines": true,
1506 "linewidth": 2,
1507 "links": [],
1508 "nullPointMode": "null",
1509 "options": {},
1510 "percentage": false,
1511 "pointradius": 5,
1512 "points": false,
1513 "renderer": "flot",
1514 "seriesOverrides": [],
1515 "spaceLength": 10,
1516 "stack": false,
1517 "steppedLine": false,
1518 "targets": [
1519 {
1520 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (dst_k8s_job)",
1521 "format": "time_series",
1522 "intervalFactor": 1,
1523 "legendFormat": "🔒job/{{dst_k8s_job}}",
1524 "refId": "A"
1525 },
1526 {
1527 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (dst_k8s_job)",
1528 "format": "time_series",
1529 "intervalFactor": 1,
1530 "legendFormat": "job/{{dst_k8s_job}}",
1531 "refId": "B"
1532 }
1533 ],
1534 "thresholds": [],
1535 "timeFrom": null,
1536 "timeRegions": [],
1537 "timeShift": null,
1538 "title": "REQUEST RATE",
1539 "tooltip": {
1540 "shared": true,
1541 "sort": 2,
1542 "value_type": "individual"
1543 },
1544 "type": "graph",
1545 "xaxis": {
1546 "buckets": null,
1547 "mode": "time",
1548 "name": null,
1549 "show": true,
1550 "values": []
1551 },
1552 "yaxes": [
1553 {
1554 "format": "rps",
1555 "label": "",
1556 "logBase": 1,
1557 "max": null,
1558 "min": "0",
1559 "show": true
1560 },
1561 {
1562 "format": "short",
1563 "label": null,
1564 "logBase": 1,
1565 "max": null,
1566 "min": null,
1567 "show": true
1568 }
1569 ],
1570 "yaxis": {
1571 "align": false,
1572 "alignLevel": null
1573 }
1574 },
1575 {
1576 "aliasColors": {},
1577 "bars": false,
1578 "dashLength": 10,
1579 "dashes": false,
1580 "datasource": {
1581 "type": "prometheus",
1582 "uid": "${datasource}"
1583 },
1584 "fill": 1,
1585 "gridPos": {
1586 "h": 7,
1587 "w": 8,
1588 "x": 16,
1589 "y": 23
1590 },
1591 "id": 79,
1592 "legend": {
1593 "avg": false,
1594 "current": false,
1595 "max": false,
1596 "min": false,
1597 "show": false,
1598 "total": false,
1599 "values": false
1600 },
1601 "lines": true,
1602 "linewidth": 2,
1603 "links": [],
1604 "nullPointMode": "null",
1605 "options": {},
1606 "percentage": false,
1607 "pointradius": 5,
1608 "points": false,
1609 "renderer": "flot",
1610 "seriesOverrides": [],
1611 "spaceLength": 10,
1612 "stack": false,
1613 "steppedLine": false,
1614 "targets": [
1615 {
1616 "expr": "histogram_quantile(0.95, sum(rate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_k8s_job))",
1617 "format": "time_series",
1618 "intervalFactor": 1,
1619 "legendFormat": "P95 job/{{dst_k8s_job}}",
1620 "refId": "A"
1621 }
1622 ],
1623 "thresholds": [],
1624 "timeFrom": null,
1625 "timeRegions": [],
1626 "timeShift": null,
1627 "title": "P95 LATENCY",
1628 "tooltip": {
1629 "shared": true,
1630 "sort": 2,
1631 "value_type": "individual"
1632 },
1633 "type": "graph",
1634 "xaxis": {
1635 "buckets": null,
1636 "mode": "time",
1637 "name": null,
1638 "show": true,
1639 "values": []
1640 },
1641 "yaxes": [
1642 {
1643 "format": "ms",
1644 "label": null,
1645 "logBase": 1,
1646 "max": null,
1647 "min": null,
1648 "show": true
1649 },
1650 {
1651 "format": "short",
1652 "label": null,
1653 "logBase": 1,
1654 "max": null,
1655 "min": null,
1656 "show": true
1657 }
1658 ],
1659 "yaxis": {
1660 "align": false,
1661 "alignLevel": null
1662 }
1663 },
1664 {
1665 "collapsed": true,
1666 "gridPos": {
1667 "h": 1,
1668 "w": 24,
1669 "x": 0,
1670 "y": 30
1671 },
1672 "id": 154,
1673 "panels": [
1674 {
1675 "aliasColors": {},
1676 "bars": false,
1677 "dashLength": 10,
1678 "dashes": false,
1679 "datasource": {
1680 "type": "prometheus",
1681 "uid": "${datasource}"
1682 },
1683 "fill": 1,
1684 "gridPos": {
1685 "h": 7,
1686 "w": 8,
1687 "x": 0,
1688 "y": 29
1689 },
1690 "id": 157,
1691 "legend": {
1692 "avg": false,
1693 "current": false,
1694 "max": false,
1695 "min": false,
1696 "show": false,
1697 "total": false,
1698 "values": false
1699 },
1700 "lines": true,
1701 "linewidth": 2,
1702 "links": [],
1703 "nullPointMode": "null",
1704 "options": {},
1705 "percentage": false,
1706 "pointradius": 5,
1707 "points": false,
1708 "renderer": "flot",
1709 "seriesOverrides": [],
1710 "spaceLength": 10,
1711 "stack": false,
1712 "steppedLine": false,
1713 "targets": [
1714 {
1715 "expr": "tcp_close_total{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\",errno!=\"\"}",
1716 "format": "time_series",
1717 "intervalFactor": 1,
1718 "legendFormat": "{{peer}} {{errno}}",
1719 "refId": "A"
1720 }
1721 ],
1722 "thresholds": [],
1723 "timeFrom": null,
1724 "timeRegions": [],
1725 "timeShift": null,
1726 "title": "TCP CONNECTION FAILURES",
1727 "tooltip": {
1728 "shared": true,
1729 "sort": 0,
1730 "value_type": "individual"
1731 },
1732 "type": "graph",
1733 "xaxis": {
1734 "buckets": null,
1735 "mode": "time",
1736 "name": null,
1737 "show": true,
1738 "values": []
1739 },
1740 "yaxes": [
1741 {
1742 "decimals": null,
1743 "format": "none",
1744 "label": "",
1745 "logBase": 1,
1746 "max": null,
1747 "min": "0",
1748 "show": true
1749 },
1750 {
1751 "format": "short",
1752 "label": null,
1753 "logBase": 1,
1754 "max": null,
1755 "min": null,
1756 "show": true
1757 }
1758 ],
1759 "yaxis": {
1760 "align": false,
1761 "alignLevel": null
1762 }
1763 },
1764 {
1765 "aliasColors": {},
1766 "bars": false,
1767 "dashLength": 10,
1768 "dashes": false,
1769 "datasource": {
1770 "type": "prometheus",
1771 "uid": "${datasource}"
1772 },
1773 "fill": 0,
1774 "gridPos": {
1775 "h": 7,
1776 "w": 8,
1777 "x": 8,
1778 "y": 29
1779 },
1780 "id": 166,
1781 "legend": {
1782 "avg": false,
1783 "current": false,
1784 "max": false,
1785 "min": false,
1786 "show": false,
1787 "total": false,
1788 "values": false
1789 },
1790 "lines": true,
1791 "linewidth": 2,
1792 "links": [],
1793 "nullPointMode": "null",
1794 "options": {},
1795 "percentage": false,
1796 "pointradius": 5,
1797 "points": false,
1798 "renderer": "flot",
1799 "seriesOverrides": [],
1800 "spaceLength": 10,
1801 "stack": false,
1802 "steppedLine": false,
1803 "targets": [
1804 {
1805 "expr": "tcp_open_connections{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}",
1806 "format": "time_series",
1807 "intervalFactor": 1,
1808 "legendFormat": "{{peer}}",
1809 "refId": "A"
1810 }
1811 ],
1812 "thresholds": [],
1813 "timeFrom": null,
1814 "timeRegions": [],
1815 "timeShift": null,
1816 "title": "TCP CONNECTIONS OPEN",
1817 "tooltip": {
1818 "shared": true,
1819 "sort": 0,
1820 "value_type": "individual"
1821 },
1822 "type": "graph",
1823 "xaxis": {
1824 "buckets": null,
1825 "mode": "time",
1826 "name": null,
1827 "show": true,
1828 "values": []
1829 },
1830 "yaxes": [
1831 {
1832 "format": "short",
1833 "label": "",
1834 "logBase": 1,
1835 "max": null,
1836 "min": "0",
1837 "show": true
1838 },
1839 {
1840 "format": "short",
1841 "label": null,
1842 "logBase": 1,
1843 "max": null,
1844 "min": null,
1845 "show": true
1846 }
1847 ],
1848 "yaxis": {
1849 "align": false,
1850 "alignLevel": null
1851 }
1852 },
1853 {
1854 "cards": {
1855 "cardPadding": null,
1856 "cardRound": null
1857 },
1858 "color": {
1859 "cardColor": "#b4ff00",
1860 "colorScale": "sqrt",
1861 "colorScheme": "interpolateOranges",
1862 "exponent": 0.5,
1863 "mode": "spectrum"
1864 },
1865 "dataFormat": "timeseries",
1866 "datasource": {
1867 "type": "prometheus",
1868 "uid": "${datasource}"
1869 },
1870 "gridPos": {
1871 "h": 7,
1872 "w": 8,
1873 "x": 16,
1874 "y": 29
1875 },
1876 "heatmap": {},
1877 "hideZeroBuckets": false,
1878 "highlightCards": true,
1879 "id": 160,
1880 "legend": {
1881 "show": false
1882 },
1883 "links": [],
1884 "options": {},
1885 "reverseYBuckets": false,
1886 "targets": [
1887 {
1888 "expr": "tcp_connection_duration_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", direction=\"outbound\"}",
1889 "format": "time_series",
1890 "intervalFactor": 1,
1891 "refId": "A"
1892 }
1893 ],
1894 "title": "TCP CONNECTION DURATION",
1895 "tooltip": {
1896 "show": true,
1897 "showHistogram": true
1898 },
1899 "type": "heatmap",
1900 "xAxis": {
1901 "show": true
1902 },
1903 "xBucketNumber": null,
1904 "xBucketSize": null,
1905 "yAxis": {
1906 "decimals": null,
1907 "format": "dtdurationms",
1908 "logBase": 1,
1909 "max": null,
1910 "min": "0",
1911 "show": true,
1912 "splitFactor": null
1913 },
1914 "yBucketBound": "auto",
1915 "yBucketNumber": null,
1916 "yBucketSize": null
1917 }
1918 ],
1919 "title": "Outbound TCP Metrics",
1920 "type": "row"
1921 },
1922 {
1923 "collapsed": false,
1924 "gridPos": {
1925 "h": 1,
1926 "w": 24,
1927 "x": 0,
1928 "y": 31
1929 },
1930 "id": 156,
1931 "panels": [],
1932 "title": "",
1933 "type": "row"
1934 },
1935 {
1936 "content": "<div class=\"text-center dashboard-header\">\n <span>OUTBOUND JOBS</span>\n</div>",
1937 "gridPos": {
1938 "h": 2,
1939 "w": 24,
1940 "x": 0,
1941 "y": 32
1942 },
1943 "id": 80,
1944 "links": [],
1945 "mode": "html",
1946 "options": {},
1947 "title": "",
1948 "transparent": true,
1949 "type": "text"
1950 },
1951 {
1952 "collapsed": true,
1953 "gridPos": {
1954 "h": 1,
1955 "w": 24,
1956 "x": 0,
1957 "y": 34
1958 },
1959 "id": 27,
1960 "panels": [
1961 {
1962 "content": "<div style=\"display: flex; align-items: center\">\n <img src=\"https://linkerd.io/images/identity/favicon/linkerd-favicon.png\" style=\"baseline; height:30px;\"/> \n <span style=\"font-size: 15px; border-image:none\">job/$outbound</span>\n</div>",
1963 "gridPos": {
1964 "h": 2,
1965 "w": 24,
1966 "x": 0,
1967 "y": 36
1968 },
1969 "id": 40,
1970 "links": [],
1971 "mode": "html",
1972 "options": {},
1973 "title": "",
1974 "transparent": true,
1975 "type": "text"
1976 },
1977 {
1978 "aliasColors": {},
1979 "bars": false,
1980 "dashLength": 10,
1981 "dashes": false,
1982 "datasource": {
1983 "type": "prometheus",
1984 "uid": "${datasource}"
1985 },
1986 "fill": 1,
1987 "gridPos": {
1988 "h": 7,
1989 "w": 8,
1990 "x": 0,
1991 "y": 38
1992 },
1993 "id": 28,
1994 "legend": {
1995 "avg": false,
1996 "current": false,
1997 "max": false,
1998 "min": false,
1999 "show": false,
2000 "total": false,
2001 "values": false
2002 },
2003 "lines": true,
2004 "linewidth": 2,
2005 "links": [],
2006 "nullPointMode": "null",
2007 "options": {},
2008 "percentage": false,
2009 "pointradius": 5,
2010 "points": false,
2011 "renderer": "flot",
2012 "seriesOverrides": [],
2013 "spaceLength": 10,
2014 "stack": false,
2015 "steppedLine": false,
2016 "targets": [
2017 {
2018 "expr": "sum(irate(response_total{classification=\"success\", namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\"}[$__rate_interval])) by (dst_k8s_job) / sum(irate(response_total{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\"}[$__rate_interval])) by (dst_k8s_job)",
2019 "format": "time_series",
2020 "intervalFactor": 1,
2021 "legendFormat": "job/{{dst_k8s_job}}",
2022 "refId": "A"
2023 }
2024 ],
2025 "thresholds": [],
2026 "timeFrom": null,
2027 "timeRegions": [],
2028 "timeShift": null,
2029 "title": "SUCCESS RATE",
2030 "tooltip": {
2031 "shared": true,
2032 "sort": 2,
2033 "value_type": "individual"
2034 },
2035 "type": "graph",
2036 "xaxis": {
2037 "buckets": null,
2038 "mode": "time",
2039 "name": null,
2040 "show": true,
2041 "values": []
2042 },
2043 "yaxes": [
2044 {
2045 "decimals": null,
2046 "format": "percentunit",
2047 "label": null,
2048 "logBase": 1,
2049 "max": "1",
2050 "min": null,
2051 "show": true
2052 },
2053 {
2054 "format": "short",
2055 "label": null,
2056 "logBase": 1,
2057 "max": null,
2058 "min": null,
2059 "show": true
2060 }
2061 ],
2062 "yaxis": {
2063 "align": false,
2064 "alignLevel": null
2065 }
2066 },
2067 {
2068 "aliasColors": {},
2069 "bars": false,
2070 "dashLength": 10,
2071 "dashes": false,
2072 "datasource": {
2073 "type": "prometheus",
2074 "uid": "${datasource}"
2075 },
2076 "fill": 0,
2077 "gridPos": {
2078 "h": 7,
2079 "w": 8,
2080 "x": 8,
2081 "y": 38
2082 },
2083 "id": 35,
2084 "legend": {
2085 "avg": false,
2086 "current": false,
2087 "max": false,
2088 "min": false,
2089 "show": false,
2090 "total": false,
2091 "values": false
2092 },
2093 "lines": true,
2094 "linewidth": 2,
2095 "links": [],
2096 "nullPointMode": "null",
2097 "options": {},
2098 "percentage": false,
2099 "pointradius": 5,
2100 "points": false,
2101 "renderer": "flot",
2102 "seriesOverrides": [],
2103 "spaceLength": 10,
2104 "stack": false,
2105 "steppedLine": false,
2106 "targets": [
2107 {
2108 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\", tls=\"true\"}[$__rate_interval])) by (dst_k8s_job)",
2109 "format": "time_series",
2110 "intervalFactor": 1,
2111 "legendFormat": "🔒job/{{dst_k8s_job}}",
2112 "refId": "A"
2113 },
2114 {
2115 "expr": "sum(irate(request_total{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\", tls!=\"true\"}[$__rate_interval])) by (dst_k8s_job)",
2116 "format": "time_series",
2117 "intervalFactor": 1,
2118 "legendFormat": "job/{{dst_k8s_job}}",
2119 "refId": "B"
2120 }
2121 ],
2122 "thresholds": [],
2123 "timeFrom": null,
2124 "timeRegions": [],
2125 "timeShift": null,
2126 "title": "REQUEST RATE",
2127 "tooltip": {
2128 "shared": true,
2129 "sort": 2,
2130 "value_type": "individual"
2131 },
2132 "type": "graph",
2133 "xaxis": {
2134 "buckets": null,
2135 "mode": "time",
2136 "name": null,
2137 "show": true,
2138 "values": []
2139 },
2140 "yaxes": [
2141 {
2142 "format": "rps",
2143 "label": "",
2144 "logBase": 1,
2145 "max": null,
2146 "min": "0",
2147 "show": true
2148 },
2149 {
2150 "format": "short",
2151 "label": null,
2152 "logBase": 1,
2153 "max": null,
2154 "min": null,
2155 "show": true
2156 }
2157 ],
2158 "yaxis": {
2159 "align": false,
2160 "alignLevel": null
2161 }
2162 },
2163 {
2164 "aliasColors": {},
2165 "bars": false,
2166 "dashLength": 10,
2167 "dashes": false,
2168 "datasource": {
2169 "type": "prometheus",
2170 "uid": "${datasource}"
2171 },
2172 "fill": 1,
2173 "gridPos": {
2174 "h": 7,
2175 "w": 8,
2176 "x": 16,
2177 "y": 38
2178 },
2179 "id": 41,
2180 "legend": {
2181 "avg": false,
2182 "current": false,
2183 "max": false,
2184 "min": false,
2185 "show": false,
2186 "total": false,
2187 "values": false
2188 },
2189 "lines": true,
2190 "linewidth": 2,
2191 "links": [],
2192 "nullPointMode": "null",
2193 "options": {},
2194 "percentage": false,
2195 "pointradius": 5,
2196 "points": false,
2197 "renderer": "flot",
2198 "seriesOverrides": [],
2199 "spaceLength": 10,
2200 "stack": false,
2201 "steppedLine": false,
2202 "targets": [
2203 {
2204 "expr": "histogram_quantile(0.5, sum(rate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_k8s_job))",
2205 "format": "time_series",
2206 "intervalFactor": 1,
2207 "legendFormat": "P50 job/{{dst_k8s_job}}",
2208 "refId": "A"
2209 },
2210 {
2211 "expr": "histogram_quantile(0.95, sum(rate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_k8s_job))",
2212 "format": "time_series",
2213 "intervalFactor": 1,
2214 "legendFormat": "P95 job/{{dst_k8s_job}}",
2215 "refId": "B"
2216 },
2217 {
2218 "expr": "histogram_quantile(0.99, sum(rate(response_latency_ms_bucket{namespace=\"$namespace\", k8s_job=\"$job\", dst_k8s_job=\"$outbound\", direction=\"outbound\"}[$__rate_interval])) by (le, dst_k8s_job))",
2219 "format": "time_series",
2220 "intervalFactor": 1,
2221 "legendFormat": "P99 job/{{dst_k8s_job}}",
2222 "refId": "C"
2223 }
2224 ],
2225 "thresholds": [],
2226 "timeFrom": null,
2227 "timeRegions": [],
2228 "timeShift": null,
2229 "title": "LATENCY",
2230 "tooltip": {
2231 "shared": true,
2232 "sort": 2,
2233 "value_type": "individual"
2234 },
2235 "type": "graph",
2236 "xaxis": {
2237 "buckets": null,
2238 "mode": "time",
2239 "name": null,
2240 "show": true,
2241 "values": []
2242 },
2243 "yaxes": [
2244 {
2245 "format": "ms",
2246 "label": null,
2247 "logBase": 1,
2248 "max": null,
2249 "min": null,
2250 "show": true
2251 },
2252 {
2253 "format": "short",
2254 "label": null,
2255 "logBase": 1,
2256 "max": null,
2257 "min": null,
2258 "show": true
2259 }
2260 ],
2261 "yaxis": {
2262 "align": false,
2263 "alignLevel": null
2264 }
2265 }
2266 ],
2267 "repeat": "outbound",
2268 "title": "job/$outbound",
2269 "type": "row"
2270 },
2271 {
2272 "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>",
2273 "gridPos": {
2274 "h": 3,
2275 "w": 24,
2276 "x": 0,
2277 "y": 35
2278 },
2279 "height": "1px",
2280 "id": 171,
2281 "links": [],
2282 "mode": "html",
2283 "options": {},
2284 "title": "",
2285 "transparent": true,
2286 "type": "text"
2287 }
2288 ],
2289 "refresh": "1m",
2290 "schemaVersion": 18,
2291 "style": "dark",
2292 "tags": [
2293 "linkerd"
2294 ],
2295 "templating": {
2296 "list": [
2297 {
2298 "current": {
2299 "text": "default",
2300 "value": "default"
2301 },
2302 "hide": 0,
2303 "label": "Data Source",
2304 "name": "datasource",
2305 "options": [],
2306 "query": "prometheus",
2307 "refresh": 1,
2308 "regex": "",
2309 "type": "datasource"
2310 },
2311 {
2312 "allValue": ".*",
2313 "current": {},
2314 "datasource": {
2315 "type": "prometheus",
2316 "uid": "${datasource}"
2317 },
2318 "definition": "",
2319 "hide": 0,
2320 "includeAll": false,
2321 "label": "Namespace",
2322 "multi": false,
2323 "name": "namespace",
2324 "options": [],
2325 "query": "label_values(process_start_time_seconds{k8s_job!=\"\"}, namespace)",
2326 "refresh": 2,
2327 "regex": "",
2328 "skipUrlSync": false,
2329 "sort": 1,
2330 "tagValuesQuery": "",
2331 "tags": [],
2332 "tagsQuery": "",
2333 "type": "query",
2334 "useTags": false
2335 },
2336 {
2337 "allValue": ".*",
2338 "current": {},
2339 "datasource": {
2340 "type": "prometheus",
2341 "uid": "${datasource}"
2342 },
2343 "definition": "",
2344 "hide": 0,
2345 "includeAll": false,
2346 "label": "Job",
2347 "multi": false,
2348 "name": "job",
2349 "options": [],
2350 "query": "label_values(process_start_time_seconds{namespace=\"$namespace\"}, k8s_job)",
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 "datasource": {
2365 "type": "prometheus",
2366 "uid": "${datasource}"
2367 },
2368 "definition": "",
2369 "hide": 2,
2370 "includeAll": true,
2371 "label": null,
2372 "multi": false,
2373 "name": "inbound",
2374 "options": [],
2375 "query": "label_values(request_total{dst_namespace=\"$namespace\", dst_k8s_job=\"$job\"}, k8s_job)",
2376 "refresh": 2,
2377 "regex": "",
2378 "skipUrlSync": false,
2379 "sort": 1,
2380 "tagValuesQuery": "",
2381 "tags": [],
2382 "tagsQuery": "",
2383 "type": "query",
2384 "useTags": false
2385 },
2386 {
2387 "allValue": ".*",
2388 "current": {},
2389 "datasource": {
2390 "type": "prometheus",
2391 "uid": "${datasource}"
2392 },
2393 "definition": "",
2394 "hide": 2,
2395 "includeAll": true,
2396 "label": null,
2397 "multi": false,
2398 "name": "outbound",
2399 "options": [],
2400 "query": "label_values(request_total{namespace=\"$namespace\", k8s_job=\"$job\"}, dst_k8s_job)",
2401 "refresh": 2,
2402 "regex": "",
2403 "skipUrlSync": false,
2404 "sort": 1,
2405 "tagValuesQuery": "",
2406 "tags": [],
2407 "tagsQuery": "",
2408 "type": "query",
2409 "useTags": false
2410 }
2411 ]
2412 },
2413 "time": {
2414 "from": "now-5m",
2415 "to": "now"
2416 },
2417 "timepicker": {
2418 "refresh_intervals": [
2419 "5s",
2420 "10s",
2421 "30s",
2422 "1m",
2423 "5m",
2424 "15m",
2425 "30m",
2426 "1h",
2427 "2h",
2428 "1d"
2429 ],
2430 "time_options": [
2431 "5m",
2432 "15m",
2433 "1h",
2434 "6h",
2435 "12h",
2436 "24h",
2437 "2d",
2438 "7d",
2439 "30d"
2440 ]
2441 },
2442 "timezone": "",
2443 "title": "Linkerd Job",
2444 "uid": "linkerd-job",
2445 "version": 1
2446}
View as plain text