As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Ingestão de telemetria de aplicativos
Para usar os recursos de observabilidade no Amazon OpenSearch Service, você precisa ingerir rastreamentos, registros e métricas do aplicativo. Esta página aborda a configuração dos pipelines de OpenTelemetry coleta e OpenSearch ingestão para processar e rotear dados de telemetria para o Amazon Managed Service for OpenSearch Prometheus.
Configurando o coletor OpenTelemetry
O coletor OpenTelemetry (OTel) é o ponto de entrada para toda a telemetria de aplicativos. Ele recebe dados por meio do OTLP e encaminha rastreamentos e registros para o OpenSearch Ingestion enquanto envia métricas para o Prometheus.
Você pode configurar o OTel Collector usando uma das seguintes abordagens:
O OTel Collector exporta rastreamentos e registros para um endpoint de OpenSearch ingestão usando a autenticação SigV4 e métricas para o Amazon Managed Service for Prometheus usando o exportador de gravação remota Prometheus. OpenSearch A ingestão lida com processamento, enriquecimento e roteamento para. OpenSearch
OTel Configuração do coletor com ingestão OpenSearch
O exemplo de configuração a seguir usa a autenticação SigV4 para exportar rastreamentos e registros para um endpoint de OpenSearch ingestão e métricas para o Prometheus:
extensions: sigv4auth: region:us-west-2service: osis exporters: otlphttp/osis-traces: traces_endpoint: ${OSIS_ENDPOINT}/v1/traces auth: { authenticator: sigv4auth } compression: none otlphttp/osis-logs: logs_endpoint: ${OSIS_ENDPOINT}/v1/logs auth: { authenticator: sigv4auth } compression: none # Amazon Managed Service for Prometheus via Prometheus Remote Write with SigV4 auth prometheusremotewrite/amp: endpoint: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write" auth: authenticator: sigv4auth service: extensions: [sigv4auth] pipelines: traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-traces] logs: receivers: [otlp] processors: [batch] exporters: [otlphttp/osis-logs] metrics: receivers: [otlp] processors: [batch] exporters: [prometheusremotewrite/amp]
nota
O principal do IAM está enviando dados, necessidades osis:Ingest e aps:RemoteWrite permissões no ARN do pipeline.
Configurando pipelines de OpenSearch ingestão
OpenSearch A ingestão (ou preparador de dados autogerenciado) recebe telemetria do OTel Collector e a processa para monitoramento de desempenho de aplicativos (APM).
Arquitetura de pipeline
O pipeline processa dados de telemetria nos seguintes estágios:
-
O pipeline de entrada recebe toda a telemetria e encaminha os registros e rastreamentos para subpipelines separados.
-
O pipeline de registros grava dados de registro OpenSearch usando o tipo de
log-analytics-plainíndice. -
O pipeline de rastreamento distribui extensões para o pipeline de armazenamento bruto e o pipeline do mapa de serviços.
-
O pipeline de rastreamento bruto processa extensões com o
otel_tracesprocessador e as armazena no tipo detrace-analytics-plain-rawíndice. -
O pipeline do mapa de serviços usa o
otel_apm_service_mapprocessador para gerar topologia e métricas RED (Taxa, Erros, Duração). Ele grava para OpenSearch e para Prometheus por meio de gravação remota.
Configuração do pipeline
O exemplo a seguir mostra uma configuração completa do pipeline para OpenSearch ingestão que abrange todos os tipos de sinais de observabilidade — registros, rastreamentos e métricas. Você pode incluir todos os pipelines ou somente os relevantes ao seu caso de uso. Substitua placeholder os valores por suas próprias informações.
version: '2' # Main OTLP pipeline - receives all telemetry and routes by signal type otlp-pipeline: source: otlp: logs_path: '/pipeline-name/v1/logs' traces_path: '/pipeline-name/v1/traces' metrics_path: '/pipeline-name/v1/metrics' route: - logs: 'getEventType() == "LOG"' - traces: 'getEventType() == "TRACE"' - metrics: 'getEventType() == "METRIC"' processor: [] sink: - pipeline: name: otel-logs-pipeline routes: - logs - pipeline: name: otel-traces-pipeline routes: - traces - pipeline: name: otel-metrics-pipeline routes: - metrics # Log processing pipeline otel-logs-pipeline: source: pipeline: name: otlp-pipeline processor: - copy_values: entries: - from_key: "time" to_key: "@timestamp" sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: log-analytics-plain aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Trace fan-out pipeline otel-traces-pipeline: source: pipeline: name: otlp-pipeline processor: [] sink: - pipeline: name: traces-raw-pipeline routes: [] - pipeline: name: service-map-pipeline routes: [] # Raw trace storage pipeline traces-raw-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_traces: sink: - opensearch: hosts: - 'https://opensearch-endpoint' index_type: trace-analytics-plain-raw aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" # Service map generation pipeline (APM) service-map-pipeline: source: pipeline: name: otel-traces-pipeline processor: - otel_apm_service_map: group_by_attributes: - telemetry.sdk.language # Add any resource attribute to group by window_duration: 30s route: - otel_apm_service_map_route: 'getEventType() == "SERVICE_MAP"' - service_processed_metrics: 'getEventType() == "METRIC"' sink: - opensearch: hosts: - 'https://opensearch-endpoint' aws: serverless: false region: 'region' sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role" routes: - otel_apm_service_map_route index_type: otel-v2-apm-service-map - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region' routes: - service_processed_metrics # Metrics processing pipeline otel-metrics-pipeline: source: pipeline: name: otlp-pipeline processor: - otel_metrics: sink: - prometheus: url: 'https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write' aws: region: 'region'
Verificando a ingestão
Depois de configurar o OTel coletor e os pipelines, verifique se os dados de telemetria estão fluindo corretamente.
-
Verificar OpenSearch índices — Confirme se os seguintes índices existem em seu domínio:
otel-v1-apm-span-*otel-v2-apm-service-map, e.logs-otel-v1-* -
Verifique as metas do Prometheus — Confirme se o destino de gravação remota do Prometheus está recebendo métricas do pipeline do mapa de serviços.
-
Verifique na OpenSearch interface do usuário — navegue até Observabilidade e, em seguida, Monitoramento de aplicativos para confirmar se seus serviços aparecem.
Próximas etapas
Depois de verificar se os dados de telemetria foram ingeridos, explore os seguintes tópicos:
-
Monitoramento de aplicações— monitore a integridade do aplicativo com mapas de serviços e métricas RED.
-
Descubra rastros — Descubra e analise rastreamentos distribuídos.
-
Descubra registros — Descubra e consulte registros de aplicativos.
-
Descubra métricas — Descubra e consulte as métricas do Prometheus usando o PromQL.