@cloudcare/guance-front-tools 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,375 +1 @@
1
- {
2
- "title": "Kafka Overview",
3
- "dashboardExtend": {
4
- "groupUnfoldStatus": {}
5
- },
6
- "main": {
7
- "vars": [
8
- {
9
- "type": "PROMQL_QUERY",
10
- "datasource": "dataflux",
11
- "name": "Topic",
12
- "seq": 0,
13
- "hide": 1,
14
- "multiple": false,
15
- "includeStar": true,
16
- "valueSort": "desc",
17
- "code": "topic_name",
18
- "definition": {
19
- "value": "label_values(kafka_consumergroup_lag, topic)",
20
- "defaultVal": {
21
- "label": "all values",
22
- "value": "__all__"
23
- }
24
- }
25
- },
26
- {
27
- "type": "PROMQL_QUERY",
28
- "datasource": "dataflux",
29
- "name": "Consumer Group",
30
- "seq": 1,
31
- "hide": 1,
32
- "multiple": false,
33
- "includeStar": true,
34
- "valueSort": "desc",
35
- "code": "group_id",
36
- "definition": {
37
- "value": "label_values(kafka_consumergroup_lag{topic=\"#{topic_name}\"}, consumergroup)",
38
- "defaultVal": {
39
- "label": "*",
40
- "value": "*"
41
- }
42
- }
43
- },
44
- {
45
- "type": "PROMQL_QUERY",
46
- "datasource": "dataflux",
47
- "name": "namespace",
48
- "seq": 2,
49
- "hide": 0,
50
- "multiple": false,
51
- "includeStar": false,
52
- "valueSort": "desc",
53
- "code": "namespace",
54
- "definition": {
55
- "value": "label_values(kube_pod_info, namespace)",
56
- "defaultVal": {
57
- "label": "ekb-mics",
58
- "value": "ekb-mics"
59
- }
60
- }
61
- }
62
- ],
63
- "charts": [
64
- {
65
- "extend": {
66
- "settings": {}
67
- },
68
- "group": {},
69
- "pos": {
70
- "x": 0,
71
- "y": 2,
72
- "h": 11.5,
73
- "w": 13
74
- },
75
- "name": "Kafka log size by topic",
76
- "queries": [
77
- {
78
- "datasource": "dataflux",
79
- "qtype": "promql",
80
- "type": "sequence",
81
- "query": {
82
- "q": "sum by(topic) (kafka_log_log_size{namespace=~\"#{namespace}\"})",
83
- "type": "promql",
84
- "code": "A",
85
- "promqlCode": 1
86
- }
87
- }
88
- ],
89
- "type": "sequence"
90
- },
91
- {
92
- "extend": {
93
- "settings": {}
94
- },
95
- "group": {},
96
- "pos": {
97
- "x": 13,
98
- "y": 2,
99
- "h": 11.5,
100
- "w": 11
101
- },
102
- "name": "Kafka log size by broker (disk space utilization)",
103
- "queries": [
104
- {
105
- "datasource": "dataflux",
106
- "qtype": "promql",
107
- "type": "sequence",
108
- "query": {
109
- "q": "sum by(pod) (kafka_log_log_size{namespace=~\"#{namespace}\"})",
110
- "type": "promql",
111
- "code": "A",
112
- "promqlCode": 1
113
- }
114
- }
115
- ],
116
- "type": "sequence"
117
- },
118
- {
119
- "extend": {
120
- "settings": {}
121
- },
122
- "group": {},
123
- "pos": {
124
- "x": 0,
125
- "y": 13.4,
126
- "h": 11.5,
127
- "w": 8
128
- },
129
- "name": "CPU Usage",
130
- "queries": [
131
- {
132
- "datasource": "dataflux",
133
- "qtype": "promql",
134
- "type": "sequence",
135
- "query": {
136
- "q": "rate(process_cpu_seconds_total{app=\"kafka\",namespace=~\"#{namespace}\"}[1m])",
137
- "type": "promql",
138
- "code": "A",
139
- "promqlCode": 1
140
- }
141
- }
142
- ],
143
- "type": "sequence"
144
- },
145
- {
146
- "extend": {
147
- "settings": {}
148
- },
149
- "group": {},
150
- "pos": {
151
- "x": 8,
152
- "y": 13.4,
153
- "h": 11.5,
154
- "w": 8
155
- },
156
- "name": "JVM Memory Used",
157
- "queries": [
158
- {
159
- "datasource": "dataflux",
160
- "qtype": "promql",
161
- "type": "sequence",
162
- "query": {
163
- "q": "sum without(area)(jvm_memory_bytes_used{app=\"kafka\",namespace=~\"#{namespace}\"})",
164
- "type": "promql",
165
- "code": "A",
166
- "promqlCode": 1
167
- }
168
- },
169
- {
170
- "datasource": "dataflux",
171
- "qtype": "promql",
172
- "type": "sequence",
173
- "query": {
174
- "q": "sum by (pod_name)(container_memory_usage_bytes{container_name=\"kafka\",namespace=~\"#{namespace}\"}) ",
175
- "type": "promql",
176
- "code": "B",
177
- "promqlCode": 2
178
- }
179
- }
180
- ],
181
- "type": "sequence"
182
- },
183
- {
184
- "extend": {
185
- "settings": {}
186
- },
187
- "group": {},
188
- "pos": {
189
- "x": 16,
190
- "y": 13.4,
191
- "h": 11.5,
192
- "w": 8
193
- },
194
- "name": "Time spent in GC",
195
- "queries": [
196
- {
197
- "datasource": "dataflux",
198
- "qtype": "promql",
199
- "type": "sequence",
200
- "query": {
201
- "q": "sum without(gc)(rate(jvm_gc_collection_seconds_sum{app=\"kafka\",namespace=~\"#{namespace}\"}[5m]))",
202
- "type": "promql",
203
- "code": "A",
204
- "promqlCode": 1
205
- }
206
- }
207
- ],
208
- "type": "sequence"
209
- },
210
- {
211
- "extend": {
212
- "settings": {}
213
- },
214
- "group": {},
215
- "pos": {
216
- "x": 0,
217
- "y": 24.8,
218
- "h": 11.5,
219
- "w": 8
220
- },
221
- "name": "Messages In Per Topic",
222
- "queries": [
223
- {
224
- "datasource": "dataflux",
225
- "qtype": "promql",
226
- "type": "sequence",
227
- "query": {
228
- "q": "sum without(instance, pod)(rate(kafka_server_brokertopicmetrics_messagesin_total{app=\"kafka\",topic!=\"\",namespace=~\"#{namespace}\"}[5m]))",
229
- "type": "promql",
230
- "code": "A",
231
- "promqlCode": 1
232
- }
233
- }
234
- ],
235
- "type": "sequence"
236
- },
237
- {
238
- "extend": {
239
- "settings": {}
240
- },
241
- "group": {},
242
- "pos": {
243
- "x": 8,
244
- "y": 24.8,
245
- "h": 11.5,
246
- "w": 8
247
- },
248
- "name": "Bytes In Per Topic",
249
- "queries": [
250
- {
251
- "datasource": "dataflux",
252
- "qtype": "promql",
253
- "type": "sequence",
254
- "query": {
255
- "q": "sum without(instance, pod)(rate(kafka_server_brokertopicmetrics_bytesin_total{app=\"kafka\",topic!=\"\",namespace=~\"#{namespace}\"}[5m]))",
256
- "type": "promql",
257
- "code": "A",
258
- "promqlCode": 1
259
- }
260
- }
261
- ],
262
- "type": "sequence"
263
- },
264
- {
265
- "extend": {
266
- "settings": {}
267
- },
268
- "group": {},
269
- "pos": {
270
- "x": 16,
271
- "y": 24.8,
272
- "h": 11.5,
273
- "w": 8
274
- },
275
- "name": "Bytes Out Per Topic",
276
- "queries": [
277
- {
278
- "datasource": "dataflux",
279
- "qtype": "promql",
280
- "type": "sequence",
281
- "query": {
282
- "q": "sum without(instance, pod)(rate(kafka_server_brokertopicmetrics_bytesout_total{app=\"kafka\",topic!=\"\",namespace=~\"#{namespace}\"}[5m]))",
283
- "type": "promql",
284
- "code": "A",
285
- "promqlCode": 1
286
- }
287
- }
288
- ],
289
- "type": "sequence"
290
- },
291
- {
292
- "extend": {
293
- "settings": {}
294
- },
295
- "group": {},
296
- "pos": {
297
- "x": 0,
298
- "y": 36.2,
299
- "h": 11.5,
300
- "w": 8
301
- },
302
- "name": "Offline partitions",
303
- "queries": [
304
- {
305
- "datasource": "dataflux",
306
- "qtype": "promql",
307
- "type": "sequence",
308
- "query": {
309
- "q": "kafka_controller_kafkacontroller_offlinepartitionscount{namespace=~\"#{namespace}\"}",
310
- "type": "promql",
311
- "code": "A",
312
- "promqlCode": 1
313
- }
314
- }
315
- ],
316
- "type": "sequence"
317
- },
318
- {
319
- "extend": {
320
- "settings": {}
321
- },
322
- "group": {},
323
- "pos": {
324
- "x": 8,
325
- "y": 36.2,
326
- "h": 11.5,
327
- "w": 8
328
- },
329
- "name": "Underreplicated partitions by topic",
330
- "queries": [
331
- {
332
- "datasource": "dataflux",
333
- "qtype": "promql",
334
- "type": "sequence",
335
- "query": {
336
- "q": "sum by (topic)(kafka_cluster_partition_underreplicated{namespace=~\"#{namespace}\"})",
337
- "type": "promql",
338
- "code": "A",
339
- "promqlCode": 1
340
- }
341
- }
342
- ],
343
- "type": "sequence"
344
- },
345
- {
346
- "extend": {
347
- "settings": {}
348
- },
349
- "group": {},
350
- "pos": {
351
- "x": 16,
352
- "y": 36.2,
353
- "h": 11.5,
354
- "w": 8
355
- },
356
- "name": "ISR expands by instance",
357
- "queries": [
358
- {
359
- "datasource": "dataflux",
360
- "qtype": "promql",
361
- "type": "sequence",
362
- "query": {
363
- "q": "sum by (kubernetes_pod)(rate(kafka_server_replicamanager_isrexpands_total{namespace=~\"#{namespace}\"}[1m]))",
364
- "type": "promql",
365
- "code": "A",
366
- "promqlCode": 1
367
- }
368
- }
369
- ],
370
- "type": "sequence"
371
- }
372
- ],
373
- "groups": []
374
- }
375
- }
1
+ {"title":"【通用】应用问题定位大盘","dashboardExtend":{"groupUnfoldStatus":{"变更记录":true,"应用视角":true,"影响面评估 --- 跳转业务大盘":false,"上下游拓扑图 - 跳转trace":false,"主/被调视角":false,"快速处置":false,"Pod/EC2":false,"通信线程池":false,"MySQL":false,"Redis":false,"ElasticSearch":false,"Kafka":false,"DynamoDB":false,"JVM指标":true,"Golang指标":false}},"main":{"vars":[{"type":"PROMQL_QUERY","datasource":"dataflux","name":"应用","seq":0,"hide":0,"multiple":false,"includeStar":false,"valueSort":"desc","code":"bzi_server","definition":{"value":"select f_app_name from `t_app` ","defaultVal":{"label":"act-internal-tool","value":"act-internal-tool"}}},{"type":"CUSTOM_LIST","datasource":"custom","name":"interval","seq":2,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"interval","definition":{"value":"1ms : 1ms,10ms : 10ms,100ms : 100ms,1s : 1s,10s : 10s,1min : 1min,5min : 5min,30min : 30min,1h : 1h,1d : 1d","defaultVal":{"label":"5min","value":"5min"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"接口等级","seq":3,"hide":1,"multiple":false,"includeStar":true,"valueSort":"desc","code":"level","definition":{"value":"select f_level from t_interface_list group by f_level","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"CUSTOM_LIST","datasource":"custom","name":"接口协议类型","seq":6,"hide":1,"multiple":false,"includeStar":true,"valueSort":"desc","code":"interface_type","definition":{"value":"HTTP,RPC","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"CUSTOM_LIST","datasource":"custom","name":"block_type","seq":7,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"block_type","definition":{"value":"flow,degrade,hot,system,isolation","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"节点(关联应用)","seq":8,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"bzi_host","definition":{"value":"select f_server_name from t_app_detail WHERE f_app_name in ('#{bzi_server}') and f_server_env = '#{env}'","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"db_host","seq":12,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"db_host","definition":{"value":"label_values(infra_mysql_total{app_name='#{bzi_server}' , env='#{env}'}, host)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"db_db","seq":13,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"db_db","definition":{"value":"label_values(infra_mysql_total{app_name='#{bzi_server}' , env='#{env}'}, db)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"db_table","seq":14,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"db_table","definition":{"value":"label_values(infra_mysql_total{app_name='#{bzi_server}' , env='#{env}'} , table)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"db_operation","seq":15,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"db_operation","definition":{"value":"label_values(infra_mysql_total{app_name='#{bzi_server}' , env='#{env}'}, operation)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"redis_cmd","seq":16,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"redis_cmd","definition":{"value":"label_values(infra_redis_total{app_name='#{bzi_server}', env='#{env}'}, cmd)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"redis_db","seq":17,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"redis_db","definition":{"value":"label_values(infra_redis_total{app_name='#{bzi_server}', env='#{env}'}, db)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"redis_key","seq":18,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"redis_key","definition":{"value":"label_values(infra_redis_total{app_name='#{bzi_server}', env='#{env}'}, keyspace)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"redis_host","seq":19,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"redis_host","definition":{"value":"label_values(infra_redis_total{app_name='#{bzi_server}', env='#{env}'}, host)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"dynamodb_table","seq":20,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"dynamodb_table","definition":{"value":"label_values(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}'}, table)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"kafka_host","seq":21,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"kafka_host","definition":{"value":"label_values(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}'}, server_ip)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"dynamodb_region","seq":22,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"dynamodb_region","definition":{"value":"label_values(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}'}, region)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"dynamodb_operation","seq":23,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"dynamodb_operation","definition":{"value":"label_values(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}'}, operation)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"es_host","seq":24,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"es_host","definition":{"value":"label_values(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}'}, server_ip)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"es_index","seq":25,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"es_index","definition":{"value":"label_values(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}'}, index)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"bzi_ip","seq":26,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"bzi_ip","definition":{"value":"select f_server_ip from t_app_detail WHERE f_app_name in ('#{bzi_server}') and f_server_env = '#{env}'","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"主调接口","seq":27,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"active_api","definition":{"value":"label_values(infra_service_invoke_total{app_name=~'#{bzi_server}', env=\"#{env}\"},api)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"es_operation","seq":28,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"es_operation","definition":{"value":"label_values(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}'}, operation)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"被调接口","seq":29,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"passive_api","definition":{"value":"label_values(infra_service_invoke_total{target_service=~'#{bzi_server}', env=\"#{env}\"},api)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"kafka_topic","seq":30,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"kafka_topic","definition":{"value":"label_values(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}'}, topic)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"kafka_partition","seq":31,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"kafka_partition","definition":{"value":"label_values(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}'}, partition)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"主调返回码","seq":32,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"active_code","definition":{"value":"label_values(infra_service_invoke_total{app_name=~'#{bzi_server}', env=\"#{env}\", code!='0'},code)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"被调返回码","seq":33,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"passive_code","definition":{"value":"label_values(infra_service_invoke_total{target_service=~'#{bzi_server}', env=\"#{env}\", code!=\"0\"},code)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"被调服务","seq":34,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"passive_invoke_server","definition":{"value":"label_values(infra_service_invoke_total{app_name=~'#{bzi_server}', env=\"#{env}\"},target_service)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"主调服务","seq":35,"hide":0,"multiple":true,"includeStar":true,"valueSort":"desc","code":"active_invoke_server","definition":{"value":"label_values(infra_service_invoke_total{target_service=~'#{bzi_server}', env=\"#{env}\"},app_name)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"instance","seq":37,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"instance","definition":{"value":"label_values(http_server_requests_seconds_count{app_name=\"#{bzi_server}\", env=\"#{env}\"}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"startTime","seq":38,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"startTime","definition":{"value":"select #{__from}:date:seconds}","defaultVal":{"label":"1768378957","value":"1768378957"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"endTime","seq":39,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"endTime","definition":{"value":"select #{__to}:date:seconds}","defaultVal":{"label":"1768382557","value":"1768382557"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"hc_person_last","seq":40,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"hc_person_last","definition":{"value":"WITH app_update_list AS (\n SELECT f_last_person,\n f_app_name,\n f_pipeline_name,\n f_branch,\n f_commit_info,\n f_commit_id,\n f_deploy_status,\n f_create_time,\n f_modify_time\n FROM t_deploy_record\n WHERE f_env = 'bon'\n AND f_app_name='#{bzi_server}'\n) \nSELECT GROUP_CONCAT(DISTINCT f_last_person ORDER BY f_last_person SEPARATOR ',') AS f_last_person FROM \n(SELECT \n f_last_person,\n f_app_name,\n f_pipeline_name,\n f_branch,\n f_commit_info,\n f_commit_id,\n f_deploy_status,\n DATE_SUB(f_create_time, INTERVAL 8 HOUR) as f_create_time,\n DATE_SUB(f_modify_time, INTERVAL 8 HOUR) as f_modify_time,\n LAG(f_commit_id) OVER (\n PARTITION BY f_app_name -- 按用户分组(可选,如需区分不同用户的记录)\n ORDER BY f_modify_time -- 按创建时间排序,定义“上一条”\n ) AS last_id,\n -- 获取上一条有效记录的金额\n LAG(f_commit_info) OVER (\n PARTITION BY f_app_name \n ORDER BY f_modify_time\n ) AS last_commit,\n LAG(f_branch) OVER (\n PARTITION BY f_app_name \n ORDER BY f_branch\n ) AS last_branch,\n -- 获取上一条有效记录的时间\n LAG(DATE_SUB(f_modify_time, INTERVAL 8 HOUR)) OVER (\n PARTITION BY f_app_name \n ORDER BY f_modify_time\n ) AS last_time,\n LAG(f_last_person) OVER (\n PARTITION BY f_app_name \n ORDER BY f_last_person\n ) AS last_person\nFROM app_update_list\n) A ,\n(select \n -- \"self\" as role,\nf_app_name as f_app_name_B,\nf_group_name,\nf_ops_person\nFROM t_app \nWHERE \nf_app_name='#{bzi_server}'\n) B,\n(\n SELECT \n f_id,\n f_name\n FROM t_pipeline\n WHERE f_env='prod'\n) C\nWHERE A.f_create_time >= DATE_SUB(NOW(), INTERVAL 120 HOUR)\nAND A.f_app_name=B.f_app_name_B\nAND A.f_pipeline_name=C.f_name\nORDER BY f_app_name, f_modify_time\n","defaultVal":{"label":"","value":""}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"hc_person_owner","seq":41,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"hc_person_owner","definition":{"value":"select \nf_ops_person\nFROM t_app \nWHERE \nf_app_name='#{bzi_server}'","defaultVal":{"label":"[\"saul.li\", \"fcloud\", \"kim.qiu\", \"ambition.xia\"]","value":"[\"saul.li\", \"fcloud\", \"kim.qiu\", \"ambition.xia\"]"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"db_instance","seq":42,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"db_instance","definition":{"value":"label_values(infra_mysql_total{app_name='#{bzi_server}' , env='#{env}'}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"redis_instance","seq":43,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"redis_instance","definition":{"value":"label_values(infra_redis_total{app_name='#{bzi_server}', env='#{env}'}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"es_instance","seq":45,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"es_instance","definition":{"value":"label_values(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}'}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"dynamodb_instance","seq":46,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"dynamodb_instance","definition":{"value":"label_values(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}'}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"kafka_instance","seq":47,"hide":1,"multiple":true,"includeStar":true,"valueSort":"desc","code":"kafka_instance","definition":{"value":"label_values(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}'}, instance)","defaultVal":{"label":"all values","value":"__all__"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"project","seq":48,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"project","definition":{"value":"label_values(performance_interface_qps{app_name=~\"#{bzi_server}\", env=\"#{env}\"}, project)","defaultVal":{"label":"None","value":""}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"logstore","seq":49,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"logstore","definition":{"value":"label_values(performance_interface_qps{app_name=~\"#{bzi_server}\", env=\"#{env}\"}, logstore)","defaultVal":{"label":"None","value":""}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"sls_pre","seq":50,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"sls_pre","definition":{"value":"select \ncase \nwhen f_app_type='golang' then '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=* and ServerID:#{bzi_server}'\nelse '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=*'\nend \nfrom t_app where f_app_name='#{bzi_server}'","defaultVal":{"label":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=*","value":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=*"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"sls_pre_status","seq":51,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"sls_pre_status","definition":{"value":"select \ncase \nwhen f_app_type='golang' then '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=* and ServerID:#{bzi_server} and Status:'\nelse '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=* and bizStatus:'\nend \nfrom t_app where f_app_name='#{bzi_server}'","defaultVal":{"label":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=* and bizStatus:","value":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=* and bizStatus:"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"sls_pre_error_rate","seq":52,"hide":1,"multiple":false,"includeStar":false,"valueSort":"desc","code":"sls_pre_error_rate","definition":{"value":"select \ncase \nwhen f_app_type='golang' then '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=* and ServerID:#{bzi_server} and not Status:0 and not Status:10.2*'\nelse '#{aliyun_host}/lognext/project/#{project}/logsearch/#{logstore}?startTime=#{startTime}&endTime=#{endTime}&queryTimeType=99&queryString=* and not bizStatus:0 and not bizStatus:10.2*'\nend \nfrom t_app where f_app_name='#{bzi_server}'","defaultVal":{"label":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=* and not bizStatus:0 and not bizStatus:10.2*","value":"https://sls.console.aliyun.com/lognext/project//logsearch/?startTime=1768378957&endTime=1768382557&queryTimeType=99&queryString=* and not bizStatus:0 and not bizStatus:10.2*"}}}],"charts":[{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":0.5,"h":7.7,"w":6},"name":"hotcall","queries":[{"query":{"content":"<div class=\"dynamic-post-links\">\n <a href=\"#\" class=\"action-btn hotcall-btn\">\n <h1> 🔥 一键HotCall 🔥 </h1>\n </a>\n</div>\n\n<script>\ndocument.querySelector('.hotcall-btn').addEventListener('click', function(e) {\n e.preventDefault();\n \n let hc_person;\n const owner_person = '$hc_person_owner'.replace(/&quot;/g, '').replace('[','').replace(']','') + ',rody.l';\n if ('${hc_person_last}'.length > 0 ) {\n hc_person = '$hc_person_last' + ', ' + owner_person;\n } else {\n hc_person = owner_person;\n }\n const hotcall = [...new Set(hc_person.split(',').map(item => item.trim()))].join(',');\n \n // 确认弹窗\n const isConfirmed = confirm(`确定要为应用: ${bzi_server} 执行一键HotCall操作吗? \\n hotcall列表: ${hotcall} \\n\\n 请确保已经在本浏览器成功登陆ops.houtai.co`);\n const grafana_url = `https://grafana.houtai.co/d/cXWzPsRDk/tong-yong-ying-yong-wen-ti-ding-wei-da-pan?orgId=1&var-bzi_server=${bzi_server}&from=${__from}&to=${__to}`\n \n if (isConfirmed) {\n const params = new URLSearchParams({\n u: `${hotcall}`,\n //u: 'Rody.L,alex.g',\n t: `来自应用【${bzi_server}】问题定位大盘的一键hotcall`,\n group_name: `[紧急处理]${bzi_server}的hotcall`,\n link_url: `${grafana_url}`\n });\n\n const url = `https://dolphin.ops.houtai.co/api/v2/openapi/general/hotcall?${params}`;\n window.open(url, '_blank');\n }\n});\n</script>"}}],"type":"text"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":6,"y":0.5,"h":7.7,"w":18},"name":"使用说明","queries":[{"query":{"content":"\n- Java应用使用本大盘,需要将<B>bon-framework升级至1.6.3及以上版本</B>\n- 应用视角:数据源 sls(sls -> 统计 -> 观测云);作用于关联应用参数;\n- 主被调视角:数据源 框架上报(Prometheus);作用于非关联应用参数;\n\n**如有任何疑问,请联系rody.l**"}}],"type":"text"},{"extend":{"settings":{}},"group":{"name":"变更记录"},"pos":{"x":0,"y":2,"h":13.4,"w":24},"name":"📚流水线发布(最近五天) -- 按服务筛选","queries":[],"type":"table"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":2,"h":3.9,"w":24},"name":"服务","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"1","type":"promql","code":"a","promqlCode":1}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":5.8,"h":17.2,"w":12},"name":"服务QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_qps{app_name=\"#{bzi_server}\", env=\"#{env}\"}) \nby (app_name)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_qps{app_name=\"#{bzi_server}\", env=\"#{env}\"}) \nby (app_name) offset 1d","type":"promql","code":"b","promqlCode":2}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_qps{app_name=\"#{bzi_server}\", env=\"#{env}\"}) \nby (app_name) offset 7d","type":"promql","code":"c","promqlCode":3}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":12,"y":5.8,"h":17.2,"w":12},"name":"系统错误率 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"performance_host_error_rate{app_name=\"#{bzi_server}\", env=\"#{env}\"} or on() vector(0)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_interface_error_count{app_name=#{bzi_server}, env=#{env}, result!=\"0\"}) by (app_name) \n/\nsum(performance_host_interface_error_count{app_name=#{bzi_server}, env=#{env}) by (app_name) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":22.9,"h":3.9,"w":24},"name":"接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"1","type":"promql","code":"a","promqlCode":1}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":26.7,"h":17.2,"w":8},"name":"接口 QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"performance_interface_qps{app_name=~\"#{bzi_server}\", env='#{env}', api!='/health'}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_interface_qps{app_name=~\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}[1m])\n by (api) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":8,"y":26.7,"h":17.2,"w":8},"name":"QPS 节点间分布","queries":[{"datasource":"dataflux","qtype":"promql","type":"pie","query":{"q":"topk(100, sum(performance_interface_qps{app_name=~\"#{bzi_server}\", env='#{env}', api=~\"#{interfact}\"}) by (api))","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"pie","query":{"q":"sum(performance_host_interface_qps{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\"}) \nby (hostname)","type":"promql","code":"b","promqlCode":2}}],"type":"pie"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":16,"y":26.7,"h":17.2,"w":8},"name":"接口 QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"performance_interface_qps{app_name=~\"#{bzi_server}\", env='#{env}', api=~\"#{interfact}\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"topk(20,\nsum(performance_host_interface_qps{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\"}) \nby (hostname, api)\n)","type":"promql","code":"b","promqlCode":2}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"performance_host_interface_qps{app_name=\"risk-engine-executor\"}","type":"promql","code":"c","promqlCode":3}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":43.8,"h":22.9,"w":6},"name":"接口系统错误率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"topk(20,\nsort_desc(100 - (sum(performance_host_interface_error_count{app_name=~\"#{bzi_server}\", env=~\"#{env}\", result=\"0\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}) by (api)\n/\nsum(performance_host_interface_error_count{app_name=~\"#{bzi_server}\", env=~\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}) by (api)) * 100)\n)\n","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"topk(20, \nperformance_host_interface_error_rate{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\"}\n) or on() vector(0)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":6,"y":43.8,"h":22.9,"w":6},"name":"接口系统错误率 - 节点分布","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sort_desc(\n (\n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", api!=\"/health\", api=~\"#{interfact}\"}) by (hostname, api)\n - \n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", result=\"0\",api!=\"/health\", api=~\"#{interfact}\"}) by (hostname, api)\n )\n /\n clamp_min(\n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\",api!=\"/health\", api=~\"#{interfact}\"}) by (hostname, api),\n 1\n )\n)[0:20]","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sort_desc( \n1 - (sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", result=\"0\", api=~\"#{interfact}\", hostname=\"#{bzi_host}\"}) by (hostname,api)\n/\nsum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=\"#{bzi_host}\"}) by (hostname,api))\nor on() vector(0)\n)[0:20]","type":"promql","code":"b","promqlCode":2}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"# 综合优化方案\nsort_desc(\n # 计算成功率百分比\n (\n # 成功数 = 总数 - 错误数(result!=\"0\")\n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\"}) by (hostname, api)\n - \n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", result=\"0\"}) by (hostname, api)\n )\n * 100 # 先乘100,避免小数精度问题\n /\n clamp_min(\n sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\"}) by (hostname, api),\n 1\n )\n)[0:20]","type":"promql","code":"c","promqlCode":3}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":12,"y":43.8,"h":22.9,"w":6},"name":"接口业务失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"topk(20,\nsort_desc(1 - (sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", status=~\"0|10.2..\", api=~\"#{interfact}\" , hostname=~\"#{bzi_host}\"}) by (api)\n/\nsum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}) by (api) > 0))\n)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":18,"y":43.8,"h":22.9,"w":6},"name":"接口业务失败率 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"pie","query":{"q":"sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", status!~\"0|10.2..\", api=~\"#{interfact}\"}) by (hostname,project,logstore)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"pie","query":{"q":"topk(20, performance_host_interface_biz_error_rate{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\"} > 0)","type":"promql","code":"b","promqlCode":2}}],"type":"pie"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":66.6,"h":22.9,"w":12},"name":"接口错误码 统计","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_interface_error_count{app_name=~\"#{bzi_server}\", status!~\"0|10.2..\", status=~\"#{bizstatus}\", env=~\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}) \nby (api, status) ","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":12,"y":66.6,"h":22.9,"w":12},"name":"接口错误码分布 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_interface_error_count{app_name=\"#{bzi_server}\", env=\"#{env}\", status!~\"0|10.2..\",status=~\"#{bizstatus}\", hostname=~\"#{bzi_host}\",api=~\"#{interfact}\"}) \nby (hostname, api, status) ","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":89.4,"h":19.1,"w":6},"name":"接口耗时 P99","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"max(performance_host_interface_p99{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}[1m]) \nby (api) ","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":6,"y":89.4,"h":19.1,"w":6},"name":"接口耗时 P95","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"max(performance_host_interface_p95{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}[1m]) \nby (api) ","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":12,"y":89.4,"h":19.1,"w":12},"name":"接口慢调用请求次数(大于500ms)- 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"topk(30, \nsum(performance_host_interface_500ms{app_name=\"#{bzi_server}\", env=\"#{env}\", api=~\"#{interfact}\", hostname=~\"#{bzi_host}\"}) by (hostname,api)\n)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":108.4,"h":3.9,"w":24},"name":"流量防护","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"1","type":"promql","code":"a","promqlCode":1}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":112.2,"h":17.2,"w":8},"name":"接口限流次数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(increase(infra_sentinel_block_total{app_name=~'#{bzi_server}', env='#{env}', resource=~\"#{interfact}\", block_type=~\"#{block_type}\"}[1m])) \nby (resource, block_type)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (app_name,resource)(\r\n rate(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\",env='#{env}', instance=~\"#{bzi_host}\"}[1m])\r\n)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":8,"y":112.2,"h":17.2,"w":8},"name":"接口限流次数-节点分布","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(increase(infra_sentinel_block_total{app_name=~'#{bzi_server}', env='#{env}', resource=~\"#{interfact}\", block_type=~\"#{block_type}\"}[1m])) by (resource, block_type, instance)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (app_name,resource)(\r\n rate(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\",env='#{env}', instance=~\"#{bzi_host}\"}[1m])\r\n)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":16,"y":112.2,"h":17.2,"w":8},"name":"接口流控阻断率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (resource) (increase(infra_sentinel_block_total{app_name=~\"#{bzi_server}\", env='#{env}', resource=~\"#{interfact}\"}[1m]))\n/\n(sum by (resource) (increase(infra_sentinel_block_total{app_name=~\"#{bzi_server}\", env='#{env}', resource=~\"#{interfact}\"}[1m])) \n+\nsum by (resource, block_type) (increase(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\", env='#{env}', resource=~\"#{interfact}\"}[1m])) \n)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (resource, block_type) (increase(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\", env='#{env}', resource=~\"#{interfact}\"}[1m])) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":0,"y":129.3,"h":15.3,"w":8},"name":"接口熔断次数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_host_interface_error_count{app_name=~\"#{bzi_server}\", env='#{env}', status='100503', api=~\"#{interfact}\"}) by (app_name)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":8,"y":129.3,"h":15.3,"w":8},"name":"接口熔断次数 - 节点分布","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(performance_interface_error_count{app_name=~\"#{bzi_server}\", env='#{env}', status='100503', api=~\"#{interfact}\"}) by (api, hostname)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (app_name,resource)(\r\n rate(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\",env='#{env}', instance=~\"#{bzi_host}\"}[1m])\r\n)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"应用视角"},"pos":{"x":16,"y":129.3,"h":15.3,"w":8},"name":"接口熔断率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(increase(performance_interface_error_count{app_name=~\"#{bzi_server}\", env='#{env}', status='100503', api=~\"#{interfact}\"}[1m])) by (api, hostname)\r\n/\r\nsum(increase(performance_interface_error_count{app_name=~\"#{bzi_server}\", env='#{env}', api=~\"#{interfact}\"}[1m])) by (api, hostname)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum by (resource)\n(increase(infra_sentinel_block_total{app_name=~\"#{bzi_server}\", env='#{env}', block_type=~\"#{block_type}\"}[1m]))\n/\nsum by (resource)\n(increase(infra_sentinel_block_total{app_name=~\"#{bzi_server}\", env='#{env}', block_type=~\"#{block_type}\"}[1m]))\n+\nsum by (resource)(\n rate(infra_sentinel_pass_total{app_name=~\"#{bzi_server}\", env='#{env}', block_type=~\"#{block_type}\"}[1m])\n)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"影响面评估 --- 跳转业务大盘"},"pos":{"x":0,"y":11.5,"h":5.8,"w":7},"name":"业务大盘","queries":[{"query":{"content":"<div id=\"dashboardContainer\"></div>\n\n<script>\n// 最简单直接的版本\nfunction initDashboard() {\n //const bzi_server = 'user-service'; // 你的实际变量\n const container = document.getElementById('dashboardContainer');\n if (`$bzi_server` === 'user-service' || `$bzi_server` === 'user-security') {\n container.innerHTML = '<a href=\"#\" onclick=\"openDashboard(); return false;\" style=\"display:block;font-size:16px; font-weight:600;\">📊 点击跳转业务大盘</a>';\n} else {\n container.innerHTML = '<div style=\"display:block;\"></div><span style=\"font-size:16px; font-weight:600; color:red\">🏗️ 大盘建设中,敬请期待</span> </div>';\n}\n}\nfunction openDashboard() {\n const url = \"https://dataflux.prod-guance.houtai.co/scene/dashboard/dashboardDetail?dashboard_id=dsbd_b8180e5ab2d24ca7bd1436eda1db7d6b&name=%E7%94%A8%E6%88%B7%E5%9F%9F%E7%9A%84%E4%B8%9A%E5%8A%A1%E5%A4%A7%E7%9B%98&lak=Scene&time=${__from},${__to}&refresh=0&variable=%7B%22dye%22%3A%22LOGIN%22,%22platform%22%3A%22%2a%22,%22region%22%3A%22%2a%22,%22lang%22%3A%22%2a%22%7D&w=wksp_71f37c251a3b4e9d9f626103ecaf2f0b\"; // 你的URL\n window.open(url, '_blank');\n}\n\n\n// 页面加载后执行\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', initDashboard);\n} else {\n initDashboard();\n}\n</script>"}}],"type":"text"},{"extend":{"settings":{}},"group":{"name":"上下游拓扑图 - 跳转trace"},"pos":{"x":0,"y":15.3,"h":5.8,"w":10},"name":"接口上下游依赖拓扑图","queries":[{"datasource":"dataflux","qtype":"promql","type":"text","query":{"q":"1234","type":"promql","code":"a","promqlCode":1}},{"query":{"content":"<div style=\"background-color: yellow\"; padding: 10px; border-radius: 4px;\" id=\"dashboardContainer\">\n <h4>上下游拓扑图【<dev style=\"color:red\">点击前请选择一个接口</dev>】:\n <a id=\"traceLink\" href=\"#\" target=\"_blank\">点击跳转观测云</a>\n </h3>\n</div>\n\n<script>\ndocument.getElementById('traceLink').addEventListener('click', function(e) {\n // 阻止默认跳转\n e.preventDefault();\n \n // 实时获取当前值\n const interfact = `$interfact`;\n const apiValue = interfact.includes(',') ? '/health' : interfact;\n \n const variable = {\n \"env\": \"prod\",\n \"service\": \"${bzi_server}\",\n \"should_exclude\": \"false\",\n \"filteredInterface\": \"test\",\n \"http_route\": apiValue,\n \"resource\": \"__all__\"\n };\n \n const url = `$guance_domain/scene/dashboard/dashboardDetail` +\n `?dashboard_id=dsbd_e2308a734df44ebabf8db4ea3134a08a` +\n `&lak=Scene` +\n `&time=${__from},${__to}` +\n `&variable=${encodeURIComponent(JSON.stringify(variable))}` +\n `&w=wksp_71f37c251a3b4e9d9f626103ecaf2f0b`;\n \n // 跳转\n window.open(url, '_blank');\n console.log('实时跳转:', apiValue);\n});\n</script>"}}],"type":"text"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":17.2,"h":3.9,"w":24},"name":"主调/被调","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"1","type":"promql","code":"a","promqlCode":1}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":21,"h":24.8,"w":12},"name":"【请求QPS】上游服务 -> 本应用接口 ","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(\n sum(rate(infra_service_invoke_total{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}' }[1m])) by (api, app_name) or on() vector(0)\n ,0\n )","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":21,"h":24.8,"w":12},"name":"【请求QPS】本应用 -> 目标应用接口 ","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":45.7,"h":22.9,"w":6},"name":"【接口失败率】上游服务 -> 本应用","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code='0', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api)\n/\nsum(rate(infra_service_invoke_total{target_service='#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":6,"y":45.7,"h":22.9,"w":6},"name":"【接口失败数】上游服务 -> 本应用接口 ","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code!='0', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":45.7,"h":22.9,"w":6},"name":"【业务失败率】本应用 -> 下游接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', code!~'#{active_code}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) \n/\nsum(rate(infra_service_invoke_total{app_name='#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) , 0) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_process_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (api, service) > 0","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":18,"y":45.7,"h":22.9,"w":6},"name":"【业务失败数】本应用 -> 下游接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', code=~'#{active_code}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) or on() vector(0)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_process_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (api, service) > 0","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":68.5,"h":21,"w":6},"name":"【系统错误率】上游服务 -> 本应用接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code=~'1005..', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api)\n/\nsum(rate(infra_service_invoke_total{target_service='#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":6,"y":68.5,"h":21,"w":6},"name":"【系统错误数】上游服务 -> 本应用接口 ","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code=~'1005..', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":68.5,"h":21,"w":6},"name":"【系统错误率】本应用 -> 下游接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', code!~'1005..', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service)\n/\nsum(rate(infra_service_invoke_total{app_name='#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) , 0) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_process_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (api, service) > 0","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":18,"y":68.5,"h":21,"w":6},"name":"【系统错误数】本应用 -> 下游接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', code=~'1005..', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service) or on() vector(0)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_process_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (api, service) > 0","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":89.4,"h":21,"w":12},"name":"【错误码统计】上游服务 -> 本应用接口 ","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code=~'#{active_code}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, api, code) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":89.4,"h":21,"w":12},"name":"【错误码统计】本应用 -> 下游服务接口","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', env='#{env}', api=~'#{active_api}', code=~'#{active_code}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, code) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":110.3,"h":21,"w":12},"name":"【错误码统计】上游服务 -> 本应用接口 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{target_service='#{bzi_server}', code=~'#{passive_code}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (app_name, instance, api, code) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":110.3,"h":21,"w":12},"name":"【错误码统计】本应用 -> 下游服务 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_total{app_name='#{bzi_server}', env='#{env}', api=~'#{active_api}', code=~'#{active_code}', target_service=~'#{passive_invoke_server}'}[1m])) by (instance, api, target_service, code) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":131.2,"h":21,"w":6},"name":"上游服务 -> 本应用接口 P95 耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.95, \n sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, le)\n) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.95, \n sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, le)\n) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":6,"y":131.2,"h":21,"w":6},"name":"上游服务 -> 本应用接口 P99 耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.99, \n sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, le)\n) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.99, \n sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, le)\n) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":131.2,"h":21,"w":6},"name":"本应用 -> 被调服务 接口 P95 耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.95, \n sum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, le)\n) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.95, \n sum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, le)\n) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":18,"y":131.2,"h":21,"w":6},"name":"本应用 -> 被调服务 接口 P99 耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.99, \n sum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, le)\n) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.99, \n sum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, le)\n) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":152.1,"h":21,"w":12},"name":"上游服务 -> 本应用节点 接口 慢调用请求比例","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(\n sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' ,le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n- \n sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' , le='500', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n)\n/\nsum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}' , api=~'#{passive_api}', le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(\n sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' ,le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n- \n sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' , le='1000', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n)\n/\nsum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}' , api=~'#{passive_api}', le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":152.1,"h":21,"w":12},"name":"本应用节点 -> 被调服务接口 慢调用请求比例","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(sum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance) \n- \nsum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='500', target_service=~'#{passive_invoke_server}'}[1m])) by (api,target_service, instance) \n)\n/\nsum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(sum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance) \n- \nsum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='1000', target_service=~'#{passive_invoke_server}'}[1m])) by (api,target_service, instance) \n)\n/\nsum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":0,"y":173,"h":21,"w":12},"name":"上游服务 -> 本应用节点 接口 慢调用请求量","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' ,le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n- \n sum(rate(infra_service_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' , le='500', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' ,le='+Inf', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) \n- \n sum(rate(infra_http_invoke_cost_ms_bucket{target_service=~'#{bzi_server}', env='#{env}', api=~'#{passive_api}' , le='1000', app_name=~'#{active_invoke_server}'}[1m])) by (api, app_name, instance) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"主/被调视角"},"pos":{"x":12,"y":173,"h":21,"w":12},"name":"本应用节点 -> 被调服务接口 慢调用请求数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance) \n- \nsum(rate(infra_service_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='500', target_service=~'#{passive_invoke_server}'}[1m])) by (api,target_service, instance) ","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='+Inf', target_service=~'#{passive_invoke_server}'}[1m])) by (api, target_service, instance) \n- \nsum(rate(infra_http_invoke_cost_ms_bucket{app_name=~'#{bzi_server}', env='#{env}', api=~'#{active_api}', le='1000', target_service=~'#{passive_invoke_server}'}[1m])) by (api,target_service, instance) ","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"快速处置"},"pos":{"x":0,"y":19.1,"h":7.7,"w":9},"name":"快速处置","queries":[{"datasource":"dataflux","qtype":"promql","type":"text","query":{"q":"1234","type":"promql","code":"a","promqlCode":1}},{"query":{"content":"<div style=\"background-color: yellow\"; padding: 10px; border-radius: 4px;\">\n <h4>1、流量防护:<a href='$ops_domain/question/flow-protection?app_name=$bzi_server&env=prod' target=\"_blank\"> 点击跳转OPS </a> </h3>\n <h4>2、预案管理:<a href='$ops_domain/question/plan-management?app_name=$bzi_server&env=prod' target=\"_blank\"> 点击跳转OPS </a> </h3>\n <h4>3、节点管理(关机/重启/升配):<a href='$ops_domain/assets/ec2?app_name=$bzi_server&env=prod' target=\"_blank\"> 点击跳转OPS </a> </h3>\n</div>"}}],"type":"text"},{"extend":{"settings":{}},"group":{"name":"Pod/EC2"},"pos":{"x":0,"y":21,"h":15.3,"w":12},"name":"CPU使用率 - 服务节点","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"linux_server{instance_name=~\"#{bzi_host}\", job=\"linux_server\", quota_name=~\"cpu_usage\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"90","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Pod/EC2"},"pos":{"x":12,"y":21,"h":15.3,"w":12},"name":"内存使用率 - 服务节点","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"linux_server{quota_name=\"memory_usage\", job=\"linux_server\", instance_name=~\"#{bzi_host}\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"80","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Pod/EC2"},"pos":{"x":0,"y":36.2,"h":15.3,"w":12},"name":"平均 IO 延迟","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(linux_server{instance_name=~\"#{bzi_host}\", job=\"linux_server\", quota_name=\"disk_iostat\", attribute=~\"r_await|w_await\"}[1m])) by (instance_name)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Pod/EC2"},"pos":{"x":12,"y":36.2,"h":15.3,"w":12},"name":"上行/下行流量","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(linux_server{instance_name=~\"#{bzi_host}\", job=\"linux_server\", quota_name=\"network_traffic\", direction=~\"in|out\"}[1m])) by (instance_name, direction)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"通信线程池"},"pos":{"x":0,"y":22.9,"h":15.3,"w":12},"name":"线程池信息(worker)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_io_thread_count{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_worker_pool_max_size{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"b","promqlCode":2}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_worker_thread_busy_count{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"c","promqlCode":3}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_worker_pool_core_size{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"d","promqlCode":4}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_worker_pool_size{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"e","promqlCode":5}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"通信线程池"},"pos":{"x":12,"y":22.9,"h":15.3,"w":12},"name":"Connections当前/最大活跃数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_connectors_connections_active_connections{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_connectors_connections_active_connections{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"通信线程池"},"pos":{"x":0,"y":38.1,"h":15.3,"w":8},"name":"请求错误率(5分钟错误增量/总增量)(statusCode=500)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"increase(undertow_connectors_requests_error_count{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}[5m])/increase(undertow_connectors_requests_count{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}[5m])","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"通信线程池"},"pos":{"x":8,"y":38.1,"h":15.3,"w":8},"name":"requests当前/最大活跃数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_connectors_requests_active_max_connections{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_connectors_requests_active_connections{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"通信线程池"},"pos":{"x":16,"y":38.1,"h":15.3,"w":8},"name":"等待队列数量(worker queue)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"undertow_xwork_worker_queue_size{env=~\"#{env}\", app_name=~\"#{bzi_server}\", instance=~\"#{bzi_host}\"}","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":0,"y":24.8,"h":15.3,"w":12},"name":"MySQL请求QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_mysql_total{app_name='#{bzi_server}', env='#{env}', host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}',operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, host, db, table, operation)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":12,"y":24.8,"h":15.3,"w":12},"name":"MySQL请求QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_mysql_total{app_name='#{bzi_server}', env='#{env}', host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}', operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, instance)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":0,"y":40,"h":15.3,"w":12},"name":"MySQL请求失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - sum(rate(infra_mysql_total{app_name='#{bzi_server}', env='#{env}', code='0',host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}',operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, host, db , table , operation)\n/\n(sum(rate(infra_mysql_total{app_name='#{bzi_server}', env='#{env}',host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}',operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, host, db , table , operation) > 0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":12,"y":40,"h":15.3,"w":12},"name":"MySQL请求错误 QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(sum(rate(infra_mysql_total{app_name='#{bzi_server}', env='#{env}', host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}', operation=~'#{db_operation}', code!=\"0\", instance=~'#{db_instance}'}[1m])) by (app_name, instance, db, table, operation, code), 0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":0,"y":55.2,"h":15.3,"w":12},"name":"MySQL请求P90耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_mysql_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}',host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}',operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, host, db ,table, operation, le))","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_mysql_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}',host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}',operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, host, db ,table, operation, le))","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"MySQL"},"pos":{"x":12,"y":55.2,"h":15.3,"w":12},"name":"MySQL请求P90耗时 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, \nsum(rate(infra_mysql_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}', operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, instance, le)\n)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, \nsum(rate(infra_mysql_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', host=~'#{db_host}', db=~'#{db_db}', table=~'#{db_table}', operation=~'#{db_operation}', instance=~'#{db_instance}'}[1m])) by (app_name, instance, le)\n)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":0,"y":26.7,"h":15.3,"w":12},"name":"Redis请求QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(\n sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (host, db, keyspace, cmd)\n ,0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":12,"y":26.7,"h":15.3,"w":12},"name":"Redis请求QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(\n sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', db=~'#{redis_db}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (app_name, instance)\n ,0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":0,"y":41.9,"h":15.3,"w":12},"name":"Redis请求失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(\n 1 - (sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', code=~'0|100', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (host, keyspace, cmd)\n/\nsum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (host, keyspace, cmd))\n,0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":12,"y":41.9,"h":15.3,"w":12},"name":"Redis请求错误QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(\n sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', code!~'0|100'}[1m])) by (app_name, instance, code)\n ,0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":0,"y":57.1,"h":15.3,"w":12},"name":"Redis 请求P90耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_redis_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (host, keyspace, cmd, le)) OR on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":12,"y":57.1,"h":15.3,"w":12},"name":"Redis请求P90耗时 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_redis_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', instance=~'#{redis_instance}'}[1m])) by (instance, le)) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Redis"},"pos":{"x":0,"y":72.3,"h":15.3,"w":12},"name":"Redis命中率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}', code!='100'}[1m])) by (app_name, instance)\n/\n sum(rate(infra_redis_total{app_name='#{bzi_server}', env='#{env}', host=~'#{redis_host}', keyspace=~'#{redis_key}', cmd=~'#{redis_cmd}'}[1m])) by (app_name, instance) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":0,"y":28.6,"h":15.3,"w":12},"name":"ES请求QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (index, operation, server_ip)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":12,"y":28.6,"h":15.3,"w":12},"name":"ES请求QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (instance)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":0,"y":43.8,"h":15.3,"w":12},"name":"ES请求失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', code='0', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (index, operation, server_ip)\n/\nsum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (index, operation, server_ip),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":12,"y":43.8,"h":15.3,"w":12},"name":"ES请求错误 - 节点/错误码维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', code!='0'}[1m])) by (index, operation, server_ip)\n/\nsum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (index, operation, server_ip) > 0","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(sum(rate(infra_elasticsearch_total{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}', code!='0'}[1m])) by (instance, code),0)","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":0,"y":59,"h":15.3,"w":12},"name":"ES请求P90耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_elasticsearch_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (server_ip, index, operation, le))","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"ElasticSearch"},"pos":{"x":12,"y":59,"h":15.3,"w":12},"name":"ES请求P90耗时 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_elasticsearch_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', index=~'#{es_index}', operation=~'#{es_operation}', server_ip=~'#{es_host}', instance=~'#{es_instance}'}[1m])) by (instance, le)) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":0,"y":30.5,"h":15.3,"w":12},"name":"生产者 QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (server_ip, topic, partition)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":12,"y":30.5,"h":15.3,"w":12},"name":"生产者 QPS -节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(\n sum(rate(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (instance)\n) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":0,"y":45.7,"h":15.3,"w":12},"name":"生产者 - 请求失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}', code='0', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (server_ip, topic, partition)\n/ \nsum(rate(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (server_ip, topic, partition),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":12,"y":45.7,"h":15.3,"w":12},"name":"生产者错误QPS - 节点/错误码维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_kafka_produce_total{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}', code!='0'}[1m])) by (instance, code) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":0,"y":60.9,"h":15.3,"w":12},"name":"生产者 P90耗时【暂无数据】","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_kafka_produce_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (server_ip, topic, partitio ,le)) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Kafka"},"pos":{"x":12,"y":60.9,"h":15.3,"w":12},"name":"生产者 P90耗时 - 节点维度【暂无数据】","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, sum(rate(infra_kafka_produce_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', server_ip=~'#{kafka_host}', topic=~'#{kafka_topic}', partition=~'#{kafka_partition}', instance=~'#{kafka_instance}'}[1m])) by (instance, le)) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":0,"y":32.4,"h":15.3,"w":12},"name":"Dynamodb请求QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m])) by (table, region, operation)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":12,"y":32.4,"h":15.3,"w":12},"name":"Dynamodb请求QPS - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m])) by (instance)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":0,"y":47.6,"h":15.3,"w":12},"name":"Dynamodb请求失败率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"1 - clamp_min(sum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', code='0', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m])) by (table, region, operation) \n/\nsum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m])) by (table, region, operation),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":12,"y":47.6,"h":15.3,"w":12},"name":"Dynamodb请求错误 - 节点/错误码维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"clamp_min(sum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', code!='0', instance=~'#{dynamodb_instance}'}[1m])) by (instance, code),0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":0,"y":62.8,"h":15.3,"w":12},"name":"Dynamodb请求P90耗时","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"max(histogram_quantile(0.90, rate(infra_dynamodb_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m]))) by (table, region, operation)","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}', code='0'}[1m])) by (table, region, operation) \n/\nsum(rate(infra_dynamodb_total{app_name='#{bzi_server}', env='#{env}'}[1m])) by (table, region, operation) > 0","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"DynamoDB"},"pos":{"x":12,"y":62.8,"h":15.3,"w":12},"name":"Dynamodb请求P90耗时 - 节点维度","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"histogram_quantile(0.90, \nsum(rate(infra_dynamodb_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}', table=~'#{dynamodb_table}', region=~'#{dynamodb_region}', operation=~'#{dynamodb_operation}', instance=~'#{dynamodb_instance}'}[1m])) by (instance, le)\n) or on() vector(0)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":0,"y":2,"h":15.3,"w":8},"name":"Collections(end of major GC)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_pause_seconds_count{app_name=\"#{bzi_server}\", action=\"end of major GC\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":8,"y":2,"h":15.3,"w":8},"name":"Collections(end of minor GC)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_pause_seconds_count{app_name=\"#{bzi_server}\", action=\"end of minor GC\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":16,"y":2,"h":15.3,"w":8},"name":"Allocated/Promoted","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_memory_allocated_bytes_total{app_name=\"#{bzi_server}\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"a","promqlCode":1}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_memory_promoted_bytes_total{app_name=\"#{app_name}\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"b","promqlCode":2}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":0,"y":17.2,"h":15.3,"w":12},"name":"G1新生代GC时间","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_pause_seconds_count{app_name=\"#{bzi_server}\", cause=\"G1 Evacuation Pause\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":12,"y":17.2,"h":15.3,"w":12},"name":"G1大对象GC时间","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(jvm_gc_pause_seconds_count{app_name=\"#{bzi_server}\", cause=\"G1 Humongous Allocation\", instance=~\"#{instance}\"}[1m])","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":0,"y":32.4,"h":15.3,"w":12},"name":"Heap used","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(sum(jvm_memory_used_bytes{app_name=\"#{bzi_server}\", instance=~\"#{instance}\", area=\"heap\"}) by (instance))*100/sum(jvm_memory_committed_bytes{app_name=\"#{bzi_server}\",instance=~\"#{instance}\", area=\"heap\"}) by (instance)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"JVM指标"},"pos":{"x":12,"y":32.4,"h":15.3,"w":12},"name":"Total used","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"(sum(jvm_memory_used_bytes{app_name=\"#{bzi_server}\", instance=~\"#{instance}\"}) by (instance))*100/sum(jvm_memory_committed_bytes{app_name=\"#{bzi_server}\",instance=~\"#{instance}\"}) by (instance)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Golang指标"},"pos":{"x":0,"y":34.3,"h":15.3,"w":12},"name":"协程QPS或者协程池处理QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(go_pkg_safe_run_cost_ms_sum{app_name='#{bzi_server}', env='#{env}'}[1m])) by (GoroutineName, Status)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Golang指标"},"pos":{"x":12,"y":34.3,"h":15.3,"w":12},"name":"协程耗时P90","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"max(histogram_quantile(0.9, rate(go_pkg_safe_run_cost_ms_bucket{app_name='#{bzi_server}', env='#{env}'}[1m]))) by (GoroutineName, Status)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Golang指标"},"pos":{"x":0,"y":49.5,"h":15.3,"w":12},"name":"协程处理超时QPS","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(rate(go_pkg_safe_run_exceed_timeout_ms_sum{app_name='#{bzi_server}', env='#{env}'}[1m])) by (GoroutineName, Status)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":"Golang指标"},"pos":{"x":12,"y":49.5,"h":15.3,"w":12},"name":"超时处理协程耗时P90","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"max(histogram_quantile(0.9, rate(go_pkg_safe_run_exceed_timeout_ms_bucket{app_name='#{bzi_server}', env='#{env}'}[1m]))) by (GoroutineName, Status)","type":"promql","code":"a","promqlCode":1}}],"type":"sequence"}],"groups":[{"name":"变更记录"},{"name":"应用视角"},{"name":"影响面评估 --- 跳转业务大盘"},{"name":"上下游拓扑图 - 跳转trace"},{"name":"主/被调视角"},{"name":"快速处置"},{"name":"Pod/EC2"},{"name":"通信线程池"},{"name":"MySQL"},{"name":"Redis"},{"name":"ElasticSearch"},{"name":"Kafka"},{"name":"DynamoDB"},{"name":"JVM指标"},{"name":"Golang指标"}]}}