• Русский
  • Пересылка данных телеметрии в сторонние системы

    OpenTelemetry Collector экспортирует данные телеметрии с помощью OTLP exporter по OpenTelemetry Protocol (OTLP), который поддерживает транспорты gRPC и HTTP. Если вам нужно пересылать данные телеметрии в стороннюю систему, которая не поддерживает OTLP или другой протокол, поддерживаемый Alauda Build of OpenTelemetry v2, вы можете развернуть неподдерживаемый пользовательский OpenTelemetry Collector, который принимает данные телеметрии по OTLP и пересылает их в целевую систему с помощью пользовательского экспортёра.

    WARNING

    Alauda не поддерживает развертывания пользовательских Collector для сценариев пересылки в сторонние системы.

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

    • Вы разработали собственный неподдерживаемый пользовательский экспортёр, который может пересылать данные телеметрии в вашу стороннюю систему.
    • Активная сессия ACP CLI (kubectl) у администратора кластера с ролью cluster-admin.

    Порядок выполнения

    1. Создайте ConfigMap для конфигурации пользовательского Collector:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: custom-otel-collector-config
      data:
        otel-collector-config.yaml: |
          receivers:
            otlp:
              protocols:
                grpc:
          exporters:
            # Replace debug with the exporter required by your third-party system.
            debug: {}
          service:
            pipelines:
              traces:
                receivers: [otlp]
                exporters: [debug]
      1. Замените debug на экспортёр, требуемый вашей сторонней системой.
    2. Разверните пользовательский Collector и примонтируйте конфигурацию из ConfigMap:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: custom-otel-collector-deployment
      spec:
        replicas: 1
        selector:
          matchLabels:
            component: otel-collector
        template:
          metadata:
            labels:
              component: otel-collector
          spec:
            containers:
            - name: opentelemetry-collector
              image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:latest
              command:
              - "/otelcol-contrib"
              - "--config=/conf/otel-collector-config.yaml"
              ports:
              - name: otlp
                containerPort: 4317
                protocol: TCP
              volumeMounts:
              - name: otel-collector-config-vol
                mountPath: /conf
                readOnly: true
            volumes:
            - name: otel-collector-config-vol
              configMap:
                name: custom-otel-collector-config
      1. Замените image на требуемую версию OpenTelemetry Collector, которая включает экспортёр, необходимый вашей сторонней системе.
    3. Опубликуйте пользовательский Collector с помощью Service:

      apiVersion: v1
      kind: Service
      metadata:
        name: custom-otel-collector-service
        labels:
          component: otel-collector
      spec:
        type: ClusterIP
        ports:
        - name: otlp-grpc
          port: 4317
          targetPort: 4317
        selector:
          component: otel-collector
      1. Имя service используется при настройке OTLP exporter в пользовательском ресурсе Collector для Alauda Build of OpenTelemetry v2.
    4. Примените ресурсы:

      kubectl apply -f custom-collector-configmap.yaml
      kubectl apply -f custom-collector-deployment.yaml
      kubectl apply -f custom-collector-service.yaml