FEAT(otel): add OTel Collector for logs and traces

- Add OpenTelemetry Operator for CR management
- Deploy OTel Collector as DaemonSet via CR
- Enable filelog receiver for container log collection
- Replace Promtail with OTel filelog receiver
- Keep Prometheus for ServiceMonitor-based metrics scraping
This commit is contained in:
2026-01-09 23:23:51 +09:00
parent ad9573e998
commit 02faf93555
10 changed files with 550 additions and 87 deletions

View File

@@ -0,0 +1,44 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: opentelemetry-operator
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: default
sources:
- repoURL: https://open-telemetry.github.io/opentelemetry-helm-charts
chart: opentelemetry-operator
targetRevision: 0.74.0
helm:
valueFiles:
- $values/opentelemetry-operator/helm-values.yaml
- repoURL: https://github.com/K3S-HOME/observability.git
targetRevision: main
ref: values
destination:
server: https://kubernetes.default.svc
namespace: opentelemetry-operator
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: false
syncOptions:
- CreateNamespace=true
- PrunePropagationPolicy=foreground
- PruneLast=true
- ServerSideApply=true
retry:
limit: 5
backoff:
duration: 5s
factor: 2
maxDuration: 3m
managedNamespaceMetadata:
labels:
goldilocks.fairwinds.com/enabled: 'true'
revisionHistoryLimit: 10

View File

@@ -0,0 +1,41 @@
# OpenTelemetry Operator Helm Values
# Chart: https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator
# Manager (Operator) configuration
manager:
collectorImage:
repository: otel/opentelemetry-collector-contrib
targetAllocatorImage:
repository: ghcr.io/open-telemetry/opentelemetry-operator/target-allocator
autoInstrumentationImage:
java:
repository: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java
nodejs:
repository: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-nodejs
python:
repository: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-python
dotnet:
repository: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-dotnet
go:
repository: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-go
resources:
limits:
memory: 256Mi
requests:
cpu: 10m
memory: 64Mi
# Admission webhooks (uses cert-manager self-signed CA)
admissionWebhooks:
certManager:
enabled: true
# Kube RBAC Proxy
kubeRBACProxy:
enabled: true
resources:
limits:
memory: 64Mi
requests:
cpu: 5m
memory: 32Mi

View File

@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- argocd.yaml