Sammeln von Anwendungs-Nachverfolgungsdaten - Amazon ECS

Sammeln von Anwendungs-Nachverfolgungsdaten

Amazon ECS lässt sich mit AWS Distro for OpenTelemetry integrieren, um Nachverfolgungsdaten von Ihrer Anwendung zu erfassen. Amazon ECS verwendet einen Sidecar-Container für AWS Distro for OpenTelemetry, um Nachverfolgungsdaten zu erfassen und an AWS X-Ray weiterzuleiten. Weitere Informationen finden Sie unter Einrichten von AWS Distro for OpenTelemetry Collector in Amazon ECS.

Damit der Collector von AWS Distro for OpenTelemetry Nachverfolgungsdaten an AWS X-Ray senden kann, muss Ihre Anwendung so konfiguriert sein, dass die Nachverfolgungsdaten erstellt werden. Weitere Informationen finden Sie unter Instrumentieren Ihrer Anwendung für AWS X-Ray im Entwicklerhandbuch zu AWS X-Ray.

Erforderliche IAM-Berechtigungen für die Integration von AWS Distro for OpenTelemetry mit AWS X-Ray

Die Amazon-ECS-Integration mit AWS Distro for OpenTelemetry erfordert, dass Sie eine Aufgaben-IAM-Rolle erstellen und die Rolle in Ihrer Aufgabendefinition angeben. Wir empfehlen, dass das Sidecar für AWS Distro for OpenTelemetry auch so konfiguriert wird, dass Containerprotokolle an CloudWatch Logs weitergeleitet werden, was die Erstellung und Angabe einer IAM-Aufgabenausführungsrolle in Ihrer Aufgabendefinition erfordert. Die neue Amazon-ECS-Konsolenerfahrung kümmert sich in Ihrem Namen um die IAM-Aufgabenausführungsrolle, die Aufgaben-IAM-Rolle muss jedoch manuell erstellt werden. Weitere Informationen zum Erstellen der IAM-Aufgabenausführungsrolle finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.

Wichtig

Wenn Sie auch Anwendungsmetriken mithilfe der Integration von AWS Distro for OpenTelemetry erfassen, stellen Sie sicher, dass Ihre Aufgaben-IAM-Rolle auch die für diese Integration erforderlichen Berechtigungen enthält. Weitere Informationen finden Sie unter Erfassen von Anwendungsmetriken.

So erstellen Sie eine Aufgaben-IAM-Rolle für die Integration von AWS Distro for OpenTelemetry

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Policies und Create policy aus.

  3. Wechseln Sie auf der Seite Create policy (Richtlinie erstellen) zur Registerkarte JSON, kopieren Sie die folgende IAM-Richtlinien-JSON und fügen Sie sie in das Feld ein. Wählen Sie dann Next: Tags (Weiter: Tags).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets", "xray:GetSamplingStatisticSummaries" ], "Resource": "*" } ] }
  4. (Optional) Fügen Sie einen oder mehrere Tags zu der Richtlinie hinzu und wählen Sie dann Next: Review (Weiter: Prüfen) aus.

  5. Geben Sie für Name AWSDistroOpenTelemetryPolicyForXray an.

  6. Geben Sie für Description (Beschreibung) eine optionale Beschreibung an und wählen Sie dann Create policy (Richtlinie erstellen).

  7. Wählen Sie im Navigationsbereich Roles (Rollen) und Create Role (Rolle erstellen) aus.

  8. Wählen Sie im Abschnitt Select type of trusted entity (Typ der vertrauenswürdigen juristischen Stelle auswählen) AWS-Service und Elastic Container Service aus.

  9. Wählen Sie für Select your use case (Anwendungsfall auswählen) die Option Elastic Container Service Task (Elastic Container Service-Aufgabe) aus und klicken Sie dann auf Next: Permissions (Weiter: Berechtigungen).

  10. Suchen Sie im Abschnitt Attach permissions policy (Berechtigungsrichtlinie anfügen) nach AWSDistroOpenTelemetryPolicyForXray, wählen Sie die Richtlinie aus und wählen Sie dann Next: Tags (Weiter: Tags).

  11. Geben Sie für Tags hinzufügen (optional) alle benutzerdefinierten Tags an, die mit der Richtlinie verknüpft werden sollen, und wählen SieWeiter: Prüfen.

  12. Geben Sie unter Role name (Rollenname) den Namen AmazonECS_OpenTelemetryXrayRole an und wählen Sie Create role (Rolle erstellen).

Angeben des Sidecars für AWS Distro for OpenTelemetry für die AWS X-Ray-Integration in Ihrer Aufgabendefinition

Das neue Amazon-ECS-Konsolenerlebnis vereinfacht das Erlebnis beim Erstellen des Sidecar-Containers für AWS Distro for OpenTelemetry durch die Verwendung der Option Use trace collection (Nachverfolgungs–Erfassung verwenden). Weitere Informationen finden Sie unter Erstellen einer Aufgabendefinition mit der neuen Konsole.

Wenn Sie die Amazon-ECS-Konsole nicht verwenden, können Sie den Sidecar-Container für AWS Distro for OpenTelemetry zu Ihrer Aufgabendefinition hinzufügen. Der folgende Ausschnitt einer Aufgabendefinition zeigt die Containerdefinition zum Hinzufügen des Sidecars für AWS Distro for OpenTelemetry für die AWS X-Ray-Integration.

{ "family": "otel-using-xray", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryXrayRole", "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.17.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-xray.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" }