监控指标
为什么需要监控指标?
监控指标是了解系统运行状态、性能表现和资源使用情况的重要工具。通过监控关键指标,运维人员可以及时发现系统异常、性能瓶颈和潜在问题,从而采取相应的措施进行优化和修复。监控指标还能为容量规划、性能调优和故障排查提供数据支持,帮助团队做出更明智的技术决策。了解各项监控指标的含义和正常范围,对于有效使用监控系统至关重要。
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 | 目标规格 | gauge | 5 |
| 目标/当前 规格:显示 Warebase 的目标和当前规格。当前规格指 Warebase 处于正常服务状态的 Unit 数量。例如,在新建或扩容时, 目标规格 > 当前规格 的情况会暂时出现,随后会调整为 目标规格 = 当前规格 。如果持续出现目标规格 != 当前规格的情况,则可能指示系统处于非正常状态,此时应联系管理员。 |
warebase_running_units | 当前规格 | gauge | 5 | ||
warebase_resource_percent_normalized | 利用率 | gauge | 0.8 | 利用率:表示 Warebase 资源的使用率,综合考虑了 CPU 和内存的消耗。如果这一指标持续高于 80%,可能需要考虑扩容。 | |
warebase_select_qps | Select QPS | gauge | 1000 | QPS: 显示 Warebase 每秒处理的 SQL 语句数量,包括 Select、Update、Insert、Delete 和 Copy 等类型。 | |
warebase_update_qps | Update QPS | gauge | 1000 | ||
warebase_insert_qps | Insert QPS | gauge | 1000 | ||
warebase_delete_qps | Delete QPS | gauge | 1000 | ||
warebase_copy_qps | Copy QPS | gauge | 1 | ||
warebase_failure_qps | 失败 Query QPS | gauge | 1 | 失败 Query 数:显示 Warebase 每秒执行失败的 SQL 语句数量。如数值突增,需结合业务和系统状况进行分析。 | |
warebase_insert_affected_rows | Insert 影响行数 | gauge | 10000 | 影响行数:显示 Warebase 每秒执行插入(INSERT)、更新(UPDATE)或删除(DELETE)操作后受影响的行数。如出现异常或结果不符合预期,需结合业务和系统状况进行分析。 | |
warebase_update_affected_rows | Update 影响行数 | gauge | 10000 | ||
warebase_delete_affected_rows | Delete 影响行数 | gauge | 10000 | ||
warebase_copy_affected_rows | Copy 影响行数 | gauge | 10000 | ||
warebase_sql_select_p90_latency | Select 延迟(P90) | gauge | 38818282.52(纳秒) | 各类型 SQL 延迟:分别统计 Warebase 上各类型 SQL(select、insert、update、delete、copy)的 P99 延迟和 P90 延迟。如果指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。 | |
warebase_sql_select_p99_latency | Select 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_sql_insert_p90_latency | Insert 延迟(P90) | gauge | 38818282.52(纳秒) | ||
warebase_sql_insert_p99_latency | Insert 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_sql_update_p90_latency | Update 延迟(P90) | gauge | 38818282.52(纳秒) | ||
warebase_sql_update_p99_latency | Update 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_sql_delete_p90_latency | Delete 延迟(P90) | gauge | 38818282.52(纳秒) | ||
warebase_sql_delete_p99_latency | Delete 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_sql_copy_p90_latency | Copy 延迟(P90) | gauge | 38818282.52(纳秒) | ||
warebase_sql_copy_p99_latency | Copy 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_sql_service_p90_latency | SQL 延迟(P90) | gauge | 38818282.52(纳秒) | SQL 延迟:P99:统计 Warebase 上 99% 的 SQL 语句执行耗时; P90:统计 Warebase 上 90% 的 SQL 语句执行耗时。如果 P99 延迟或 P90 延迟指标长时间异常(如持续数分钟),需结合业务和系统状况进行分析。 | |
warebase_sql_service_p99_latency | SQL 延迟(P99) | gauge | 38818282.52(纳秒) | ||
warebase_network_receive_bytes | 网络吞吐(接收) | gauge | 92468.533333(字节) | 网络吞吐:显示 Warebase 的网络吞吐量,包括接收和发送的字节数。 | |
warebase_network_send_bytes | 网络吞吐(发送) | gauge | 92468.533333(字节) | ||
warebase_active_sql_connections | 活跃连接数 | gauge | 100 | 连接数:显示 Warebase 上的 SQL 连接数,包括活跃和空闲连接。 | |
warebase_idle_sql_connections | 闲置连接数 | gauge | 20 | ||
Database 存储指标 | |||||
database_size_bytes | Database 存储大小 | gauge | 1073741824 (即 1TB) |
| 各 Database 存储大小:显示每个数据库的存储大小。 数据库存储大小包括所有数据所占用的底层存储空间,涵盖表索引数据和事务日志。数据插入、修改、索引整理、事务执行、schema 变更、复制和快照等操作都会影响存储大小。按照物理大小(多副本)方式统计。 |
database_hot_size_bytes | Database 热存存储大小 | gauge | 1073741824 (即 1TB) |
| 各 Database 热存存储大小,按照逻辑大小(单副本)方式统计 |
database_wal_size_bytes | Database 日志存储大小 | gauge | 1073741824 (即 1TB) |
| 各 Database 日志存储大小,按照逻辑大小(单副本)方式统计 |
Backup 备份指标 | |||||
backup_size_bytes | Backup 存储大小 | gauge | 1073741824 (即 1TB) |
| 各备份 Backup 存储大小 |
Teleport 数据同步指标 | |||||
teleport_source_idle_time | gauge | todo |
| Source 闲置时间,单位秒当前系统时间 - 上一条数据的 event time 在没有数据的情况下,该指标会增加。 | |
teleport_emit_event_time | gauge | todo | 最近一次读取到的数据延时时间,单位秒最近一次读取到数据的系统时间 - 最近一次读取到数据的业务时间在源端没有数据的情况,该指标不会增加 | ||
teleport_source_heartbeat_time | gauge | todo | 源端心跳时间,单位秒指标产生的时间 - 最近一次尝试读取源端的系统时间如果该指标持续增大,说明被写入端反压了 | ||
teleport_rps | gauge | todo | 每秒记录数 | ||
teleport_bps | gauge | todo | 每秒字节数 |
实际操作指南:监控配置和告警策略
以下是一个完整的实际操作指南,展示如何配置监控和设置有效的告警策略。
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. 监控最佳实践
- 定期检查关键性能指标
- 设置合理的告警阈值,避免误报
- 建立基线性能数据,便于异常检测
- 定期审查和优化告警策略
通过以上实际操作指南,您可以建立完善的监控体系,及时发现和处理系统问题,确保业务稳定运行。