-
安裝並部署對應平台的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分類統計 | 是 |