• Русский
  • Пересылка трасс в экземпляр Jaeger

    Чтобы отправлять трассы в экземпляр Jaeger, разверните OpenTelemetry Collector в режиме deployment и настройте конвейер трасс, который экспортирует данные в endpoint коллектор Jaeger.

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

    • Установлен Alauda build OpenTelemetry v2 Operator.
    • Установлен и развернут Alauda Build Jaeger v2.
    • Активный сеанс ACP CLI (kubectl) с кластерным администратором, имеющим роль cluster-admin.
    • Включите автоматическое создание RBAC, следуя инструкциям в Procedure.

    Процедура

    1. Создайте ресурс OpenTelemetryCollector:

      kubectl apply -f - <<EOF
      apiVersion: opentelemetry.io/v1beta1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: jaeger-system
      spec:
        mode: deployment
        replicas: 1
        config:
          receivers:
            jaeger:
              protocols:
                grpc: {}
                thrift_binary: {}
                thrift_compact: {}
                thrift_http: {}
            otlp:
              protocols:
                grpc:
                  endpoint: 0.0.0.0:4317
                http:
                  endpoint: 0.0.0.0:4318
            zipkin: {}
          processors:
            batch: {}
            k8sattributes: {}
            memory_limiter:
              check_interval: 1s
              limit_percentage: 80
              spike_limit_percentage: 20
          exporters:
            otlp/traces:
              endpoint: "jaeger-collector.jaeger-system.svc.cluster.local:4317"
              tls:
                insecure: true
          service:
            pipelines:
              traces:
                receivers: [jaeger, otlp, zipkin] 
                processors: [memory_limiter, k8sattributes, batch]
                exporters: [otlp/traces]
      EOF
      1. Пространство имен определяет, где создаются ресурсы Collector.
      2. Endpoint экспортера должен указывать на службу Jaeger collector. Замените jaeger-collector.jaeger-system.svc.cluster.local:4317 на фактическую службу вашего развертывания Jaeger.
      3. Этот конвейер трасс принимает трафик Jaeger, OTLP и Zipkin. Настройте инструменты ваших приложений так, чтобы они отправляли трассы, используя один из этих протоколов приемника.

    После запуска Collector instrumented-приложения могут отправлять данные трасс в endpoint службы Collector, а Collector пересылает трассы в Jaeger.

    TIP

    В качестве тестового клиента можно развернуть telemetrygen:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Pod
    metadata:
      name: telemetrygen
      namespace: jaeger-system
    spec:
      restartPolicy: Never
      containers:
        - name: telemetrygen
          image: ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:latest
          args:
            - traces
            - --otlp-endpoint=otel-collector.jaeger-system.svc.cluster.local:4317
            - --otlp-insecure
            - --duration=150s
            - --interval=5s
            - --child-spans=3
            - --rate=2
            - --service=telemetrygen
            - --workers=1
    EOF
    # Wait for telemetrygen to complete, then clean up the test Pod
    kubectl wait -n jaeger-system --for=jsonpath='{.status.phase}'=Succeeded pod/telemetrygen --timeout=10m
    kubectl delete pod -n jaeger-system telemetrygen