
keyval/odigos-instrumentorodigos Instrumentor服务镜像是odigos可观测性平台的核心组件,专为自动为应用程序注入监控和可观测性代码而设计。该服务通过动态代码注入技术,在不修改应用源码的前提下,为应用程序添加分布式追踪、性能指标和日志收集能力,大幅简化分布式系统的可观测性配置流程。
bashdocker run -d \ --name odigos-instrumentor \ -v /var/run/docker.sock:/var/run/docker.sock \ # 访问Docker守护进程以检测目标容器 -v /path/to/app/config:/config \ # 挂载配置文件目录 -e TARGET_APP_PATH=/app \ # 目标应用代码路径(容器内) -e INSTRUMENTATION_TYPE=full \ # 注入类型:full/tracing/metrics/logging -e OTEL_COLLECTOR_URL=[***] \ # OpenTelemetry Collector地址 odigos/instrumentor:latest
yamlversion: '3.8' services: odigos-instrumentor: image: odigos/instrumentor:latest container_name: odigos-instrumentor volumes: - /var/run/docker.sock:/var/run/docker.sock - ./instrumentor-config:/config environment: - TARGET_APP_CONTAINER_LABEL=app=my-service # 通过标签匹配目标容器 - LANGUAGES=java,python,go # 指定需要处理的编程语言 - METRICS_EXPORT_ENABLED=true # 启用指标导出 - TRACING_SAMPLER_RATE=1.0 # 追踪采样率(0.0-1.0) - LOG_LEVEL=info # 服务日志级别 restart: unless-stopped
| 环境变量 | 描述 | 可选值 | 默认值 |
|---|---|---|---|
TARGET_APP_PATH | 目标应用代码在容器内的路径 | 绝对路径 | /app |
TARGET_APP_CONTAINER_LABEL | 通过容器标签匹配目标应用 | 标签键值对(如app=service) | 无 |
INSTRUMENTATION_TYPE | 注入类型 | full/tracing/metrics/logging | full |
LANGUAGES | 要处理的编程语言,逗号分隔 | java,python,go,nodejs等 | 自动检测 |
OTEL_COLLECTOR_URL | OpenTelemetry Collector gRPC端点 | URL | http://localhost:4317 |
METRICS_EXPORT_ENABLED | 是否启用指标导出 | true/false | true |
TRACING_SAMPLER_RATE | 追踪采样率 | 0.0-1.0 | 0.5 |
LOG_LEVEL | 服务自身日志级别 | debug/info/warn/error | info |
可通过挂载配置文件目录(如/config)提供更详细的自定义配置,支持JSON/YAML格式,配置项覆盖环境变量设置。示例config.yaml:
yamlinstrumentation: tracing: enabled: true sampler: type: parentbased_always_on metrics: enabled: true export_interval: 15s logging: enabled: true level: info targets: containers: - label_selector: "app=payment-service" languages: ["java", "kotlin"] exporters: otel_collector: endpoint: "[***]" timeout: 5s
/var/run/docker.sock)或目标应用文件系统manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务