Esportazione di parametri delle applicazioni in Amazon Managed Service for Prometheus
Amazon ECS supporta l'esportazione di parametri di CPU, memoria, rete e archiviazione a livello di processo e i parametri delle applicazioni personalizzate in Amazon Managed Service for Prometheus. Ciò può essere fatto aggiungendo il container sidecar di AWS Distro for OpenTelemetry alla definizione di attività. L'esperienza della console Amazon ECS semplifica questo processo aggiungendo l'opzione Utilizza raccolta parametri durante la creazione di una nuova definizione di attività. Per ulteriori informazioni, consulta Creazione di una definizione di attività di Amazon ECS attraverso la nuova console.
I parametri vengono esportati in Amazon Managed Service for Prometheus e possono essere visualizzati utilizzando il pannello di controllo di Amazon Managed Grafana. L'applicazione deve essere strumentata con le librerie Prometheus o l'SDK OpenTelemetry. Per ulteriori informazioni sulla strumentazione della tua applicazione con l'SDK OpenTelemetry, consulta Introduzione a AWS Distro for OpenTelemetry
Quando si utilizzano le librerie Prometheus, l'applicazione deve esporre un endpoint /metrics utilizzato per lo scraping dei dati dei parametri. Per ulteriori informazioni sulla strumentazione della tua applicazione con le librerie Prometheus, consulta Librerie client Prometheus
Considerazioni
Quando si utilizza l'integrazione Amazon ECS su Fargate con AWS Distro for OpenTelemetry per inviare parametri dell'applicazione ad Amazon Managed Service for Prometheus, è opportuno considerare i seguenti aspetti.
-
L'integrazione di AWS Distro for OpenTelemetry è supportata per i carichi di lavoro Amazon ECS ospitati su Fargate e per quelli ospitati su istanze Amazon EC2. Attualmente le istanze esterne non sono supportate.
-
Di default, AWS Distro for OpenTelemetry include tutte le dimensioni disponibili a livello di processo per i parametri dell'applicazione durante l'esportazione in Amazon Managed Service for Prometheus. Puoi anche strumentare la tua applicazione per aggiungere ulteriori dimensioni. Per ulteriori informazioni, consulta la Guida introduttiva a Prometheus Remote Write Exporter per Amazon Managed Service for Prometheus
nella documentazione di AWS Distro for OpenTelemetry.
Autorizzazioni IAM richieste per l'integrazione di AWS Distro for OpenTelemetry con Amazon Managed Service for Prometheus
L'integrazione di Amazon ECS con Amazon Managed Service for Prometheus usando il sidecar AWS Distro for OpenTelemetry richiede la creazione di un ruolo IAM del processo e la specifica del ruolo nella definizione di attività. Il ruolo IAM di questo processo deve essere creato manualmente prima di registrare la definizione di attività. Per ulteriori informazioni sulla creazione di un ruolo del processo, consulta Ruolo IAM dell'attività Amazon ECS.
Consigliamo che il sidecar AWS Distro for OpenTelemetry venga configurato anche per instradare i log dei container su CloudWatch Logs, il che richiede che venga creato e specificato anche un ruolo IAM di esecuzione dei processi nella definizione di attività. L'esperienza della console di Amazon ECS si occupa del ruolo IAM di esecuzione dei processi per tuo conto, ma il ruolo IAM del processo deve essere creato manualmente. Per ulteriori informazioni sulla creazione di un ruolo IAM di creazione dei processi, consulta Ruolo IAM di esecuzione di attività Amazon ECS.
Importante
Se stai raccogliendo anche i dati di traccia delle applicazioni utilizzando l'integrazione AWS Distro for OpenTelemetry, assicurati che il ruolo IAM del processo contenga anche le autorizzazioni necessarie per tale integrazione. Per ulteriori informazioni, consulta Individua le opportunità di ottimizzazione di Amazon ECS utilizzando i dati di tracciamento delle applicazioni.
Le seguenti autorizzazioni sono richieste per l'integrazione di AWS Distro for OpenTelemetry con il servizio gestito da Amazon per Prometheus:
logs:PutLogEvents
logs:CreateLogGroup
logs:CreateLogStream
logs:DescribeLogStreams
logs:DescribeLogGroups
cloudwatch:PutMetricData
Specifica del sidecar AWS Distro for OpenTelemetry nella definizione di attività
L'esperienza della console Amazon ECS semplifica l'esperienza di creazione del container sidecar AWS Distro for OpenTelemetry utilizzando l'opzione Utilizza raccolta parametri. Per ulteriori informazioni, consulta Creazione di una definizione di attività di Amazon ECS attraverso la nuova console.
Se non utilizzi la console Amazon ECS, puoi aggiungere manualmente il container sidecar AWS Distro for OpenTelemetry alla tua definizione di attività. Il seguente esempio di definizione di attività mostra la definizione del container per l'aggiunta del sidecar AWS Distro for OpenTelemetry per l'integrazione di Amazon Managed Service for Prometheus.
{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryCloudWatchRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [{ "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "aws-region", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.30.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-amp.yaml" ], "environment": [{ "name": "AWS_PROMETHEUS_ENDPOINT", "value": "https://aps-workspaces.aws-region.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" }], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "aws-region", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072" }