diff options
| author | Robert Günzler <r@gnzler.io> | 2025-09-07 17:32:13 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2025-09-07 17:42:42 +0200 |
| commit | 38be6c13f76e893cf47636257071b440dec0c5b2 (patch) | |
| tree | f7ded3235a7e3362cbd1ed3d91523968fe0faf90 /bundles/prometheus/files/consoles/prometheus-overview.html | |
initial commit
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bundles/prometheus/files/consoles/prometheus-overview.html')
| -rw-r--r-- | bundles/prometheus/files/consoles/prometheus-overview.html | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/bundles/prometheus/files/consoles/prometheus-overview.html b/bundles/prometheus/files/consoles/prometheus-overview.html new file mode 100644 index 0000000..08e027d --- /dev/null +++ b/bundles/prometheus/files/consoles/prometheus-overview.html @@ -0,0 +1,96 @@ +{{ template "head" . }} + +{{ template "prom_right_table_head" }} + <tr> + <th colspan="2">Overview</th> + </tr> + <tr> + <td>CPU</td> + <td>{{ template "prom_query_drilldown" (args (printf "irate(process_cpu_seconds_total{job='prometheus',instance='%s'}[5m])" .Params.instance) "s/s" "humanizeNoSmallPrefix") }}</td> + </tr> + <tr> + <td>Memory</td> + <td>{{ template "prom_query_drilldown" (args (printf "process_resident_memory_bytes{job='prometheus',instance='%s'}" .Params.instance) "B" "humanize1024") }}</td> + </tr> + <tr> + <td>Version</td> + <td>{{ with query (printf "prometheus_build_info{job='prometheus',instance='%s'}" .Params.instance) }}{{. | first | label "version"}}{{end}}</td> + </tr> + + <tr> + <th colspan="2">Storage</th> + </tr> + <tr> + <td>Ingested Samples</td> + <td>{{ template "prom_query_drilldown" (args (printf "irate(prometheus_tsdb_head_samples_appended_total{job='prometheus',instance='%s'}[5m])" .Params.instance) "/s" "humanizeNoSmallPrefix") }}</td> + </tr> + <tr> + <td>Head Series</td> + <td>{{ template "prom_query_drilldown" (args (printf "prometheus_tsdb_head_series{job='prometheus',instance='%s'}" .Params.instance) "" "humanize") }}</td> + </tr> + <tr> + <td>Blocks Loaded</td> + <td>{{ template "prom_query_drilldown" (args (printf "prometheus_tsdb_blocks_loaded{job='prometheus',instance='%s'}" .Params.instance) "" "humanize") }}</td> + </tr> + <tr> + <th colspan="2">Rules</th> + </tr> + <tr> + <td>Evaluation Duration</td> + <td>{{ template "prom_query_drilldown" (args (printf "irate(prometheus_evaluator_duration_seconds_sum{job='prometheus',instance='%s'}[5m]) / irate(prometheus_evaluator_duration_seconds_count{job='prometheus',instance='%s'}[5m])" .Params.instance .Params.instance) "" "humanizeDuration") }}</td> + </tr> + <tr> + <td>Notification Latency</td> + <td>{{ template "prom_query_drilldown" (args (printf "irate(prometheus_notifications_latency_seconds_sum{job='prometheus',instance='%s'}[5m]) / irate(prometheus_notifications_latency_seconds_count{job='prometheus',instance='%s'}[5m])" .Params.instance .Params.instance) "" "humanizeDuration") }}</td> + </tr> + <tr> + <td>Notification Queue</td> + <td>{{ template "prom_query_drilldown" (args (printf "prometheus_notifications_queue_length{job='prometheus',instance='%s'}" .Params.instance) "" "humanize") }}</td> + </tr> + <tr> + <th colspan="2">HTTP Server</th> + </tr> +{{ range printf "prometheus_http_request_duration_seconds_count{job='prometheus',instance='%s'}" .Params.instance | query | sortByLabel "handler" }} + <tr> + <td>{{ .Labels.handler }}</td> + <td>{{ template "prom_query_drilldown" (args (printf "irate(prometheus_http_request_duration_seconds_count{job='prometheus',instance='%s',handler='%s'}[5m])" .Labels.instance .Labels.handler) "/s" "humanizeNoSmallPrefix") }}</td> + </tr> +{{ end }} + +{{ template "prom_right_table_tail" }} + +{{ template "prom_content_head" . }} + <div class="prom_content_div"> + <h1>Prometheus Overview - {{ .Params.instance }}</h1> + + <h3>Ingested Samples</h3> + <div id="samplesGraph"></div> + <script> + new PromConsole.Graph({ + node: document.querySelector("#samplesGraph"), + expr: "irate(prometheus_tsdb_head_samples_appended_total{job='prometheus',instance='{{ .Params.instance }}'}[5m])", + name: 'Ingested Samples', + yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, + yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, + yTitle: "Samples", + yUnits: "/s", + }) + </script> + + <h3>HTTP Server</h3> + <div id="serverGraph"></div> + <script> + new PromConsole.Graph({ + node: document.querySelector("#serverGraph"), + expr: "irate(prometheus_http_request_duration_seconds_count{job='prometheus',instance='{{ .Params.instance }}'}[5m])", + name: '[[handler]]', + yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, + yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, + yTitle: "Requests", + yUnits: "/s", + }) + </script> + </div> +{{ template "prom_content_tail" . }} + +{{ template "tail" }} |