Padrão de implantação de agente

Envie sinais para Collectors e, em seguida, exporte para backends

No padrão de implantação de agente, os sinais de telemetria podem vir de:

Os sinais são enviados para uma instância do Collector que executa ao lado da aplicação ou no mesmo host, como um sidecar ou DaemonSet.

Cada SDK do lado do cliente ou Collector downstream é configurado com o endereço de uma instância do Collector:

Conceito de implantação descentralizada do collector
  1. Na aplicação, o SDK é configurado para enviar dados OTLP para um Collector.
  2. O Collector é configurado para enviar dados de telemetria para um ou mais backends.

Exemplo

Neste exemplo do padrão de implantação de agente, comece instrumentando manualmente uma aplicação Java para exportar métricas usando o SDK Java do OpenTelemetry, incluindo o valor padrão de OTEL_METRICS_EXPORTER, otlp. Em seguida, configure o exportador OTLP com o endereço do seu Collector. Por exemplo:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://collector.example.com:4318

Em seguida, configure o Collector executando em collector.example.com:4318 da seguinte forma:

receivers:
  otlp: # o receptor OTLP para o qual a aplicação envia rastros
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlp/jaeger: # o Jaeger suporta OTLP diretamente
    endpoint: https://jaeger.example.com:4317
    sending_queue:
      batch:

service:
  pipelines:
    traces/dev:
      receivers: [otlp]
      exporters: [otlp/jaeger]
receivers:
  otlp: # o receptor OTLP para o qual a aplicação envia métricas
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  prometheusremotewrite: # o exportador PRW, para ingestão de métricas no backend
    endpoint: https://prw.example.com/v1/api/remote_write
    sending_queue:
      batch:

service:
  pipelines:
    metrics/prod:
      receivers: [otlp]
      exporters: [prometheusremotewrite]
receivers:
  otlp: # o receptor OTLP para o qual a aplicação envia logs
    protocols:
      http:
        endpoint: 0.0.0.0:4318

exporters:
  file: # o File Exporter, para gravar logs em um arquivo local
    path: ./app42_example.log
    rotation:

service:
  pipelines:
    logs/dev:
      receivers: [otlp]
      exporters: [file]

Para explorar esse padrão de ponta a ponta, veja os exemplos em Java ou Python.

Vantagens e desvantagens

A seguir estão os principais prós e contras de uso de um Collector em modo agente:

Prós:

  • Fácil de começar a usar
  • Mapeamento claro um-para-um entre aplicação e Collector

Contras:

  • Escalabilidade limitada para equipes e recursos de infraestrutura
  • Pouco flexível para implantações complexas ou em evolução