about summary refs log tree commit diff
path: root/bundles/prometheus/files/consoles/index.html
blob: f0b102d4749aee43ef5881122d43702bac470fe6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{{/* vim: set ft=gotmpl: */}}

{{ define "s6_rc_services_count" }}
{{ $instance := .arg0 }}{{ $bundle := .arg1 }}
{{ template "prom_query_drilldown" (args (printf "s6_rc_services_count{instance='%s',bundle='%s',service=~'.*-srv'}" $instance $bundle)) }}
{{ end }}

{{ template "head" . }}

{{ template "prom_content_head" . }}
<div class="prom_content_div">
  <div>
    <h2>Overview</h2>
    <code>IZ: {{ template "s6_rc_services_count" (args "inazuma" "default") }}</code>
    <code>SK: {{ template "s6_rc_services_count" (args "shimakaze" "default") }}</code>
  </div>
  <div>
    <h4>Traefik Latency</h4>
    <div id="traefikLatencyGraph"></div>
    <script>
      new PromConsole.Graph({
        node: document.querySelector("#traefikLatencyGraph"),
        expr: [
          `histogram_quantile(0.99, sum(rate(traefik_entrypoint_request_duration_seconds_bucket{entrypoint=~"https?"}[10m])) by (le, instance))`,
        ],
        name: '[[instance]]',
        yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
        yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
        yTitle: "Latency (p99)",
        yUnits: "s",
      })
    </script>
  </div>
  <div>
    <h4>Node CPU Utilisation</h4>
    <div id="cpuUtilGraph"></div>
    <script>
      new PromConsole.Graph({
      node: document.querySelector("#cpuUtilGraph"),
      expr: [
        `(1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m]))) * 100.0`,
      ],
      name: '[[instance]]',
      yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yUnits: "%",
      min: 0,
      max: 100,
    })
    </script>
  </div>
  <div>
    <h4>Node CPU Saturation</h4>
    <div id="cpuSatGraph"></div>
    <script>
      new PromConsole.Graph({
      node: document.querySelector("#cpuSatGraph"),
      expr: [
        `sum by (instance) (node_load15) / count by (instance) (sum by (instance, cpu) (node_cpu_seconds_total))`,
      ],
      name: '[[instance]]',
      yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
    })
    </script>
  </div>
  <div>
    <h4>Node Memory Utilisation</h4>
    <div id="memUtilGraph"></div>
    <script>
      new PromConsole.Graph({
      node: document.querySelector("#memUtilGraph"),
      expr: [
        `(1 - sum by (instance) (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes) / sum by (instance) (node_memory_MemTotal_bytes)) * 100.0`,
      ],
      name: '[[instance]]',
      yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yUnits: "%",
      min: 0,
      max: 100,
    })
    </script>
  </div>
  <div>
    <h4>Node Memory Saturation</h4>
    <div id="memSatGraph"></div>
    <script>
      new PromConsole.Graph({
      node: document.querySelector("#memSatGraph"),
      expr: [
        `1e3 * sum by (instance) (rate(node_vmstat_pgpgin[2m]) + rate(node_vmstat_pgpgout[2m]))`,
      ],
      name: '[[instance]]',
      yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
      yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
    })
    </script>
  </div>
</div>
{{ template "prom_content_tail" . }}

{{ template "tail" . }}