Docker/Kubernetes – 运行Otel Collector 服务Datadog
【Docker本机运行】
1. 准备otel collector的config.yaml
receivers:
otlp:
protocols:
http:
endpoint: "0.0.0.0:4318"
grpc:
endpoint: "0.0.0.0:4317"
processors:
probabilistic_sampler:
sampling_percentage: 100 # <--- 为了测试,设置为 100%
batch:
send_batch_max_size: 1000
send_batch_size: 100
timeout: 10s
connectors:
datadog/connector: null # 对于基本用法,这里不需要特定配置,它会使用 exporter 中的 API key
exporters:
debug:
verbosity: detailed
datadog:
api:
key: "1234" # <--- 请务必替换为您的真实 Datadog API 密钥
site: "datadoghq.com" # <--- 设置为您账户对应的 Datadog 站点!
# 可选:如果自动检测的主机名不理想,可以在 Datadog 中帮助识别主机
# hostname: "my-otel-collector-host"
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch] # 先批处理,再交给 connector
exporters: [datadog/connector, debug] # connector 会生成 APM 统计信息并转发追踪
traces/sampling: # 这个 pipeline 从 datadog/connector 接收追踪数据
receivers: [datadog/connector]
processors: [batch, probabilistic_sampler] # 在这里进行采样
exporters: [datadog] # 将采样后的追踪数据发送到 Datadog
metrics: # 这个 pipeline 从 datadog/connector 接收 APM 统计信息(指标)
receivers: [datadog/connector]
processors: [batch]
exporters: [datadog] # 将指标发送到 Datadog
2. 在docker本机运行
4318是服务http
4317是服务grpc
docker run --rm --name otelcol-custom \
-v "$(pwd)/config.yaml":/etc/otelcol/config.yaml \
-p 4317:4317 \
-p 4318:4318 \
otel/opentelemetry-collector-contrib:latest \
--config /etc/otelcol/config.yaml
【Kubernetes运行】
1. 需要创建namespace先
kubectl create namespace otel
2. 运行底下的yaml , apikey需要替换成你的datadog api key
以下的yaml有ConfigMap, Service 和Deployment
kubectl apply -f config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: otel-collector-config
namespace: otel
data:
otel-collector-config.yaml: |
receivers:
otlp:
protocols:
http:
endpoint: "0.0.0.0:4318"
grpc:
endpoint: "0.0.0.0:4317"
processors:
probabilistic_sampler:
sampling_percentage: 100 # <--- 为了测试,设置为 100%
batch:
send_batch_max_size: 1000
send_batch_size: 100
timeout: 10s
connectors:
datadog/connector: null # 对于基本用法,这里不需要特定配置,它会使用 exporter 中的 API key
exporters:
debug:
verbosity: detailed
datadog:
api:
key: "123456"
site: "datadoghq.com"
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch] # 先批处理,再交给 connector
exporters: [datadog/connector, debug] # connector 会生成 APM 统计信息并转发追踪
traces/sampling: # 这个 pipeline 从 datadog/connector 接收追踪数据
receivers: [datadog/connector]
processors: [batch, probabilistic_sampler] # 在这里进行采样
exporters: [datadog] # 将采样后的追踪数据发送到 Datadog
metrics: # 这个 pipeline 从 datadog/connector 接收 APM 统计信息(指标)
receivers: [datadog/connector]
processors: [batch]
exporters: [datadog] # 将指标发送到 Datadog
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: otel-collector
namespace: otel
spec:
replicas: 1
selector:
matchLabels:
app: otel-collector
template:
metadata:
labels:
app: otel-collector
spec:
containers:
- name: otel-collector
image: otel/opentelemetry-collector-contrib:latest
args: ["--config=/conf/otel-collector-config.yaml"]
volumeMounts:
- name: config
mountPath: /conf
volumes:
- name: config
configMap:
name: otel-collector-config
---
apiVersion: v1
kind: Service
metadata:
name: otel-collector
namespace: otel
spec:
ports:
- name: otlp-grpc
port: 4317
targetPort: 4317
- name: otlp-http
port: 4318
targetPort: 4318
selector:
app: otel-collector
Facebook评论