跳到主要内容
版本:Nightly

关键指标监控

监控的关键指标包括 CPU、内存、磁盘 I/O 和网络带宽的使用情况。

告警指标​

告警系统各公司一般都有自己使用的,配置方法可能各不相同,因此本文档不列举具体的告警配置方式,只列出部分需要关注的指标,可以基于这些指标配置一个是否长时间(超过数分钟)处于不正常数值的告警。你可以根据实际情况设置告警的水位。

以下参考告警规则并非内置于 GreptimeDB,需要你在自己的告警系统中配置(例如 Prometheus 告警规则)。

指标含义参考规则
sum(process_resident_memory_bytes{}) by (instance, pod)进程的内存占用占用率持续大于阈值
sum(rate(process_cpu_seconds_total{}[$__rate_interval]) * 1000) by (instance, pod)进程的 CPU 暂用,CPU 显示的是 millicore利用率持续大于阈值
sum by(instance, pod) (greptime_mito_write_stall_total{instance=~"$datanode"})datanode 积压的写入请求数量持续 n 分钟大于 0
sum(rate(greptime_table_operator_ingest_rows{instance=~"$frontend"}[$__rate_interval]))当前每秒写入的行数持续 n 分钟跌 0(或低于阈值)
greptime_mito_compaction_failure_totalcompaction 失败最近新增大于 0
greptime_mito_flush_failure_totalflush 失败最近新增大于 0
sum by (instance, pod, region_id) (rate(greptime_mito_region_query_cpu_time{instance=~"$frontend"}[$__rate_interval]))Region 维度查询 CPU 时间,单位为纳秒启用 logging.enable_per_region_metrics 后用于分析读负载热点;该指标基数较高,不建议直接作为大范围告警指标
sum by (instance, pod, region_id) (rate(greptime_mito_region_query_scanned_bytes{instance=~"$frontend"}[$__rate_interval]))Region 维度查询扫描字节数启用 logging.enable_per_region_metrics 后用于分析读负载热点;该指标基数较高,不建议直接作为大范围告警指标
sum by(instance, pod, path, method, code) (rate(greptime_servers_http_requests_elapsed_count{path!~"/health|/metrics"}[$__rate_interval]))HTTP 请求数和返回的响应码响应码 200 的请求数量持续 n 分钟低于阈值或者响应码非 200 的请求数量持续 n 分钟大于正常阈值
sum by (instance, pod) (rate(greptime_mito_write_rows_total{instance=~"$datanode"}[$__rate_interval]))存储引擎写入行数持续 n 分钟低于正常阈值
up{job="greptimedb-instance"}实例存活状态。将 greptimedb-instance 替换为抓取配置中的 job 名称。等于 0 超过 1 分钟
sum by (instance) (changes(process_start_time_seconds[5m]))实例重启最近 5 分钟内大于 0
sum by (instance) (rate(greptime_servers_http_requests_elapsed_count{path=~"/v1/.*", code!~"2.."}[5m]))HTTP 非 2xx 响应大于 0 超过 5 分钟
histogram_quantile(0.99, sum by (le, instance) (rate(greptime_servers_http_requests_elapsed_bucket{path=~"/v1/.*"}[5m])))HTTP 请求延迟p99 大于 5s 超过 5 分钟
histogram_quantile(0.99, sum by (le, instance) (rate(greptime_servers_grpc_requests_elapsed_bucket[5m])))gRPC 请求延迟p99 大于 5s 超过 5 分钟
sum by (instance) (greptime_mito_write_stalling_count)写入停滞大于 0 超过 5 分钟
sum by (instance) (increase(greptime_datanode_region_request_fail_count[5m]))datanode region 请求失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_datanode_region_failed_insert_count[5m]))datanode region 插入失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_meta_region_migration_fail[5m]))metasrv region 迁移失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_meta_reconciliation_procedure_error[5m]))metasrv 协调错误最近 5 分钟内大于 0
sum by (instance) (increase(greptime_flow_batching_error_count[5m]))Flow 引擎错误最近 5 分钟内大于 0
sum by (instance) (increase(greptime_trigger_evaluate_failure_count[5m]))Trigger 求值失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_trigger_send_alert_failure_count[5m]))Trigger 告警发送失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_trigger_save_alert_record_failure_count[5m]))Trigger 告警记录保存失败最近 5 分钟内大于 0
sum by (instance) (increase(greptime_pending_rows_flush_failures[5m]) + increase(greptime_pending_rows_flush_dropped_rows[5m]))缓冲数据丢失最近 5 分钟内大于 0
sum by (instance) (greptime_prom_store_pending_rows)写入批处理中待写入的行数(所有批次之和)在多个 flush 周期内持续增长,或持续高于按业务负载测得的基线

Pod 维度还建议配置磁盘告警,当磁盘水位超过某个阈值后进行告警。 此外,也可以根据运维关键日志中所列举的错误日志中的关键字监控以下事件:

  • Region 续租失败
  • Region failover