appdynamics/dotnet-core-agentDotNet Core Agent for Kubernetes 是一款专为 Kubernetes 环境设计的 .NET Core 应用代理程序,旨在增强容器化 .NET Core 应用的可观测性、可靠性与管理能力。该代理通过与 Kubernetes 生态工具集成,提供健康检查、指标收集、分布式追踪、日志转发等核心功能,帮助开发者和运维人员实现对 .NET Core 应用的全生命周期管理。
bash# 从默认仓库拉取最新版本(实际使用时需替换为具体镜像仓库地址) docker pull [镜像仓库地址]/dotnet-core-agent:latest
bashdocker run -d \ --name dotnet-agent \ -p 9090:9090 # 暴露指标端口 \ -e AGENT_LOG_LEVEL=info \ -e METRICS_ENABLED=true \ [镜像仓库地址]/dotnet-core-agent:latest
bashdocker run -d \ --name dotnet-agent \ -p 9090:9090 \ # 指标端口 -p 9411:9411 \ # Zipkin 追踪端口(若启用) -e AGENT_LOG_LEVEL=debug \ # 调试模式日志 -e METRICS_ENABLED=true \ # 启用指标收集 -e METRICS_PORT=9090 \ # 指标暴露端口 -e TRACING_ENABLED=true \ # 启用分布式追踪 -e TRACING_EXPORTER=zipkin \ # 追踪导出器(jaeger/zipkin) -e TRACING_ZIPKIN_ENDPOINT=[***] \ # Zipkin 服务地址 -e LOG_FORWARDING_ENABLED=true \ # 启用日志转发 -e LOG_FORWARDING_DESTINATION=loki \ # 日志目标(loki/elk/fluentd) -e LOG_FORWARDING_LOKI_ENDPOINT=[***] \ # Loki 服务地址 -v /path/to/agent-config:/etc/dotnet-agent/config.yaml \ # 挂载自定义配置文件 [镜像仓库地址]/dotnet-core-agent:latest
yamlapiVersion: apps/v1 kind: Deployment metadata: name: dotnet-agent namespace: default spec: replicas: 1 selector: matchLabels: app: dotnet-agent template: metadata: labels: app: dotnet-agent spec: containers: - name: dotnet-agent image: [镜像仓库地址]/dotnet-core-agent:latest ports: - containerPort: 9090 # 指标端口 - containerPort: 9411 # 追踪端口(若启用) env: - name: AGENT_LOG_LEVEL value: "info" - name: METRICS_ENABLED value: "true" - name: METRICS_PORT value: "9090" - name: TRACING_ENABLED value: "true" - name: TRACING_EXPORTER value: "jaeger" - name: TRACING_JAEGER_ENDPOINT value: "[***]" # Jaeger 收集器地址 - name: LOG_FORWARDING_ENABLED value: "true" - name: LOG_FORWARDING_DESTINATION value: "loki" - name: LOG_FORWARDING_LOKI_ENDPOINT value: "[***]" resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "200m" memory: "256Mi" volumeMounts: - name: agent-config mountPath: /etc/dotnet-agent/config.yaml subPath: config.yaml volumes: - name: agent-config configMap: name: dotnet-agent-config # 关联 ConfigMap(见下方)
yamlapiVersion: v1 kind: ConfigMap metadata: name: dotnet-agent-config namespace: default data: config.yaml: | metrics: scrape_interval: 10s # 指标采集间隔 include_process_metrics: true # 包含进程级指标 tracing: sampler_type: parentbased_always_on # 追踪采样策略 sampler_param: 1.0 # 采样率(0.0-1.0) logs: max_batch_size: 100 # 日志批处理大小 flush_interval: 5s # 日志刷新间隔
| 环境变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
AGENT_LOG_LEVEL | 代理日志级别 | info | debug/info/warn/error |
METRICS_ENABLED | 是否启用指标收集 | true | true/false |
METRICS_PORT | 指标暴露端口 | 9090 | 1-65535 |
METRICS_PATH | 指标暴露路径 | /metrics | 自定义 HTTP 路径 |
TRACING_ENABLED | 是否启用分布式追踪 | true | true/false |
TRACING_EXPORTER | 追踪数据导出器 | jaeger | jaeger/zipkin |
TRACING_JAEGER_ENDPOINT | Jaeger 收集器地址(当 TRACING_EXPORTER=jaeger 时生效) | [***] | Jaeger 服务 URL |
TRACING_ZIPKIN_ENDPOINT | Zipkin 服务地址(当 TRACING_EXPORTER=zipkin 时生效) | [***] | Zipkin 服务 URL |
LOG_FORWARDING_ENABLED | 是否启用日志转发 | false | true/false |
LOG_FORWARDING_DESTINATION | 日志转发目标 | - | loki/elk/fluentd |
LOG_FORWARDING_LOKI_ENDPOINT | Loki 服务地址(当 LOG_FORWARDING_DESTINATION=loki 时生效) | [***] | Loki 服务 URL |
支持通过挂载 config.yaml 自定义高级配置(优先级高于环境变量),配置项结构示例:
yaml# /etc/dotnet-agent/config.yaml metrics: scrape_interval: 10s # 指标采集间隔 include_process_metrics: true # 包含进程 CPU/内存指标 include_aspnetcore_metrics: true # 包含 ASP.NET Core 特有指标(如请求数、延迟) tracing: sampler_type: parentbased_always_on # 追踪采样策略 sampler_param: 1.0 # 采样率(0.0-1.0) baggage_propagation: true # 是否启用 Baggage 传播 logs: max_batch_size: 100 # 日志批处理最大条数 flush_interval: 5s # 日志刷新间隔 include_callstack: false # 是否包含错误调用栈(仅 error 级别日志)
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务