본문으로 건너뛰기

OpenTelemetry Operator

OpenTelemetry Operator는 Lumie의 수집기 DaemonSet이 사용하는 OpenTelemetryCollector API를 설치하고 조정합니다.

소스 경로

  • lumie-infra/observability/opentelemetry-operator/argocd.yaml
  • lumie-infra/observability/opentelemetry-operator/helm-values.yaml

런타임 역할

  • opentelemetry-operator에 operator deployment와 CRD 설치
  • webhook 지원 활성화
  • ServiceMonitor를 통해 operator 메트릭 노출
  • 기본 수집기 이미지와 Target Allocator 이미지 제공

중요한 동작

  • operator admission webhook에 대한 cert-manager 통합은 비활성화됩니다.
  • serving cert가 자체 관리되며 회전하기 때문에 ArgoCD는 CRD와 webhook의 caBundle 차이를 무시합니다.
  • auto-instrumentation은 다음 라벨이 있는 네임스페이스가 아니면 사실상 비활성화입니다.
    • opentelemetry-auto-instrumentation: "enabled"

Lumie는 현재 operator를 광범위한 auto-instrumentation rollout용이 아니라 수집기 수명주기과 Target Allocator 지원용으로 주로 사용합니다.

장애 지점

  • 기존 ignore 규칙 없이 webhook 인증서나 CRD conversion이 드리프트하면, ArgoCD가 회전 때마다 OutOfSync로 흔들릴 수 있습니다.
  • operator가 다운되면 현재 collector는 계속 실행되지만, CR 업데이트와 새 수집기 reconciliation은 실패합니다.
  • 팀이 auto-instrumentation이 전역 활성화됐다고 가정하면, 명시적 opt-in 전까지 네임스페이스 selector가 이를 막는다는 점을 놓치게 됩니다.

검증

kubectl get applications.argoproj.io -n argocd opentelemetry-operator
kubectl get pods -n opentelemetry-operator
kubectl get crd | rg 'opentelemetry.io'
kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations | rg otel

관련 페이지