一、背景
简略记录下,应用 Prometheus
对Canal
进行监控。
二、实现步骤
1、批改 prometheus.yml 配置文件
vim /Users/huan/soft/prometheus/prometheus-2.25.0/prometheus.yml
scrape_configs:
- job_name: 'canal'
scrape_interval: 30s
static_configs:
- targets: ['localhost:11112'] # 端口配置即为 canal.properties 中的 canal.metrics.pull.port
labels:
nodename: 'canal'
# 检测刚刚编写的 prometheus.yml 语法是否谬误
./promtool check config prometheus.yml
2、启动 prometheus
nohup /Users/huan/soft/prometheus/prometheus-2.25.0/prometheus \
--config.file="/Users/huan/soft/prometheus/prometheus-2.25.0/prometheus.yml" \
--web.listen-address="0.0.0.0:9080" \
--web.enable-lifecycle \
--storage.tsdb.retention.time="3d" \
--log.level=debug \
> logs/prometheus.out 2>&1 &
3、查看 prometheus 是否胜利接入 canal
4、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 |
5、导入 fana 图表
图表 json 数据
{
"__inputs": [
{
"name": "DS_PROMETHEUS",
"label": "prometheus",
"description": "","type":"datasource","pluginId":"prometheus","pluginName":"Prometheus"
}
],
"__requires": [
{
"type": "grafana",
"id": "grafana",
"name": "Grafana",
"version": "5.2.2"
},
{
"type": "panel",
"id": "graph",
"name": "Graph",
"version": "5.0.0"
},
{
"type": "datasource",
"id": "prometheus",
"name": "Prometheus",
"version": "5.0.0"
}
],
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": null,
"iteration": 1536989235272,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 30,
"panels": [],
"title": "Instance status",
"type": "row"
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance 根本信息。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 0,
"y": 1
},
"id": 24,
"legend": {
"alignAsTable": true,
"avg": false,
"current": false,
"hideEmpty": false,
"hideZero": false,
"max": false,
"min": false,
"rightSide": true,
"show": true,
"sideWidth": 500,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": null,
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "canal_instance{destination=~\"$destination\"}",
"format": "time_series",
"instant": true,
"intervalFactor": 1,
"legendFormat": "Destination: {{destination}}",
"refId": "A"
},
{"expr": "canal_instance_parser_mode{destination=~\"$destination\"}",
"format": "time_series",
"instant": true,
"intervalFactor": 1,
"legendFormat": "Parallel parser: {{parallel}}",
"refId": "B"
},
{"expr": "canal_instance_store{destination=~\"$destination\"}",
"format": "time_series",
"instant": true,
"intervalFactor": 1,
"legendFormat": "Batch mode: {{batchMode}}",
"refId": "C"
},
{"expr": "canal_instance_store{destination=~\"$destination\"}",
"format": "time_series",
"instant": true,
"intervalFactor": 1,
"legendFormat": "Buffer size: {{size}}",
"refId": "D"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Basic",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transparent": true,
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": false,
"values": []},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": false
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": false
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {"inbound": "#bf1b00"},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance 网络带宽占用。\ninbound: 读取 MySQL binlog.\noutbound: 对 Client 端传输格式化 binlog.",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 1
},
"id": 6,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_received_binlog_bytes{destination=~\"$destination\", parser=\"0\"}[2m]) / 1024",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "inbound",
"refId": "A"
},
{"expr": "rate(canal_instance_client_bytes{destination=~\"$destination\"}[2m]) / 1024",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "outbound",
"refId": "B"
},
{"expr": "rate(canal_instance_received_binlog_bytes{destination=~\"$destination\", parser=\"1\"}[2m]) / 1024",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "inbound-1",
"refId": "C"
},
{"expr": "rate(canal_instance_received_binlog_bytes{destination=~\"$destination\", parser=\"2\"}[2m]) / 1024",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "inbound-2",
"refId": "D"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Network bandwith",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "KBs",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {
"ack": "#f29191",
"get": "#cca300",
"put": "#1f78c1"
},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "master: Canal server 绝对于 MySQL master 的延时。通过 master heartbeat 机制能刷新 idle 状态下的延时。\nput: store put 操作的工夫点为基准。\nget: client get 操作的工夫点为基准。\nack: client ack 操作的工夫点为基准。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 12,
"y": 1
},
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "canal_instance_traffic_delay{destination=~\"$destination\"} / 1000",
"format": "time_series",
"hide": false,
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "master",
"refId": "D"
},
{"expr": "canal_instance_put_delay{destination=~\"$destination\"} / 1000",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "put",
"refId": "A"
},
{"expr": "canal_instance_get_delay{destination=~\"$destination\"} / 1000",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "get",
"refId": "B"
},
{"expr": "canal_instance_ack_delay{destination=~\"$destination\"} / 1000",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "ack",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Delay",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "s",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "sink 线程 blocking 占比;dump 线程 blocking 占比(仅 parallel mode)。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 18,
"y": 1
},
"hideTimeOverride": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "clamp_max(rate(canal_instance_publish_blocking_time{destination=~\"$destination\", parser=\"0\"}[2m]), 1000) / 10",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "dump",
"refId": "B"
},
{"expr": "clamp_max(rate(canal_instance_sink_blocking_time{destination=~\"$destination\"}[2m]), 1000) / 10",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "sink",
"refId": "A"
},
{"expr": "clamp_max(rate(canal_instance_publish_blocking_time{destination=~\"$destination\", parser=\"1\"}[2m]), 1000) / 10",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "dump-1",
"refId": "C"
},
{"expr": "clamp_max(rate(canal_instance_publish_blocking_time{destination=~\"$destination\", parser=\"2\"}[2m]), 1000) / 10",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "dump-2",
"refId": "D"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Blocking",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "percent",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 6
},
"id": 32,
"panels": [],
"title": "Throughput",
"type": "row"
},
{
"aliasColors": {
"rowDatas": "#7eb26d",
"tableRows": "#c15c17"
},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Instance 解决 binlog 的 TPS(以 master 变更行数 table rows 为基准计算)。\nput: put 操作 TPS。\nget: get 操作 TPS。\nack: ack 操作 TPS。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 0,
"y": 7
},
"id": 14,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_put_rows{destination=~\"$destination\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "put",
"refId": "A"
},
{"expr": "rate(canal_instance_get_rows{destination=~\"$destination\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "get",
"refId": "B"
},
{"expr": "rate(canal_instance_ack_rows{destination=~\"$destination\"}[2m])",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "ack",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "TPS(table rows)",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "iops",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {"transactions": "#f9ba8f"},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance 解决 binlog 的 TPS,以 MySQL transaction 为单位计算。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 7
},
"id": 12,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_transactions{destination=~\"$destination\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "transactions",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "TPS(MySQL transaction)",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "iops",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 12
},
"id": 34,
"panels": [],
"title": "Client",
"type": "row"
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance 接管到的申请统计,后果按 packet type 分类。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 0,
"y": 13
},
"id": 16,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "canal_instance_client_packets{destination=~\"$destination\"}",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "{{packetType}}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Client requests",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "client 申请的 GET 与 ACK 包的 QPS。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 13
},
"id": 38,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_client_packets{destination=~\"$destination\",packetType=\"GET\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "GET",
"refId": "A"
},
{"expr": "rate(canal_instance_client_packets{destination=~\"$destination\",packetType=\"CLIENTACK\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "ACK",
"refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Client QPS",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "server 响应 GET 申请,但返回空包的占比。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 12,
"y": 13
},
"id": 26,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_client_empty_batches{destination=~\"$destination\"}[2m])",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "empty",
"refId": "A"
},
{"expr": "rate(canal_instance_client_packets{destination=~\"$destination\", packetType=\"GET\"}[2m])",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "nonempty",
"refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Empty packets",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "wps",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal client 申请响应工夫的详情。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 18,
"y": 13
},
"id": 18,
"legend": {
"alignAsTable": false,
"avg": false,
"current": false,
"max": false,
"min": false,
"rightSide": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "25.0",
"yaxis": 1
},
{
"alias": "100.0",
"yaxis": 1
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "rate(canal_instance_client_request_latency_bucket{destination=~\"$destination\"}[2m])",
"format": "time_series",
"hide": false,
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "{{le}}ms",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Response time",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transparent": false,
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 18
},
"id": 36,
"panels": [],
"title": "Store",
"type": "row"
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance ringbuffer 内未开释的 events 数量。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 0,
"y": 19
},
"id": 20,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "canal_instance_store_produce_seq{destination=~\"$destination\"} - canal_instance_store_consume_seq{destination=~\"$destination\"}",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "events",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Store remain events",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"decimals": null,
"format": "none",
"label": "","logBase": 1,"max": null,"min": null,"show": true
},
{
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"description": "Canal instance ringbuffer 内未开释 events 占用内存。",
"fill": 1,
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 19
},
"id": 22,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{"expr": "(canal_instance_store_produce_mem{destination=~\"$destination\"} - canal_instance_store_consume_mem{destination=~\"$destination\"}) / 1024",
"format": "time_series",
"interval": "15s",
"intervalFactor": 2,
"legendFormat": "memsize",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Store remain mem",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []},
"yaxes": [
{
"format": "deckbytes",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": false,
"schemaVersion": 16,
"style": "dark",
"tags": ["canal"],
"templating": {
"list": [
{
"current": {
"text": "prometheus",
"value": "prometheus"
},
"hide": 0,
"label": "datasource",
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "","type":"datasource"
},
{
"allValue": null,
"current": {},
"datasource": "$datasource",
"hide": 0,
"includeAll": false,
"label": "destination",
"multi": false,
"name": "destination",
"options": [],
"query": "label_values(canal_instance, destination)",
"refresh": 1,
"regex": "","sort": 0,"tagValuesQuery":"",
"tags": [],
"tagsQuery": "","type":"query","useTags": false
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "","title":"Canal instances","uid":"8vh8NGpiz","version": 103
}
三、参考链接
1、https://github.com/alibaba/canal/wiki/Prometheus-QuickStart