blob: 9b5d28fd994ab098c8235f1b5c5537b82779c803 [file] [log] [blame]
Matteo Scandoloa3916732018-07-25 13:28:35 -07001{
2 "__inputs": [
3 {
4 "name": "DS_PROMETHEUS",
5 "label": "prometheus",
6 "description": "",
7 "type": "datasource",
8 "pluginId": "prometheus",
9 "pluginName": "Prometheus"
10 }
11 ],
12 "__requires": [
13 {
14 "type": "grafana",
15 "id": "grafana",
16 "name": "Grafana",
17 "version": "4.1.1"
18 },
19 {
20 "type": "panel",
21 "id": "graph",
22 "name": "Graph",
23 "version": ""
24 },
25 {
26 "type": "datasource",
27 "id": "prometheus",
28 "name": "Prometheus",
29 "version": "1.0.0"
30 }
31 ],
32 "annotations": {
33 "list": []
34 },
35 "editable": true,
36 "gnetId": 1471,
37 "graphTooltip": 1,
38 "hideControls": false,
39 "id": null,
40 "links": [],
41 "refresh": "30s",
42 "rows": [
43 {
44 "collapse": false,
45 "height": "250px",
46 "panels": [
47 {
48 "aliasColors": {},
49 "bars": false,
50 "datasource": "Prometheus",
51 "editable": true,
52 "error": false,
53 "fill": 1,
54 "grid": {},
55 "id": 3,
56 "legend": {
57 "alignAsTable": true,
58 "avg": true,
59 "current": false,
60 "max": true,
61 "min": false,
62 "rightSide": true,
63 "show": true,
64 "sort": "avg",
65 "sortDesc": true,
66 "total": false,
67 "values": true
68 },
69 "lines": true,
70 "linewidth": 2,
71 "links": [],
72 "nullPointMode": "connected",
73 "percentage": false,
74 "pointradius": 5,
75 "points": false,
76 "renderer": "flot",
77 "seriesOverrides": [],
78 "span": 6,
79 "stack": false,
80 "steppedLine": false,
81 "targets": [
82 {
83 "expr": "sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app,code)",
84 "interval": "",
85 "intervalFactor": 1,
86 "legendFormat": "native | {{code}}",
87 "refId": "A",
88 "step": 10
89 },
90 {
91 "expr": "sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app,status)",
92 "interval": "",
93 "intervalFactor": 1,
94 "legendFormat": "nginx | {{status}}",
95 "refId": "B",
96 "step": 10
97 },
98 {
99 "expr": "sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,code)",
100 "interval": "",
101 "intervalFactor": 1,
102 "legendFormat": "haproxy | {{code}}",
103 "refId": "C",
104 "step": 10
105 }
106 ],
107 "thresholds": [],
108 "timeFrom": null,
109 "timeShift": null,
110 "title": "Request rate",
111 "tooltip": {
112 "msResolution": true,
113 "shared": false,
114 "sort": 0,
115 "value_type": "cumulative"
116 },
117 "type": "graph",
118 "xaxis": {
119 "mode": "time",
120 "name": null,
121 "show": true,
122 "values": []
123 },
124 "yaxes": [
125 {
126 "format": "ops",
127 "label": null,
128 "logBase": 1,
129 "max": null,
130 "min": null,
131 "show": true
132 },
133 {
134 "format": "short",
135 "label": null,
136 "logBase": 1,
137 "max": null,
138 "min": null,
139 "show": true
140 }
141 ]
142 },
143 {
144 "aliasColors": {},
145 "bars": false,
146 "datasource": "Prometheus",
147 "fill": 1,
148 "id": 15,
149 "legend": {
150 "alignAsTable": true,
151 "avg": true,
152 "current": false,
153 "max": true,
154 "min": false,
155 "rightSide": true,
156 "show": true,
157 "sort": "avg",
158 "sortDesc": true,
159 "total": false,
160 "values": true
161 },
162 "lines": true,
163 "linewidth": 1,
164 "links": [],
165 "nullPointMode": "null",
166 "percentage": false,
167 "pointradius": 5,
168 "points": false,
169 "renderer": "flot",
170 "seriesOverrides": [],
171 "span": 6,
172 "stack": false,
173 "steppedLine": false,
174 "targets": [
175 {
176 "expr": "sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\",code=\"5xx\"}[30s])) by (app,kubernetes_namespace) / sum(irate(haproxy_backend_http_responses_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace)",
177 "interval": "",
178 "intervalFactor": 2,
179 "legendFormat": "haproxy",
180 "refId": "A",
181 "step": 20
182 },
183 {
184 "expr": "sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\", code=~\"5[0-9]+\"}[30s])) by (kubernetes_namespace,app) / sum(irate(http_requests_total{app=\"$container\", handler!=\"prometheus\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app)",
185 "intervalFactor": 2,
186 "legendFormat": "native",
187 "refId": "B",
188 "step": 20
189 },
190 {
191 "expr": "sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\", status=~\"5[0-9]+\"}[30s])) by (kubernetes_namespace,app) / sum(irate(nginx_http_requests_total{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (kubernetes_namespace,app)",
192 "intervalFactor": 2,
193 "legendFormat": "nginx",
194 "refId": "C",
195 "step": 20
196 }
197 ],
198 "thresholds": [],
199 "timeFrom": null,
200 "timeShift": null,
201 "title": "Error rate",
202 "tooltip": {
203 "shared": true,
204 "sort": 0,
205 "value_type": "individual"
206 },
207 "type": "graph",
208 "xaxis": {
209 "mode": "time",
210 "name": null,
211 "show": true,
212 "values": []
213 },
214 "yaxes": [
215 {
216 "format": "percentunit",
217 "label": null,
218 "logBase": 1,
219 "max": null,
220 "min": "0",
221 "show": true
222 },
223 {
224 "format": "short",
225 "label": null,
226 "logBase": 1,
227 "max": null,
228 "min": null,
229 "show": true
230 }
231 ]
232 }
233 ],
234 "repeat": null,
235 "repeatIteration": null,
236 "repeatRowId": null,
237 "showTitle": false,
238 "title": "Request rate",
239 "titleSize": "h6"
240 },
241 {
242 "collapse": true,
243 "height": 224,
244 "panels": [
245 {
246 "aliasColors": {},
247 "bars": false,
248 "datasource": "Prometheus",
249 "editable": true,
250 "error": false,
251 "fill": 1,
252 "grid": {},
253 "id": 5,
254 "legend": {
255 "alignAsTable": true,
256 "avg": true,
257 "current": false,
258 "max": true,
259 "min": false,
260 "rightSide": true,
261 "show": true,
262 "sort": "max",
263 "sortDesc": true,
264 "total": false,
265 "values": true
266 },
267 "lines": true,
268 "linewidth": 2,
269 "links": [],
270 "nullPointMode": "connected",
271 "percentage": false,
272 "pointradius": 5,
273 "points": false,
274 "renderer": "flot",
275 "seriesOverrides": [],
276 "span": 12,
277 "stack": false,
278 "steppedLine": false,
279 "targets": [
280 {
281 "expr": "histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
282 "intervalFactor": 1,
283 "legendFormat": "native | 0.99",
284 "refId": "A",
285 "step": 1
286 },
287 {
288 "expr": "histogram_quantile(0.90, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
289 "intervalFactor": 1,
290 "legendFormat": "native | 0.90",
291 "refId": "B",
292 "step": 1
293 },
294 {
295 "expr": "histogram_quantile(0.5, sum(rate(http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
296 "interval": "",
297 "intervalFactor": 1,
298 "legendFormat": "native | 0.50",
299 "refId": "C",
300 "step": 1
301 },
302 {
303 "expr": "histogram_quantile(0.99, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
304 "intervalFactor": 1,
305 "legendFormat": "nginx | 0.99",
306 "refId": "D",
307 "step": 1
308 },
309 {
310 "expr": "histogram_quantile(0.9, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
311 "intervalFactor": 1,
312 "legendFormat": "nginx | 0.90",
313 "refId": "E",
314 "step": 1
315 },
316 {
317 "expr": "histogram_quantile(0.5, sum(rate(nginx_http_request_duration_seconds_bucket{app=\"$container\", kubernetes_namespace=\"$namespace\"}[30s])) by (app,kubernetes_namespace,le))",
318 "intervalFactor": 1,
319 "legendFormat": "nginx | 0.50",
320 "refId": "F",
321 "step": 1
322 }
323 ],
324 "thresholds": [],
325 "timeFrom": null,
326 "timeShift": null,
327 "title": "Response time percentiles",
328 "tooltip": {
329 "msResolution": true,
330 "shared": true,
331 "sort": 0,
332 "value_type": "cumulative"
333 },
334 "type": "graph",
335 "xaxis": {
336 "mode": "time",
337 "name": null,
338 "show": true,
339 "values": []
340 },
341 "yaxes": [
342 {
343 "format": "s",
344 "label": null,
345 "logBase": 1,
346 "max": null,
347 "min": null,
348 "show": true
349 },
350 {
351 "format": "short",
352 "label": null,
353 "logBase": 1,
354 "max": null,
355 "min": null,
356 "show": true
357 }
358 ]
359 }
360 ],
361 "repeat": null,
362 "repeatIteration": null,
363 "repeatRowId": null,
364 "showTitle": false,
365 "title": "Response time",
366 "titleSize": "h6"
367 },
368 {
369 "collapse": false,
370 "height": 250,
371 "panels": [
372 {
373 "aliasColors": {},
374 "bars": false,
375 "datasource": "Prometheus",
376 "editable": true,
377 "error": false,
378 "fill": 1,
379 "id": 7,
380 "legend": {
381 "alignAsTable": true,
382 "avg": true,
383 "current": false,
384 "max": true,
385 "min": false,
386 "rightSide": true,
387 "show": true,
388 "sort": "avg",
389 "sortDesc": true,
390 "total": false,
391 "values": true
392 },
393 "lines": true,
394 "linewidth": 1,
395 "links": [],
396 "nullPointMode": "connected",
397 "percentage": false,
398 "pointradius": 5,
399 "points": false,
400 "renderer": "flot",
401 "seriesOverrides": [],
402 "span": 12,
403 "stack": false,
404 "steppedLine": false,
405 "targets": [
406 {
407 "expr": "count(count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (pod_name))",
408 "interval": "",
409 "intervalFactor": 1,
410 "legendFormat": "pods",
411 "refId": "A",
412 "step": 5
413 },
414 {
415 "expr": "count(count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (kubernetes_io_hostname))",
416 "interval": "",
417 "intervalFactor": 2,
418 "legendFormat": "hosts",
419 "refId": "B",
420 "step": 10
421 }
422 ],
423 "thresholds": [],
424 "timeFrom": null,
425 "timeShift": null,
426 "title": "Number of pods",
427 "tooltip": {
428 "msResolution": false,
429 "shared": true,
430 "sort": 0,
431 "value_type": "individual"
432 },
433 "type": "graph",
434 "xaxis": {
435 "mode": "time",
436 "name": null,
437 "show": true,
438 "values": []
439 },
440 "yaxes": [
441 {
442 "format": "short",
443 "label": null,
444 "logBase": 1,
445 "max": null,
446 "min": "0",
447 "show": true
448 },
449 {
450 "format": "short",
451 "label": null,
452 "logBase": 1,
453 "max": null,
454 "min": null,
455 "show": true
456 }
457 ]
458 }
459 ],
460 "repeat": null,
461 "repeatIteration": null,
462 "repeatRowId": null,
463 "showTitle": false,
464 "title": "Pod count",
465 "titleSize": "h6"
466 },
467 {
468 "collapse": false,
469 "height": 250,
470 "panels": [
471 {
472 "aliasColors": {},
473 "bars": false,
474 "datasource": "Prometheus",
475 "editable": true,
476 "error": false,
477 "fill": 1,
478 "id": 12,
479 "legend": {
480 "alignAsTable": true,
481 "avg": true,
482 "current": false,
483 "max": true,
484 "min": false,
485 "rightSide": true,
486 "show": true,
487 "sort": "avg",
488 "sortDesc": true,
489 "total": false,
490 "values": true
491 },
492 "lines": true,
493 "linewidth": 1,
494 "links": [],
495 "nullPointMode": "connected",
496 "percentage": false,
497 "pointradius": 5,
498 "points": false,
499 "renderer": "flot",
500 "seriesOverrides": [
501 {
502 "alias": "elasticsearch-logging-data-20170207a (logging) - system",
503 "color": "#BF1B00"
504 },
505 {
506 "alias": "elasticsearch-logging-data-20170207a (logging) - user",
507 "color": "#508642"
508 }
509 ],
510 "span": 12,
511 "stack": true,
512 "steppedLine": false,
513 "targets": [
514 {
515 "expr": "sum(irate(container_cpu_system_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name)",
516 "intervalFactor": 2,
517 "legendFormat": "system",
518 "refId": "C",
519 "step": 10
520 },
521 {
522 "expr": "sum(irate(container_cpu_user_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name)",
523 "interval": "",
524 "intervalFactor": 2,
525 "legendFormat": "user",
526 "refId": "B",
527 "step": 10
528 }
529 ],
530 "thresholds": [],
531 "timeFrom": null,
532 "timeShift": null,
533 "title": "Cpu usage (relative to request)",
534 "tooltip": {
535 "msResolution": false,
536 "shared": true,
537 "sort": 0,
538 "value_type": "individual"
539 },
540 "type": "graph",
541 "xaxis": {
542 "mode": "time",
543 "name": null,
544 "show": true,
545 "values": []
546 },
547 "yaxes": [
548 {
549 "format": "percentunit",
550 "label": "",
551 "logBase": 1,
552 "max": "1",
553 "min": "0",
554 "show": true
555 },
556 {
557 "format": "short",
558 "label": null,
559 "logBase": 1,
560 "max": null,
561 "min": null,
562 "show": true
563 }
564 ]
565 }
566 ],
567 "repeat": null,
568 "repeatIteration": null,
569 "repeatRowId": null,
570 "showTitle": false,
571 "title": "Usage relative to request",
572 "titleSize": "h6"
573 },
574 {
575 "collapse": true,
576 "height": 250,
577 "panels": [
578 {
579 "aliasColors": {},
580 "bars": false,
581 "datasource": "Prometheus",
582 "editable": true,
583 "error": false,
584 "fill": 1,
585 "id": 10,
586 "legend": {
587 "alignAsTable": true,
588 "avg": true,
589 "current": false,
590 "max": true,
591 "min": false,
592 "rightSide": true,
593 "show": true,
594 "sort": "avg",
595 "sortDesc": true,
596 "total": false,
597 "values": true
598 },
599 "lines": true,
600 "linewidth": 1,
601 "links": [],
602 "nullPointMode": "connected",
603 "percentage": false,
604 "pointradius": 5,
605 "points": false,
606 "renderer": "flot",
607 "seriesOverrides": [],
608 "span": 6,
609 "stack": false,
610 "steppedLine": false,
611 "targets": [
612 {
613 "expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)",
614 "interval": "",
615 "intervalFactor": 1,
616 "legendFormat": "actual",
617 "metric": "",
618 "refId": "A",
619 "step": 1
620 }
621 ],
622 "thresholds": [],
623 "timeFrom": null,
624 "timeShift": null,
625 "title": "Cpu usage (relative to limit)",
626 "tooltip": {
627 "msResolution": false,
628 "shared": true,
629 "sort": 0,
630 "value_type": "individual"
631 },
632 "type": "graph",
633 "xaxis": {
634 "mode": "time",
635 "name": null,
636 "show": true,
637 "values": []
638 },
639 "yaxes": [
640 {
641 "format": "percentunit",
642 "label": "",
643 "logBase": 1,
644 "max": "1",
645 "min": "0",
646 "show": true
647 },
648 {
649 "format": "short",
650 "label": null,
651 "logBase": 1,
652 "max": null,
653 "min": null,
654 "show": true
655 }
656 ]
657 },
658 {
659 "aliasColors": {},
660 "bars": false,
661 "datasource": "Prometheus",
662 "editable": true,
663 "error": false,
664 "fill": 1,
665 "id": 11,
666 "legend": {
667 "alignAsTable": true,
668 "avg": true,
669 "current": false,
670 "max": true,
671 "min": false,
672 "rightSide": true,
673 "show": true,
674 "sort": "avg",
675 "sortDesc": true,
676 "total": false,
677 "values": true
678 },
679 "lines": true,
680 "linewidth": 1,
681 "links": [],
682 "nullPointMode": "connected",
683 "percentage": false,
684 "pointradius": 5,
685 "points": false,
686 "renderer": "flot",
687 "seriesOverrides": [],
688 "span": 6,
689 "stack": false,
690 "steppedLine": false,
691 "targets": [
692 {
693 "expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)",
694 "interval": "",
695 "intervalFactor": 1,
696 "legendFormat": "actual",
697 "refId": "A",
698 "step": 1
699 }
700 ],
701 "thresholds": [],
702 "timeFrom": null,
703 "timeShift": null,
704 "title": "Memory usage (relative to limit)",
705 "tooltip": {
706 "msResolution": false,
707 "shared": true,
708 "sort": 0,
709 "value_type": "individual"
710 },
711 "type": "graph",
712 "xaxis": {
713 "mode": "time",
714 "name": null,
715 "show": true,
716 "values": []
717 },
718 "yaxes": [
719 {
720 "format": "percentunit",
721 "label": null,
722 "logBase": 1,
723 "max": "1",
724 "min": "0",
725 "show": true
726 },
727 {
728 "format": "short",
729 "label": null,
730 "logBase": 1,
731 "max": null,
732 "min": null,
733 "show": true
734 }
735 ]
736 }
737 ],
738 "repeat": null,
739 "repeatIteration": null,
740 "repeatRowId": null,
741 "showTitle": false,
742 "title": "Usage relative to limit",
743 "titleSize": "h6"
744 },
745 {
746 "collapse": true,
747 "height": 250,
748 "panels": [
749 {
750 "aliasColors": {},
751 "bars": false,
752 "datasource": "Prometheus",
753 "fill": 1,
754 "id": 13,
755 "legend": {
756 "alignAsTable": true,
757 "avg": true,
758 "current": false,
759 "max": true,
760 "min": false,
761 "rightSide": true,
762 "show": true,
763 "sort": "avg",
764 "sortDesc": true,
765 "total": false,
766 "values": true
767 },
768 "lines": true,
769 "linewidth": 1,
770 "links": [],
771 "nullPointMode": "null",
772 "percentage": false,
773 "pointradius": 5,
774 "points": false,
775 "renderer": "flot",
776 "seriesOverrides": [],
777 "span": 6,
778 "stack": false,
779 "steppedLine": false,
780 "targets": [
781 {
782 "expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (id,pod_name)",
783 "interval": "",
784 "intervalFactor": 2,
785 "legendFormat": "{{pod_name}}",
786 "refId": "A",
787 "step": 2
788 },
789 {
790 "expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
791 "intervalFactor": 2,
792 "legendFormat": "limit",
793 "refId": "B",
794 "step": 2
795 },
796 {
797 "expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) / count(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
798 "intervalFactor": 2,
799 "legendFormat": "request",
800 "refId": "C",
801 "step": 2
802 }
803 ],
804 "thresholds": [],
805 "timeFrom": null,
806 "timeShift": null,
807 "title": "Cpu usage (per pod)",
808 "tooltip": {
809 "shared": true,
810 "sort": 0,
811 "value_type": "individual"
812 },
813 "type": "graph",
814 "xaxis": {
815 "mode": "time",
816 "name": null,
817 "show": true,
818 "values": []
819 },
820 "yaxes": [
821 {
822 "format": "short",
823 "label": "cores",
824 "logBase": 1,
825 "max": null,
826 "min": "0",
827 "show": true
828 },
829 {
830 "format": "short",
831 "label": null,
832 "logBase": 1,
833 "max": null,
834 "min": null,
835 "show": true
836 }
837 ]
838 },
839 {
840 "aliasColors": {},
841 "bars": false,
842 "datasource": "Prometheus",
843 "fill": 1,
844 "id": 14,
845 "legend": {
846 "alignAsTable": true,
847 "avg": true,
848 "current": false,
849 "max": true,
850 "min": false,
851 "rightSide": true,
852 "show": true,
853 "sort": "avg",
854 "sortDesc": true,
855 "total": false,
856 "values": true
857 },
858 "lines": true,
859 "linewidth": 1,
860 "links": [],
861 "nullPointMode": "null",
862 "percentage": false,
863 "pointradius": 5,
864 "points": false,
865 "renderer": "flot",
866 "seriesOverrides": [],
867 "span": 6,
868 "stack": false,
869 "steppedLine": false,
870 "targets": [
871 {
872 "expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (id,pod_name)",
873 "interval": "",
874 "intervalFactor": 2,
875 "legendFormat": "{{pod_name}}",
876 "refId": "A",
877 "step": 2
878 },
879 {
880 "expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (container_name,namespace)",
881 "intervalFactor": 2,
882 "legendFormat": "limit",
883 "refId": "B",
884 "step": 2
885 }
886 ],
887 "thresholds": [],
888 "timeFrom": null,
889 "timeShift": null,
890 "title": "Memory usage (per pod)",
891 "tooltip": {
892 "shared": true,
893 "sort": 0,
894 "value_type": "individual"
895 },
896 "type": "graph",
897 "xaxis": {
898 "mode": "time",
899 "name": null,
900 "show": true,
901 "values": []
902 },
903 "yaxes": [
904 {
905 "format": "bytes",
906 "label": null,
907 "logBase": 1,
908 "max": null,
909 "min": "0",
910 "show": true
911 },
912 {
913 "format": "short",
914 "label": null,
915 "logBase": 1,
916 "max": null,
917 "min": null,
918 "show": true
919 }
920 ]
921 }
922 ],
923 "repeat": null,
924 "repeatIteration": null,
925 "repeatRowId": null,
926 "showTitle": false,
927 "title": "Usage per pod",
928 "titleSize": "h6"
929 },
930 {
931 "collapse": true,
932 "height": 250,
933 "panels": [
934 {
935 "aliasColors": {},
936 "bars": false,
937 "datasource": "Prometheus",
938 "editable": true,
939 "error": false,
940 "fill": 1,
941 "id": 8,
942 "legend": {
943 "alignAsTable": true,
944 "avg": true,
945 "current": false,
946 "max": true,
947 "min": false,
948 "rightSide": true,
949 "show": true,
950 "sort": "avg",
951 "sortDesc": true,
952 "total": false,
953 "values": true
954 },
955 "lines": true,
956 "linewidth": 1,
957 "links": [],
958 "nullPointMode": "connected",
959 "percentage": false,
960 "pointradius": 5,
961 "points": false,
962 "renderer": "flot",
963 "seriesOverrides": [],
964 "span": 6,
965 "stack": false,
966 "steppedLine": false,
967 "targets": [
968 {
969 "expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
970 "interval": "",
971 "intervalFactor": 1,
972 "legendFormat": "actual",
973 "refId": "A",
974 "step": 1
975 },
976 {
977 "expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
978 "interval": "",
979 "intervalFactor": 1,
980 "legendFormat": "limit",
981 "refId": "B",
982 "step": 1
983 },
984 {
985 "expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) / count(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
986 "interval": "",
987 "intervalFactor": 1,
988 "legendFormat": "request",
989 "refId": "C",
990 "step": 1
991 }
992 ],
993 "thresholds": [],
994 "timeFrom": null,
995 "timeShift": null,
996 "title": "Cpu usage (avg per pod)",
997 "tooltip": {
998 "msResolution": false,
999 "shared": true,
1000 "sort": 0,
1001 "value_type": "individual"
1002 },
1003 "type": "graph",
1004 "xaxis": {
1005 "mode": "time",
1006 "name": null,
1007 "show": true,
1008 "values": []
1009 },
1010 "yaxes": [
1011 {
1012 "format": "none",
1013 "label": "cores",
1014 "logBase": 1,
1015 "max": null,
1016 "min": null,
1017 "show": true
1018 },
1019 {
1020 "format": "short",
1021 "label": null,
1022 "logBase": 1,
1023 "max": null,
1024 "min": null,
1025 "show": true
1026 }
1027 ]
1028 },
1029 {
1030 "aliasColors": {},
1031 "bars": false,
1032 "datasource": "Prometheus",
1033 "editable": true,
1034 "error": false,
1035 "fill": 1,
1036 "id": 9,
1037 "legend": {
1038 "alignAsTable": true,
1039 "avg": true,
1040 "current": false,
1041 "max": true,
1042 "min": false,
1043 "rightSide": true,
1044 "show": true,
1045 "sort": "avg",
1046 "sortDesc": true,
1047 "total": false,
1048 "values": true
1049 },
1050 "lines": true,
1051 "linewidth": 1,
1052 "links": [],
1053 "nullPointMode": "connected",
1054 "percentage": false,
1055 "pointradius": 5,
1056 "points": false,
1057 "renderer": "flot",
1058 "seriesOverrides": [],
1059 "span": 6,
1060 "stack": false,
1061 "steppedLine": false,
1062 "targets": [
1063 {
1064 "expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
1065 "intervalFactor": 1,
1066 "legendFormat": "actual",
1067 "metric": "",
1068 "refId": "A",
1069 "step": 1
1070 },
1071 {
1072 "expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) / count(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name) ",
1073 "interval": "",
1074 "intervalFactor": 1,
1075 "legendFormat": "limit",
1076 "refId": "B",
1077 "step": 1
1078 }
1079 ],
1080 "thresholds": [],
1081 "timeFrom": null,
1082 "timeShift": null,
1083 "title": "Memory usage (avg per pod)",
1084 "tooltip": {
1085 "msResolution": false,
1086 "shared": true,
1087 "sort": 0,
1088 "value_type": "individual"
1089 },
1090 "type": "graph",
1091 "xaxis": {
1092 "mode": "time",
1093 "name": null,
1094 "show": true,
1095 "values": []
1096 },
1097 "yaxes": [
1098 {
1099 "format": "bytes",
1100 "label": null,
1101 "logBase": 1,
1102 "max": null,
1103 "min": "0",
1104 "show": true
1105 },
1106 {
1107 "format": "short",
1108 "label": null,
1109 "logBase": 1,
1110 "max": null,
1111 "min": null,
1112 "show": true
1113 }
1114 ]
1115 }
1116 ],
1117 "repeat": null,
1118 "repeatIteration": null,
1119 "repeatRowId": null,
1120 "showTitle": false,
1121 "title": "Usage per pod (average)",
1122 "titleSize": "h6"
1123 },
1124 {
1125 "collapse": true,
1126 "height": 259.4375,
1127 "panels": [
1128 {
1129 "aliasColors": {},
1130 "bars": false,
1131 "datasource": "Prometheus",
1132 "editable": true,
1133 "error": false,
1134 "fill": 1,
1135 "grid": {},
1136 "id": 1,
1137 "legend": {
1138 "alignAsTable": true,
1139 "avg": true,
1140 "current": false,
1141 "max": true,
1142 "min": false,
1143 "rightSide": true,
1144 "show": true,
1145 "sort": "avg",
1146 "sortDesc": true,
1147 "total": false,
1148 "values": true
1149 },
1150 "lines": true,
1151 "linewidth": 2,
1152 "links": [],
1153 "nullPointMode": "connected",
1154 "percentage": false,
1155 "pointradius": 5,
1156 "points": false,
1157 "renderer": "flot",
1158 "seriesOverrides": [],
1159 "span": 6,
1160 "stack": false,
1161 "steppedLine": false,
1162 "targets": [
1163 {
1164 "expr": "sum(irate(container_cpu_usage_seconds_total{container_name=\"$container\", namespace=\"$namespace\"}[30s])) by (namespace,container_name)",
1165 "hide": false,
1166 "interval": "",
1167 "intervalFactor": 1,
1168 "legendFormat": "actual",
1169 "metric": "",
1170 "refId": "A",
1171 "step": 1
1172 },
1173 {
1174 "expr": "sum(container_spec_cpu_quota{container_name=\"$container\", namespace=\"$namespace\"} / container_spec_cpu_period{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)",
1175 "intervalFactor": 1,
1176 "legendFormat": "limit",
1177 "refId": "B",
1178 "step": 1
1179 },
1180 {
1181 "expr": "sum(container_spec_cpu_shares{container_name=\"$container\", namespace=\"$namespace\"} / 1024) by (namespace,container_name) ",
1182 "intervalFactor": 1,
1183 "legendFormat": "request",
1184 "refId": "C",
1185 "step": 1
1186 }
1187 ],
1188 "thresholds": [],
1189 "timeFrom": null,
1190 "timeShift": null,
1191 "title": "Cpu usage (total)",
1192 "tooltip": {
1193 "msResolution": true,
1194 "shared": false,
1195 "sort": 0,
1196 "value_type": "cumulative"
1197 },
1198 "type": "graph",
1199 "xaxis": {
1200 "mode": "time",
1201 "name": null,
1202 "show": true,
1203 "values": []
1204 },
1205 "yaxes": [
1206 {
1207 "format": "none",
1208 "label": "cores",
1209 "logBase": 1,
1210 "max": null,
1211 "min": 0,
1212 "show": true
1213 },
1214 {
1215 "format": "short",
1216 "label": null,
1217 "logBase": 1,
1218 "max": null,
1219 "min": null,
1220 "show": true
1221 }
1222 ]
1223 },
1224 {
1225 "aliasColors": {},
1226 "bars": false,
1227 "datasource": "Prometheus",
1228 "editable": true,
1229 "error": false,
1230 "fill": 1,
1231 "grid": {},
1232 "id": 2,
1233 "legend": {
1234 "alignAsTable": true,
1235 "avg": true,
1236 "current": false,
1237 "max": true,
1238 "min": false,
1239 "rightSide": true,
1240 "show": true,
1241 "sort": "avg",
1242 "sortDesc": true,
1243 "total": false,
1244 "values": true
1245 },
1246 "lines": true,
1247 "linewidth": 2,
1248 "links": [],
1249 "nullPointMode": "connected",
1250 "percentage": false,
1251 "pointradius": 5,
1252 "points": false,
1253 "renderer": "flot",
1254 "seriesOverrides": [],
1255 "span": 6,
1256 "stack": false,
1257 "steppedLine": false,
1258 "targets": [
1259 {
1260 "expr": "sum(container_memory_usage_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)",
1261 "interval": "",
1262 "intervalFactor": 1,
1263 "legendFormat": "actual",
1264 "refId": "A",
1265 "step": 1
1266 },
1267 {
1268 "expr": "sum(container_spec_memory_limit_bytes{container_name=\"$container\", namespace=\"$namespace\"}) by (namespace,container_name)",
1269 "intervalFactor": 1,
1270 "legendFormat": "limit",
1271 "refId": "B",
1272 "step": 1
1273 }
1274 ],
1275 "thresholds": [],
1276 "timeFrom": null,
1277 "timeShift": null,
1278 "title": "Memory usage (total)",
1279 "tooltip": {
1280 "msResolution": true,
1281 "shared": false,
1282 "sort": 0,
1283 "value_type": "cumulative"
1284 },
1285 "type": "graph",
1286 "xaxis": {
1287 "mode": "time",
1288 "name": null,
1289 "show": true,
1290 "values": []
1291 },
1292 "yaxes": [
1293 {
1294 "format": "bytes",
1295 "label": null,
1296 "logBase": 1,
1297 "max": null,
1298 "min": "0",
1299 "show": true
1300 },
1301 {
1302 "format": "short",
1303 "label": null,
1304 "logBase": 1,
1305 "max": null,
1306 "min": null,
1307 "show": true
1308 }
1309 ]
1310 }
1311 ],
1312 "repeat": null,
1313 "repeatIteration": null,
1314 "repeatRowId": null,
1315 "showTitle": false,
1316 "title": "Usage total",
1317 "titleSize": "h6"
1318 }
1319 ],
1320 "schemaVersion": 14,
1321 "style": "dark",
1322 "tags": [],
1323 "templating": {
1324 "list": [
1325 {
1326 "allValue": ".+",
1327 "current": {},
1328 "datasource": "Prometheus",
1329 "hide": 0,
1330 "includeAll": false,
1331 "label": null,
1332 "multi": false,
1333 "name": "namespace",
1334 "options": [],
1335 "query": "label_values(container_memory_usage_bytes{namespace=~\".+\",container_name!=\"POD\"},namespace)",
1336 "refresh": 1,
1337 "regex": "",
1338 "sort": 1,
1339 "tagValuesQuery": null,
1340 "tags": [],
1341 "tagsQuery": null,
1342 "type": "query",
1343 "useTags": false
1344 },
1345 {
1346 "allValue": ".+",
1347 "current": {},
1348 "datasource": "Prometheus",
1349 "hide": 0,
1350 "includeAll": false,
1351 "label": null,
1352 "multi": false,
1353 "name": "container",
1354 "options": [],
1355 "query": "label_values(container_memory_usage_bytes{namespace=~\"$namespace\",container_name!=\"POD\"},container_name)",
1356 "refresh": 1,
1357 "regex": "",
1358 "sort": 1,
1359 "tagValuesQuery": null,
1360 "tags": [],
1361 "tagsQuery": null,
1362 "type": "query",
1363 "useTags": false
1364 }
1365 ]
1366 },
1367 "time": {
1368 "from": "now-3h",
1369 "to": "now"
1370 },
1371 "timepicker": {
1372 "refresh_intervals": [
1373 "5s",
1374 "10s",
1375 "30s",
1376 "1m",
1377 "5m",
1378 "15m",
1379 "30m",
1380 "1h",
1381 "2h",
1382 "1d"
1383 ],
1384 "time_options": [
1385 "5m",
1386 "15m",
1387 "1h",
1388 "6h",
1389 "12h",
1390 "24h",
1391 "2d",
1392 "7d",
1393 "30d"
1394 ]
1395 },
1396 "timezone": "browser",
1397 "title": "Kubernetes App Metrics",
1398 "version": 37,
1399 "description": "After selecting your namespace and container you get a wealth of metrics like request rate, error rate, response times, pod count, cpu and memory usage. You can view cpu and memory usage in a variety of ways, compared to the limit, compared to the request, per pod, average per pod, etc."
1400 }