The background,

Briefly record that Canal was monitored using Prometheus.

Second, implementation steps

1. Modify the Prometheus. Yml configuration file

Vim/Users/huan/soft/Prometheus Prometheus – 2.25.0 / Prometheus. Yml

scrape_configs:
  - job_name: 'canal'
    scrape_interval: 30s
    static_configs:
    - targets: ['localhost:11112'] The port configuration is canal.metric.pull. port from canal.properties
      labels:
        nodename: 'canal'
Copy the code
#Check that the Prometheus. Yml syntax you just wrote is incorrect
./promtool check config prometheus.yml
Copy the code

2. Start 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 &
Copy the code

3. Check whether Prometheus is successfully connected to the Canal

4. Interpretation of Canal’s original indicators

indicators instructions unit precision
canal_instance_transactions Instance Indicates the number of received transactions
canal_instance Instance Basic information
canal_instance_subscriptions Number of Instance subscriptions
canal_instance_publish_blocking_time Block time when an instance dump thread commits to an asynchronous parsing queue (parallel parsing mode only) ms ns
canal_instance_received_binlog_bytes Instance Number of binlog bytes received byte
canal_instance_parser_mode Instance parsing mode (whether parallel parsing is enabled)
canal_instance_client_packets Number of requests made by the Instance client
canal_instance_client_bytes Bytes of packets sent to the Instance Client byte
canal_instance_client_empty_batches Send the null result count of the GET interface to the Instance Client
canal_instance_client_request_error Instance Number of failed client requests
canal_instance_client_request_latency Summary of the response time of instance Client requests
canal_instance_sink_blocking_time Block time of the Instance Sink thread putting data to store ms ns
canal_instance_store_produce_seq Event sequence number received by the Instance Store
canal_instance_store_consume_seq Instance Store Number of events sequence numbers that are successfully consumed
canal_instance_store Instance Store Basic information
canal_instance_store_produce_mem Instance Store The memory occupied by all events received by the instance Store byte
canal_instance_store_consume_mem Instance Store The memory occupied by all events that are successfully consumed byte
canal_instance_put_rows Store PUT operation completed table Rows
canal_instance_get_rows The table ROWS returned by the client GET request
canal_instance_ack_rows Table ROWS freed by the Client ACK operation
canal_instance_traffic_delay Delay between server and MySQL Master ms ms
canal_instance_put_delay Store PUT Indicates the delay of operation events ms ms
canal_instance_get_delay The client GET request returns the delay of events ms ms
canal_instance_ack_delay The Client ACK operation releases the delay of events ms ms

5. Import fANA chart

Chart JSON data

{
  "__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": "Basic information about 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 Network bandwidth usage. \ninbound: read MySQL binlog.\noutbound: Format binlog for Client transmission."."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: The delay between the Canal server and the MySQL master. The master heartbeat mechanism can refresh the delay in idle state. \nput: Store put operation time point as the baseline. \nget: The time point of the client GET operation is the benchmark. \nack: The time point of the client ACK operation is the baseline."."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 thread blocking ratio; Dump thread blocking percentage (parallel mode only).."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 handles the TPS of binlog (calculated based on the table rows changed by master). \nput: put operation TPS. \nget: GET operates TPS. \nack: ACK operation 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 handles TPS for binlog, in MySQL transaction units."."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": "Statistics of requests received by Canal Instance, results classified by 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": QPS of GET and ACK packets requested by the client.."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": "The server responds to a GET request but returns the percentage of empty packets."."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": "An overview of the Canal Client request response time."."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": "Number of unreleased events in the Canal Instance ringbuffer."."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": "The memory of the Canal instance ringbuffer is occupied by unreleased 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
}
Copy the code

Three, reference links

1, github.com/alibaba/can…