SuperAPI AI 工具集

observability-telemetry

部署与运维

查看项目

更新于 10-16 02:37

技能介绍

用途:为 SAP CAP 应用添加日志、追踪、指标与可观测性能力,参考 CAP 官方 telemetry 插件文档与 Cloud Foundry 部署指南。

主要能力:

  1. 结构化日志:使用 cds.log('orders') 创建带模块前缀的作用域日志器,级别为 error > warn > info > debug > trace;可在 cds.log.levels 中按模块配置级别(如 orders: debug、remote-services: warn、*: info)。避免在生产代码中使用 console.log。
  2. @cap-js/telemetry 插件:基于 OpenTelemetry,安装命令 npm install @cap-js/telemetry,自动激活并埋点 CAP 服务调用、数据库查询与 HTTP 请求。v2 支持 OpenTelemetry SDK 2.0,并新增 @opentelemetry/instrumentation-undici 以追踪原生 Fetch 的出站 HTTP 调用,可用 npm install @cap-js/telemetry@latest 升级。
  3. 导出目标:通过 cds.requires.telemetry.kind 配置 to-cloud-logging、to-dynatrace,开发环境用 to-console;Cloud Logging 需在 mta.yaml 中绑定 cloud-logging 服务(service-plan: standard)。
  4. 追踪上下文:CAP 自动传播 W3C traceparent/tracestate,覆盖入站 HTTP、出站远程服务调用与 Outbox 消息处理,无需手动实现。
  5. Outbox 指标:暴露 cds.outbox.messages.pending、cds.outbox.messages.failed、cds.outbox.processing.duration,可导入 cap-java-outbox-metrics.ndjson 仪表盘。
  6. 自定义 span:通过 @opentelemetry/api 的 trace.getTracer 与 startActiveSpan 为业务操作添加属性、状态与异常记录。
  7. 健康检查:CAP 内置 GET /health 返回 200 与 {"status":"UP"},可用于 K8s/Kyma 存活与就绪探针。
  8. 生产调试:可用 cf set-env 设置 CDS_LOG_LEVELS 后 cf restage,或本地以 CDS_LOG_LEVELS='{"orders":"debug"}' npm start 启动。

限制与注意:避免记录 PII 或凭据;日志器需带模块名;缺少 @cap-js/telemetry 会失去自动 DB 追踪;未传播 traceparent 会中断端到端链路;mta.yaml 缺少 cloud-logging 绑定会导致遥测静默丢失。具体版本与平台支持以官方文档为准。