• Русский
  • Отправка данных телеметрии в OpenTelemetry Collector с помощью внедрения sidecar

    Вы можете настроить Alauda build of OpenTelemetry v2 так, чтобы OpenTelemetry Collector внедрялся в ваши pod-ы приложений в виде sidecar-контейнера. Sidecar Collector запускается в том же pod-е, что и ваше приложение, что позволяет приложениям отправлять данные телеметрии в Collector через localhost без сложной сетевой настройки.

    Предварительные требования

    • Установлен Alauda build of OpenTelemetry v2 Operator.
    • Установлен и развернут Alauda Build of Jaeger v2.
    • Активная сессия ACP CLI (kubectl) у администратора кластера с ролью cluster-admin.

    Порядок действий

    1. Разверните OpenTelemetry Collector как sidecar, выполнив следующую команду:

      kubectl apply -f - <<EOF
      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel-sidecar
        namespace: observability
      spec:
        mode: sidecar
        image: "<image-registry>/asm/opentelemetry-collector:<image-tag>"
        config:
          receivers:
            otlp:
              protocols:
                grpc:
                  endpoint:
                http:
                  endpoint:
          processors:
            batch: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 80
              spike_limit_percentage: 20
          exporters:
            otlp:
              endpoint: "jaeger-<example>-collector:4317"
              tls:
                insecure: true
          service:
            pipelines:
              traces:
                receivers: [otlp]
                processors: [memory_limiter, batch]
                exporters: [otlp]
      EOF
      1. Замените <image-registry>/asm/opentelemetry-collector:<image-tag> на фактический image registry и tag для sidecar Collector.
      2. Замените jaeger-<example>-collector на фактическое имя Service вашего Alauda Build of Jaeger v2 collector. Обычно формат имеет вид <instance-name>-collector.
    2. Создайте Deployment, который использует внедрение sidecar, добавив аннотацию sidecar.opentelemetry.io/inject: "true" и используя созданный ServiceAccount:

      kubectl apply -f - <<EOF
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: my-app
        namespace: observability
      spec:
        selector:
          matchLabels:
            app: my-app
        replicas: 1
        template:
          metadata:
            labels:
              app: my-app
            annotations:
              sidecar.opentelemetry.io/inject: "true"
          spec:
            containers:
            - name: app
              image: myapp:latest
              ports:
              - containerPort: 8080
      EOF