]> git.sesse.net Git - nageru/blob - Nageru-Grafana.json
Add the GPU memory metrics to the Grafana dashboard.
[nageru] / Nageru-Grafana.json
1 {
2   "__inputs": [
3     {
4       "name": "DS_EXAMPLE",
5       "label": "Data source",
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": "5.1.0"
18     },
19     {
20       "type": "panel",
21       "id": "graph",
22       "name": "Graph",
23       "version": "5.0.0"
24     },
25     {
26       "type": "panel",
27       "id": "heatmap",
28       "name": "Heatmap",
29       "version": "5.0.0"
30     },
31     {
32       "type": "datasource",
33       "id": "prometheus",
34       "name": "Prometheus",
35       "version": "5.0.0"
36     },
37     {
38       "type": "panel",
39       "id": "singlestat",
40       "name": "Singlestat",
41       "version": "5.0.0"
42     }
43   ],
44   "annotations": {
45     "list": [
46       {
47         "builtIn": 1,
48         "datasource": "-- Grafana --",
49         "enable": true,
50         "hide": true,
51         "iconColor": "rgba(0, 211, 255, 1)",
52         "name": "Annotations & Alerts",
53         "type": "dashboard"
54       }
55     ]
56   },
57   "editable": true,
58   "gnetId": null,
59   "graphTooltip": 0,
60   "id": null,
61   "iteration": 1524926525805,
62   "links": [],
63   "panels": [
64     {
65       "collapsed": false,
66       "gridPos": {
67         "h": 1,
68         "w": 24,
69         "x": 0,
70         "y": 0
71       },
72       "id": 63,
73       "panels": [],
74       "repeat": "instance",
75       "title": "$instance",
76       "type": "row"
77     },
78     {
79       "cacheTimeout": null,
80       "colorBackground": false,
81       "colorValue": false,
82       "colors": [
83         "rgba(245, 54, 54, 0.9)",
84         "rgba(237, 129, 40, 0.89)",
85         "rgba(50, 172, 45, 0.97)"
86       ],
87       "datasource": "${DS_EXAMPLE}",
88       "format": "s",
89       "gauge": {
90         "maxValue": 100,
91         "minValue": 0,
92         "show": false,
93         "thresholdLabels": false,
94         "thresholdMarkers": true
95       },
96       "gridPos": {
97         "h": 4,
98         "w": 4,
99         "x": 0,
100         "y": 1
101       },
102       "id": 37,
103       "interval": null,
104       "links": [],
105       "mappingType": 1,
106       "mappingTypes": [
107         {
108           "name": "value to text",
109           "value": 1
110         },
111         {
112           "name": "range to text",
113           "value": 2
114         }
115       ],
116       "maxDataPoints": 100,
117       "nullPointMode": "connected",
118       "nullText": null,
119       "postfix": "",
120       "postfixFontSize": "50%",
121       "prefix": "",
122       "prefixFontSize": "50%",
123       "rangeMaps": [
124         {
125           "from": "null",
126           "text": "N/A",
127           "to": "null"
128         }
129       ],
130       "repeat": null,
131       "sparkline": {
132         "fillColor": "rgba(31, 118, 189, 0.18)",
133         "full": false,
134         "lineColor": "rgb(31, 120, 193)",
135         "show": false
136       },
137       "tableColumn": "",
138       "targets": [
139         {
140           "expr": "time() - nageru_start_time_seconds{instance=~\"$instance\"}",
141           "format": "time_series",
142           "hide": false,
143           "intervalFactor": 2,
144           "legendFormat": "",
145           "refId": "A",
146           "step": 240
147         }
148       ],
149       "thresholds": "",
150       "title": "Nageru uptime",
151       "type": "singlestat",
152       "valueFontSize": "80%",
153       "valueMaps": [
154         {
155           "op": "=",
156           "text": "N/A",
157           "value": "null"
158         }
159       ],
160       "valueName": "current"
161     },
162     {
163       "cacheTimeout": null,
164       "colorBackground": false,
165       "colorValue": false,
166       "colors": [
167         "rgba(245, 54, 54, 0.9)",
168         "rgba(237, 129, 40, 0.89)",
169         "rgba(50, 172, 45, 0.97)"
170       ],
171       "datasource": "${DS_EXAMPLE}",
172       "format": "dtdurations",
173       "gauge": {
174         "maxValue": 100,
175         "minValue": 0,
176         "show": false,
177         "thresholdLabels": false,
178         "thresholdMarkers": true
179       },
180       "gridPos": {
181         "h": 4,
182         "w": 4,
183         "x": 4,
184         "y": 1
185       },
186       "id": 6,
187       "interval": null,
188       "links": [],
189       "mappingType": 1,
190       "mappingTypes": [
191         {
192           "name": "value to text",
193           "value": 1
194         },
195         {
196           "name": "range to text",
197           "value": 2
198         }
199       ],
200       "maxDataPoints": 100,
201       "nullPointMode": "connected",
202       "nullText": null,
203       "postfix": "",
204       "postfixFontSize": "50%",
205       "prefix": "",
206       "prefixFontSize": "50%",
207       "rangeMaps": [
208         {
209           "from": "null",
210           "text": "N/A",
211           "to": "null"
212         }
213       ],
214       "repeat": null,
215       "sparkline": {
216         "fillColor": "rgba(31, 118, 189, 0.18)",
217         "full": false,
218         "lineColor": "rgb(31, 120, 193)",
219         "show": false
220       },
221       "tableColumn": "instance",
222       "targets": [
223         {
224           "expr": "nageru_disk_free_bytes / ignoring(destination) deriv(nageru_mux_written_bytes{destination=\"files_total\",instance=~\"$instance\"}[10m])",
225           "format": "time_series",
226           "interval": "",
227           "intervalFactor": 2,
228           "legendFormat": "",
229           "refId": "A",
230           "step": 240
231         }
232       ],
233       "thresholds": "",
234       "title": "Disk space remaining",
235       "type": "singlestat",
236       "valueFontSize": "80%",
237       "valueMaps": [
238         {
239           "op": "=",
240           "text": "N/A",
241           "value": "null"
242         }
243       ],
244       "valueName": "current"
245     },
246     {
247       "cacheTimeout": null,
248       "colorBackground": false,
249       "colorValue": false,
250       "colors": [
251         "rgba(245, 54, 54, 0.9)",
252         "rgba(237, 129, 40, 0.89)",
253         "rgba(50, 172, 45, 0.97)"
254       ],
255       "datasource": "${DS_EXAMPLE}",
256       "format": "none",
257       "gauge": {
258         "maxValue": 100,
259         "minValue": 0,
260         "show": false,
261         "thresholdLabels": false,
262         "thresholdMarkers": true
263       },
264       "gridPos": {
265         "h": 4,
266         "w": 4,
267         "x": 8,
268         "y": 1
269       },
270       "id": 11,
271       "interval": null,
272       "links": [],
273       "mappingType": 1,
274       "mappingTypes": [
275         {
276           "name": "value to text",
277           "value": 1
278         },
279         {
280           "name": "range to text",
281           "value": 2
282         }
283       ],
284       "maxDataPoints": 100,
285       "nullPointMode": "connected",
286       "nullText": null,
287       "postfix": "",
288       "postfixFontSize": "50%",
289       "prefix": "",
290       "prefixFontSize": "50%",
291       "rangeMaps": [
292         {
293           "from": "null",
294           "text": "N/A",
295           "to": "null"
296         }
297       ],
298       "sparkline": {
299         "fillColor": "rgba(31, 118, 189, 0.18)",
300         "full": false,
301         "lineColor": "rgb(31, 120, 193)",
302         "show": true
303       },
304       "tableColumn": "",
305       "targets": [
306         {
307           "expr": "nageru_num_connected_clients{instance=~\"$instance\"}",
308           "format": "time_series",
309           "intervalFactor": 2,
310           "legendFormat": "",
311           "refId": "A",
312           "step": 240
313         }
314       ],
315       "thresholds": "",
316       "title": "Connected clients",
317       "type": "singlestat",
318       "valueFontSize": "80%",
319       "valueMaps": [
320         {
321           "op": "=",
322           "text": "N/A",
323           "value": "null"
324         }
325       ],
326       "valueName": "current"
327     },
328     {
329       "cacheTimeout": null,
330       "colorBackground": false,
331       "colorValue": false,
332       "colors": [
333         "rgba(245, 54, 54, 0.9)",
334         "rgba(237, 129, 40, 0.89)",
335         "rgba(50, 172, 45, 0.97)"
336       ],
337       "datasource": "${DS_EXAMPLE}",
338       "format": "none",
339       "gauge": {
340         "maxValue": 100,
341         "minValue": 0,
342         "show": false,
343         "thresholdLabels": false,
344         "thresholdMarkers": true
345       },
346       "gridPos": {
347         "h": 4,
348         "w": 4,
349         "x": 12,
350         "y": 1
351       },
352       "id": 46,
353       "interval": null,
354       "links": [],
355       "mappingType": 1,
356       "mappingTypes": [
357         {
358           "name": "value to text",
359           "value": 1
360         },
361         {
362           "name": "range to text",
363           "value": 2
364         }
365       ],
366       "maxDataPoints": 100,
367       "nullPointMode": "connected",
368       "nullText": null,
369       "postfix": "",
370       "postfixFontSize": "50%",
371       "prefix": "",
372       "prefixFontSize": "50%",
373       "rangeMaps": [
374         {
375           "from": "null",
376           "text": "N/A",
377           "to": "null"
378         }
379       ],
380       "sparkline": {
381         "fillColor": "rgba(31, 118, 189, 0.18)",
382         "full": false,
383         "lineColor": "rgb(31, 120, 193)",
384         "show": true
385       },
386       "tableColumn": "",
387       "targets": [
388         {
389           "expr": "sum(nageru_input_has_signal_bool{cardtype=\"ffmpeg\",instance=~\"$instance\"})",
390           "format": "time_series",
391           "intervalFactor": 2,
392           "legendFormat": "",
393           "metric": "",
394           "refId": "A",
395           "step": 240
396         }
397       ],
398       "thresholds": "",
399       "title": "Connected FFmpeg inputs",
400       "type": "singlestat",
401       "valueFontSize": "80%",
402       "valueMaps": [
403         {
404           "op": "=",
405           "text": "N/A",
406           "value": "null"
407         }
408       ],
409       "valueName": "current"
410     },
411     {
412       "cacheTimeout": null,
413       "colorBackground": false,
414       "colorValue": false,
415       "colors": [
416         "rgba(245, 54, 54, 0.9)",
417         "rgba(237, 129, 40, 0.89)",
418         "rgba(50, 172, 45, 0.97)"
419       ],
420       "datasource": "${DS_EXAMPLE}",
421       "decimals": 1,
422       "format": "none",
423       "gauge": {
424         "maxValue": 100,
425         "minValue": 0,
426         "show": false,
427         "thresholdLabels": false,
428         "thresholdMarkers": true
429       },
430       "gridPos": {
431         "h": 4,
432         "w": 4,
433         "x": 16,
434         "y": 1
435       },
436       "id": 7,
437       "interval": null,
438       "links": [],
439       "mappingType": 1,
440       "mappingTypes": [
441         {
442           "name": "value to text",
443           "value": 1
444         },
445         {
446           "name": "range to text",
447           "value": 2
448         }
449       ],
450       "maxDataPoints": 100,
451       "nullPointMode": "connected",
452       "nullText": null,
453       "postfix": " LU",
454       "postfixFontSize": "50%",
455       "prefix": "",
456       "prefixFontSize": "50%",
457       "rangeMaps": [
458         {
459           "from": "null",
460           "text": "N/A",
461           "to": "null"
462         }
463       ],
464       "sparkline": {
465         "fillColor": "rgba(31, 118, 189, 0.18)",
466         "full": false,
467         "lineColor": "rgb(31, 120, 193)",
468         "show": true
469       },
470       "tableColumn": "",
471       "targets": [
472         {
473           "expr": "nageru_audio_loudness_integrated_lufs{instance=~\"$instance\"} + 23",
474           "format": "time_series",
475           "intervalFactor": 2,
476           "legendFormat": "",
477           "refId": "A",
478           "step": 240
479         }
480       ],
481       "thresholds": "",
482       "title": "Overall audio level",
483       "type": "singlestat",
484       "valueFontSize": "80%",
485       "valueMaps": [
486         {
487           "op": "=",
488           "text": "N/A",
489           "value": "null"
490         }
491       ],
492       "valueName": "current"
493     },
494     {
495       "aliasColors": {},
496       "bars": false,
497       "dashLength": 10,
498       "dashes": false,
499       "datasource": "${DS_EXAMPLE}",
500       "fill": 0,
501       "gridPos": {
502         "h": 4,
503         "w": 4,
504         "x": 20,
505         "y": 1
506       },
507       "id": 18,
508       "legend": {
509         "avg": false,
510         "current": false,
511         "max": false,
512         "min": false,
513         "show": false,
514         "total": false,
515         "values": false
516       },
517       "lines": true,
518       "linewidth": 1,
519       "links": [],
520       "nullPointMode": "null",
521       "percentage": false,
522       "pointradius": 5,
523       "points": false,
524       "renderer": "flot",
525       "seriesOverrides": [],
526       "spaceLength": 10,
527       "stack": false,
528       "steppedLine": false,
529       "targets": [
530         {
531           "expr": "nageru_audio_correlation{instance=~\"$instance\"}",
532           "format": "time_series",
533           "intervalFactor": 2,
534           "legendFormat": "",
535           "refId": "A",
536           "step": 60
537         }
538       ],
539       "thresholds": [],
540       "timeFrom": null,
541       "timeShift": null,
542       "title": "Audio correlation",
543       "tooltip": {
544         "shared": true,
545         "sort": 0,
546         "value_type": "individual"
547       },
548       "type": "graph",
549       "xaxis": {
550         "buckets": null,
551         "mode": "time",
552         "name": null,
553         "show": true,
554         "values": []
555       },
556       "yaxes": [
557         {
558           "format": "short",
559           "label": "",
560           "logBase": 1,
561           "max": "1",
562           "min": "-1",
563           "show": true
564         },
565         {
566           "format": "short",
567           "label": null,
568           "logBase": 1,
569           "max": null,
570           "min": null,
571           "show": true
572         }
573       ],
574       "yaxis": {
575         "align": false,
576         "alignLevel": null
577       }
578     },
579     {
580       "collapsed": false,
581       "gridPos": {
582         "h": 1,
583         "w": 24,
584         "x": 0,
585         "y": 5
586       },
587       "id": 64,
588       "panels": [],
589       "repeat": null,
590       "title": "Dashboard Row",
591       "type": "row"
592     },
593     {
594       "aliasColors": {},
595       "bars": false,
596       "dashLength": 10,
597       "dashes": false,
598       "datasource": "${DS_EXAMPLE}",
599       "fill": 1,
600       "gridPos": {
601         "h": 7,
602         "w": 12,
603         "x": 0,
604         "y": 6
605       },
606       "id": 1,
607       "legend": {
608         "avg": false,
609         "current": false,
610         "max": false,
611         "min": false,
612         "show": true,
613         "total": false,
614         "values": false
615       },
616       "lines": true,
617       "linewidth": 1,
618       "links": [],
619       "nullPointMode": "null",
620       "percentage": false,
621       "pointradius": 5,
622       "points": false,
623       "renderer": "flot",
624       "seriesOverrides": [],
625       "spaceLength": 10,
626       "stack": true,
627       "steppedLine": false,
628       "targets": [
629         {
630           "expr": "rate(nageru_decklink_output_completed_frames{status!=\"completed\",instance=~\"$instance\"}[1m])",
631           "format": "time_series",
632           "interval": "",
633           "intervalFactor": 2,
634           "legendFormat": "Output frames {{status}}",
635           "refId": "A",
636           "step": 20
637         },
638         {
639           "expr": "sum(rate(nageru_input_dropped_frames_error{instance=~\"$instance\"}[1m])) without (cardtype)",
640           "format": "time_series",
641           "interval": "",
642           "intervalFactor": 2,
643           "legendFormat": "Error frames card {{card}}",
644           "refId": "B",
645           "step": 20
646         },
647         {
648           "expr": "rate(nageru_quick_sync_stalled_frames{instance=~\"$instance\"}[1m])",
649           "format": "time_series",
650           "interval": "",
651           "intervalFactor": 2,
652           "legendFormat": "Quick Sync stalled frames",
653           "refId": "C",
654           "step": 20
655         },
656         {
657           "expr": "rate(nageru_x264_dropped_frames{instance=~\"$instance\"}[1m])",
658           "format": "time_series",
659           "interval": "",
660           "intervalFactor": 2,
661           "legendFormat": "x264 dropped frames",
662           "refId": "D",
663           "step": 20
664         },
665         {
666           "expr": "rate(nageru_x264_speedcontrol_idle_frames{instance=~\"$instance\"}[1m])",
667           "format": "time_series",
668           "interval": "",
669           "intervalFactor": 2,
670           "legendFormat": "x264 speedcontrol idle frames",
671           "refId": "E",
672           "step": 20
673         },
674         {
675           "expr": "rate(nageru_x264_speedcontrol_late_frames{instance=~\"$instance\"}[1m])",
676           "format": "time_series",
677           "interval": "",
678           "intervalFactor": 2,
679           "legendFormat": "x264 speedcontrol late frames",
680           "refId": "F",
681           "step": 20
682         }
683       ],
684       "thresholds": [],
685       "timeFrom": null,
686       "timeShift": null,
687       "title": "Potential performance problems",
688       "tooltip": {
689         "shared": true,
690         "sort": 0,
691         "value_type": "individual"
692       },
693       "type": "graph",
694       "xaxis": {
695         "buckets": null,
696         "mode": "time",
697         "name": null,
698         "show": true,
699         "values": []
700       },
701       "yaxes": [
702         {
703           "format": "short",
704           "label": null,
705           "logBase": 1,
706           "max": null,
707           "min": null,
708           "show": true
709         },
710         {
711           "format": "short",
712           "label": null,
713           "logBase": 1,
714           "max": null,
715           "min": null,
716           "show": true
717         }
718       ],
719       "yaxis": {
720         "align": false,
721         "alignLevel": null
722       }
723     },
724     {
725       "aliasColors": {},
726       "bars": false,
727       "dashLength": 10,
728       "dashes": false,
729       "datasource": "${DS_EXAMPLE}",
730       "fill": 1,
731       "gridPos": {
732         "h": 7,
733         "w": 12,
734         "x": 12,
735         "y": 6
736       },
737       "id": 27,
738       "legend": {
739         "avg": false,
740         "current": false,
741         "max": false,
742         "min": false,
743         "show": true,
744         "total": false,
745         "values": false
746       },
747       "lines": true,
748       "linewidth": 1,
749       "links": [],
750       "nullPointMode": "null",
751       "percentage": false,
752       "pointradius": 5,
753       "points": false,
754       "renderer": "flot",
755       "seriesOverrides": [],
756       "spaceLength": 10,
757       "stack": true,
758       "steppedLine": false,
759       "targets": [
760         {
761           "expr": "sum(rate(nageru_input_queue_duped_frames{instance=~\"$instance\"}[1m])) without (cardtype)",
762           "format": "time_series",
763           "interval": "",
764           "intervalFactor": 2,
765           "legendFormat": "Duplicated frames (queue starvation) card {{card}}",
766           "metric": "",
767           "refId": "A",
768           "step": 20
769         },
770         {
771           "expr": "sum(rate(nageru_input_dropped_frames_jitter{instance=~\"$instance\"}[1m])) without (cardtype)",
772           "format": "time_series",
773           "interval": "",
774           "intervalFactor": 2,
775           "legendFormat": "Dropped frames card {{card}}",
776           "refId": "B",
777           "step": 20
778         }
779       ],
780       "thresholds": [],
781       "timeFrom": null,
782       "timeShift": null,
783       "title": "Queue events",
784       "tooltip": {
785         "shared": true,
786         "sort": 0,
787         "value_type": "individual"
788       },
789       "type": "graph",
790       "xaxis": {
791         "buckets": null,
792         "mode": "time",
793         "name": null,
794         "show": true,
795         "values": []
796       },
797       "yaxes": [
798         {
799           "format": "short",
800           "label": null,
801           "logBase": 1,
802           "max": null,
803           "min": null,
804           "show": true
805         },
806         {
807           "format": "short",
808           "label": null,
809           "logBase": 1,
810           "max": null,
811           "min": null,
812           "show": true
813         }
814       ],
815       "yaxis": {
816         "align": false,
817         "alignLevel": null
818       }
819     },
820     {
821       "collapsed": false,
822       "gridPos": {
823         "h": 1,
824         "w": 24,
825         "x": 0,
826         "y": 13
827       },
828       "id": 65,
829       "panels": [],
830       "repeat": null,
831       "title": "Dashboard Row",
832       "type": "row"
833     },
834     {
835       "aliasColors": {},
836       "bars": false,
837       "dashLength": 10,
838       "dashes": false,
839       "datasource": "${DS_EXAMPLE}",
840       "fill": 1,
841       "gridPos": {
842         "h": 7,
843         "w": 12,
844         "x": 0,
845         "y": 14
846       },
847       "id": 12,
848       "legend": {
849         "avg": false,
850         "current": false,
851         "max": false,
852         "min": false,
853         "show": true,
854         "total": false,
855         "values": false
856       },
857       "lines": true,
858       "linewidth": 1,
859       "links": [],
860       "nullPointMode": "null",
861       "percentage": false,
862       "pointradius": 5,
863       "points": false,
864       "renderer": "flot",
865       "seriesOverrides": [],
866       "spaceLength": 10,
867       "stack": true,
868       "steppedLine": false,
869       "targets": [
870         {
871           "expr": "8 * rate(nageru_mux_stream_bytes{destination=\"http\",instance=~\"$instance\"}[1m])",
872           "format": "time_series",
873           "interval": "",
874           "intervalFactor": 2,
875           "legendFormat": "{{stream}}",
876           "refId": "A",
877           "step": 20
878         }
879       ],
880       "thresholds": [],
881       "timeFrom": null,
882       "timeShift": null,
883       "title": "Stream bitrates",
884       "tooltip": {
885         "shared": true,
886         "sort": 0,
887         "value_type": "individual"
888       },
889       "type": "graph",
890       "xaxis": {
891         "buckets": null,
892         "mode": "time",
893         "name": null,
894         "show": true,
895         "values": []
896       },
897       "yaxes": [
898         {
899           "format": "bps",
900           "label": null,
901           "logBase": 1,
902           "max": null,
903           "min": "0",
904           "show": true
905         },
906         {
907           "format": "short",
908           "label": null,
909           "logBase": 1,
910           "max": null,
911           "min": null,
912           "show": true
913         }
914       ],
915       "yaxis": {
916         "align": false,
917         "alignLevel": null
918       }
919     },
920     {
921       "aliasColors": {},
922       "bars": false,
923       "dashLength": 10,
924       "dashes": false,
925       "datasource": "${DS_EXAMPLE}",
926       "fill": 1,
927       "gridPos": {
928         "h": 7,
929         "w": 12,
930         "x": 12,
931         "y": 14
932       },
933       "id": 13,
934       "legend": {
935         "avg": false,
936         "current": false,
937         "max": false,
938         "min": false,
939         "show": true,
940         "total": false,
941         "values": false
942       },
943       "lines": true,
944       "linewidth": 1,
945       "links": [],
946       "nullPointMode": "null",
947       "percentage": false,
948       "pointradius": 5,
949       "points": false,
950       "renderer": "flot",
951       "seriesOverrides": [],
952       "spaceLength": 10,
953       "stack": true,
954       "steppedLine": false,
955       "targets": [
956         {
957           "expr": "8 * rate(nageru_mux_stream_bytes{destination=\"current_file\",instance=~\"$instance\"}[1m])",
958           "format": "time_series",
959           "interval": "",
960           "intervalFactor": 2,
961           "legendFormat": "{{stream}}",
962           "refId": "A",
963           "step": 20
964         }
965       ],
966       "thresholds": [],
967       "timeFrom": null,
968       "timeShift": null,
969       "title": "Disk bitrates",
970       "tooltip": {
971         "shared": true,
972         "sort": 0,
973         "value_type": "individual"
974       },
975       "type": "graph",
976       "xaxis": {
977         "buckets": null,
978         "mode": "time",
979         "name": null,
980         "show": true,
981         "values": []
982       },
983       "yaxes": [
984         {
985           "format": "bps",
986           "label": null,
987           "logBase": 1,
988           "max": null,
989           "min": "0",
990           "show": true
991         },
992         {
993           "format": "short",
994           "label": null,
995           "logBase": 1,
996           "max": null,
997           "min": null,
998           "show": true
999         }
1000       ],
1001       "yaxis": {
1002         "align": false,
1003         "alignLevel": null
1004       }
1005     },
1006     {
1007       "collapsed": false,
1008       "gridPos": {
1009         "h": 1,
1010         "w": 24,
1011         "x": 0,
1012         "y": 21
1013       },
1014       "id": 66,
1015       "panels": [],
1016       "repeat": null,
1017       "title": "Dashboard Row",
1018       "type": "row"
1019     },
1020     {
1021       "aliasColors": {},
1022       "bars": false,
1023       "dashLength": 10,
1024       "dashes": false,
1025       "datasource": "${DS_EXAMPLE}",
1026       "fill": 1,
1027       "gridPos": {
1028         "h": 7,
1029         "w": 8,
1030         "x": 0,
1031         "y": 22
1032       },
1033       "id": 19,
1034       "legend": {
1035         "avg": false,
1036         "current": false,
1037         "max": false,
1038         "min": false,
1039         "show": true,
1040         "total": false,
1041         "values": false
1042       },
1043       "lines": true,
1044       "linewidth": 1,
1045       "links": [],
1046       "nullPointMode": "null",
1047       "percentage": false,
1048       "pointradius": 5,
1049       "points": false,
1050       "renderer": "flot",
1051       "seriesOverrides": [
1052         {
1053           "alias": "90-percentile",
1054           "fillBelowTo": "10-percentile",
1055           "lines": false
1056         },
1057         {
1058           "alias": "10-percentile",
1059           "lines": false
1060         },
1061         {
1062           "alias": "Average",
1063           "fill": 0
1064         }
1065       ],
1066       "spaceLength": 10,
1067       "stack": false,
1068       "steppedLine": false,
1069       "targets": [
1070         {
1071           "expr": "histogram_quantile(0.9, rate(nageru_x264_crf_bucket{instance=~\"$instance\"}[1m]))",
1072           "format": "time_series",
1073           "intervalFactor": 2,
1074           "legendFormat": "90-percentile",
1075           "refId": "B",
1076           "step": 30
1077         },
1078         {
1079           "expr": "histogram_quantile(0.1, rate(nageru_x264_crf_bucket{instance=~\"$instance\"}[1m]))",
1080           "format": "time_series",
1081           "interval": "",
1082           "intervalFactor": 2,
1083           "legendFormat": "10-percentile",
1084           "refId": "A",
1085           "step": 30
1086         },
1087         {
1088           "expr": "rate(nageru_x264_crf_sum{instance=~\"$instance\"}[1m]) / rate(nageru_x264_crf_count{instance=~\"$instance\"}[1m])",
1089           "format": "time_series",
1090           "interval": "",
1091           "intervalFactor": 2,
1092           "legendFormat": "Average",
1093           "refId": "C",
1094           "step": 30
1095         }
1096       ],
1097       "thresholds": [],
1098       "timeFrom": null,
1099       "timeShift": null,
1100       "title": "x264 average CRF (lower is better)",
1101       "tooltip": {
1102         "shared": true,
1103         "sort": 0,
1104         "value_type": "individual"
1105       },
1106       "type": "graph",
1107       "xaxis": {
1108         "buckets": null,
1109         "mode": "time",
1110         "name": null,
1111         "show": true,
1112         "values": []
1113       },
1114       "yaxes": [
1115         {
1116           "format": "short",
1117           "label": null,
1118           "logBase": 1,
1119           "max": null,
1120           "min": null,
1121           "show": true
1122         },
1123         {
1124           "format": "short",
1125           "label": null,
1126           "logBase": 1,
1127           "max": null,
1128           "min": null,
1129           "show": true
1130         }
1131       ],
1132       "yaxis": {
1133         "align": false,
1134         "alignLevel": null
1135       }
1136     },
1137     {
1138       "cards": {
1139         "cardPadding": 0,
1140         "cardRound": null
1141       },
1142       "color": {
1143         "cardColor": "#b4ff00",
1144         "colorScale": "sqrt",
1145         "colorScheme": "interpolateOranges",
1146         "exponent": 0.5,
1147         "mode": "spectrum"
1148       },
1149       "dataFormat": "tsbuckets",
1150       "datasource": "${DS_EXAMPLE}",
1151       "gridPos": {
1152         "h": 7,
1153         "w": 24,
1154         "x": 0,
1155         "y": 29
1156       },
1157       "heatmap": {},
1158       "highlightCards": true,
1159       "id": 55,
1160       "legend": {
1161         "show": false
1162       },
1163       "links": [],
1164       "repeat": "instance",
1165       "repeatDirection": "h",
1166       "targets": [
1167         {
1168           "expr": "rate(nageru_x264_speedcontrol_preset_used_frames_bucket{instance=~\"$instance\"}[1m])",
1169           "format": "heatmap",
1170           "interval": "",
1171           "intervalFactor": 4,
1172           "legendFormat": "{{le}}",
1173           "refId": "A",
1174           "step": 30
1175         }
1176       ],
1177       "title": "x264 speed control chosen preset",
1178       "tooltip": {
1179         "show": true,
1180         "showHistogram": false
1181       },
1182       "type": "heatmap",
1183       "xAxis": {
1184         "show": true
1185       },
1186       "xBucketNumber": null,
1187       "xBucketSize": "",
1188       "yAxis": {
1189         "decimals": null,
1190         "format": "none",
1191         "logBase": 1,
1192         "max": "26",
1193         "min": "0",
1194         "show": true,
1195         "splitFactor": null
1196       },
1197       "yBucketBound": "auto",
1198       "yBucketNumber": null,
1199       "yBucketSize": 1
1200     },
1201     {
1202       "aliasColors": {},
1203       "bars": false,
1204       "dashLength": 10,
1205       "dashes": false,
1206       "datasource": "${DS_EXAMPLE}",
1207       "fill": 1,
1208       "gridPos": {
1209         "h": 7,
1210         "w": 8,
1211         "x": 16,
1212         "y": 36
1213       },
1214       "id": 62,
1215       "legend": {
1216         "avg": false,
1217         "current": false,
1218         "max": false,
1219         "min": false,
1220         "show": true,
1221         "total": false,
1222         "values": false
1223       },
1224       "lines": true,
1225       "linewidth": 1,
1226       "links": [],
1227       "nullPointMode": "null",
1228       "percentage": false,
1229       "pointradius": 5,
1230       "points": false,
1231       "renderer": "flot",
1232       "seriesOverrides": [],
1233       "spaceLength": 10,
1234       "stack": false,
1235       "steppedLine": false,
1236       "targets": [
1237         {
1238           "expr": "nageru_x264_speedcontrol_buffer_available_seconds{instance=~\"$instance\"} / nageru_x264_speedcontrol_buffer_size_seconds{instance=~\"$instance\"}",
1239           "format": "time_series",
1240           "interval": "",
1241           "intervalFactor": 2,
1242           "legendFormat": "x264 speed control buffer available",
1243           "refId": "A",
1244           "step": 30
1245         }
1246       ],
1247       "thresholds": [],
1248       "timeFrom": null,
1249       "timeShift": null,
1250       "title": "x264 buffer space available",
1251       "tooltip": {
1252         "shared": true,
1253         "sort": 0,
1254         "value_type": "individual"
1255       },
1256       "type": "graph",
1257       "xaxis": {
1258         "buckets": null,
1259         "mode": "time",
1260         "name": null,
1261         "show": true,
1262         "values": []
1263       },
1264       "yaxes": [
1265         {
1266           "format": "percentunit",
1267           "label": "",
1268           "logBase": 1,
1269           "max": null,
1270           "min": null,
1271           "show": true
1272         },
1273         {
1274           "format": "short",
1275           "label": null,
1276           "logBase": 1,
1277           "max": null,
1278           "min": null,
1279           "show": true
1280         }
1281       ],
1282       "yaxis": {
1283         "align": false,
1284         "alignLevel": null
1285       }
1286     },
1287     {
1288       "collapsed": false,
1289       "gridPos": {
1290         "h": 1,
1291         "w": 24,
1292         "x": 0,
1293         "y": 43
1294       },
1295       "id": 67,
1296       "panels": [],
1297       "repeat": null,
1298       "title": "Dashboard Row",
1299       "type": "row"
1300     },
1301     {
1302       "aliasColors": {},
1303       "bars": false,
1304       "dashLength": 10,
1305       "dashes": false,
1306       "datasource": "${DS_EXAMPLE}",
1307       "fill": 0,
1308       "gridPos": {
1309         "h": 7,
1310         "w": 12,
1311         "x": 0,
1312         "y": 44
1313       },
1314       "id": 2,
1315       "legend": {
1316         "alignAsTable": false,
1317         "avg": false,
1318         "current": false,
1319         "max": false,
1320         "min": false,
1321         "rightSide": false,
1322         "show": false,
1323         "sideWidth": null,
1324         "total": false,
1325         "values": false
1326       },
1327       "lines": true,
1328       "linewidth": 1,
1329       "links": [],
1330       "nullPointMode": "null",
1331       "percentage": false,
1332       "pointradius": 5,
1333       "points": false,
1334       "renderer": "flot",
1335       "repeat": "card",
1336       "seriesOverrides": [
1337         {
1338           "alias": "90-percentile",
1339           "fillBelowTo": "10-percentile",
1340           "lines": false
1341         },
1342         {
1343           "alias": "10-percentile",
1344           "lines": false
1345         }
1346       ],
1347       "spaceLength": 10,
1348       "stack": false,
1349       "steppedLine": false,
1350       "targets": [
1351         {
1352           "expr": "nageru_latency_seconds{measuring_point=\"decklink_output\",frame_type=\"total\",quantile=\"0.9\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}",
1353           "format": "time_series",
1354           "hide": false,
1355           "interval": "",
1356           "intervalFactor": 2,
1357           "legendFormat": "90-percentile",
1358           "metric": "",
1359           "refId": "A",
1360           "step": 30
1361         },
1362         {
1363           "expr": "nageru_latency_seconds{measuring_point=\"decklink_output\",frame_type=\"total\",quantile=\"0.1\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}",
1364           "format": "time_series",
1365           "interval": "",
1366           "intervalFactor": 2,
1367           "legendFormat": "10-percentile",
1368           "refId": "B",
1369           "step": 30
1370         },
1371         {
1372           "expr": "sum(\n  rate(nageru_latency_seconds_sum{measuring_point=\"decklink_output\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}[1m])\n) without (frame_type) / sum(\n  rate(nageru_latency_seconds_count{measuring_point=\"decklink_output\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}[1m])\n) without (frame_type)",
1373           "format": "time_series",
1374           "interval": "",
1375           "intervalFactor": 2,
1376           "legendFormat": "Average",
1377           "refId": "C",
1378           "step": 30
1379         }
1380       ],
1381       "thresholds": [],
1382       "timeFrom": null,
1383       "timeShift": null,
1384       "title": "HDMI/SDI latency, card $card",
1385       "tooltip": {
1386         "shared": true,
1387         "sort": 0,
1388         "value_type": "individual"
1389       },
1390       "type": "graph",
1391       "xaxis": {
1392         "buckets": null,
1393         "mode": "time",
1394         "name": null,
1395         "show": true,
1396         "values": []
1397       },
1398       "yaxes": [
1399         {
1400           "format": "dtdurations",
1401           "label": null,
1402           "logBase": 1,
1403           "max": null,
1404           "min": null,
1405           "show": true
1406         },
1407         {
1408           "format": "short",
1409           "label": null,
1410           "logBase": 1,
1411           "max": null,
1412           "min": null,
1413           "show": true
1414         }
1415       ],
1416       "yaxis": {
1417         "align": false,
1418         "alignLevel": null
1419       }
1420     },
1421     {
1422       "aliasColors": {},
1423       "bars": false,
1424       "dashLength": 10,
1425       "dashes": false,
1426       "datasource": "${DS_EXAMPLE}",
1427       "fill": 0,
1428       "gridPos": {
1429         "h": 7,
1430         "w": 12,
1431         "x": 0,
1432         "y": 51
1433       },
1434       "id": 20,
1435       "legend": {
1436         "alignAsTable": false,
1437         "avg": false,
1438         "current": false,
1439         "max": false,
1440         "min": false,
1441         "rightSide": false,
1442         "show": false,
1443         "sideWidth": null,
1444         "total": false,
1445         "values": false
1446       },
1447       "lines": true,
1448       "linewidth": 1,
1449       "links": [],
1450       "nullPointMode": "null",
1451       "percentage": false,
1452       "pointradius": 5,
1453       "points": false,
1454       "renderer": "flot",
1455       "repeat": "card",
1456       "seriesOverrides": [
1457         {
1458           "alias": "90-percentile",
1459           "fillBelowTo": "10-percentile",
1460           "lines": false
1461         },
1462         {
1463           "alias": "10-percentile",
1464           "lines": false
1465         }
1466       ],
1467       "spaceLength": 10,
1468       "stack": false,
1469       "steppedLine": false,
1470       "targets": [
1471         {
1472           "expr": "nageru_latency_seconds{measuring_point=\"mixer\",frame_type=\"total\",quantile=\"0.9\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}",
1473           "format": "time_series",
1474           "hide": false,
1475           "interval": "",
1476           "intervalFactor": 2,
1477           "legendFormat": "90-percentile",
1478           "metric": "",
1479           "refId": "A",
1480           "step": 30
1481         },
1482         {
1483           "expr": "nageru_latency_seconds{measuring_point=\"mixer\",frame_type=\"total\",quantile=\"0.1\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}",
1484           "format": "time_series",
1485           "interval": "",
1486           "intervalFactor": 2,
1487           "legendFormat": "10-percentile",
1488           "refId": "B",
1489           "step": 30
1490         },
1491         {
1492           "expr": "sum(\n  rate(nageru_latency_seconds_sum{measuring_point=\"mixer\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}[1m])\n) without (frame_type) / sum(\n  rate(nageru_latency_seconds_count{measuring_point=\"mixer\",frame_age=\"0\",card=\"$card\",instance=~\"$instance\"}[1m])\n) without (frame_type)",
1493           "format": "time_series",
1494           "interval": "",
1495           "intervalFactor": 2,
1496           "legendFormat": "Average",
1497           "refId": "C",
1498           "step": 30
1499         }
1500       ],
1501       "thresholds": [],
1502       "timeFrom": null,
1503       "timeShift": null,
1504       "title": "Mixer latency, card $card",
1505       "tooltip": {
1506         "shared": true,
1507         "sort": 0,
1508         "value_type": "individual"
1509       },
1510       "type": "graph",
1511       "xaxis": {
1512         "buckets": null,
1513         "mode": "time",
1514         "name": null,
1515         "show": true,
1516         "values": []
1517       },
1518       "yaxes": [
1519         {
1520           "format": "dtdurations",
1521           "label": "",
1522           "logBase": 1,
1523           "max": null,
1524           "min": null,
1525           "show": true
1526         },
1527         {
1528           "format": "short",
1529           "label": null,
1530           "logBase": 1,
1531           "max": null,
1532           "min": null,
1533           "show": true
1534         }
1535       ],
1536       "yaxis": {
1537         "align": false,
1538         "alignLevel": null
1539       }
1540     },
1541     {
1542       "aliasColors": {},
1543       "bars": false,
1544       "dashLength": 10,
1545       "dashes": false,
1546       "datasource": "${DS_EXAMPLE}",
1547       "fill": 1,
1548       "gridPos": {
1549         "h": 7,
1550         "w": 8,
1551         "x": 0,
1552         "y": 58
1553       },
1554       "id": 14,
1555       "legend": {
1556         "avg": false,
1557         "current": false,
1558         "max": false,
1559         "min": false,
1560         "show": true,
1561         "total": false,
1562         "values": false
1563       },
1564       "lines": true,
1565       "linewidth": 1,
1566       "links": [],
1567       "nullPointMode": "null",
1568       "percentage": false,
1569       "pointradius": 5,
1570       "points": false,
1571       "renderer": "flot",
1572       "seriesOverrides": [],
1573       "spaceLength": 10,
1574       "stack": false,
1575       "steppedLine": false,
1576       "targets": [
1577         {
1578           "expr": "nageru_memory_used_bytes{instance=~\"$instance\"}",
1579           "format": "time_series",
1580           "interval": "",
1581           "intervalFactor": 2,
1582           "legendFormat": "Used",
1583           "refId": "A",
1584           "step": 30
1585         },
1586         {
1587           "expr": "nageru_memory_locked_limit_bytes{instance=~\"$instance\"}",
1588           "format": "time_series",
1589           "interval": "",
1590           "intervalFactor": 2,
1591           "legendFormat": "Max locked",
1592           "refId": "B",
1593           "step": 30
1594         },
1595         {
1596           "expr": "nageru_memory_gpu_used_bytes{instance=~\"$instance\"} ",
1597           "format": "time_series",
1598           "intervalFactor": 1,
1599           "legendFormat": "GPU used",
1600           "refId": "C"
1601         },
1602         {
1603           "expr": "nageru_memory_gpu_total_bytes{instance=~\"$instance\"} ",
1604           "format": "time_series",
1605           "interval": "",
1606           "intervalFactor": 1,
1607           "legendFormat": "GPU max",
1608           "refId": "D"
1609         }
1610       ],
1611       "thresholds": [],
1612       "timeFrom": null,
1613       "timeShift": null,
1614       "title": "Memory usage",
1615       "tooltip": {
1616         "shared": true,
1617         "sort": 0,
1618         "value_type": "individual"
1619       },
1620       "type": "graph",
1621       "xaxis": {
1622         "buckets": null,
1623         "mode": "time",
1624         "name": null,
1625         "show": true,
1626         "values": []
1627       },
1628       "yaxes": [
1629         {
1630           "format": "bytes",
1631           "label": "",
1632           "logBase": 1,
1633           "max": null,
1634           "min": "0",
1635           "show": true
1636         },
1637         {
1638           "format": "short",
1639           "label": null,
1640           "logBase": 1,
1641           "max": null,
1642           "min": null,
1643           "show": true
1644         }
1645       ],
1646       "yaxis": {
1647         "align": false,
1648         "alignLevel": null
1649       }
1650     }
1651   ],
1652   "refresh": "30s",
1653   "schemaVersion": 16,
1654   "style": "dark",
1655   "tags": [],
1656   "templating": {
1657     "list": [
1658       {
1659         "allValue": null,
1660         "current": {},
1661         "datasource": "${DS_EXAMPLE}",
1662         "hide": 0,
1663         "includeAll": true,
1664         "label": null,
1665         "multi": false,
1666         "name": "instance",
1667         "options": [],
1668         "query": "nageru_latency_seconds{measuring_point=\"mixer\"}",
1669         "refresh": 1,
1670         "regex": "/.*instance=\"([^\"]+)\".*/",
1671         "sort": 1,
1672         "tagValuesQuery": "",
1673         "tags": [],
1674         "tagsQuery": "",
1675         "type": "query",
1676         "useTags": false
1677       },
1678       {
1679         "allValue": null,
1680         "current": {},
1681         "datasource": "${DS_EXAMPLE}",
1682         "hide": 0,
1683         "includeAll": true,
1684         "label": null,
1685         "multi": false,
1686         "name": "card",
1687         "options": [],
1688         "query": "nageru_latency_seconds{measuring_point=\"mixer\"}",
1689         "refresh": 1,
1690         "regex": "/.*card=\"(\\d+)\".*/",
1691         "sort": 3,
1692         "tagValuesQuery": "",
1693         "tags": [],
1694         "tagsQuery": "",
1695         "type": "query",
1696         "useTags": false
1697       }
1698     ]
1699   },
1700   "time": {
1701     "from": "now-3h",
1702     "to": "now"
1703   },
1704   "timepicker": {
1705     "refresh_intervals": [
1706       "5s",
1707       "10s",
1708       "30s",
1709       "1m",
1710       "5m",
1711       "15m",
1712       "30m",
1713       "1h",
1714       "2h",
1715       "1d"
1716     ],
1717     "time_options": [
1718       "5m",
1719       "15m",
1720       "1h",
1721       "6h",
1722       "12h",
1723       "24h",
1724       "2d",
1725       "7d",
1726       "30d"
1727     ]
1728   },
1729   "timezone": "browser",
1730   "title": "Nageru",
1731   "uid": "UML0ZDMmz",
1732   "version": 5
1733 }