Anwendungsmetriken nach Amazon exportieren CloudWatch - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Anwendungsmetriken nach Amazon exportieren CloudWatch

Amazon ECS on Fargate unterstützt den Export Ihrer benutzerdefinierten Anwendungsmetriken CloudWatch als benutzerdefinierte Metriken nach Amazon. Dazu fügen Sie Ihrer Aufgabendefinition den Container AWS Distro for OpenTelemetry Sidecar hinzu. Die ECS Amazon-Konsole vereinfacht diesen Vorgang, indem sie bei der Erstellung einer neuen Aufgabendefinition die Option Metrikerfassung verwenden hinzufügt. Weitere Informationen finden Sie unter Erstellen einer ECS Amazon-Aufgabendefinition mithilfe der Konsole.

Die Anwendungsmetriken werden mit dem Namen der Protokollgruppe in CloudWatch Logs exportiert, /aws/ecs/application/metrics und die Metriken können im ECS/AWSOTel/Application Namespace eingesehen werden. Ihre Anwendung muss mit dem instrumentiert sein. OpenTelemetry SDK Weitere Informationen finden Sie unter Einführung in AWS Distro OpenTelemetry in der Dokumentation zu AWS Distro. OpenTelemetry

Überlegungen

Folgendes sollte beachtet werden, wenn Sie die Amazon ECS on Fargate-Integration mit AWS Distro verwenden, um Anwendungsmetriken an Amazon OpenTelemetry zu senden. CloudWatch

  • Diese Integration sendet nur Ihre benutzerdefinierten Anwendungsmetriken an. CloudWatch Wenn Sie Metriken auf Aufgabenebene wünschen, können Sie Container Insights in der ECS Amazon-Cluster-Konfiguration aktivieren. Weitere Informationen finden Sie unter Überwachen Sie ECS Amazon-Container mit Container Insights.

  • Die AWS Distribution für die OpenTelemetry Integration wird für Amazon-Workloads, die auf Fargate gehostet werden, und ECS Amazon-Workloads, die auf Amazon-Instances ECS gehostet werden, unterstützt. EC2 Externe Instances werden derzeit nicht unterstützt.

  • CloudWatch unterstützt maximal 30 Dimensionen pro Metrik. Standardmäßig bezieht Amazon ECS standardmäßig die TaskDefinitionRevision DimensionenTaskARN,, ClusterARN LaunchTypeTaskDefinitionFamily, und in die Metriken ein. Die restlichen 25 Dimensionen können durch Ihre Anwendung definiert werden. Wenn mehr als 30 Dimensionen konfiguriert sind, CloudWatch können sie nicht angezeigt werden. In diesem Fall werden die Anwendungsmetriken im ECS/AWSOTel/Application CloudWatch Metrik-Namespace angezeigt, jedoch ohne Dimensionen. Sie können Ihre Anwendung so einstellen, dass zusätzliche Dimensionen hinzugefügt werden. Weitere Informationen finden Sie unter Using CloudWatch metrics with AWS Distro for OpenTelemetry in der Dokumentation zu AWS Distro. OpenTelemetry

Erforderliche IAM Berechtigungen für AWS Distro für die OpenTelemetry Integration mit Amazon CloudWatch

Die ECS Amazon-Integration mit AWS Distro for OpenTelemetry erfordert, dass Sie eine IAM Aufgabenrolle erstellen und die Rolle in Ihrer Aufgabendefinition angeben. Wir empfehlen, dass AWS Distro for OpenTelemetry Sidecar auch so konfiguriert wird, dass Container-Logs an CloudWatch Logs weitergeleitet werden. Dazu muss auch eine IAM Rolle zur Aufgabenausführung erstellt und in Ihrer Aufgabendefinition angegeben werden. Die ECS Amazon-Konsole kümmert sich in Ihrem Namen um die IAM Aufgabenausführungsrolle, aber die IAM Aufgabenrolle muss manuell erstellt und zu Ihrer Aufgabendefinition hinzugefügt werden. Weitere Informationen zur IAM Aufgabenausführungsrolle finden Sie unterRolle bei der Ausführung von ECS IAM Amazon-Aufgaben.

Wichtig

Wenn Sie auch Anwendungsablaufverfolgungsdaten mithilfe der AWS Distribution für die OpenTelemetry Integration sammeln, stellen Sie sicher, dass Ihre IAM Aufgabenrolle auch die für diese Integration erforderlichen Berechtigungen enthält. Weitere Informationen finden Sie unter Identifizieren Sie mithilfe von Anwendungs-Trace-Daten ECS Optimierungsmöglichkeiten bei Amazon.

Wenn Ihre Anwendung zusätzliche Berechtigungen benötigt, sollten Sie diese dieser Richtlinie hinzufügen. Jede Aufgabendefinition darf nur eine IAM Aufgabenrolle angeben. Wenn Sie beispielsweise eine benutzerdefinierte Konfigurationsdatei verwenden, die in Systems Manager gespeichert ist, sollten Sie die ssm:GetParameters Berechtigung zu dieser IAM Richtlinie hinzufügen.

Um die Servicerolle für Elastic Container Service (IAMKonsole) zu erstellen
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich der IAM Konsole Rollen und anschließend Rolle erstellen aus.

  3. Wählen Sie für Vertrauenswürdige Entität die Option AWS-Service aus.

  4. Wählen Sie für Service oder Anwendungsfall Elastic Container Service und dann den Anwendungsfall Elastic Container Service Task aus.

  5. Wählen Sie Weiter.

  6. Suchen Sie im Bereich Berechtigungen hinzufügen nach der Richtlinie AWSDistroOpenTelemetryPolicyForXrayund wählen Sie sie aus.

  7. (Optional) Legen Sie eine Berechtigungsgrenze fest. Dies ist ein erweitertes Feature, das für Servicerollen verfügbar ist, aber nicht für servicegebundene Rollen.

    1. Öffnen Sie den Abschnitt Berechtigungsgrenze festlegen und wählen Sie dann Eine Berechtigungsgrenze verwenden aus, um die maximalen Rollenberechtigungen zu steuern.

      IAMenthält eine Liste der AWS verwalteten und von Kunden verwalteten Richtlinien in Ihrem Konto.

    2. Wählen Sie die Richtlinie aus, die für eine Berechtigungsgrenze verwendet werden soll.

  8. Wählen Sie Weiter.

  9. Geben Sie einen Rollennamen oder ein Rollennamensuffix ein, damit Sie den Zweck der Rolle leichter erkennen können.

    Wichtig

    Beachten Sie beim Benennen einer Rolle Folgendes:

    • Rollennamen müssen innerhalb Ihres AWS-Konto Unternehmens eindeutig sein und können nicht von Fall zu Fall eindeutig sein.

      Erstellen Sie beispielsweise keine Rollen, die PRODROLE sowohl als auch benannt sindprodrole. Wenn ein Rollenname in einer Richtlinie oder als Teil einer verwendet wirdARN, unterscheidet der Rollenname Groß- und Kleinschreibung. Wenn Kunden jedoch ein Rollenname in der Konsole angezeigt wird, z. B. während des Anmeldevorgangs, wird die Groß- und Kleinschreibung nicht berücksichtigt.

    • Sie können den Namen der Rolle nicht bearbeiten, nachdem er erstellt wurde, da andere Entitäten möglicherweise auf die Rolle verweisen.

  10. (Optional) Geben Sie unter Beschreibung eine Beschreibung für die Rolle ein.

  11. (Optional) Um die Anwendungsfälle und Berechtigungen für die Rolle zu bearbeiten, wählen Sie in den Abschnitten Schritt 1: Vertrauenswürdige Entitäten auswählen oder Schritt 2: Berechtigungen hinzufügen die Option Bearbeiten aus.

  12. (Optional) Fügen Sie Tags als Schlüssel-Wert-Paare hinzu, um die Rolle leichter zu identifizieren, zu organisieren oder nach ihr zu suchen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie im Benutzerhandbuch unter IAMRessourcen taggen. IAM

  13. Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).

Geben Sie die AWS Distribution für OpenTelemetry Sidecar in Ihrer Aufgabendefinition an

Die ECS Amazon-Konsole vereinfacht die Erstellung des Containers „ AWS Distro for OpenTelemetry Sidecar“, indem sie die Option Metrikerfassung verwenden verwendet. Weitere Informationen finden Sie unter Erstellen einer ECS Amazon-Aufgabendefinition mithilfe der Konsole.

Wenn Sie die ECS Amazon-Konsole nicht verwenden, können Sie den Container AWS Distro for OpenTelemetry Sidecar manuell zu Ihrer Aufgabendefinition hinzufügen. Das folgende Beispiel für eine Aufgabendefinition zeigt die Container-Definition für das Hinzufügen der AWS Integration Distro for OpenTelemetry Sidecar for 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" }