Esportazione dei parametri delle applicazioni in Amazon CloudWatch - Amazon Elastic Container Service

Esportazione dei parametri delle applicazioni in Amazon CloudWatch

Amazon ECS su Fargate supporta l'esportazione dei parametri delle applicazioni personalizzati in Amazon CloudWatch come parametri personalizzati. 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 dell'applicazione vengono esportati in CloudWatch Logs con il nome del gruppo di log /aws/ecs/application/metrics e i parametri possono essere visualizzati nello spazio dei nomi ECS/AWSOTel/Application. L'applicazione deve essere strumentata con l'SDK OpenTelemetry. Per ulteriori informazioni, consulta Introduzione a AWS Distro for OpenTelemetry nella documentazione di AWS Distro for OpenTelemetry.

Considerazioni

Considera quanto segue quando utilizzi l'integrazione Amazon ECS su Fargate con AWS Distro for OpenTelemetry per inviare i parametri dell'applicazione ad Amazon CloudWatch.

  • Questa integrazione invia a CloudWatch solo i parametri dell'applicazione personalizzati. Se desideri parametri a livello di attività, puoi attivare Container Insights nella configurazione del cluster Amazon ECS. Per ulteriori informazioni, consulta Monitora i container di Amazon ECS utilizzando Container Insights con osservabilità migliorata..

  • 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. Al momento le istanze esterne non sono supportate.

  • CloudWatch supporta un massimo di 30 dimensioni per parametro. Di default, Amazon ECS include le dimensioni TaskARN, ClusterARN, LaunchType, TaskDefinitionFamily e TaskDefinitionRevision nei parametri. Le restanti 25 dimensioni possono essere definite dalla tua applicazione. Se sono configurate più di 30 dimensioni, CloudWatch non è in grado di visualizzarle. In questo caso, i parametri dell'applicazione verranno mostrati nello spazio dei nomi del parametro ECS/AWSOTel/Application CloudWatch, ma senza dimensioni. Puoi strumentare la tua applicazione per aggiungere ulteriori dimensioni. Per ulteriori informazioni, consulta Utilizzo dei parametri CloudWatch con AWS Distro for OpenTelemetry nella documentazione di AWS Distro for OpenTelemetry.

Autorizzazioni IAM richieste per l'integrazione di AWS Distro for OpenTelemetry con Amazon CloudWatch

L'integrazione di Amazon ECS con AWS Distro for OpenTelemetry richiede la creazione di un ruolo IAM del processo e la specifica del ruolo nella definizione di attività. 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à. La 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 e aggiunto alla tua definizione di attività. Per ulteriori informazioni sul ruolo IAM di esecuzione 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.

Se l'applicazione richiede ulteriori autorizzazioni, è necessario aggiungerle a questa policy. Ciascuna definizione di attività può specificare un solo ruolo IAM del processo. Ad esempio, se utilizzi un file di configurazione personalizzato memorizzato in Systems Manager, devi aggiungere l'autorizzazione ssm:GetParameters a questa policy IAM.

Per creare il ruolo di servizio per Elastic Container Service (console IAM)
  1. Accedi a AWS Management Console e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione della console IAM, scegliere Ruoli e quindi Crea ruolo.

  3. Per Trusted entity type (Tipo di entità attendibile), scegli Servizio AWS.

  4. Per Servizio o caso d'uso, seleziona Elastic Container Service e poi il caso d'uso Attività Elastic Container Service.

  5. Scegli Next (Successivo).

  6. Nella sezione Aggiungi autorizzazioni, cerca AWSDistroOpenTelemetryPolicyForXray e seleziona la policy.

  7. (Facoltativo) Impostare un limite delle autorizzazioni. Questa è una caratteristica avanzata disponibile per i ruoli di servizio, ma non per i ruoli collegati ai servizi.

    1. Apri la sezione Imposta limite delle autorizzazioni e seleziona Usa un limite delle autorizzazioni per controllare il numero massimo di autorizzazioni del ruolo.

      IAM include un elenco delle policy gestite da AWS e delle policy gestite dal cliente nel tuo account.

    2. Selezionare la policy da utilizzare per il limite delle autorizzazioni.

  8. Scegli Next (Successivo).

  9. Specifica un nome del ruolo o un suffisso del nome del ruolo per facilitare l'identificazione dello scopo del ruolo.

    Importante

    Quando assegni un nome a un ruolo, tieni presente quanto segue:

    • I nomi dei ruoli devono essere univoci all'interno dell'Account AWS e non possono essere resi univoci per il caso.

      Ad esempio, non creare ruoli denominati PRODROLE e prodrole. Quando il nome di un ruolo viene utilizzato in una policy o come parte di un ARN, il nome del ruolo fa distinzione tra maiuscole e minuscole, tuttavia quando un nome di ruolo viene visualizzato ai clienti nella console, ad esempio durante il processo di accesso, il nome del ruolo non fa distinzione tra maiuscole e minuscole.

    • Non è possibile modificare il nome del ruolo dopo averlo creato, in quanto altre entità possono fare riferimento al ruolo.

  10. (Facoltativo) In Descrizione, inserisci una descrizione per il ruolo.

  11. (Facoltativo) Per modificare i casi d'uso e le autorizzazioni per il ruolo, in Fase 1: seleziona le entità attendibili o Fase 2: aggiungi autorizzazioni seleziona Modifica.

  12. (Facoltativo) Per facilitare l'identificazione, l'organizzazione o la ricerca del ruolo, aggiungi i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo di tag in IAM, consulta Tagging delle risorse AWS Identity and Access Management nella Guida per l'utente di IAM.

  13. Verificare il ruolo e quindi scegliere Create role (Crea ruolo).

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 CloudWatch.

{ "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": "us-east-1", "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-cloudwatch.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072" }