Configura l'inserimento di metriche da Amazon ECS utilizzando AWS Distro for Open Telemetry - Amazon Managed Service per Prometheus

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura l'inserimento di metriche da Amazon ECS utilizzando AWS Distro for Open Telemetry

Questa sezione spiega come raccogliere metriche da Amazon Elastic Container Service (AmazonECS) e inserirle in Amazon Managed Service for Prometheus utilizzando Distro for Open Telemetry (). AWS ADOT Descrive anche come visualizzare i tuoi parametri in Grafana gestito da Amazon.

Prerequisiti

Importante

Prima di iniziare, devi disporre di un ECS ambiente Amazon su un AWS Fargate cluster con impostazioni predefinite, uno spazio di lavoro Amazon Managed Service for Prometheus e uno spazio di lavoro Amazon Managed Grafana. Partiamo dal presupposto che tu abbia familiarità con i carichi di lavoro dei container, il servizio gestito da Amazon per Prometheus e Grafana gestito da Amazon.

Per ulteriori informazioni, consulta i collegamenti seguenti:

  • Per informazioni su come creare un ECS ambiente Amazon su un cluster Fargate con impostazioni predefinite, consulta Creating a cluster nella Amazon ECS Developer Guide.

  • Per informazioni su come creare un'area di lavoro del servizio gestito da Amazon per Prometheus, consulta Creazione di un'area di lavoro nella Guida per l'utente del servizio gestito da Amazon per Prometheus.

  • Per informazioni su come creare un'area di lavoro Grafana gestito da Amazon, consulta Creazione di un'area di lavoro nella Guida per l'utente di Grafana gestito da Amazon.

Fase 1: Definizione di un'immagine personalizzata del ADOT contenitore Collector

Usa il seguente file di configurazione come modello per definire l'immagine del tuo contenitore da ADOT collezione. Replace (Sostituisci) my-remote-URL e my-region con i tuoi endpoint e i tuoi valori. region Salva la configurazione in un file denominato adot-config.yaml.

Nota

Questa configurazione utilizza l'sigv4authestensione per autenticare le chiamate al servizio gestito da Amazon per Prometheus. Per ulteriori informazioni sulla configurazionesigv4auth, vedi Authenticator - Sigv4 on. GitHub

receivers: prometheus: config: global: scrape_interval: 15s scrape_timeout: 10s scrape_configs: - job_name: "prometheus" static_configs: - targets: [ 0.0.0.0:9090 ] awsecscontainermetrics: collection_interval: 10s processors: filter: metrics: include: match_type: strict metric_names: - ecs.task.memory.utilized - ecs.task.memory.reserved - ecs.task.cpu.utilized - ecs.task.cpu.reserved - ecs.task.network.rate.rx - ecs.task.network.rate.tx - ecs.task.storage.read_bytes - ecs.task.storage.write_bytes exporters: prometheusremotewrite: endpoint: my-remote-URL auth: authenticator: sigv4auth logging: loglevel: info extensions: health_check: pprof: endpoint: :1888 zpages: endpoint: :55679 sigv4auth: region: my-region service: aps service: extensions: [pprof, zpages, health_check, sigv4auth] pipelines: metrics: receivers: [prometheus] exporters: [logging, prometheusremotewrite] metrics/ecs: receivers: [awsecscontainermetrics] processors: [filter] exporters: [logging, prometheusremotewrite]

Passaggio 2: invia l'immagine del contenitore ADOT da collezione a un repository Amazon ECR

Usa un Dockerfile per creare e inviare l'immagine del contenitore a un repository Amazon Elastic Container Registry (ECR).

  1. Crea il Dockerfile per copiare e aggiungere l'immagine del contenitore all'immagine Docker. OTEL

    FROM public.ecr.aws/aws-observability/aws-otel-collector:latest COPY adot-config.yaml /etc/ecs/otel-config.yaml CMD ["--config=/etc/ecs/otel-config.yaml"]
  2. Crea un ECR repository Amazon.

    # create repo: COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ --query repository.repositoryUri --output text)
  3. Crea la tua immagine di container.

    # build ADOT collector image: docker build -t $COLLECTOR_REPOSITORY:ecs .
    Nota

    Ciò presuppone che tu stia costruendo il tuo conteiner nello stesso ambiente in cui verrà eseguito. In caso contrario, potrebbe essere necessario utilizzare il --platform parametro durante la creazione dell'immagine.

  4. Accedi al ECR repository Amazon. Replace (Sostituisci) my-region con il tuo region valore.

    # sign in to repo: aws ecr get-login-password --region my-region | \ docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY
  5. Invia l'immagine del conteiner.

    # push ADOT collector image: docker push $COLLECTOR_REPOSITORY:ecs

Passaggio 3: creare una definizione di ECS attività Amazon per archiviare Amazon Managed Service for Prometheus

Crea una definizione di ECS attività Amazon per archiviare Amazon Managed Service for Prometheus. La definizione dell'attività deve includere un conteiner denominato adot-collector e un conteiner denominatoprometheus. prometheus genera parametri e adot-collector scrape prometheus.

Nota

Il servizio gestito da Amazon per Prometheus funziona come servizio, raccogliendo parametri dai container. I conteiner in questo caso eseguono Prometheus localmente, in modalità Agente, che invia i parametri locali al servizio gestito da Amazon per Prometheus.

Esempio: definizione di attività

Di seguito è riportato un esempio di come potrebbe presentarsi la definizione dell'attività. È possibile utilizzare questo esempio come modello per creare la propria definizione di attività. Sostituisci il image valore di adot-collector con il tuo repository URL e il tag di immagine (). $COLLECTOR_REPOSITORY:ecs Sostituisci i valori di region di adot-collector e prometheus con i tuoi valori region.

{ "family": "adot-prom", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "adot-collector", "image": "account_id.dkr.ecr.region.amazonaws.com/image-tag", "essential": true, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-adot-collector", "awslogs-region": "my-region", "awslogs-stream-prefix": "ecs", "awslogs-create-group": "True" } } }, { "name": "prometheus", "image": "prom/prometheus:main", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-prom", "awslogs-region": "my-region", "awslogs-stream-prefix": "ecs", "awslogs-create-group": "True" } } } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024" }

Passaggio 4: autorizza la tua attività ad accedere ad Amazon Managed Service for Prometheus

Per inviare i parametri eliminati ad Amazon Managed Service for Prometheus, la tua ECS attività Amazon deve disporre delle autorizzazioni corrette per effettuare le operazioni al posto tuo. AWS API Devi creare un IAM ruolo per le tue attività e allegare ad esso la policy. AmazonPrometheusRemoteWriteAccess Per ulteriori informazioni sulla creazione di questo ruolo e sull'associazione della politica, vedi Creazione di un IAM ruolo e di una politica per le tue attività.

Dopo che ti sei AmazonPrometheusRemoteWriteAccess associato al tuo IAM ruolo e lo hai utilizzato per le tue attività, Amazon ECS può inviare i tuoi parametri eliminati ad Amazon Managed Service for Prometheus.

Fase 5: visualizza le tue metriche in Amazon Managed Grafana

Importante

Prima di iniziare, devi eseguire un'attività Fargate sulla definizione dell'ECSattività Amazon. Altrimenti, il servizio gestito da Amazon per Prometheus non può utilizzare i tuoi parametri.

  1. Dal pannello di navigazione del tuo spazio di lavoro Amazon Managed Grafana, scegli Origini dati sotto l'icona. AWS

  2. Nella scheda Origini dati, per Servizio, seleziona Servizio gestito da Amazon per Prometheus e scegli la tua regione predefinita.

  3. Scegli Aggiungi origine dati.

  4. Usa i prefissi ecs e prometheus per interrogare e visualizzare i tuoi parametri.