-
Notifications
You must be signed in to change notification settings - Fork 14
6. 监控告警
woqutech-qdecoder edited this page Mar 11, 2022
·
3 revisions
o2k集成了prometheus exposer,外部可以从o2k exposer实时获取各项指标。
assembler.conf:
exposer.port=9194
然后配置prometheus server从o2k exposer定时抓取指标值,然后在grafana中展示出来。
也可以直接用浏览器查看指标:
http://127.0.0.1:9194/metrics
我们提供了一个docker镜像o2k-monitor,其中集成了prometheus和grafana,运行o2k-monitor可以监视o2k的各项指标:
首先确保o2k容器已经运行起来了,而且容器名字必须为o2k,如:
docker run -it --pull always --name o2k -p 9092:9092 registry.cn-hangzhou.aliyuncs.com/woqutech/o2k
然后运行o2k-monitor:
docker run -it --pull always --name o2k-monitor --link o2k -p 3000:3000 registry.cn-hangzhou.aliyuncs.com/woqutech/o2k-monitor
然后用浏览器访问grafana界面:
http://localhost:3000/
grafana的账号/密码:o2k/woqutech
# HELP qdecoder_sync_delay sync delay
# TYPE qdecoder_sync_delay gauge
qdecoder_sync_delay{node_name="defaultapp",component_name="parser",parser_id="1",unit="second"} 0.000000
qdecoder_sync_delay{node_name="defaultapp",component_name="parser",parser_id="2",unit="second"} 0.000000
qdecoder_sync_delay{node_name="defaultapp",component_name="CProcManager",proc_manager_id="1",unit="second"} 1.000000
qdecoder_sync_delay{node_name="defaultapp",component_name="CProcManager",proc_manager_id="2",unit="second"} 1.000000
qdecoder_sync_delay{node_name="defaultapp",component_name="CTransManager",unit="second"} 1.000000
其中:
- 各parser读取延迟:{component_name=parser, parser_id=1|2|...}
- assembler接收延迟:{component_name=CProcManager, proc_manager_id=1|2|...}
- assembler序列化延迟:{component_name=CTransManager}
通过队列满百分比来反映组件的性能瓶颈。
# HELP qdecoder_queue_full_percent Where is the bottleneck of qdecoder
# TYPE qdecoder_queue_full_percent gauge
qdecoder_queue_full_percent{node_name="defaultapp",component_name="parser",parser_id="1",queue_name="parse_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="parser",parser_id="1",queue_name="send_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="parser",parser_id="2",queue_name="parse_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="parser",parser_id="2",queue_name="send_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="CProcManager",proc_manager_id="1",queue_name="transaction_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="CProcManager",proc_manager_id="2",queue_name="transaction_queue"} 0.000000
qdecoder_queue_full_percent{node_name="defaultapp",component_name="CTransManager",queue_name="serial_queue"} 0.000000
- 各parser解析队列:{component_name=parser, parser_id=1|2|..., queue_name=parse_queue}
- 各parser发送队列:{component_name=parser, parser_id=1|2|..., queue_name=send_queue}
- assembler事务队列:{component_name=CProcManager, proc_manager_id=1|2|..., queue_name=transaction_queue}
- assembler序列化队列:{component_name=CTransManager, queue_name=serial_queue}
# HELP qdecoder_workload The workload of each component of qdecoder
# TYPE qdecoder_workload gauge
qdecoder_workload{node_name="defaultapp",component_name="parser",event_type="read_log",parser_id="1",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="parser",event_type="send_msg",parser_id="1",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="parser",event_type="read_log",parser_id="2",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="parser",event_type="send_msg",parser_id="2",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="CProcManager",event_type="recv_msg",proc_manager_id="1",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="CProcManager",event_type="recv_msg",proc_manager_id="2",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="CTransManager",event_type="recv_msg",unit="byte"} 0.000000
qdecoder_workload{node_name="defaultapp",component_name="CTransManager",event_type="write_binlog",unit="byte"} 0.000000
- 各parser读取日志量:{component_name=parser, parser_id=1|2|..., event_type=read_log}
- 各parser解析日志量:{component_name=CTransManager, event_type=recv_msg}
- assembler序列化binlog量:{component_name=CTransManager, event_type=write_binlog}
# HELP qdecoder_transactions_number_total How many transactions have been handled ?
# TYPE qdecoder_transactions_number_total gauge
qdecoder_transactions_number_total{node_name="defaultapp",component_name="CProcManager",proc_manager_id="2",when_count="commit"} 0.000000
qdecoder_transactions_number_total{node_name="defaultapp",component_name="CProcManager",proc_manager_id="1",when_count="commit"} 0.000000
qdecoder_transactions_number_total{node_name="defaultapp",component_name="CTransManager",when_count="commit"} 0.000000
qdecoder_transactions_number_total{node_name="defaultapp",component_name="CTransManager",when_count="binlog"} 0.000000
- 各parser分发的事务数:{component_name=CProcManager, proc_manager_id=1|2|...}
- assembler序列化的事务数:{component_name=CTransManager}
注意:可以由grafana计算TPS.
# HELP qdecoder_rows_number_total How many rows has been handled ?
# TYPE qdecoder_rows_number_total gauge
qdecoder_rows_number_total{node_name="defaultapp",component_name="CProcManager",proc_manager_id="1"} 0.000000
qdecoder_rows_number_total{node_name="defaultapp",component_name="CProcManager",proc_manager_id="2"} 0.000000
qdecoder_rows_number_total{node_name="defaultapp",component_name="CTransManager",operation="all"} 0.000000
qdecoder_rows_number_total{node_name="defaultapp",component_name="CTransManager",operation="delete"} 0.000000
qdecoder_rows_number_total{node_name="defaultapp",component_name="CTransManager",operation="update"} 0.000000
qdecoder_rows_number_total{node_name="defaultapp",component_name="CTransManager",operation="insert"} 0.000000
- 总行数:{component_name=CTransManager, operation=all}
- insert行数:{component_name=CTransManager, operation=insert}
- update行数:{component_name=CTransManager, operation=update}
- delete行数:{component_name=CTransManager, operation=delete}
# HELP qdecoder_memory_used_total How much memory used ?
# TYPE qdecoder_memory_used_total gauge
qdecoder_memory_used_total{node_name="defaultapp",component_name="parser",parser_id="1",unit="MB"} 0.000000
qdecoder_memory_used_total{node_name="defaultapp",component_name="parser",parser_id="2",unit="MB"} 0.000000
qdecoder_memory_used_total{node_name="defaultapp",component_name="assembler",unit="MB"} 0.000000
- 各parser内存用量: {component_name=parser, parser_id=1|2|...}
- assembler内存用量: {component_name=assembler}
各parser是否在线
# HELP qdecoder_parser_status Is the parser OK ? 1:online, 0:offline
# TYPE qdecoder_parser_status gauge
qdecoder_parser_status{node_name="defaultapp",parser_id="2"} 0.000000
qdecoder_parser_status{node_name="defaultapp",parser_id="1"} 0.000000
杭州沃趣科技股份有限公司版权所有