[搬运]Ali Canal Prometheus QuickStart

2023-05-16

Prometheus QuickStart

lcybo edited this page on 29 Aug 2018 · 3 revisions

 Pages 38

Contents 目录

  • Home
  • Introduction / 简介
  • Quick Start
    • QuickStart
    • Docker QuickStart
    • Canal Kafka/RocketMQ QuickStart
    • Aliyun RDS QuickStart
    • Prometheus QuickStart
  • Client Guide
    • ClientExample
    • ClientAPI
    • ClientAdapter
      • Sync HBase
      • Sync RDB
      • Sync ES
  • Canal Admin
    • Canal Admin QuickStart
    • Canal Admin Guide
    • Canal Admin ServerGuide
    • Canal Admin Docker
  • Canal Performance
    • Canal Performance
    • Canal MQ Performance
  • AdminGuide
  • DevGuide
  • BinlogChange(Mysql5.6)
  • BinlogChange(MariaDB)
  • BinlogChange(MySQL8)
  • TableMetaTSDB
  • ReleaseNotes
  • Download
  • FAQ / 常见问题解答

Clone this wiki locally

Prometheus监控

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

关于prometheus,参见官网

效果示意图

 

Quick start

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

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

  - job_name: 'canal'
    static_configs:
    - targets: ['localhost:11112'] //端口配置即为canal.properties中的canal.metrics.pull.port
  1. 启动prometheus与canal server

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

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

  4. 配置prometheus datasource.

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

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


canal监控相关原始指标列表:

指标说明单位精度
canal_instance_transactionsinstance接收transactions计数--
canal_instanceinstance基本信息--
canal_instance_subscriptionsinstance订阅数量--
canal_instance_publish_blocking_timeinstance dump线程提交到异步解析队列过程中的阻塞时间(仅parallel解析模式)msns
canal_instance_received_binlog_bytesinstance接收binlog字节数byte-
canal_instance_parser_modeinstance解析模式(是否开启parallel解析)--
canal_instance_client_packetsinstance client请求次数的计数--
canal_instance_client_bytes向instance client发送数据包字节计数byte-
canal_instance_client_empty_batches向instance client发送get接口的空结果计数--
canal_instance_client_request_errorinstance client请求失败计数--
canal_instance_client_request_latencyinstance client请求的响应时间概况--
canal_instance_sink_blocking_timeinstance sink线程put数据至store的阻塞时间msns
canal_instance_store_produce_seqinstance store接收到的events sequence number--
canal_instance_store_consume_seqinstance store成功消费的events sequence number--
canal_instance_storeinstance store基本信息--
canal_instance_store_produce_meminstance store接收到的所有events占用内存总量byte-
canal_instance_store_consume_meminstance store成功消费的所有events占用内存总量byte-
canal_instance_put_rowsstore put操作完成的table rows--
canal_instance_get_rowsclient get请求返回的table rows--
canal_instance_ack_rowsclient ack操作释放的table rows--
canal_instance_traffic_delayserver与MySQL master的延时msms
canal_instance_put_delaystore put操作events的延时msms
canal_instance_get_delayclient get请求返回events的延时msms
canal_instance_ack_delayclient ack操作释放events的延时msms

监控展示指标

指标简述多指标
BasicCanal instance 基本信息。
Network bandwith网络带宽。包含inbound(canal server读取binlog的网络带宽)和outbound(canal server返回给canal client的网络带宽)
DelayCanal server与master延时;store 的put, get, ack操作对应的延时。
Blockingsink线程blocking占比;dump线程blocking占比(仅parallel mode)。
TPS(transaction)Canal instance 处理binlog的TPS,以MySQL transaction为单位计算。
TPS(tableRows)分别对应store的put, get, ack操作针对数据表变更行的TPS
Client requestsCanal client请求server的请求数统计,结果按请求类型分类(比如get/ack/sub/rollback等)。
Response timeCanal client请求server的响应时间统计。
Empty packetsCanal client请求server返回空结果的统计。
Store remain eventsCanal instance ringbuffer中堆积的events数量。
Store remain memCanal instance ringbuffer中堆积的events内存使用量。
Client QPSclient发送请求的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();

详见:prometheus/client_java

监控指标详述与应用场景

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 blocking ratio也很高,则瓶颈是因为client的consume速度相对较慢。

2. Sinking blocking 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操作时间点的延时。

Note: delay的准确度依赖于master与canal server间的ntp同步。当binlog execTime超过canal server当前时间戳,则delay为0.


网络带宽(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(MySQL transaction)

 

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

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


TPS(Table row)

 

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

对应store put操作的tableRows TPS.

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

对应client get操作的tableRows TPS.

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

对应client ack操作的tableRows TPS.


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])

nonempty, 作为empty rate的参照。


Response time

 

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展示状态信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[搬运]Ali Canal Prometheus QuickStart 的相关文章

随机推荐

  • apt-get autoremove remove 新手收割者

    每一个接触linux系统的小坏蛋 xff0c 都会接触apt get 不出意外的话 xff0c 每一个小坏蛋都会尝试被sudo apt get remove 所摆布的命运 重申一遍 xff0c 重要的事情说三遍 文章目录 不要用sudo a
  • c++ stringstream ss()

    定义了三个类 xff1a istringstream ostringstream 和 stringstream xff0c 分别用来进行流的输入 输出和输入输出操作 本文以 stringstream 为主 xff0c 介绍流的输入和输出操作
  • C++ getline函数用法详解

    文章目录 前言一 getline 函数的定义二 getline 函数的使用1 可读取整行 xff0c 包括前导和嵌入的空格 xff0c 并将其存储在字符串对象中 2 char delim表示遇到这个字符停止读入 xff0c 在不设置的情况下
  • 【ROS-Navigation-costmap_2d】costmap_prohibition_layer障碍物插件

    系列文章目录 文章目录 系列文章目录前言一 costmap 2d是什么 xff1f 二 使用步骤1 下载源代码2 安装插件3 在costmap 2d中插入障碍物4 修改launch文件5 设置障碍物坐标参数6 主要事项 总结 前言 随着SL
  • 【C++】指向指针的引用

    系列文章目录 文章目录 系列文章目录前言一 指向指针的引用二 使用步骤1 代码2 TIPS 总结 前言 一 指向指针的引用 引用本身不是一个对象 xff0c 因此不能定义指向引用的指针 但指针是对象 xff0c 所以存在对指针的引用 二 使
  • 第三讲 【cartographer】 添加功能以从RVIZ为纯本地化模式设置初始姿势

    系列文章目录 第一讲 ROS SLAM 2D激光雷达 cartographer构建地图 第二讲 cartographer Ubuntu16 04 kinetic 最新版cartographer安装 xff08 2020 11 4更新 xff
  • 第四讲 【cartographer】纯定位 纯本地化 pure_localization

    系列文章目录 第一讲 ROS SLAM 2D激光雷达 cartographer构建地图 第二讲 cartographer Ubuntu16 04 kinetic 最新版cartographer安装 xff08 2020 11 4更新 xff
  • C++中compare函数

    compare函数用来进行字符串以及其子串的比较 xff0c 示例如下 span class token macro property span class token directive keyword include span span
  • C++ to_string()函数

    系列文章目录 文章目录 系列文章目录前言一 C 43 43 to string 函数详解二 example总结 前言 http www cplusplus com reference string to string 一 C 43 43 t
  • Ubuntu18.04 下VSCode配置Clang-format

    系列文章目录 文章目录 系列文章目录前言一 Clang format二 使用步骤1 Visual Studio Code安装Clang format2 在命令行中安装Clang format3 添加格式化同步保存功能 总结 前言 一 Cla
  • 在Ubuntu/Linux环境下使用MySQL:启动和关闭MySQL服务

    传送门 在Ubuntu下使用MySQL 安装MySQL 操作系统 Ubuntu 17 04 64位 MySQL版本 MySQL 5 7 一 启动MySQL服务 nbsp 使用以下命令来启动MySQL service mysql start
  • CDockablePane操作[转]

    去掉关闭按钮 xff1a 在继承CDockablePane的类中重写CanBeClosed 方法 xff1a virtual BOOL CanAutoHide const return FALSE 去掉自动隐藏风格 xff1a virtua
  • 【设计模式】中介者模式的解析与使用

    系列文章目录 文章目录 系列文章目录前言一 使用设计模式的目的二 实践是最好的老师2 1 中介者模式 xff08 飞机塔台 xff09 2 2 通信过程 总结 前言 设计模式在系统编程的重要性不言而喻 xff0c 如何一个程序没有使用设计模
  • 【C++】一文读懂多重条件判断、多条件判断

    系列文章目录 文章目录 系列文章目录前言一 if else1 1 优点 xff1a 1 2 缺点 xff1a 二 switch case2 1 优点 xff1a 2 2 缺点 xff1a 总结 前言 多重条件判断 多条件判断是每一个程序员都
  • 修身齐家治国平天下

    系列文章目录 文章目录 系列文章目录前言一 修身齐家治国平天下1 1 修身1 2 齐家1 3 治国1 4 平天下 二 了凡四训2 1 立命之学2 2 改过之法2 3 积善之方2 4 谦德之效 总结 前言 人的一生 xff0c 追求光明 xf
  • 如何使用IntelliJ IDEA 配置Maven

    IDEA 全称 IntelliJ IDEA xff0c 是java语言开发的集成环境 xff0c IntelliJ在业界被公认为最好的Java开发工具之一 IDEA是JetBrains公司的产品 现在有逐步取代老牌Java开发工具Eclip
  • Protobuf协议格式详解

    protobuf 是google开源的一个序列化框架 xff0c 类似xml xff0c json xff0c 最大的特点是基于二进制 xff0c 比传统的XML表示同样一段内容要短小得多 还可以定义一些可选字段 xff0c 用于服务端与客
  • 【Nacos源码调试】集群模式内置数据源单机多实例部署问题解决

    最近对Nacos源码比较感兴趣 xff0c 个人是个好奇宝宝 xff0c 特别想了解一下Nacos这个阿里开源的分布式服务注册与发现及配置管理中间件内部到底是个啥样子 xff0c 于是就想着自己源码编译 xff0c debug走一下试试 可
  • 浅谈网络安全态势感知

    一 基本概念 前美国空军首席科学家Endsley博士给出的动态环境中态势感知的通用定义是 态势感知是感知大量的时间和空间中的环境要素 xff0c 理解它们的意义 xff0c 并预测它们在不久将来的状态 在这个定义中 xff0c 我们可以提炼
  • [搬运]Ali Canal Prometheus QuickStart

    Prometheus QuickStart lcybo edited this page on 29 Aug 2018 3 revisions Pages 38 Contents 目录 HomeIntroduction 简介Quick St