- 欢迎使用 SkyWalking
- 观测分析语言 Observability Analysis Language, OAL
- 仪表系统
- 设计目标
- 为什么 SkyWalking 体系中没有使用 MQ?
- 探针简介
- 观测分析平台
- 可视化
- 选择接收器
- 服务自动打点代理
- 手动打点 SDK
- 服务网格探针
- SkyWalking Java 代理支持列表
- 设置
- 协议
- 作用域 Scopes 和字段 Fields
- 概念与设计
- Backend 启动
- Backend 存储
- 安装 Java agent
- Open Fetcher
- 概念与设计总览
- 设置开发环境
- 组件库设置
- 插件自动测试框架
- 使用命令行导出
- 操作名称分组规则
- Spring 注解插件
- Oracle 和 Resin 插件
- 支持忽略自定义的 trace
- 支持自定义增强
- 配置覆盖
- 支持传输层安全性协议(TLS)
- 命名空间
- 令牌认证
- 令牌认证
- 兼容 OpenTracing 的 Skywalking tracer
- 安装 log4j
- 安装 log4j2
- logback 插件
- 应用程序工具包跟踪
- 跨线程追踪
- 通过系统属性动态定义 agent 配置文件
- 插件开发指南
- 在 Kubernetes 中部署
- 通过 ALS 观测服务网格
- UI
- 与 Istio 协作
- 配置 Envoy 来向 SkyWalking 发送度量指标
- 快速入门
- V6 升级
- SkyWalking 跨进程传播的头部协议
- OAP server 支持 gPRC SSL 传输
- 贡献指南
- 数据存储扩展
- 启动模式
- 设置的覆盖
- IP 和端口设置
- 初始化模式
- 集群管理
- 服务器端的跟踪采样
- 慢 SQL 语句设置
- 官方 OAL 脚本
- 告警
- 高级部署
- Metrics Exporter
- TTL
- 动态配置
- 无法打点的网关/代理
- 应用性能指数
- 端点分组参数化
- 后台遥测数据
- Apache SkyWalking 代码提交者
- 如何构建项目
- 新度量指标的源和范围扩展
- 后端存储实体扩展
- 线程转储归并机制
告警
告警的核心由一组规则驱动,这些规则定义在 config/ Alarm -settings.yml
文件中。 告警规则的定义分为三部分。
- 告警规则。它们定义了应该如何触发度量警报,应该考虑什么条件。
- [网络钩子](#Webhook}。当警告触发时,哪些服务终端需要被告知。
- 实体名称
定义范围和实体名称之间的关系.
- 服务: 服务名称
- 实例: {服务名称} 的 {实例名称}
- 端点: {服务名称} 中的 {端点名称}
- 数据库: 数据库服务名
- 服务关系: {源服务名称} 到 {目标服务名称}
- 实例关系: {源服务名称} 的 {源实例名称} 到 {目标服务名称} 的 {目标实例名称}
- 端点关系: {源服务名称} 中的 {源端点名称} 到 {目标服务名称} 中的 {目标端点名称}
规则
报警规则主要有以下几点:
- 规则名称。在告警信息中显示的唯一名称。必须以
_rule
结尾。 - 度量名称。 也是 oal 脚本中的度量名。只支持 long,double 和 int 类型。详情见 默认告警规则
为了方便,我们在发行版中提供了默认的 alarm setting.yml
文件,包括以下规则 1.最近 3 分钟内服务平均响应时间超过 1 秒。 2.服务成功率在最近 2 分钟内低于 80%。 3.服务响应时间在最近 3 分钟内低于 1000 毫秒. 4.服务实例在最近 2 分钟内的平均响应时间超过 1 秒。 5.端点平均响应时间在最近 2 分钟内超过 1 秒。 6.数据库访问平均响应时间在过去 2 分钟内超过 1 秒。 7.端点之间平均响应时间在最近 2 分钟内超过 1 秒。
所有可能的度量名称列表
这些度量名称定义在 OAL 脚本 中, 现在,来自Service, Service Instance, Endpoint的度量可以用于告警,我们会在后期版本中进行扩展。
如果你希望有其它的告警场景,请提交 issue 或 pr。
Webhook
SkyWalking 的告警 Webhook 要求对等方是一个 Web 容器. 告警的消息会通过 HTTP 请求进行发送, 请求方法为 POST
, Content-Type
为 application/json
, JSON 格式基于 List<org.apache.skywalking.oap.server.core.alarm.AlarmMessage
, 包含以下信息.
- scopeId. 所有可用的 Scope 请查阅
org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
. - name. 目标 Scope 的实体名称.
- id0. Scope 实体的 ID.
- id1. 未使用.
- ruleName. 您在
alarm-settings.yml
中配置的规则名. - alarmMessage. 报警消息内容.
- startTime. 告警时间, 位于当前时间与 UTC 1970/1/1 之间.
以下是一个样例
[{
"scopeId": 1,
"name": "serviceA",
"id0": 12,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage xxxx",
"startTime": 1560524171000
}, {
"scopeId": 1,
"name": "serviceB",
"id0": 23,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage yyy",
"startTime": 1560524171000
}]
gRPCHook
告警消息将使用 Protobuf
类型通过 gRPC 远程方法发送. 消息格式,以下文件定义了关键信息 oap-server/server-alarm-plugin/src/main/proto/alarm-hook.proto
.
协议的部分内容如下:
message AlarmMessage {
int64 scopeId = 1;
string scope = 2;
string name = 3;
string id0 = 4;
string id1 = 5;
string ruleName = 6;
string alarmMessage = 7;
int64 startTime = 8;
}
动态更新配置
从 6.5.0 开始,可以通过 动态配置 在运行时动态更新报警设置 , 它将覆盖 alarm-settings.yml
中的设置.
为了确定是否触发告警规则, SkyWalking 需要为每个告警规则缓存时间窗的指标, 如果任何属性 ( metrics-name
, op
, threshold
, period
, count
, etc.) 的规则改变, 滑动窗口将会毁坏和重建, 导致此告警规则重新启动.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论