监控指标

为什么需要监控指标?

监控指标是了解系统运行状态、性能表现和资源使用情况的重要工具。通过监控关键指标,运维人员可以及时发现系统异常、性能瓶颈和潜在问题,从而采取相应的措施进行优化和修复。监控指标还能为容量规划、性能调优和故障排查提供数据支持,帮助团队做出更明智的技术决策。了解各项监控指标的含义和正常范围,对于有效使用监控系统至关重要。

Warebase 指标

展示所选特定 Warebase 在指定时间段内的多种指标,包括:

  • 目标/当前 规格:显示 Warebase 的目标和当前规格。当前规格指 Warebase 处于正常服务状态的 Unit 数量。例如,在新建或扩容时,目标规格 > 当前规格 的情况会暂时出现,随后会调整为 目标规格 = 当前规格。如果持续出现 目标规格 != 当前规格 的情况,则可能指示系统处于非正常状态,此时应联系管理员。
  • 利用率:表示 Warebase 资源的使用率,综合考虑了 CPU 和内存的消耗。如果这一指标持续高于 80%,可能需要考虑扩容。
  • QPS:显示 Warebase 每秒处理的 SQL 语句数量,包括 Select、Update、Insert、Delete 和 Copy 等类型。
  • SQL 延迟:P99:统计 Warebase 上 99% 的 SQL 语句执行耗时; P90:统计 Warebase 上 90% 的 SQL 语句执行耗时。如果 P99 延迟或 P90 延迟指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。
  • 各类型 SQL 延迟:分别统计 Warebase 上各类型 SQL(select、insert、update、delete、copy)的P99 延迟和 P90 延迟。如果指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。
  • 网络吞吐:显示 Warebase 的网络吞吐量,包括接收和发送的字节数。
  • 连接数:显示 Warebase 上的 SQL 连接数,包括活跃和空闲连接。
  • 失败 Query 数:显示 Warebase 每秒执行失败的 SQL 语句数量。如数值突增,需结合业务和系统状况进行分析。
  • 影响行数:显示 Warebase 每秒执行插入(INSERT)、更新(UPDATE)或删除(DELETE)操作后受影响的行数。如出现异常或结果不符合预期,需结合业务和系统状况进行分析。

存储大小

展示 Warebase 和 Database 维度的存储大小:

  • 各 Warebase 绑定存储大小:显示每个 Warebase 下所有数据库的存储大小。
  • 各 Database 存储大小
    • 逻辑存储大小: 展示每个数据库按照逻辑大小(单副本)统计的存储资源消耗,目前根据类型具体细分为热存和日志2个类型。
    • 物理存储大小: 即将下线。展示每个数据库按照物理大小(多副本)统计的存储资源消耗。

数据库存储大小包括所有数据所占用的底层存储空间,涵盖表索引数据和事务日志。数据插入、修改、索引整理、事务执行、schema 变更、复制和快照等操作都会影响存储大小。

监控指标

当前 ProtonBase 支持以下实时监控指标到云监控

指标名指标名(中文)类型样例值label含义
Warebase 计算指标
warebase_expect_units目标规格gauge5
  • _cloudProvider
  • _region
  • _datacloudId
  • _id
  • _name

目标/当前 规格:显示 Warebase 的目标和当前规格。当前规格指 Warebase 处于正常服务状态的 Unit 数量。例如,在新建或扩容时, 目标规格 > 当前规格 的情况会暂时出现,随后会调整为 目标规格 = 当前规格 。如果持续出现目标规格 != 当前规格的情况,则可能指示系统处于非正常状态,此时应联系管理员。

warebase_running_units当前规格gauge5
warebase_resource_percent_normalized利用率gauge0.8

利用率:表示 Warebase 资源的使用率,综合考虑了 CPU 和内存的消耗。如果这一指标持续高于 80%,可能需要考虑扩容。

warebase_select_qpsSelect QPSgauge1000

QPS: 显示 Warebase 每秒处理的 SQL 语句数量,包括 Select、Update、Insert、Delete 和 Copy 等类型。

warebase_update_qpsUpdate QPSgauge1000
warebase_insert_qpsInsert QPSgauge1000
warebase_delete_qpsDelete QPSgauge1000
warebase_copy_qpsCopy QPSgauge1
warebase_failure_qps失败 Query QPSgauge1

失败 Query 数:显示 Warebase 每秒执行失败的 SQL 语句数量。如数值突增,需结合业务和系统状况进行分析。

warebase_insert_affected_rowsInsert 影响行数gauge10000

影响行数:显示 Warebase 每秒执行插入(INSERT)、更新(UPDATE)或删除(DELETE)操作后受影响的行数。如出现异常或结果不符合预期,需结合业务和系统状况进行分析。

warebase_update_affected_rowsUpdate 影响行数gauge10000
warebase_delete_affected_rowsDelete 影响行数gauge10000
warebase_copy_affected_rowsCopy 影响行数gauge10000
warebase_sql_select_p90_latencySelect 延迟(P90)gauge38818282.52(纳秒)

各类型 SQL 延迟:分别统计 Warebase 上各类型 SQL(select、insert、update、delete、copy)的 P99 延迟和 P90 延迟。如果指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。

warebase_sql_select_p99_latencySelect 延迟(P99)gauge38818282.52(纳秒)
warebase_sql_insert_p90_latencyInsert 延迟(P90)gauge38818282.52(纳秒)
warebase_sql_insert_p99_latencyInsert 延迟(P99)gauge38818282.52(纳秒)
warebase_sql_update_p90_latencyUpdate 延迟(P90)gauge38818282.52(纳秒)
warebase_sql_update_p99_latencyUpdate 延迟(P99)gauge38818282.52(纳秒)
warebase_sql_delete_p90_latencyDelete 延迟(P90)gauge38818282.52(纳秒)
warebase_sql_delete_p99_latencyDelete 延迟(P99)gauge38818282.52(纳秒)
warebase_sql_copy_p90_latencyCopy 延迟(P90)gauge38818282.52(纳秒)
warebase_sql_copy_p99_latencyCopy 延迟(P99)gauge38818282.52(纳秒)
warebase_sql_service_p90_latencySQL 延迟(P90)gauge38818282.52(纳秒)

SQL 延迟:P99:统计 Warebase 上 99% 的 SQL 语句执行耗时; P90:统计 Warebase 上 90% 的 SQL 语句执行耗时。如果 P99 延迟或 P90 延迟指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。

warebase_sql_service_p99_latencySQL 延迟(P99)gauge38818282.52(纳秒)
warebase_network_receive_bytes网络吞吐(接收)gauge92468.533333(字节)

网络吞吐:显示 Warebase 的网络吞吐量,包括接收和发送的字节数。

warebase_network_send_bytes网络吞吐(发送)gauge92468.533333(字节)
warebase_active_sql_connections活跃连接数gauge100

连接数:显示 Warebase 上的 SQL 连接数,包括活跃和空闲连接。

warebase_idle_sql_connections闲置连接数gauge20
Database 存储指标
database_size_bytesDatabase 存储大小gauge1073741824 (即 1TB)
  • _cloudProvider
  • _region
  • _datacloudId
  • _handle

各 Database 存储大小:显示每个数据库的存储大小。

数据库存储大小包括所有数据所占用的底层存储空间,涵盖表索引数据和事务日志。数据插入、修改、索引整理、事务执行、schema 变更、复制和快照等操作都会影响存储大小。按照物理大小(多副本)方式统计。

database_hot_size_bytesDatabase 热存存储大小gauge1073741824 (即 1TB)
  • _cloudProvider
  • _region
  • _datacloudId
  • _handle

各 Database 热存存储大小,按照逻辑大小(单副本)方式统计

database_wal_size_bytesDatabase 日志存储大小gauge1073741824 (即 1TB)
  • _cloudProvider
  • _region
  • _datacloudId
  • _handle

各 Database 日志存储大小,按照逻辑大小(单副本)方式统计

Backup 备份指标
backup_size_bytesBackup 存储大小gauge1073741824 (即 1TB)
  • _cloudProvider
  • _region
  • _datacloudId
  • _handle
各备份 Backup 存储大小
Teleport 数据同步指标
teleport_source_idle_timegaugetodo
  • _cloudProvider
  • _region
  • _datacloudId
  • _jobId
  • _jobName

Source 闲置时间,单位秒当前系统时间 - 上一条数据的 event time 在没有数据的情况下,该指标会增加。

teleport_emit_event_timegaugetodo

最近一次读取到的数据延时时间,单位秒最近一次读取到数据的系统时间 - 最近一次读取到数据的业务时间在源端没有数据的情况,该指标不会增加

teleport_source_heartbeat_timegaugetodo

源端心跳时间,单位秒指标产生的时间 - 最近一次尝试读取源端的系统时间如果该指标持续增大,说明被写入端反压了

teleport_rpsgaugetodo每秒记录数
teleport_bpsgaugetodo每秒字节数

实际操作指南:监控配置和告警策略

以下是一个完整的实际操作指南,展示如何配置监控和设置有效的告警策略。

1. 监控配置

阿里云云监控配置

{
  "version": "1",
  "statement": [
    {
      "effect": "Allow",
      "action": [
        "cms:DescribeCustomNamespace",
        "cms:PutHybridMonitorMetricData"
      ],
      "resource": "*"
    }
  ]
}

AWS CloudWatch 配置

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:PutMetricData",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:TagResource",
                "cloudwatch:UntagResource"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

2. 告警策略配置

核心指标告警配置

# CPU利用率告警
- name: "Warebase CPU Usage High"
  metric: "warebase_resource_percent_normalized"
  threshold: 80
  comparison: ">"
  duration: "5m"
  severity: "warning"
  description: "Warebase CPU使用率超过80%,建议检查负载情况"
 
# 内存利用率告警
- name: "Warebase Memory Usage High"
  metric: "warebase_resource_percent_normalized"
  threshold: 85
  comparison: ">"
  duration: "5m"
  severity: "warning"
  description: "Warebase内存使用率超过85%,建议检查内存使用情况"
 
# QPS异常告警
- name: "Warebase QPS Spike"
  metric: "warebase_select_qps"
  threshold: 10000
  comparison: ">"
  duration: "1m"
  severity: "critical"
  description: "Warebase查询QPS突增,可能存在异常查询"
 
# 延迟异常告警
- name: "SQL Latency High"
  metric: "warebase_sql_service_p99_latency"
  threshold: 5000000000  # 5秒
  comparison: ">"
  duration: "5m"
  severity: "critical"
  description: "SQL P99延迟超过5秒,可能影响用户体验"
 
# 连接数异常告警
- name: "Active Connections High"
  metric: "warebase_active_sql_connections"
  threshold: 1000
  comparison: ">"
  duration: "5m"
  severity: "warning"
  description: "活跃连接数过多,可能影响系统性能"

存储空间告警配置

# 存储空间使用率告警
- name: "Database Storage Usage High"
  metric: "database_size_bytes"
  threshold: 80  # 百分比
  comparison: ">"
  duration: "1h"
  severity: "warning"
  description: "数据库存储使用率超过80%,建议检查数据增长趋势"
 
# 存储空间增长异常告警
- name: "Database Storage Growth Anomaly"
  metric: "database_size_bytes"
  threshold: 50  # GB/天
  comparison: ">"
  duration: "1d"
  severity: "critical"
  description: "数据库存储日增长超过50GB,可能存在数据异常增长"

3. 告警通知配置

邮件通知配置

{
  "notification_channels": [
    {
      "type": "email",
      "recipients": [
        "admin@company.com",
        "dba@company.com"
      ],
      "subject_template": "[ProtonBase Alert] {{alert_name}} - {{severity}}",
      "body_template": "告警名称: {{alert_name}}\n告警级别: {{severity}}\n告警时间: {{timestamp}}\n告警详情: {{description}}\n当前值: {{current_value}}\n阈值: {{threshold}}"
    }
  ]
}

Webhook通知配置

{
  "notification_channels": [
    {
      "type": "webhook",
      "url": "https://your-monitoring-system.com/webhook",
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_WEBHOOK_TOKEN"
      },
      "payload_template": {
        "alert_name": "{{alert_name}}",
        "severity": "{{severity}}",
        "timestamp": "{{timestamp}}",
        "description": "{{description}}",
        "current_value": "{{current_value}}",
        "threshold": "{{threshold}}"
      }
    }
  ]
}

4. 监控最佳实践

  • 定期检查关键性能指标
  • 设置合理的告警阈值,避免误报
  • 建立基线性能数据,便于异常检测
  • 定期审查和优化告警策略

通过以上实际操作指南,您可以建立完善的监控体系,及时发现和处理系统问题,确保业务稳定运行。