1{
2 "category": "CUSTOM",
3 "dashboardFilters": [
4 {
5 "filterType": "METRIC_LABEL",
6 "labelKey": "group_version_kind",
7 "templateVariable": "filter_by_resource"
8 },
9 {
10 "filterType": "RESOURCE_LABEL",
11 "labelKey": "cluster",
12 "templateVariable": "filter_by_cluster"
13 },
14 {
15 "filterType": "RESOURCE_LABEL",
16 "labelKey": "project_id",
17 "templateVariable": "filter_by_project"
18 }
19 ],
20 "displayName": "Persistence ctl",
21 "labels": {
22 "managed": "",
23 "v_0_3_6-rc_1671033220": "",
24 "owner_dk185217": "",
25 "team_foundation": ""
26 },
27 "mosaicLayout": {
28 "columns": 12,
29 "tiles": [
30 {
31 "height": 4,
32 "widget": {
33 "title": "Resources by Status",
34 "xyChart": {
35 "chartOptions": {
36 "mode": "COLOR"
37 },
38 "dataSets": [
39 {
40 "plotType": "STACKED_AREA",
41 "targetAxis": "Y1",
42 "timeSeriesQuery": {
43 "timeSeriesQueryLanguage": "fetch prometheus_target\n| metric\n 'prometheus.googleapis.com/edge_envctl_reconcile_condition_status/gauge'\n| group_by 1m,\n [value_edge_envctl_reconcile_condition_status:\n mean(value.edge_envctl_reconcile_condition_status)]\n| every 1m\n| group_by [metric.status],\n [value_configconnector_applied_resources_total_mean_aggregate:\n aggregate(value_edge_envctl_reconcile_condition_status)]"
44 }
45 }
46 ],
47 "thresholds": [],
48 "timeshiftDuration": "0s",
49 "yAxis": {
50 "label": "y1Axis",
51 "scale": "LINEAR"
52 }
53 }
54 },
55 "width": 10,
56 "xPos": 2,
57 "yPos": 0
58 },
59 {
60 "height": 10,
61 "widget": {
62 "timeSeriesTable": {
63 "columnSettings": [
64 {
65 "column": "cluster_name",
66 "visible": true
67 },
68 {
69 "column": "project_id",
70 "visible": true
71 }
72 ],
73 "dataSets": [
74 {
75 "minAlignmentPeriod": "60s",
76 "timeSeriesQuery": {
77 "timeSeriesFilter": {
78 "aggregation": {
79 "alignmentPeriod": "60s",
80 "crossSeriesReducer": "REDUCE_SUM",
81 "groupByFields": [
82 "metric.label.\"cluster_name\"",
83 "resource.label.\"project_id\""
84 ],
85 "perSeriesAligner": "ALIGN_MEAN"
86 },
87 "filter": "metric.type=\"prometheus.googleapis.com/edge_envctl_reconcile_condition_status/gauge\" resource.type=\"prometheus_target\" metric.label.\"status\"!=\"True\" ${filter_by_project} ${filter_by_cluster} ${filter_by_resource}",
88 "pickTimeSeriesFilter": {
89 "direction": "TOP",
90 "numTimeSeries": 300,
91 "rankingMethod": "METHOD_MEAN"
92 },
93 "secondaryAggregation": {
94 "alignmentPeriod": "60s",
95 "crossSeriesReducer": "REDUCE_NONE",
96 "perSeriesAligner": "ALIGN_NONE"
97 }
98 }
99 }
100 }
101 ],
102 "metricVisualization": "BAR"
103 },
104 "title": "Unhealthy Resources - Aggregated"
105 },
106 "width": 6,
107 "xPos": 0,
108 "yPos": 4
109 },
110 {
111 "height": 2,
112 "widget": {
113 "scorecard": {
114 "thresholds": [
115 {
116 "color": "RED",
117 "direction": "ABOVE",
118 "label": "",
119 "value": 10
120 },
121 {
122 "color": "YELLOW",
123 "direction": "ABOVE",
124 "label": "",
125 "value": 1
126 }
127 ],
128 "timeSeriesQuery": {
129 "apiSource": "DEFAULT_CLOUD",
130 "timeSeriesFilter": {
131 "aggregation": {
132 "alignmentPeriod": "60s",
133 "crossSeriesReducer": "REDUCE_SUM",
134 "groupByFields": [],
135 "perSeriesAligner": "ALIGN_MEAN"
136 },
137 "filter": "metric.type=\"prometheus.googleapis.com/edge_envctl_reconcile_condition_status/gauge\" resource.type=\"prometheus_target\" metric.label.\"status\"=\"False\""
138 }
139 }
140 },
141 "title": "Broken"
142 },
143 "width": 2,
144 "xPos": 0,
145 "yPos": 2
146 },
147 {
148 "height": 2,
149 "widget": {
150 "scorecard": {
151 "thresholds": [
152 {
153 "color": "RED",
154 "direction": "ABOVE",
155 "label": "",
156 "value": 10000
157 },
158 {
159 "color": "YELLOW",
160 "direction": "ABOVE",
161 "label": "",
162 "value": 10000
163 }
164 ],
165 "timeSeriesQuery": {
166 "apiSource": "DEFAULT_CLOUD",
167 "timeSeriesFilter": {
168 "aggregation": {
169 "alignmentPeriod": "60s",
170 "crossSeriesReducer": "REDUCE_SUM",
171 "groupByFields": [],
172 "perSeriesAligner": "ALIGN_MEAN"
173 },
174 "filter": "metric.type=\"prometheus.googleapis.com/edge_envctl_reconcile_condition_status/gauge\" resource.type=\"prometheus_target\" metric.label.\"status\"=\"True\""
175 }
176 }
177 },
178 "title": "Healthy"
179 },
180 "width": 2,
181 "xPos": 0,
182 "yPos": 0
183 },
184 {
185 "height": 4,
186 "widget": {
187 "title": "Reconcile Duration",
188 "xyChart": {
189 "chartOptions": {
190 "mode": "COLOR"
191 },
192 "dataSets": [
193 {
194 "minAlignmentPeriod": "60s",
195 "plotType": "LINE",
196 "targetAxis": "Y1",
197 "timeSeriesQuery": {
198 "apiSource": "DEFAULT_CLOUD",
199 "timeSeriesFilter": {
200 "aggregation": {
201 "alignmentPeriod": "60s",
202 "crossSeriesReducer": "REDUCE_PERCENTILE_50",
203 "groupByFields": [
204 "metric.label.\"cluster_name\"",
205 "resource.label.\"project_id\""
206 ],
207 "perSeriesAligner": "ALIGN_DELTA"
208 },
209 "filter": "metric.type=\"prometheus.googleapis.com/edge_envctl_reconcile_duration_seconds/histogram\" resource.type=\"prometheus_target\" ${filter_by_cluster} ${filter_by_project}",
210 "pickTimeSeriesFilter": {
211 "direction": "TOP",
212 "numTimeSeries": 300,
213 "rankingMethod": "METHOD_MEAN"
214 },
215 "secondaryAggregation": {
216 "alignmentPeriod": "60s",
217 "crossSeriesReducer": "REDUCE_NONE",
218 "perSeriesAligner": "ALIGN_NONE"
219 }
220 }
221 }
222 }
223 ],
224 "thresholds": [],
225 "timeshiftDuration": "0s",
226 "yAxis": {
227 "label": "y1Axis",
228 "scale": "LINEAR"
229 }
230 }
231 },
232 "width": 6,
233 "xPos": 6,
234 "yPos": 4
235 }
236 ]
237 }
238}
View as plain text