Skip to content

告警与指标

SkyWalking 的 OAP 在聚合 Trace / Metric 的同时,也会按规则对指标做阈值判断并触发告警。理解告警规则、指标来源与扩展入口,是把它从"看板工具"升级为"主动预警系统"的关键。

指标来源

SkyWalking 里的指标(Metric)主要有两类来源:

来源说明
由 Trace 聚合生成基于 Trace 聚合出 Service / Instance / Endpoint 的 RT、QPS、错误率等
从外部拉取通过 Prometheus Fetcher 等接入 Prometheus 指标(如 JVM、K8s、中间件指标)

因此即使不额外埋点,接入 Agent 的服务也会自动产生 Service / Instance / Endpoint 三层的响应时间、吞吐、错误率等核心指标,用于健康度趋势与告警。

告警规则

SkyWalking 通过 oap-server 的告警规则文件(alarm-settings.yml)定义规则:每当指标满足条件时触发告警,并可通过 Webhook 通知外部系统。

yaml
rules:
  # 服务平均响应时间超阈值
  service_resp_time_rule:
    metrics-name: service_resp_time
    op: ">"
    threshold: 1000
    period: 10
    count: 3
    message: "服务响应时间超过 1000ms"
  # 服务成功率低于阈值
  service_sla_rule:
    metrics-name: service_sla
    op: "<"
    threshold: 8000        # 80.00%
    period: 10
    count: 2
    message: "服务成功率低于 80%"

webhooks:
  - http://alerts.example.com/skywalking

常用字段含义:

字段作用
metrics-name要监控的指标名,如 service_resp_timeservice_slaendpoint_sla
op / threshold比较运算符与阈值
period / count在多少个周期内满足多少次才触发(去抖动)
silence-period静默期,避免风暴
message告警描述
webhooks触发送往外部系统的回调

具体指标名与语法以你所用 OAP 版本的 alarm-settings.yml 为准,不同大版本略有差异。

告警抑制与风暴控制

生产环境同一故障会触发大量服务关联告警,需要控制:

  • 静默期(silence-period):同一规则触发后静默一段时间,避免刷屏。
  • 组合(Composite):多条件同时满足才告警,降低误报。
  • 分级:按严重程度把告警分级,路由到不同通知渠道。
  • 收敛:在 Webhook 端做聚合/去重,避免告警风暴。

与 Prometheus/Alertmanager 的关系

能力SkyWalkingPrometheus + Alertmanager
数据来源Trace 聚合 + 自有 Receiver/Fetcher主动抓取各类 Exporter
告警规则alarm-settings.ymlprometheus alert rules
通知Webhook 等Alertmanager 路由到钉钉/邮件/Webhook 等
场景链路/服务健康为主通用指标监控为主

两者可结合:SkyWalking 负责链路与业务指标告警,Prometheus 负责基础设施与通用指标;Webhook 或打通数据源实现协同。

二次开发与扩展入口

当原生能力不满足时,可在以下层面扩展:

  • 自定义指标:通过 Agent 手动埋点(Metric)或 OAP 自有的指标定义,产出业务自定义指标。
  • Receiver/Fetcher:接入新数据源(如自定义 Exporter、Kafka 数据源)。
  • GraphQL API:UI 通过 GraphQL 查询,二次开发可复用同一 API 做自定义仪表盘。
  • 存储插件:接入自定义存储或对已有存储做优化。
  • Webhook 集成:把告警接入公司的统一告警/工单平台。

排查思路

场景做法
想监控某服务的响应时间确认该服务已接入 Agent,用 service_resp_time 配置规则
看拓扑与链路图UI → 拓扑页 / Trace 页,先定位,再考虑是否落告警
指标总为 0检查 Agent 是否上报、指标名拼写、OAP Receiver 是否开启
告警风暴收紧 silence-period、用组合规则、Webhook 端做收敛

指标与 Trace 的关系(指标先发现异常、Trace 再钻取定位)参见 APM / 三大信号