Files
han-app/VM2_services/codebase/services/observability/otel-collector.yaml
T

143 lines
3.9 KiB
YAML

extensions:
health_check:
endpoint: 0.0.0.0:13133
file_storage:
directory: /var/lib/otelcol/queue
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
prometheus:
config:
scrape_configs:
- job_name: otel-collector
scrape_interval: 30s
static_configs:
- targets: ["127.0.0.1:8888"]
labels:
service_name: otel-collector
- job_name: redis-safety
scrape_interval: 30s
static_configs:
- targets: ["redis-exporter:9121"]
labels:
service_name: redis
- job_name: nginx
scrape_interval: 30s
static_configs:
- targets: ["nginx-exporter:9113"]
labels:
service_name: nginx
hostmetrics:
root_path: /hostfs
collection_interval: 30s
scrapers:
cpu:
disk:
filesystem:
exclude_mount_points:
mount_points:
- /hostfs/(dev|proc|sys|run)($|/)
match_type: regexp
load:
memory:
network:
paging:
processes:
processors:
memory_limiter:
check_interval: 1s
limit_mib: 384
spike_limit_mib: 96
resource/vm2:
attributes:
- {key: service.namespace, value: han-chat, action: upsert}
- {key: deployment.environment, value: "${env:APP_ENV}", action: upsert}
- {key: service.version, value: "${env:RELEASE_VERSION}", action: upsert}
attributes/redact:
actions:
- {key: http.request.header.authorization, action: delete}
- {key: http.request.header.cookie, action: delete}
- {key: url.query, action: delete}
- {key: url.full, action: delete}
- {key: http.target, action: delete}
- {key: http.request.body, action: delete}
- {key: http.response.body, action: delete}
- {key: db.statement, action: delete}
- {key: db.query.text, action: delete}
- {key: enduser.id, action: delete}
- {key: user.phone, action: delete}
- {key: user.email, action: delete}
- {key: messaging.message.body, action: delete}
- {key: aws.s3.key, action: delete}
- {key: s3.object.key, action: delete}
filter/noise:
error_mode: ignore
traces:
span:
- 'attributes["http.route"] == "/health/live"'
- 'attributes["http.route"] == "/nginx-health/live"'
logs:
log_record:
- 'severity_number < SEVERITY_NUMBER_INFO'
tail_sampling:
decision_wait: 10s
num_traces: 10000
expected_new_traces_per_sec: 50
policies:
- name: errors
type: status_code
status_code:
status_codes: [ERROR]
- name: slow
type: latency
latency:
threshold_ms: 1000
- name: baseline
type: probabilistic
probabilistic:
sampling_percentage: 10
batch:
timeout: 5s
send_batch_size: 1024
send_batch_max_size: 2048
exporters:
otlp/remote:
endpoint: "${env:OTEL_REMOTE_ENDPOINT}"
tls:
insecure: "${env:OTEL_REMOTE_TLS_INSECURE}"
sending_queue:
enabled: true
storage: file_storage
queue_size: 10000
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 0s
service:
extensions: [health_check, file_storage]
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, resource/vm2, attributes/redact, filter/noise, tail_sampling, batch]
exporters: [otlp/remote]
metrics:
receivers: [otlp, prometheus, hostmetrics]
processors: [memory_limiter, resource/vm2, attributes/redact, batch]
exporters: [otlp/remote]
logs:
receivers: [otlp]
processors: [memory_limiter, resource/vm2, attributes/redact, filter/noise, batch]
exporters: [otlp/remote]
telemetry:
metrics:
address: 0.0.0.0:8888