Skip to content

Commit 4be3bc9

Browse files
atduarteroboquat
authored andcommitted
Improve Workspace Success Criteria Dashboard
* Ignore non-production clusters (i.e. `prod-meta-.*` and `ephemeral.*`) * Create a view that represents the overall P50 and P95 workspace startup times * Group "By Cluster" views in a collapsable row
1 parent 39d66bc commit 4be3bc9

File tree

1 file changed

+142
-25
lines changed

1 file changed

+142
-25
lines changed

operations/observability/mixins/workspace/dashboards/success-criteria.json

Lines changed: 142 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
"list": [
44
{
55
"builtIn": 1,
6-
"datasource": "-- Grafana --",
6+
"datasource": {
7+
"type": "datasource",
8+
"uid": "grafana"
9+
},
710
"enable": true,
811
"hide": true,
912
"iconColor": "rgba(0, 211, 255, 1)",
@@ -21,8 +24,7 @@
2124
"editable": true,
2225
"fiscalYearStartMonth": 0,
2326
"graphTooltip": 0,
24-
"id": 54,
25-
"iteration": 1649063422822,
27+
"iteration": 1653910692618,
2628
"links": [],
2729
"liveNow": false,
2830
"panels": [
@@ -72,7 +74,8 @@
7274
"mode": "absolute",
7375
"steps": [
7476
{
75-
"color": "red"
77+
"color": "red",
78+
"value": null
7679
},
7780
{
7881
"color": "green",
@@ -84,8 +87,8 @@
8487
"overrides": []
8588
},
8689
"gridPos": {
87-
"h": 22,
88-
"w": 24,
90+
"h": 9,
91+
"w": 12,
8992
"x": 0,
9093
"y": 0
9194
},
@@ -108,16 +111,134 @@
108111
"uid": "${datasource}"
109112
},
110113
"exemplar": false,
111-
"expr": "1-((\n (\n (sum(rate(gitpod_ws_manager_workspace_stops_total{reason=\"failed\"}[1d])) OR on() vector(0))\n \/\n sum(rate(gitpod_ws_manager_workspace_stops_total[1d]))\n )\n) + (\n (\n (sum(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",grpc_code!~\"OK|ResourceExhausted\"}[1d])) OR on() vector(0))\n \/\n sum(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\"}[1d]))\n )\n))",
114+
"expr": "1-((\n (\n (sum(rate(gitpod_ws_manager_workspace_stops_total{reason=\"failed\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d])) OR on() vector(0))\n /\n sum(rate(gitpod_ws_manager_workspace_stops_total{cluster!~\"prod-meta-.*|ephemeral.*\"}[1d]))\n )\n) + (\n (\n (sum(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",grpc_code!~\"OK|ResourceExhausted\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d])) OR on() vector(0))\n /\n sum(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d]))\n )\n))",
112115
"instant": false,
113116
"interval": "",
114117
"legendFormat": "Success Rate",
115118
"refId": "A"
116119
}
117120
],
118-
"title": "Workspace Success Rate Overall",
121+
"title": "Workspace Success Rate",
119122
"type": "timeseries"
120123
},
124+
{
125+
"datasource": {
126+
"type": "prometheus",
127+
"uid": "${datasource}"
128+
},
129+
"fieldConfig": {
130+
"defaults": {
131+
"color": {
132+
"mode": "palette-classic"
133+
},
134+
"custom": {
135+
"axisLabel": "",
136+
"axisPlacement": "auto",
137+
"barAlignment": 0,
138+
"drawStyle": "line",
139+
"fillOpacity": 11,
140+
"gradientMode": "opacity",
141+
"hideFrom": {
142+
"legend": false,
143+
"tooltip": false,
144+
"viz": false
145+
},
146+
"lineInterpolation": "linear",
147+
"lineWidth": 1,
148+
"pointSize": 5,
149+
"scaleDistribution": {
150+
"type": "linear"
151+
},
152+
"showPoints": "auto",
153+
"spanNulls": false,
154+
"stacking": {
155+
"group": "A",
156+
"mode": "none"
157+
},
158+
"thresholdsStyle": {
159+
"mode": "line+area"
160+
}
161+
},
162+
"mappings": [],
163+
"max": 200,
164+
"thresholds": {
165+
"mode": "absolute",
166+
"steps": [
167+
{
168+
"color": "green",
169+
"value": null
170+
},
171+
{
172+
"color": "red",
173+
"value": 40
174+
}
175+
]
176+
},
177+
"unit": "s"
178+
},
179+
"overrides": []
180+
},
181+
"gridPos": {
182+
"h": 9,
183+
"w": 12,
184+
"x": 12,
185+
"y": 0
186+
},
187+
"id": 2,
188+
"options": {
189+
"legend": {
190+
"calcs": [],
191+
"displayMode": "list",
192+
"placement": "bottom"
193+
},
194+
"tooltip": {
195+
"mode": "single",
196+
"sort": "none"
197+
}
198+
},
199+
"targets": [
200+
{
201+
"datasource": {
202+
"type": "prometheus",
203+
"uid": "${datasource}"
204+
},
205+
"editorMode": "code",
206+
"exemplar": true,
207+
"expr": "histogram_quantile(\n 0.95, \n sum(\n rate(gitpod_ws_manager_workspace_startup_seconds_bucket{type!=\"PREBUILD\",cluster!~\"prod-meta.*|ephemeral.*\"}[1d])\n ) by (le)\n )",
208+
"interval": "",
209+
"legendFormat": "P95",
210+
"range": true,
211+
"refId": "A"
212+
},
213+
{
214+
"datasource": {
215+
"type": "prometheus",
216+
"uid": "${datasource}"
217+
},
218+
"editorMode": "code",
219+
"expr": "histogram_quantile(\n 0.5, \n sum(\n rate(gitpod_ws_manager_workspace_startup_seconds_bucket{type!=\"PREBUILD\",cluster!~\"prod-meta.*|ephemeral.*\"}[1d])\n ) by (le)\n )",
220+
"hide": false,
221+
"legendFormat": "P50",
222+
"range": true,
223+
"refId": "B"
224+
}
225+
],
226+
"title": "Workspace Startup Time",
227+
"type": "timeseries"
228+
},
229+
{
230+
"collapsed": false,
231+
"gridPos": {
232+
"h": 1,
233+
"w": 24,
234+
"x": 0,
235+
"y": 9
236+
},
237+
"id": 8,
238+
"panels": [],
239+
"title": "By Cluster",
240+
"type": "row"
241+
},
121242
{
122243
"datasource": {
123244
"type": "prometheus",
@@ -180,7 +301,7 @@
180301
"h": 22,
181302
"w": 24,
182303
"x": 0,
183-
"y": 22
304+
"y": 10
184305
},
185306
"id": 5,
186307
"options": {
@@ -201,14 +322,14 @@
201322
"uid": "${datasource}"
202323
},
203324
"exemplar": false,
204-
"expr": "1-((\n (\n (sum by (cluster)(rate(gitpod_ws_manager_workspace_stops_total{reason=\"failed\"}[1d])) OR on() vector(0))\n \/\n sum by (cluster)(rate(gitpod_ws_manager_workspace_stops_total[1d]))\n )\n) + (\n (\n (sum by (cluster)(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",grpc_code!~\"OK|ResourceExhausted\"}[1d])) OR on() vector(0))\n \/\n sum by (cluster)(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\"}[1d]))\n )\n))",
325+
"expr": "1-((\n (\n (sum by (cluster)(rate(gitpod_ws_manager_workspace_stops_total{reason=\"failed\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d])) OR on() vector(0))\n /\n sum by (cluster)(rate(gitpod_ws_manager_workspace_stops_total{cluster!~\"prod-meta-.*|ephemeral.*\"}[1d]))\n )\n) + (\n (\n (sum by (cluster)(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",grpc_code!~\"OK|ResourceExhausted\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d])) OR on() vector(0))\n /\n sum by (cluster)(rate(grpc_server_handled_total{grpc_method=\"StartWorkspace\",cluster!~\"prod-meta-.*|ephemeral.*\"}[1d]))\n )\n))",
205326
"instant": false,
206327
"interval": "",
207328
"legendFormat": "{{ cluster }}",
208329
"refId": "A"
209330
}
210331
],
211-
"title": "Workspace Success Rate Cluster Wise",
332+
"title": "Workspace Success Rate (By Cluster)",
212333
"type": "timeseries"
213334
},
214335
{
@@ -272,9 +393,9 @@
272393
"h": 27,
273394
"w": 24,
274395
"x": 0,
275-
"y": 44
396+
"y": 32
276397
},
277-
"id": 2,
398+
"id": 6,
278399
"options": {
279400
"legend": {
280401
"calcs": [],
@@ -293,18 +414,18 @@
293414
"uid": "${datasource}"
294415
},
295416
"exemplar": true,
296-
"expr": "histogram_quantile(\n 0.95, \n sum(\n rate(gitpod_ws_manager_workspace_startup_seconds_bucket{type!=\"PREBUILD\"}[1d])\n ) by (le, cluster)\n )",
417+
"expr": "histogram_quantile(\n 0.95, \n sum(\n rate(gitpod_ws_manager_workspace_startup_seconds_bucket{type!=\"PREBUILD\",cluster!~\"prod-meta.*|ephemeral.*\"}[1d])\n ) by (le, cluster)\n )",
297418
"interval": "",
298419
"legendFormat": "{{cluster}}",
299420
"refId": "A"
300421
}
301422
],
302-
"title": "Workspace Startup Time (95% case)",
423+
"title": "Workspace P95 Startup Time (By Cluster)",
303424
"type": "timeseries"
304425
}
305426
],
306427
"refresh": "1m",
307-
"schemaVersion": 35,
428+
"schemaVersion": 36,
308429
"style": "dark",
309430
"tags": [
310431
"workspace",
@@ -332,13 +453,9 @@
332453
},
333454
{
334455
"current": {
335-
"selected": true,
336-
"text": [
337-
"us38"
338-
],
339-
"value": [
340-
"us38"
341-
]
456+
"selected": false,
457+
"text": "All",
458+
"value": "$__all"
342459
},
343460
"datasource": {
344461
"type": "prometheus",
@@ -370,6 +487,6 @@
370487
"timezone": "",
371488
"title": "Success Criteria",
372489
"uid": "jgjwvIc7k",
373-
"version": 4,
490+
"version": 1,
374491
"weekStart": ""
375-
}
492+
}

0 commit comments

Comments
 (0)