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.
Anwendungen auf Amazon-EKS-Clustern aktivieren
CloudWatch Application Signals wird für Java- Node.js, Python- und.NET-Anwendungen unterstützt. Um Application Signals für Ihre Anwendungen auf einem vorhandenen Amazon EKS-Cluster zu aktivieren, können Sie die AWS-Managementkonsole erweiterte Konfiguration Auto Monitor oder das CloudWatch Observability-Add-on verwenden. AWS CDK
Themen
Application Signals auf Amazon-EKS-Clustern mit der Konsole aktivieren
Um CloudWatch Application Signals für Ihre Anwendungen auf einem vorhandenen Amazon EKS-Cluster zu aktivieren, folgen Sie den Anweisungen in diesem Abschnitt.
Wichtig
Wenn Sie es bereits OpenTelemetry mit einer Anwendung verwenden, die Sie für Anwendungssignale aktivieren möchten, lesen Sie Unterstützte Systeme vor der Aktivierung von Anwendungssignalen nach.
So aktivieren Sie Application Signals für Ihre Anwendungen auf einem vorhandenen Amazon-EKS-Cluster
Anmerkung
Sofern Application Signals noch nicht aktiviert ist, befolgen Sie die Anweisungen in Application Signals in Ihrem Konto aktivieren und anschließend wie unten beschrieben.
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. Wählen Sie Application Signals.
Wählen Sie für Plattform angeben die Option EKS.
Wählen Sie für Einen EKS-Cluster auswählen den Cluster aus, in dem Sie Application Signals aktivieren möchten.
Wenn für diesen Cluster das Amazon CloudWatch Observability EKS-Add-on noch nicht aktiviert ist, werden Sie aufgefordert, es zu aktivieren. In diesem Fall, gehen Sie wie folgt vor:
Wählen Sie Add CloudWatch Observability EKS Add-on. Die Amazon-EKS-Konsole wird angezeigt.
Markieren Sie das Kontrollkästchen für Amazon CloudWatch Observability und wählen Sie Weiter.
Das CloudWatch Observability EKS-Add-on ermöglicht sowohl Application Signals als auch CloudWatch Container Insights mit verbesserter Observability für Amazon EKS. Weitere Informationen zu Container Insights finden Sie unter Container Insights.
Wählen Sie die neueste Version des zu installierenden Add-Ons.
Wählen Sie eine IAM-Rolle aus, die für das Add-On verwendet werden soll. Wenn Sie Von Knoten erben wählen, fügen Sie der IAM-Rolle, die von Ihren Worker-Knoten verwendet wird, die richtigen Berechtigungen hinzu. Ersetzen Sie
my-worker-node-roledurch die IAM-Rolle, die von Ihren Kubernetes-Worker-Knoten verwendet wird.aws iam attach-role-policy \ --role-namemy-worker-node-role\ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --policy-arn arn:aws:iam::aws:policy/AWSXRayWriteOnlyAccessInformationen zum Erstellen einer Servicerolle für die Verwendung des Add-Ons finden Sie unter Installieren Sie den CloudWatch Agenten mit dem Amazon CloudWatch Observability EKS-Add-on oder dem Helm-Diagramm.
Wählen Sie Weiter, bestätigen Sie die Informationen auf dem Bildschirm und wählen Sie Erstellen.
Wählen Sie im nächsten Bildschirm Enable CloudWatch Application Signals aus, um zur CloudWatch Konsole zurückzukehren und den Vorgang abzuschließen.
-
Es gibt zwei Optionen, um Ihre Anwendungen für Application Signals zu aktivieren. Aus Konsistenzgründen wird die Auswahl einer Option pro Cluster empfohlen.
Die Konsolenoption ist einfacher. Wenn Sie diese Methode verwenden, werden Ihre Pods sofort neu gestartet.
Die Methode Annotate Manifest File gibt Ihnen mehr Kontrolle darüber, wann Ihre Pods neu gestartet werden. Sie kann Ihnen auch dabei helfen, Ihr Monitoring dezentraler zu verwalten, wenn Sie es nicht zentralisieren möchten.
Anmerkung
Wenn Sie Anwendungssignale für eine Node.js Anwendung mit ESM aktivieren, fahren Sie stattdessen mit fort. Eine Node.js Anwendung mit dem ESM-Modulformat einrichten
Wählen Sie Nach Abschluss Services anzeigen. Dadurch gelangen Sie zur Services-Ansicht von Application Signals, in der Sie die Daten sehen können, die Application Signals sammelt. Es kann einige Minuten dauern, bis Daten angezeigt werden.
Um Application Signals in einem anderen Amazon-EKS-Cluster zu aktivieren, wählen Sie auf dem Services-Bildschirm die Option Application Signals aktivieren.
Weitere Informationen über die Services-Ansicht finden Sie unter Den Betriebsstatus Ihrer Anwendungen mit Application Signals überwachen.
Anmerkung
Wenn Sie einen Pre-Fork-Server (WSGI oder ASGI) wie Gunicorn, uWSGI oder Uvicorn für Ihre Python-Anwendung verwenden, finden Sie unter Informationen zur Funktionsweise von Application Signals. Keine Anwendungssignaldaten für eine Python-Anwendung, die einen Pre-Fork-Server (WSGI oder ASGI) verwendet
Wir haben auch andere Punkte ermittelt, die Sie bei der Aktivierung von Python-Anwendungen für Application Signals berücksichtigen sollten. Weitere Informationen finden Sie unter Die Python-Anwendung wird nicht gestartet, nachdem Application Signals aktiviert wurde.
Eine Node.js Anwendung mit dem ESM-Modulformat einrichten
Wir bieten eingeschränkten Support für Node.js Anwendungen mit dem ESM-Modulformat. Details hierzu finden Sie unter Bekannte Einschränkungen Node.js bei ESM.
Für das ESM-Modulformat funktioniert die Aktivierung von Anwendungssignalen über die Konsole oder durch Kommentieren der Manifestdatei nicht. Überspringen Sie Schritt 8 des vorherigen Verfahrens und gehen Sie stattdessen wie folgt vor.
Um Anwendungssignale für eine Node.js Anwendung mit ESM zu aktivieren
Installieren Sie die entsprechenden Abhängigkeiten für Ihre Node.js Anwendung für die automatische Instrumentierung:
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation npm install @opentelemetry/instrumentation@0.54.0Fügen Sie der Dockerfile für Ihre Anwendung die folgenden Umgebungsvariablen hinzu und erstellen Sie das Image.
... ENV OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true ENV OTEL_TRACES_SAMPLER_ARG='endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000' ENV OTEL_TRACES_SAMPLER='xray' ENV OTEL_EXPORTER_OTLP_PROTOCOL='http/protobuf' ENV OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://cloudwatch-agent.amazon-cloudwatch:4316/v1/traces' ENV OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT='http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics' ENV OTEL_METRICS_EXPORTER='none' ENV OTEL_LOGS_EXPORTER='none' ENV NODE_OPTIONS='--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs' ENV OTEL_SERVICE_NAME='YOUR_SERVICE_NAME' #replace with a proper service name ENV OTEL_PROPAGATORS='tracecontext,baggage,b3,xray' ... # command to start the application # for example # CMD ["node", "index.mjs"]Fügen Sie die Umgebungsvariablen
OTEL_RESOURCE_ATTRIBUTES_POD_NAME,OTEL_RESOURCE_ATTRIBUTES_NODE_NAME,OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME,POD_NAMESPACEundOTEL_RESOURCE_ATTRIBUTESzur Bereitstellungs-YAML-Datei für die Anwendung hinzu. Beispiel:apiVersion: apps/v1 kind: Deployment metadata: name: nodejs-app labels: app: nodejs-app spec: replicas: 2 selector: matchLabels: app: nodejs-app template: metadata: labels: app: nodejs-app # annotations: # make sure this annotation doesn't exit # instrumentation.opentelemetry.io/inject-nodejs: 'true' spec: containers: - name: nodejs-app image:your-nodejs-application-image#replace with a proper image uri imagePullPolicy: Always ports: - containerPort: 8000 env: - name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME valueFrom: fieldRef: fieldPath: metadata.labels['app'] # Assuming 'app' label is set to the deployment name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: OTEL_RESOURCE_ATTRIBUTES value: "k8s.deployment.name=$(OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME),k8s.namespace.name=$(POD_NAMESPACE),k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME),k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)"Stellen Sie die Node.js Anwendung im Cluster bereit.
Nachdem Sie Ihre Anwendungen auf den Amazon EKS-Clustern aktiviert haben, können Sie den Zustand Ihrer Anwendung überwachen. Weitere Informationen finden Sie unter Den Betriebsstatus Ihrer Anwendungen mit Application Signals überwachen.
Aktivieren Sie Anwendungssignale auf einem Amazon EKS-Cluster mithilfe der erweiterten Konfiguration des CloudWatch Observability-Add-ons
Standardmäßig wird das OpenTelemetry (OTEL) -basierte Application Performance Monitoring (APM) über Application Signals aktiviert, wenn entweder das CloudWatch Observability EKS-Add-on (V5.0.0 oder höher) oder das Helm-Diagramm installiert wird. Sie können spezifische Einstellungen mithilfe der erweiterten Konfiguration für das Amazon-EKS-Add-on weiter anpassen oder indem Sie Werte mit dem Helm-Chart überschreiben.
Anmerkung
Wenn Sie eine OpenTelemetry (OTEL) -basierte APM-Lösung verwenden, wirkt sich die Aktivierung von Application Signals auf Ihr vorhandenes Observability-Setup aus. Überprüfen Sie Ihre aktuelle Implementierung, bevor Sie fortfahren. Informationen zur Beibehaltung Ihres vorhandenen APM-Setups nach dem Upgrade auf V5.0.0 oder zu einem späteren Zeitpunkt finden Sie unterMelden Sie sich von Application Signals ab.
CloudWatch Observability bietet Add-on außerdem zusätzliche, fein abgestimmte Kontrollmöglichkeiten, mit denen bestimmte Dienste je nach Bedarf in die neue erweiterte Konfiguration aufgenommen oder ausgeschlossen werden können. Weitere Informationen finden Sie unter Aktivierung von APM über Application Signals für Ihren Amazon EKS-Cluster.
Aktivieren Sie Anwendungssignale auf Amazon EKS mit AWS CDK
Wenn Sie Application Signals in diesem Konto noch nicht aktiviert haben, müssen Sie Application Signals die Berechtigungen gewähren, die es benötigt, um Ihre Services zu erkennen. Siehe Application Signals in Ihrem Konto aktivieren.
Application Signals für Ihre Anwendungen aktivieren.
import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib'; const cfnDiscovery = new applicationsignals.CfnDiscovery(this, 'ApplicationSignalsServiceRole', { } );Die CloudFormation Discovery-Ressource gewährt Application Signals die folgenden Berechtigungen:
-
xray:GetServiceGraph -
logs:StartQuery -
logs:GetQueryResults -
cloudwatch:GetMetricData -
cloudwatch:ListMetrics -
tag:GetResources
Weitere Informationen über diese Rolle finden Sie unter Service-linked Rollenberechtigungen für CloudWatch Anwendungssignale.
-
Das
amazon-cloudwatch-observability-Add-on installieren.Erstellen Sie eine IAM-Rolle mit dem
CloudWatchAgentServerPolicyund dem OIDC, die dem Cluster zugeordnet sind.const cloudwatchRole = new Role(this, 'CloudWatchAgentAddOnRole', { assumedBy: new OpenIdConnectPrincipal(cluster.openIdConnectProvider), managedPolicies: [ManagedPolicy.fromAwsManagedPolicyName('CloudWatchAgentServerPolicy')], });
Installieren Sie das Add-on mit der oben erstellten IAM-Rolle.
new CfnAddon(this, 'CloudWatchAddon', { addonName: 'amazon-cloudwatch-observability', clusterName: cluster.clusterName, serviceAccountRoleArn: cloudwatchRole.roleArn });Fügen Sie dem
PodTemplateAbschnitt Ihrer Workload-Manifestdatei eine der folgenden Optionen hinzu.Sprache Datei Java
instrumentation.opentelemetry. io/inject-java: „wahr“
Python
Instrumentierung. Telemetrie öffnen. io/inject-python: „wahr“
.Net
Instrumentierung. Telemetrie öffnen. io/inject-dotnet: „wahr“
Node.js
Instrumentierung. Telemetrie öffnen. io/inject-nodejs: „wahr“
const deployment = { apiVersion: "apps/v1", kind: "Deployment", metadata: { name: "sample-app" }, spec: { replicas: 3, selector: { matchLabels: { "app": "sample-app" } }, template: { metadata: { labels: { "app": "sample-app" }, annotations: { "instrumentation.opentelemetry.io/inject-$LANG": "true" } }, spec: {...}, }, }, }; cluster.addManifest('sample-app', deployment)
Aktivieren Sie Anwendungssignale auf Amazon EKS mithilfe des Model Context Protocol (MCP)
Sie können den MCP-Server ( CloudWatch Application Signals Model Context Protocol) verwenden, um Application Signals auf Ihren Amazon EKS-Clustern durch Konversations-KI-Interaktionen zu aktivieren. Dies bietet eine Oberfläche in natürlicher Sprache für die Einrichtung der Überwachung von Anwendungssignalen.
Der MCP-Server automatisiert den Aktivierungsprozess, indem er Ihre Anforderungen versteht und die entsprechende Konfiguration generiert. Anstatt manuell den Schritten der Konsole zu folgen oder CDK-Code zu schreiben, können Sie einfach beschreiben, was Sie aktivieren möchten.
Voraussetzungen
Bevor Sie den MCP-Server zur Aktivierung von Anwendungssignalen verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
Eine Entwicklungsumgebung, die MCP unterstützt (wie Kiro, Claude Desktop, VSCode mit MCP-Erweiterungen oder andere Tools) MCP-compatible
Der in Ihrer CloudWatch IDE konfigurierte MCP-Server von Application Signals. Eine ausführliche Anleitung zur Einrichtung finden Sie in der Dokumentation zum CloudWatch Application Signals MCP Server.
Verwenden des MCP-Servers
Nachdem Sie den CloudWatch Application Signals MCP-Server in Ihrer IDE konfiguriert haben, können Sie mithilfe von Eingabeaufforderungen in natürlicher Sprache Anweisungen zur Aktivierung anfordern. Der Coding-Assistent kann zwar den Kontext aus Ihrer Projektstruktur ableiten, aber wenn Sie in Ihren Eingabeaufforderungen spezifische Details angeben, können Sie sicherstellen, dass Sie genauere und relevantere Anleitungen erhalten. Geben Sie Informationen wie Ihre Anwendungssprache, den Amazon EKS-Clusternamen und absolute Pfade zu Ihrer Infrastruktur und Ihrem Anwendungscode an.
Aufforderungen zu bewährten Verfahren (spezifisch und vollständig):
"Enable Application Signals for my Python service running on EKS. My app code is in /home/user/flask-api and IaC is in /home/user/flask-api/terraform" "I want to add observability to my Node.js application on EKS cluster 'production-cluster'. The application code is at /Users/dev/checkout-service and the Kubernetes manifests are at /Users/dev/checkout-service/k8s" "Help me instrument my Java Spring Boot application on EKS with Application Signals. Application directory: /opt/apps/payment-api CDK infrastructure: /opt/apps/payment-api/cdk"
Weniger effektive Aufforderungen:
"Enable monitoring for my app" → Missing: platform, language, paths "Enable Application Signals. My code is in ./src and IaC is in ./infrastructure" → Problem: Relative paths instead of absolute paths "Enable Application Signals for my EKS service at /home/user/myapp" → Missing: programming language
Schnelle Vorlage:
"Enable Application Signals for my [LANGUAGE] service on EKS. App code: [ABSOLUTE_PATH_TO_APP] IaC code: [ABSOLUTE_PATH_TO_IAC]"
Vorteile der Verwendung des MCP-Servers
Die Verwendung des CloudWatch Application Signals MCP-Servers bietet mehrere Vorteile:
Oberfläche in natürlicher Sprache: Beschreiben Sie, was Sie aktivieren möchten, ohne sich Befehle oder die Konfigurationssyntax merken zu müssen
Context-aware Anleitung: Der MCP-Server versteht Ihre spezifische Umgebung und gibt maßgeschneiderte Empfehlungen
Weniger Fehler: Die automatische Generierung der Konfiguration minimiert manuelle Tippfehler
Schnellere Einrichtung: Kommen Sie schneller von der Absicht zur Implementierung
Lerntool: Sehen Sie sich die generierten Konfigurationen an und erfahren Sie, wie Application Signals funktioniert
Weitere Ressourcen
Weitere Informationen zur Konfiguration und Verwendung des CloudWatch Application Signals MCP-Servers finden Sie in der MCP-Serverdokumentation.