Skip to content

Commit b46fb37

Browse files
intial dashboard config for rhobs instance utlization dashbboard (#495)
1 parent ae58ca1 commit b46fb37

File tree

5 files changed

+378
-2
lines changed

5 files changed

+378
-2
lines changed

observability/config.libsonnet

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
local utils = (import 'github.com/grafana/jsonnet-libs/mixin-utils/utils.libsonnet');
22
local thanos = (import '../services/observatorium-metrics.libsonnet').thanos;
3+
local var = import 'utils.jsonnet';
34

45
{
56
thanos: (import 'github.com/thanos-io/thanos/mixin/config.libsonnet') {
@@ -36,7 +37,7 @@ local thanos = (import '../services/observatorium-metrics.libsonnet').thanos;
3637
selector: 'job="%s"' % thanos.compact.config.name,
3738
},
3839
dashboard+:: {
39-
instance_name_filter: '/^rhobs.*|telemeter-prod-01-prometheus|app-sre-stage-01-prometheus/',
40+
instance_name_filter: var.instance_name_filter,
4041
},
4142
},
4243

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
local utils = import '../utils.jsonnet';
2+
3+
function() {
4+
apiVersion: 'v1',
5+
kind: 'ConfigMap',
6+
metadata: {
7+
name: 'grafana-dashboard-rhobs-instance-utlization',
8+
},
9+
data: {
10+
'rhobs-instance-utilization.json': std.manifestJsonEx(
11+
{
12+
annotations: {
13+
list: [
14+
{
15+
builtIn: 1,
16+
datasource: {
17+
type: 'grafana',
18+
uid: '-- Grafana --',
19+
},
20+
enable: true,
21+
hide: true,
22+
iconColor: 'rgba(0, 211, 255, 1)',
23+
name: 'Annotations & Alerts',
24+
target: {
25+
limit: 100,
26+
matchAny: false,
27+
tags: [],
28+
type: 'dashboard',
29+
},
30+
type: 'dashboard',
31+
},
32+
],
33+
},
34+
description: 'The RHOBS instance utilization dashboard provides a comprehensive overview of critical components in observatorium deployments across multiple clusters. It serves as a centralized observability dashboard, allowing you to monitor essential metrics including resource utilization, request volumes, and resource limits. With this dashboard, you have a single point of access to track and analyze key factors that contribute to the performance and stability of your Observatorium infrastructure.',
35+
editable: true,
36+
fiscalYearStartMonth: 0,
37+
graphTooltip: 0,
38+
id: 123433,
39+
links: [],
40+
liveNow: false,
41+
panels: [],
42+
schemaVersion: 37,
43+
style: 'dark',
44+
tags: [],
45+
templating: {
46+
list: [
47+
{
48+
current: {
49+
selected: false,
50+
text: 'app-sre-stage-01-prometheus',
51+
value: 'app-sre-stage-01-prometheus',
52+
},
53+
hide: 0,
54+
includeAll: false,
55+
label: 'datasource',
56+
multi: false,
57+
name: 'datasource',
58+
options: [],
59+
query: 'prometheus',
60+
queryValue: '',
61+
refresh: 1,
62+
regex: utils.instance_name_filter,
63+
skipUrlSync: false,
64+
type: 'datasource',
65+
},
66+
{
67+
current: {
68+
selected: false,
69+
text: 'observatorium-metrics-stage',
70+
value: 'observatorium-metrics-stage',
71+
},
72+
datasource: '$datasource',
73+
definition: 'label_values(thanos_status, namespace)',
74+
hide: 0,
75+
includeAll: false,
76+
label: 'namespace',
77+
multi: false,
78+
name: 'namespace',
79+
options: [],
80+
query: 'label_values(thanos_status, namespace)',
81+
refresh: 1,
82+
regex: '',
83+
skipUrlSync: false,
84+
sort: 0,
85+
type: 'query',
86+
useTags: false,
87+
},
88+
{
89+
auto: true,
90+
auto_count: 300,
91+
auto_min: '10s',
92+
current: {
93+
selected: false,
94+
text: '5m',
95+
value: '5m',
96+
},
97+
hide: 0,
98+
label: 'interval',
99+
name: 'interval',
100+
options: [
101+
{
102+
selected: false,
103+
text: 'auto',
104+
value: '$__auto_interval_interval',
105+
},
106+
{
107+
selected: true,
108+
text: '5m',
109+
value: '5m',
110+
},
111+
{
112+
selected: false,
113+
text: '10m',
114+
value: '10m',
115+
},
116+
{
117+
selected: false,
118+
text: '30m',
119+
value: '30m',
120+
},
121+
{
122+
selected: false,
123+
text: '1h',
124+
value: '1h',
125+
},
126+
{
127+
selected: false,
128+
text: '6h',
129+
value: '6h',
130+
},
131+
{
132+
selected: false,
133+
text: '12h',
134+
value: '12h',
135+
},
136+
],
137+
query: '5m,10m,30m,1h,6h,12h',
138+
queryValue: '',
139+
refresh: 2,
140+
skipUrlSync: false,
141+
type: 'interval',
142+
},
143+
],
144+
},
145+
time: {
146+
from: 'now-3h',
147+
to: 'now',
148+
},
149+
timepicker: {
150+
refresh_intervals: [
151+
'5s',
152+
'10s',
153+
'30s',
154+
'1m',
155+
'5m',
156+
'15m',
157+
'30m',
158+
'1h',
159+
'2h',
160+
'1d',
161+
],
162+
time_options: [
163+
'5m',
164+
'15m',
165+
'1h',
166+
'6h',
167+
'12h',
168+
'24h',
169+
'2d',
170+
'7d',
171+
'30d',
172+
],
173+
},
174+
timezone: 'UTC',
175+
title: 'RHOBS Instance Utilization',
176+
uid: '8-QwLUwVz',
177+
version: 3,
178+
weekStart: '',
179+
}, ' ',
180+
),
181+
},
182+
}

observability/grafana.jsonnet

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ local dashboards =
5757
{ 'grafana-dashboard-slo-rhobsp02ue1-production.configmap': (import 'dashboards/slo.libsonnet')('mst', 'rhobsp02ue1', 'rhobsp02ue1 Production SLOs') } +
5858
{ 'grafana-dashboard-slo-mst-stage.configmap': (import 'dashboards/slo.libsonnet')('mst', 'stage', 'MST Stage SLOs') } +
5959
{ 'grafana-dashboard-tracing-otel.configmap': (import 'dashboards/opentelemetry.libsonnet')(obsDatasource, obsTraces) } +
60-
{ 'grafana-dashboard-tracing-jaeger.configmap': (import 'dashboards/tracing.libsonnet')(obsDatasource, obsTraces) };
60+
{ 'grafana-dashboard-tracing-jaeger.configmap': (import 'dashboards/tracing.libsonnet')(obsDatasource, obsTraces) } +
61+
{ 'grafana-dashboard-rhobs-instance-utilization.configmap': (import 'dashboards/rhobs-instance-utilization.libsonnet')() };
6162
{
6263
[name]: dashboards[name] {
6364
metadata+: {

observability/utils.jsonnet

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
22
instanceNamespace(name, metricsNamespace, upNamespace): if name == 'telemeter' then metricsNamespace else upNamespace,
3+
instance_name_filter: '/^rhobs.*|telemeter-prod-01-prometheus|app-sre-stage-01-prometheus/',
34
}

0 commit comments

Comments
 (0)