关于 observability
面向软件服务运维与开发人员的可观测性参考技能,介绍日志、指标和链路追踪,并提供 OpenTelemetry、告警与仪表盘要点。
主要功能
- 01日志、指标与链路追踪
- 02OpenTelemetry 配置示例
- 03RED 与 USE 指标方法
- 04可执行告警设计要点
- 05仪表盘核心面板建议
适用场景
- 01规划服务的日志、指标和追踪采集
- 02使用 RED 或 USE 方法整理关键指标
- 03配置高错误率告警及服务仪表盘
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dralgorhythm/ claude-agentic-framework --skill observability安装后在 Claude Code 中输入/observability确认已加载。
详细介绍
可观测性
三大支柱
1. 日志
包含上下文的离散事件。
{
"timestamp": "2024-01-01T12:00:00Z",
"level": "error",
"message": "Failed to process order",
"orderId": "123",
"error": "Payment declined",
"traceId": "abc123"
}
2. 指标
随时间变化的数值测量结果。
http_requests_total{method="GET", status="200"} 1234
http_request_duration_seconds{quantile="0.95"} 0.23
3. 追踪
请求在各服务之间的流转情况。
Trace: abc123
├── API Gateway (50ms)
│ ├── Auth Service (10ms)
│ └── Order Service (35ms)
│ └── Database (20ms)
OpenTelemetry 设置
import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
const sdk = new NodeSDK({
traceExporter: new OTLPTraceExporter({
url: 'http://collector:4318/v1/traces',
}),
serviceName: 'my-service',
});
sdk.start();
关键指标
RED 方法(以请求为中心)
- Rate:每秒请求数
- Errors:每秒失败请求数
- Duration:请求延迟
USE 方法(以资源为中心)
- Utilization:繁忙时间占比
- Saturation:队列深度
- Errors:错误数
告警
优质告警
- 可操作:可以采取措施
- 紧急:需要立即处理
- 明确:清楚说明问题所在
告警模板
alert: HighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.01
for: 5m
labels:
severity: critical
annotations:
summary: "High error rate on {{ $labels.service }}"
description: "Error rate is {{ $value | humanizePercentage }}"
仪表板
必要面板:
- 请求速率
- 错误率
- 延迟(P50、P95、P99)
- 饱和度(CPU、内存)
- 活跃告警
评论
支持 Markdown