canal消耗内存_Canal prometheus

Canal Prometheus 简介

Canal server 性能指标监控基于prometheus的实现。

关于prometheus,参见官网

效果示意图

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

监控展示指标指标

简述

多指标

Canal instance 基本信息。

网络带宽。包含inbound(canal server读取binlog的网络带宽)和outbound(canal server返回给canal client的网络带宽)

Canal server与master延时;store 的put, get, ack操作对应的延时。

sink线程blocking占比;dump线程blocking占比(仅parallel mode)。

Canal instance消费所有binlog事件的TPS, 以MySQL binlog events为单位计算。

Canal instance 处理binlog的TPS,以MySQL transaction为单位计算。

分别对应store的put, get, ack操作针对数据表变更行的TPS

Canal client请求server的请求数统计,结果按请求类型分类(比如get/ack/sub/rollback等)。

Canal client请求server的响应时间统计。

Canal client请求server返回空结果的统计。

Canal instance ringbuffer中堆积的events数量。

Canal instance ringbuffer中堆积的events内存使用量。

client发送请求的QPS,按GET与CLIENTACK分类统计

JVM 相关信息The Java client includes collectors for garbage collection, memory pools, JMX, classloading, and thread counts. These can be added individually or just use the DefaultExports to conveniently register them.DefaultExports.initialize();

监控指标详述与应用场景

Blocking

clamp_max(rate(canal_instance_sink_blocking_time{destination="example"}[2m]),1000)/10

sink线程blocking时间片比例(向store中put events时)。若idle占比很高,则store总体上处于满的状态,client的consume速度低于server的produce速度

clamp_max(rate(canal_instance_publish_blocking_time{destination="example"}[2m]),1000)/10

dump线程blocking时间片比例(仅parallel mode, dump线程向disruptor发布event时)。若idle占比较高:

1. Sinking idle ratio也很高,则瓶颈是因为client的consume速度相对较慢。

2. Sinking idle ratio较低,那么server端parser是性能瓶颈,可参考Performance进行tuning.

Delay(seconds)

canal_instance_traffic_delay{destination="example"}/1000

Server与MySQL master之间的延时。

canal_instance_put_delay{destination="example"}/1000

Store put操作时间点的延时。

canal_instance_get_delay{destination="example"}/1000

Client get操作时间点的延时。

canal_instance_ack_delay{destination="example"}/1000

Client ack操作时间点的延时。

网络带宽(KB/s)

rate(canal_instance_received_binlog_bytes{destination="example"}[2m])/1024

Dump线程读取binlog所占用带宽。当'Sink线程空闲比'与'Dump线程空闲比'都很低,delay却比较高的情况,请查看binlog接收速率是否符合预期。

rate(canal_instance_client_bytes{destination="example"}[2m])/1024

向Instance client发送格式化binlog所占用的带宽。MySQL低负载时,client get所返回的空包同样会占用不少的带宽。

TPS(Binlog events)

rate(canal_instance_store_consume_seq{destination="example"}[2m])

Canal instance client消费TPS(以binlog event为单位)。

TPS(MySQL transaction)

rate(canal_instance_transactions{destination="example"}[2m])

Canal instance处理transaction的TPS,以TRANSACTION_END事件为基准。

TPS(Table row)

rate(canal_instance_rows_counter{destination="example"}[2m])

Canal instance接受binlog中,数据库表变更行数的TPS.

rate(canal_instance_row_events{destination="example"}[2m])

Canal instance接受binlog中,rowData类型events的TPS.**批量DML的场景下,rowData会包含多个table rows, tableRows指标会显著高于rowDatas.**

Client requests

canal_instance_client_packets{destination="example"}

Netty server处理的client requests,以packetType为label分类统计。

Empty packets

rate(canal_instance_client_empty_batches{destination="example"}[2m])

client get返回每秒空包量。如果正常traffic下,该值很大,考虑使用connector的timeout机制,节省资源。

rate(canal_instance_client_packets{destination="example",packetType="GET"}[2m])

作为empty rate的参照。

Client latency

canal_instance_client_request_latency_bucket{destination="example"}

Histogram, client请求响应情况统计。关于histogram.

Event store占用

canal_instance_store_produce_seq{destination="example"}-canal_instance_store_consume_seq{destination="example"}

Event store内未ack的events数量,实时性受scrape_interval影响。

Event store memory占用(KB, 仅memory mode)

(canal_instance_store_produce_mem{destination="example"}-canal_instance_store_consume_mem{destination="example"})/1024

Event store内未ack的events所占用内存大小,实时性受scrape_interval影响。

Client QPS

rate(canal_instance_client_packets{destination="example",packetType="GET"}[2m])

GET类型QPS.

rate(canal_instance_client_packets{destination="example",packetType="CLIENTACK"}[2m])

CLIENTACK类型QPS.

状态信息

canal_instance{destination="example"}

canal_instance_parser_mode{destination="example"}

canal_instance_store{destination="example"}

通过labels展示状态信息。

Quick start安装并部署对应平台的prometheus,参见官方guide

配置prometheus.yml,添加canal的job,示例:

-job_name:'canal'

static_configs:

-targets:['localhost:11112']//端口配置即为canal.properties中的canal.metrics.pull.port

启动prometheus与canal server

安装与部署grafana,推荐使用新版本(5.2)。

启动grafana-server,使用用户admin与密码admin登录localhost:3000 (默认配置下)。

导入模板(canal/conf/metrics/Canal_instances_tmpl.json),参考这里。

进入dashboard 'Canal instances', 在'datasource'下拉框中选择刚才配置的prometheus datasource, 然后'destination'下拉框中就可以切换instance了(如果没出现instances列表就刷新下页面), just enjoy it.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值