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'sigv4auth
estensione per autenticare le chiamate al servizio gestito da Amazon per Prometheus. Per ulteriori informazioni sulla configurazionesigv4auth
, vedi Authenticator -
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).
-
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"]
-
Crea un ECR repository Amazon.
# create repo: COLLECTOR_REPOSITORY=$(aws ecr create-repository --repository aws-otel-collector \ --query repository.repositoryUri --output text)
-
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. -
Accedi al ECR repository Amazon. Replace (Sostituisci)
my-region
con il tuoregion
valore.# sign in to repo: aws ecr get-login-password --region
my-region
| \ docker login --username AWS --password-stdin $COLLECTOR_REPOSITORY -
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.
-
Dal pannello di navigazione del tuo spazio di lavoro Amazon Managed Grafana, scegli Origini dati sotto l'icona. AWS
-
Nella scheda Origini dati, per Servizio, seleziona Servizio gestito da Amazon per Prometheus e scegli la tua regione predefinita.
-
Scegli Aggiungi origine dati.
-
Usa i prefissi
ecs
eprometheus
per interrogare e visualizzare i tuoi parametri.