SuperAPI AI 工具集

opentelemetry

部署与运维

查看项目

更新于 10-15 11:56

技能介绍

用途

OpenTelemetry 技能帮助在服务之间采用厂商中立的遥测方案,实现一致的埋点。典型使用场景包括:跨微服务排查延迟问题;标准化可观测性数据模型与命名;将遥测数据发送到 Prometheus、Grafana、Datadog 或 OTLP 后端;构建带 trace 与 log 关联的 SLO 仪表盘;为 Python 或 Node.js 应用添加追踪与指标;为现有服务设置无需改代码的自动埋点。

前置条件

  • 应用服务运行在容器或虚拟机上
  • 追踪后端(Jaeger、Tempo、Datadog 或任意 OTLP 接收端)
  • 指标后端(Prometheus、Mimir 或 OTLP 接收端)
  • Kubernetes 集群(用于部署 collector)或带 systemd 的虚拟机
  • 服务到 collector、collector 到后端之间的网络访问

核心工作流

  1. 为服务、环境与版本定义语义约定。
  2. 在每个服务中添加 SDK 或自动埋点。
  3. 运行 OpenTelemetry Collector 以接收、转换并导出遥测数据。
  4. 校验基数与采样,以控制成本。
  5. 基于采集数据创建黄金信号仪表盘与告警。

主要能力

Collector 生产配置

技能提供完整的 collector 配置示例,涵盖:

  • 接收器:OTLP(gRPC 4317 / HTTP 4318)、Prometheus 抓取、主机指标(CPU、内存、磁盘、网络、负载)
  • 处理器:batch、memory_limiter、attributes、filter(丢弃高基数属性)、transform(归一化 URL 路径)、resourcedetection(云环境资源检测)
  • 导出器:OTLP 追踪到 Tempo/Jaeger、Prometheus remote write 到 Mimir、OTLP 日志到 Loki、debug 导出器
  • 服务管道:分别定义 traces、metrics、logs 三条管道

Collector Kubernetes 部署

提供 Deployment 与 Service 的 YAML 示例,包括镜像 otel/opentelemetry-collector-contrib:0.98.0、端口 4317/4318/8888、资源请求与限制、存活与就绪探针、ConfigMap 挂载等。

Python SDK 埋点

提供 tracing_setup.py 示例,展示如何初始化 TracerProvider 与 MeterProvider、配置 OTLP 导出器、设置 Resource(service.name、service.version、deployment.environment)、自动埋点 requests、Flask、SQLAlchemy,以及创建自定义 span 与 counter 指标。

Node.js SDK 埋点

提供 tracing.js 示例,使用 NodeSDK、OTLP gRPC 导出器、PeriodicExportingMetricReader、getNodeAutoInstrumentations,并配置忽略健康检查路径、启用 express/pg/redis 埋点,以及 SIGTERM 时关闭 SDK。

Kubernetes Operator 自动埋点

提供 Instrumentation 自定义资源示例,分别针对 Python 与 Node.js,配置导出端点、传播器(tracecontext、baggage)、采样器(parentbased_traceidratio 0.25),并说明通过 Pod 注解 instrumentation.opentelemetry.io/inject-python 或 inject-nodejs 注入。

采样策略

提供 collector 中的 tail_sampling 配置示例,策略包括:始终保留错误追踪、始终保留慢追踪(>2s)、按概率采样 10% 成功追踪、始终保留特定属性(如企业/高级用户)的追踪、按服务限速(每秒 span 数)。

最佳实践

  • 高流量生产追踪使用基于尾部的采样
  • 为遥测数据打上 service.name、service.version、deployment.environment 标签
  • 在 collector 早期丢弃噪声属性
  • 保持指标标签基数较低,以获得稳定的查询性能
  • 使用资源检测器自动填充云元数据
  • 如流量需要,为追踪与指标分离 collector 池
  • 在每条 collector 管道上设置 memory_limiter 以防 OOM
  • 生产环境使用 contrib collector 镜像(包含更多接收器/导出器)

故障排查

技能提供症状、检查项与修复的对照表,覆盖:后端未收到追踪、追踪中缺少 span、collector 内存过高、指标基数爆炸、自动埋点不生效、指标重复等问题。

相关技能

prometheus-grafana(仪表盘与告警)、datadog(托管可观测性后端)、alerting-oncall(值班路由与升级)、rag-observability-evals(RAG 专用可观测性)、agent-observability(AI 智能体追踪)。

限制

资料未提供该技能的具体安装命令、收费方式、价格、平台支持范围或效果保证等信息。