Exportieren von Anwendungsmetriken an Amazon Managed Service for Prometheus - 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.

Exportieren von Anwendungsmetriken an Amazon Managed Service for Prometheus

Amazon ECS unterstützt den Export Ihrer CPU-, Speicher-, Netzwerk- und Speichermetriken auf Aufgabenebene sowie Ihrer benutzerdefinierten Anwendungsmetriken an Amazon Managed Service for Prometheus. Dies geschieht durch Hinzufügen des AWS Distro for OpenTelemetry Sidecar Containers zu Ihrer Aufgabendefinition. Die Amazon-ECS-Konsole vereinfacht diesen Prozess, indem sie die Option Metrikerfassung verwenden hinzufügt, wenn eine neue Aufgabendefinition erstellt wird. Weitere Informationen finden Sie unter Erstellen einer Aufgabendefinition mit der Konsole.

Die Metriken werden an Amazon Managed Service for Prometheus exportiert und können über das Dashboard von Amazon Managed Grafana eingesehen werden. Ihre Anwendung muss entweder mit Prometheus-Bibliotheken oder mit dem OpenTelemetry SDK instrumentiert sein. Weitere Informationen zur Instrumentierung Ihrer Anwendung mit dem OpenTelemetry SDK finden Sie unter Einführung in AWS Distro für OpenTelemetry in der OpenTelemetry Dokumentation zu AWS Distro for.

Bei Verwendung der Prometheus-Bibliotheken muss Ihre Anwendung einen /metrics-Endpunkt bereitstellen, der zum Scraping der Metrikdaten verwendet wird. Weitere Informationen zum Instrumentieren Ihrer Anwendung mit Prometheus-Bibliotheken finden Sie unter Prometheus-Clientbibliotheken in der Prometheus-Dokumentation.

Überlegungen

Folgendes sollte berücksichtigt werden, wenn die Integration von Amazon ECS in Fargate mit AWS Distro für verwendet wird OpenTelemetry , um Anwendungsmetriken an Amazon Managed Service for Prometheus zu senden.

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

  • Standardmäßig OpenTelemetry AWS enthältDistro für alle verfügbaren Dimensionen auf Aufgabenebene für Ihre Anwendungsmetriken beim Export nach Amazon Managed Service for Prometheus. Sie können Ihre Anwendung auch so instrumentieren, dass zusätzliche Dimensionen hinzugefügt werden. Weitere Informationen finden Sie unter Erste Schritte mit Prometheus Remote Write Exporter für Amazon Managed Service for Prometheus in der OpenTelemetry Dokumentation AWS Distro for .

Erforderliche IAM-Berechtigungen für AWS Distro für die OpenTelemetry Integration mit Amazon Managed Service for Prometheus

Die Amazon-ECS-Integration mit Amazon Managed Service for Prometheus unter Verwendung des AWS Sidecars Distro for OpenTelemetry erfordert, dass Sie eine Aufgaben-IAM-Rolle erstellen und die Rolle in Ihrer Aufgabendefinition angeben. Diese Aufgaben-IAM-Rolle muss manuell mit den folgenden Schritten erstellt werden, bevor Sie Ihre Aufgabendefinition anmelden.

Wir empfehlen, dass das AWS Distro for OpenTelemetry Sidecar auch so konfiguriert wird, dass Containerprotokolle an CloudWatch Protokolle weitergeleitet werden, für die auch eine IAM-Rolle für die Aufgabenausführung erstellt und in Ihrer Aufgabendefinition angegeben werden muss. Die Amazon-ECS-Konsole kümmert sich in Ihrem Namen um die IAM-Aufgabenausführungsrolle, aber die Aufgaben-IAM-Rolle muss 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 Anwendungs-Trace-Daten mithilfe von AWS Distro für die OpenTelemetry Integration sammeln, stellen Sie sicher, dass Ihre Aufgaben-IAM-Rolle auch die für diese Integration erforderlichen Berechtigungen enthält. Weitere Informationen finden Sie unter Identifizieren von Amazon-ECS-Optimierungsmöglichkeiten mithilfe von Anwendungs-Trace-Daten.

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

  2. Klicken Sie im Navigationsbereich der IAM-Konsole auf Rollen, und wählen Sie dann Rolle erstellen.

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

  6. Suchen Sie im Abschnitt Berechtigungen hinzufügen nach AmazonPrometheusRemoteWriteAccessund wählen Sie dann die Richtlinie 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 Berechtigungsgrenze verwenden aus, um die maximalen Rollenberechtigungen zu steuern.

      IAM enthält eine Liste der AWS von verwalteten und vom 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 aus.

  9. Geben Sie einen Rollennamen oder ein Suffix für den Rollennamen ein, um den Zweck der Rolle zu identifizieren.

    Wichtig

    Beachten Sie beim Benennen einer Rolle Folgendes:

    • Rollennamen müssen innerhalb Ihres eindeutig sein AWS-Konto und können nicht durch Groß- und Kleinschreibung eindeutig gemacht werden.

      Erstellen Sie beispielsweise keine Rollen mit den Namen PRODROLE und prodrole. Wenn ein Rollenname in einer Richtlinie oder als Teil eines ARN verwendet wird, wird die Groß- und Kleinschreibung beachtet. Wenn Kunden in der Konsole jedoch ein Rollenname angezeigt wird, z. B. während des Anmeldevorgangs, wird die Groß- und Kleinschreibung des Rollennamens nicht beachtet.

    • Sie können den Namen der Rolle nach ihrer Erstellung nicht mehr bearbeiten, 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) Um die Rolle zu identifizieren, zu organisieren oder zu suchen, fügen Sie Tags als Schlüssel-Wert-Paare hinzu. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Markieren von IAM-Ressourcen im IAM-Benutzerhandbuch.

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

Angeben des AWS Distro for OpenTelemetry Sidecars in Ihrer Aufgabendefinition

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

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