-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdynamic_timeframes.dashboard.lookml
344 lines (344 loc) · 11.4 KB
/
dynamic_timeframes.dashboard.lookml
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
- dashboard: dynamic_timeframes_and_crossfiltering
title: Dynamic Timeframes and Cross-filtering
layout: newspaper
preferred_viewer: dashboards-next
crossfilter_enabled: true
description: ''
preferred_slug: OkTldG6JTRCE9jed5Qauqq
elements:
- title: Summary
name: Summary
model: erolson_online_boutique
explore: dynamic_timeframes
type: looker_line
fields: [dynamic_timeframes.dynamic_timeframe_summary_time, dynamic_timeframes.count]
filters:
stdout__labels.k8s_pod_app: frontend
stdout__json_payload.message: request complete
sorts: [dynamic_timeframes.dynamic_timeframe_summary_time desc]
limit: 500
x_axis_gridlines: false
y_axis_gridlines: false
show_view_names: false
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_tick_density: default
y_axis_tick_density_custom: 5
show_x_axis_label: true
show_x_axis_ticks: true
y_axis_scale_mode: linear
x_axis_reversed: false
y_axis_reversed: false
plot_size_by_field: false
trellis: ''
stacking: ''
limit_displayed_rows: false
legend_position: center
point_style: none
show_value_labels: false
label_density: 25
x_axis_scale: auto
y_axis_combined: true
show_null_points: true
interpolation: linear
y_axes: [{label: '', orientation: left, series: [{axisId: dynamic_timeframes.count,
id: dynamic_timeframes.count, name: Count (Frontend Requests)}], showLabels: false,
showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
type: linear}]
series_types: {}
ordering: none
show_null_labels: false
show_totals_labels: false
show_silhouette: false
totals_color: "#808080"
defaults_version: 1
note_state: collapsed
note_display: above
note_text: Summarizes events based on timeframe the user filters on
listen:
Date Filter: dynamic_timeframes.date_filter
row: 3
col: 0
width: 12
height: 7
- title: Detail
name: Detail
model: erolson_online_boutique
explore: dynamic_timeframes
type: looker_line
fields: [dynamic_timeframes.dynamic_timeframe_detail_time, dynamic_timeframes.count]
filters:
stdout__labels.k8s_pod_app: frontend
stdout__json_payload.message: request complete
sorts: [dynamic_timeframes.dynamic_timeframe_detail_time desc]
limit: 1500
column_limit: 50
x_axis_gridlines: false
y_axis_gridlines: false
show_view_names: false
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_tick_density: default
y_axis_tick_density_custom: 5
show_x_axis_label: true
show_x_axis_ticks: true
y_axis_scale_mode: linear
x_axis_reversed: false
y_axis_reversed: false
plot_size_by_field: false
trellis: ''
stacking: ''
limit_displayed_rows: false
legend_position: center
point_style: none
show_value_labels: false
label_density: 25
x_axis_scale: auto
y_axis_combined: true
show_null_points: true
interpolation: linear
y_axes: [{label: '', orientation: left, series: [{axisId: dynamic_timeframes.count,
id: dynamic_timeframes.count, name: Count (Frontend Requests)}], showLabels: false,
showValues: true, unpinAxis: false, tickDensity: default, tickDensityCustom: 5,
type: linear}]
series_types: {}
ordering: none
show_null_labels: false
show_totals_labels: false
show_silhouette: false
totals_color: "#808080"
defaults_version: 1
note_state: collapsed
note_display: above
note_text: Same data as "Summary" tile but in a finer time granularity
listen:
Date Filter: dynamic_timeframes.date_filter
row: 3
col: 12
width: 12
height: 7
- name: All Frontend Requests
type: text
title_text: All Frontend Requests
subtitle_text: ''
body_text: ''
row: 2
col: 0
width: 24
height: 1
- title: Latency
name: Latency
model: erolson_online_boutique
explore: dynamic_timeframes
type: looker_scatter
fields: [stdout__json_payload.max_http_response_time, stdout__json_payload.http_resp_exceeds_slo_target,
stdout__json_payload.slo, dynamic_timeframes.dynamic_timeframe_detail_time]
pivots: [stdout__json_payload.http_resp_exceeds_slo_target]
fill_fields: [stdout__json_payload.http_resp_exceeds_slo_target]
filters:
stdout__labels.k8s_pod_app: frontend
stdout__resource__labels.container_name: server
stdout__json_payload.message: request complete
sorts: [stdout__json_payload.http_resp_exceeds_slo_target, dynamic_timeframes.dynamic_timeframe_detail_time
desc]
limit: 500
column_limit: 50
dynamic_fields: [{table_calculation: calculation_1, label: Calculation 1, expression: "${stdout__json_payload.http_resp_took_ms}\
\ * 1", value_format: !!null '', value_format_name: !!null '', _kind_hint: dimension,
_type_hint: number, is_disabled: true}]
x_axis_gridlines: false
y_axis_gridlines: false
show_view_names: false
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_tick_density: default
y_axis_tick_density_custom: 5
show_x_axis_label: true
show_x_axis_ticks: true
y_axis_scale_mode: linear
x_axis_reversed: false
y_axis_reversed: false
plot_size_by_field: false
trellis: ''
stacking: ''
limit_displayed_rows: false
legend_position: center
point_style: none
show_value_labels: false
label_density: 25
x_axis_scale: auto
y_axis_combined: true
show_null_points: false
y_axes: [{label: '', orientation: left, series: [{axisId: stdout__json_payload.max_http_response_time,
id: No - stdout__json_payload.max_http_response_time, name: Low Latency},
{axisId: stdout__json_payload.slo, id: No - stdout__json_payload.slo, name: 'No
- Stdout: Jsonpayload Slo'}, {axisId: stdout__json_payload.max_http_response_time,
id: Yes - stdout__json_payload.max_http_response_time, name: SLO Exceeded},
{axisId: stdout__json_payload.slo, id: Yes - stdout__json_payload.slo, name: 'Yes
- Stdout: Jsonpayload Slo'}], showLabels: true, showValues: true, unpinAxis: false,
tickDensity: default, tickDensityCustom: 5, type: log}]
hidden_series: []
series_types:
No - stdout__json_payload.slo: area
Yes - stdout__json_payload.slo: area
series_colors:
No - stdout__json_payload.max_http_response_time: "#E8EAED"
No - stdout__json_payload.slo: "#4285F4"
Yes - stdout__json_payload.slo: "#4285F4"
Yes - stdout__json_payload.max_http_response_time: "#B31412"
series_labels:
No - stdout__json_payload.max_http_response_time: Low Latency
Yes - stdout__json_payload.max_http_response_time: SLO Exceeded
reference_lines: []
trend_lines: []
hidden_fields: []
ordering: none
show_null_labels: false
show_totals_labels: false
show_silhouette: false
totals_color: "#808080"
defaults_version: 1
note_state: collapsed
note_display: above
note_text: All requests that fall above the user-input SLO are shown in red
listen:
Date Filter: dynamic_timeframes.date_filter
HTTP Resp Latency SLO: stdout__json_payload.http_resp_latency_slo
row: 20
col: 0
width: 24
height: 10
- title: Requests by Error Code/Status
name: Requests by Error Code/Status
model: erolson_online_boutique
explore: dynamic_timeframes
type: looker_column
fields: [dynamic_timeframes.count, stdout__json_payload.http_resp_status, dynamic_timeframes.dynamic_timeframe_summary_time]
pivots: [stdout__json_payload.http_resp_status]
filters:
stdout__labels.k8s_pod_app: frontend
stdout__json_payload.message: request complete
sorts: [stdout__json_payload.http_resp_status, dynamic_timeframes.dynamic_timeframe_summary_time
desc]
limit: 1500
column_limit: 50
x_axis_gridlines: false
y_axis_gridlines: true
show_view_names: false
show_y_axis_labels: true
show_y_axis_ticks: true
y_axis_tick_density: default
y_axis_tick_density_custom: 5
show_x_axis_label: true
show_x_axis_ticks: true
y_axis_scale_mode: linear
x_axis_reversed: false
y_axis_reversed: false
plot_size_by_field: false
trellis: ''
stacking: normal
limit_displayed_rows: false
legend_position: center
point_style: none
show_value_labels: false
label_density: 25
x_axis_scale: auto
y_axis_combined: true
ordering: none
show_null_labels: false
show_totals_labels: false
show_silhouette: false
totals_color: "#808080"
series_types: {}
series_colors:
200.0 - dynamic_timeframes.count: "#4af29d"
301.0 - dynamic_timeframes.count: "#51c7aa"
302.0 - dynamic_timeframes.count: "#559961"
404.0 - dynamic_timeframes.count: "#c4313a"
405.0 - dynamic_timeframes.count: "#e34b3b"
500.0 - dynamic_timeframes.count: "#ffa29f"
show_null_points: true
interpolation: linear
defaults_version: 1
listen:
Date Filter: dynamic_timeframes.date_filter
row: 10
col: 0
width: 24
height: 10
- title: Request Details
name: Request Details
model: erolson_online_boutique
explore: dynamic_timeframes
type: looker_grid
fields: [stdout__json_payload.api, stdout__json_payload.http_req_id, stdout__json_payload.http_req_method,
stdout__json_payload.http_resp_bytes, stdout__json_payload.http_resp_status,
stdout__json_payload.http_resp_took_ms, stdout__json_payload.message, dynamic_timeframes.timestamp_second]
filters:
stdout__json_payload.message: "-NULL"
stdout__labels.k8s_pod_app: frontend
sorts: [dynamic_timeframes.timestamp_second desc]
limit: 500
column_limit: 50
show_view_names: false
show_row_numbers: true
transpose: false
truncate_text: true
hide_totals: false
hide_row_totals: false
size_to_fit: true
table_theme: white
limit_displayed_rows: false
enable_conditional_formatting: false
header_text_alignment: left
header_font_size: 12
rows_font_size: 12
conditional_formatting_include_totals: false
conditional_formatting_include_nulls: false
defaults_version: 1
listen:
Date Filter: dynamic_timeframes.date_filter
row: 30
col: 0
width: 24
height: 11
- name: Dynamic Timeframes
type: text
title_text: Dynamic Timeframes
subtitle_text: ''
body_text: This dashboard leverages dynamic timeframes that automatically size
to fit what the user filters on. There is a Summary timeframe and Detail timeframe.
This feature is common in other logging tools, such as Kibana.
row: 0
col: 0
width: 24
height: 2
filters:
- name: Date Filter
title: Date Filter
type: field_filter
default_value: 3 hour
allow_multiple_values: true
required: false
ui_config:
type: advanced
display: popover
options: []
model: erolson_online_boutique
explore: dynamic_timeframes
listens_to_filters: []
field: dynamic_timeframes.date_filter
- name: HTTP Resp Latency SLO
title: HTTP Resp Latency SLO
type: field_filter
default_value: '250'
allow_multiple_values: true
required: false
ui_config:
type: advanced
display: popover
options: []
model: erolson_online_boutique
explore: dynamic_timeframes
listens_to_filters: []
field: stdout__json_payload.http_resp_latency_slo