Prometheus监控Canal
-
安装并部署对应平台的prometheus,可以查看我之前的博客,docker命令直接启动
-
配置prometheus.yml,添加canal的job,示例:
- job_name: 'canal'
static_configs:
- targets: ['localhost:11112'] //端口配置即为canal.properties中的canal.metrics.pull.port
-
启动grafana-server,使用用户admin与密码admin登录localhost:3000 (默认配置下)。
-
进入dashboard 'Canal instances', 在'datasource'下拉框中选择刚才配置的prometheus datasource, 然后'destination'下拉框中就可以切换instance了(如果没出现instances列表就刷新下页面), just enjoy it.
canal监控相关原始指标列表:
指标 | 说明 | 单位 | 精度 |
---|---|---|---|
canal_instance_transactions | instance接收transactions计数 | - | - |
canal_instance | instance基本信息 | - | - |
canal_instance_subscriptions | instance订阅数量 | - | - |
canal_instance_publish_blocking_time | instance dump线程提交到异步解析队列过程中的阻塞时间(仅parallel解析模式) | ms | ns |
canal_instance_received_binlog_bytes | instance接收binlog字节数 | byte | - |
canal_instance_parser_mode | instance解析模式(是否开启parallel解析) | - | - |
canal_instance_client_packets | instance client请求次数的计数 | - | - |
canal_instance_client_bytes | 向instance client发送数据包字节计数 | byte | - |
canal_instance_client_empty_batches | 向instance client发送get接口的空结果计数 | - | - |
canal_instance_client_request_error | instance client请求失败计数 | - | - |
canal_instance_client_request_latency | instance client请求的响应时间概况 | - | - |
canal_instance_sink_blocking_time | instance sink线程put数据至store的阻塞时间 | ms | ns |
canal_instance_store_produce_seq | instance store接收到的events sequence number | - | - |
canal_instance_store_consume_seq | instance store成功消费的events sequence number | - | - |
canal_instance_store | instance store基本信息 | - | - |
canal_instance_store_produce_mem | instance store接收到的所有events占用内存总量 | byte | - |
canal_instance_store_consume_mem | instance store成功消费的所有events占用内存总量 | byte | - |
canal_instance_put_rows | store put操作完成的table rows | - | - |
canal_instance_get_rows | client get请求返回的table rows | - | - |
canal_instance_ack_rows | client ack操作释放的table rows | - | - |
canal_instance_traffic_delay | server与MySQL master的延时 | ms | ms |
canal_instance_put_delay | store put操作events的延时 | ms | ms |
canal_instance_get_delay | client get请求返回events的延时 | ms | ms |
canal_instance_ack_delay | client ack操作释放events的延时 | ms | ms |
监控展示指标
指标 | 简述 | 多指标 |
---|---|---|
Basic | Canal instance 基本信息。 | 是 |
Network bandwith | 网络带宽。包含inbound(canal server读取binlog的网络带宽)和outbound(canal server返回给canal client的网络带宽) | 是 |
Delay | Canal server与master延时;store 的put, get, ack操作对应的延时。 | 是 |
Blocking | sink线程blocking占比;dump线程blocking占比(仅parallel mode)。 | 是 |
TPS(transaction) | Canal instance 处理binlog的TPS,以MySQL transaction为单位计算。 | 否 |
TPS(tableRows) | 分别对应store的put, get, ack操作针对数据表变更行的TPS | 是 |
Client requests | Canal client请求server的请求数统计,结果按请求类型分类(比如get/ack/sub/rollback等)。 | 否 |
Response time | Canal client请求server的响应时间统计。 | 否 |
Empty packets | Canal client请求server返回空结果的统计。 | 是 |
Store remain events | Canal instance ringbuffer中堆积的events数量。 | 否 |
Store remain mem | Canal instance ringbuffer中堆积的events内存使用量。 | 否 |
Client QPS | client发送请求的QPS,按GET与CLIENTACK分类统计 | 是 |