关于 cx-alerts
cx-alerts 是通过 `cx alerts` 命令管理 Coralogix 告警定义和抑制规则的技能,涵盖告警创建、排查与维护,并强调优先级选择和创建后验证。
主要功能
- 01列出、查看、创建和删除告警
- 02启用或停用告警定义
- 03查询告警事件和统计数据
- 04管理告警抑制规则
- 05使用 JSON 或 TOON 输出
- 06同时面向多个配置文件
适用场景
- 01创建日志、指标或链路追踪告警
- 02查找并检查触发中的告警
- 03在维护期间静默告警
- 04查看告警事件统计
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ coralogix/ cx-cli --skill cx-alerts安装后在 Claude Code 中输入/cx-alerts确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/alert-schemas.mddataprime-reference.mdlogs-querying.mdpromql-guidelines.mdspans-querying.md详细介绍
告警管理技能
使用此技能通过 cx alerts CLI 命令列出、检查、创建、删除、启用和停用 Coralogix 告警定义。
CLI 命令
| 命令 | 用途 | 关键标志 |
|---|---|---|
cx alerts list | 列出所有告警定义 | --name <filter> |
cx alerts get <id> | 按 ID 获取单个告警定义 | - |
cx alerts create | 根据 JSON 定义创建告警 | --from-file <path>(默认:标准输入) |
cx alerts delete <id> | 删除告警 | - |
cx alerts enable <id> | 启用告警 | - |
cx alerts disable <id> | 停用告警 | - |
cx alerts events | 列出事件;筛选时使用限定告警版本的端点 | --alert-version-id、--start、--end |
cx alerts event-stats | 获取告警事件统计信息 | - |
cx alerts suppression-rules list | 列出抑制规则 | - |
cx alerts suppression-rules get <id> | 获取抑制规则 | - |
cx alerts suppression-rules create | 创建抑制规则 | --from-file <path> |
cx alerts suppression-rules update | 更新抑制规则 | --from-file <path> |
cx alerts suppression-rules delete <id> | 删除抑制规则 | - |
**输出格式:**在 list、get 和 create 命令后附加 -o json 或 -o toon,以输出机器可读格式。
**多配置文件:**使用 -p <profile>(可重复指定)同时针对多个配置文件执行操作。
告警类型参考
Coralogix 支持 12 种告警类型:
| 类型枚举 | 名称 | 描述 |
|---|---|---|
ALERT_DEF_TYPE_LOGS_IMMEDIATE | 日志即时告警 | 每当日志条目匹配时触发 |
ALERT_DEF_TYPE_LOGS_THRESHOLD | 日志阈值告警 | 在某个时间窗口内日志数量超过阈值时触发 |
ALERT_DEF_TYPE_LOGS_ANOMALY | 日志异常告警 | 基于 ML 的日志量异常检测 |
ALERT_DEF_TYPE_LOGS_RATIO_THRESHOLD | 日志比率阈值告警 | 根据两个日志查询之间的比率触发 |
ALERT_DEF_TYPE_LOGS_NEW_VALUE | 日志新值告警 | 字段中出现新值时触发 |
ALERT_DEF_TYPE_LOGS_UNIQUE_COUNT | 日志唯一值计数告警 | 达到唯一值计数阈值时触发 |
ALERT_DEF_TYPE_LOGS_TIME_RELATIVE_THRESHOLD | 日志时间相对阈值告警 | 比较当前时间窗口与过去的时间窗口 |
ALERT_DEF_TYPE_METRIC_THRESHOLD | 指标阈值告警 | PromQL 表达式越过阈值时触发 |
ALERT_DEF_TYPE_METRIC_ANOMALY | 指标异常告警 | 基于 ML 的指标异常检测 |
ALERT_DEF_TYPE_TRACING_IMMEDIATE | 追踪即时告警 | 每当 Span 匹配时触发 |
ALERT_DEF_TYPE_TRACING_THRESHOLD | 追踪阈值告警 | Span 数量超过阈值时触发 |
ALERT_DEF_TYPE_FLOW | 流程告警 | 基于序列的告警,可组合多个条件 |
优先级
创建告警时,务必询问用户要使用何种优先级:
| 优先级 | 使用场景 |
|---|---|
| P1 | 严重——立即通知值班人员 |
| P2 | 高——需要在一小时内处理 |
| P3 | 中——在工作时间内调查 |
| P4 | 低——信息提示,方便时查看 |
| P5 | 信息——仅用于日志记录或跟踪 |
创建工作流
- 询问用户要针对什么内容设置告警(日志、指标或追踪)
- 询问优先级(P1–P5)
- 使用
alertDefProperties构建 JSON 负载——采用 API 线格式(所有枚举值请参见references/alert-schemas.md) - **提示:**使用
cx alerts get <existing-id> -o json获取可用模板,修改后通过管道传入 create 命令 - 使用以下命令创建:
echo '<json>' | cx alerts create或cx alerts create --from-file alert.json - 使用
cx alerts list --name "<alert name>"验证
重要结构说明:type 字段是一个字符串枚举(例如 "ALERT_DEF_TYPE_LOGS_THRESHOLD"),告警类型配置(例如 "logsThreshold": {...})是同级字段,而不是嵌套在 type 内。
示例:日志阈值告警
{
"alertDefProperties": {
"name": "High Error Rate",
"description": "Alert when error logs exceed threshold",
"priority": "ALERT_DEF_PRIORITY_P2",
"type": "ALERT_DEF_TYPE_LOGS_THRESHOLD",
"enabled": true,
"logsThreshold": {
"logsFilter": {
"simpleFilter": {
"luceneQuery": "severity:ERROR",
"labelFilters": {
"applicationName": [
{ "operation": "LOG_FILTER_OPERATION_TYPE_IS_OR_UNSPECIFIED", "value": "my-app" }
]
}
}
},
"rules": [{
"condition": {
"conditionType": "LOGS_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_UNSPECIFIED",
"threshold": 100,
"timeWindow": {
"logsTimeWindowSpecificValue": "LOGS_TIME_WINDOW_VALUE_MINUTES_5_OR_UNSPECIFIED"
}
}
}]
}
}
}
示例:指标阈值告警
{
"alertDefProperties": {
"name": "CPU Usage Critical",
"priority": "ALERT_DEF_PRIORITY_P1",
"type": "ALERT_DEF_TYPE_METRIC_THRESHOLD",
"enabled": true,
"metricThreshold": {
"metricFilter": { "promql": "avg(cpu_usage_percent)" },
"rules": [{
"condition": {
"conditionType": "METRIC_THRESHOLD_CONDITION_TYPE_MORE_THAN_OR_UNSPECIFIED",
"threshold": 90,
"ofTheLast": { "dynamicDuration": "5m" },
"forOverPct": 100
}
}]
}
}
}
示例:日志即时告警
{
"alertDefProperties": {
"name": "OOM Killer Detected",
"description": "Alert immediately when OOM killer runs",
"priority": "ALERT_DEF_PRIORITY_P1",
"type": "ALERT_DEF_TYPE_LOGS_IMMEDIATE_OR_UNSPECIFIED",
"enabled": true,
"logsImmediate": {
"logsFilter": {
"simpleFilter": {
"luceneQuery": "\"Out of memory\" OR \"OOM\"",
"labelFilters": {}
}
}
}
}
}
调查工作流
查找触发中的告警
# List all alerts and look for ALERTING status
cx alerts list -o json | jq '.[] | select(.status == "ALERTING")'
# Filter by name
cx alerts list --name "error"
检查特定告警
cx alerts get <alert-id>
cx alerts get <alert-id> -o json
禁用嘈杂的告警(临时静音)
cx alerts disable <alert-id>
# Later, re-enable:
cx alerts enable <alert-id>
抑制规则
管理告警抑制规则,在维护时段或已知的嘈杂时段静音告警。
| 命令 | 用途 |
|---|---|
cx alerts suppression-rules list | 列出所有抑制规则 |
cx alerts suppression-rules get <id> | 按 ID 获取抑制规则 |
cx alerts suppression-rules create --from-file | 创建抑制规则 |
cx alerts suppression-rules update --from-file | 更新抑制规则 |
cx alerts suppression-rules delete <id> | 删除抑制规则 |
一条规则有两个 ID:unique_identifier 是稳定且可寻址的 ID(用于 get/update/delete),而 id 是规则版本 ID,每次更新都会变化。
请求正文结构
create 和 update 接收封装在 alertSchedulerRule 对象中的规则。
{
"alertSchedulerRule": {
"uniqueIdentifier": "<rule-id>",
"name": "maintenance-window",
"filter": { "whatExpression": "source logs | filter true", "alertUniqueIds": { "value": [] } },
"schedule": {
"scheduleOperation": "SCHEDULE_OPERATION_MUTE",
"oneTime": { "timeframe": { "startTime": "2026-08-10T19:30:00", "endTime": "2026-08-10T20:30:00", "timezone": "UTC" } }
}
}
}
# List suppression rules - the ID column is the unique_identifier
cx alerts suppression-rules list -o json
# Inspect one rule
cx alerts suppression-rules get <unique-identifier> -o json
# Create from a definition file (must use the alertSchedulerRule wrapper)
cx alerts suppression-rules create --from-file suppression-rule.json
# Delete
cx alerts suppression-rules delete <unique-identifier> --yes
关键原则
- 始终询问优先级(P1–P5)再创建告警——绝不要自行假设
- 对告警数量较多的大型账户使用
--name筛选条件 - 使用
-o json和jq进行筛选和转换 - 以编程方式构造告警时,使用
--from-file -从标准输入传入 JSON - 创建后进行验证——创建后始终列出或获取告警以确认
- 禁用而非删除——为便于审计,应优先禁用告警,而不是删除
- 链接到特定告警——
cx alerts list只会打印一个“View in Coralogix”链接,指向告警概览页面,而非单个告警的链接。若要将用户链接到某一条特定告警,请构造<base>/alerts/<alert_id>;其中<base>是本次会话中任意cx alerts命令打印的View in Coralogix: <base>/...行里出现的控制台 URL——切勿自行编造<base>。
更多资源
参考文件
references/alert-schemas.md- 全部 12 种告警类型的完整 JSON schema 参考:字段名称、枚举值(条件类型、时间窗口、筛选操作)、常见子对象(日志筛选器、追踪筛选器、通知组、活动计划)以及重要注意事项references/dataprime-reference.md- 基于日志和基于跨度的告警条件所用 DataPrime 查询语言参考(筛选语法、运算符、严重性值)references/logs-querying.md- 日志数据模型、字段发现以及用于构建日志告警条件的查询模式references/promql-guidelines.md- 基于指标的告警条件所用 PromQL 参考(计数器、仪表、直方图、阈值模式)references/spans-querying.md- 跨度数据模型、持续时间单位以及用于构建追踪告警条件的查询模式
相关技能
cx-cases- 对将告警事件归类为调查的案例进行分流cx-slos- 错误预算消耗会触发告警的 SLO 定义cx-observability-setup- 设置告警的通知路由和 webhook 集成cx-telemetry-querying- 调查触发中告警背后的遥测数据
评论
支持 Markdown