Habilitación de Application Signals en los clústeres de Amazon EKS
CloudWatch Application Signals es compatible con las aplicaciones Java, Python, Node.js y .NET. Para habilitar Application Signals en sus aplicaciones en un clúster existente de Amazon EKS, puede utilizar Consola de administración de AWS, AWS CDK o la configuración avanzada de Auto monitor del complemento de observabilidad de CloudWatch.
Temas
Habilitación de Application Signals en un clúster de Amazon EKS con la consola
Para habilitar CloudWatch Application Signals en las aplicaciones de un clúster de Amazon EKS existente, siga las instrucciones de esta sección.
importante
Si ya utiliza OpenTelemetry con una aplicación que pretende habilitar para Application Signals, consulte Sistemas compatibles antes de activar Application Signals.
Para habilitar Application Signals para aplicaciones en un clúster de Amazon EKS existente
nota
Si aún no ha habilitado Application Signals, siga las instrucciones que se indican en Habilitación de Application Signals en su cuenta y siga el procedimiento que se indica a continuación.
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. Seleccione Application Signals.
En Especificar plataforma, elija EKS.
En Seleccionar un clúster EKS, seleccione el clúster en el que desee habilitar Application Signals.
Si este clúster aún no tiene habilitado el complemento Observabilidad de Amazon CloudWatch en EKS, se le solicitará que lo habilite. En este caso, realice lo siguiente:
Seleccione Añadir el complemento de observabilidad CloudWatch de EKS. Aparece la consola de Amazon EKS.
Seleccione la casilla Observabilidad de Amazon CloudWatch y elija Siguiente.
El complemento CloudWatch Observability de EKS brinda tanto a Application Signals como a Información de contenedores de CloudWatch capacidad de observabilidad mejorada para Amazon EKS. Para obtener más información sobre Información de contenedores, consulte Información de contenedores.
Seleccione la versión más reciente del complemento para instalar.
Seleccione un rol de IAM para usarlo en el complemento. Si elige Heredar del nodo, asocie los permisos correctos al rol de IAM utilizado por los nodos de trabajo. Sustituya
my-worker-node-rolepor el rol de IAM que utilizan sus nodos de trabajo de Kubernetes.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/AWSXRayWriteOnlyAccessSi desea crear un rol de servicio para utilizar el complemento, consulteInstalación del agente de CloudWatch con el complemento de observabilidad de EKS de Amazon CloudWatch o el gráfico de Helm.
Seleccione Siguiente, confirme la información de la pantalla y seleccione Crear.
En la siguiente pantalla, seleccione Habilitar CloudWatch Application Signals para volver a la consola de CloudWatch y finalizar el proceso.
-
Hay dos opciones para habilitar sus aplicaciones para Application Signals. Para mantener la coherencia, recomendamos elegir una opción por clúster.
La opción de consola es más sencilla. El uso de este método hace que los pods se reinicien inmediatamente.
El método Annotate Manifest File le brinda más control sobre cuándo se reinician sus pods y también puede ayudarlo a administrar su supervisión de una manera más descentralizada si no desea centralizarlo.
nota
Si desea habilitar Application Signals para una aplicación Node.js con ESM, consulte Configuración de una aplicación Node.js con el formato de módulo ESM.
Elija Ver servicios cuando haya terminado. Esto lo llevará a la vista de los servicios de Application Signals, donde podrá ver los datos que Application Signals recopila. Es posible que se tarde unos minutos en mostrar los datos.
Para habilitar Application Signals en otro clúster de Amazon EKS, seleccione Habilitar Application Signals en la pantalla Servicios.
Para obtener más información sobre la vista de los Servicios, consulte Monitoreo del estado operativo de sus aplicaciones con Application Signals.
nota
Si utiliza un servidor WSGI para su aplicación de Python, consulte No hay datos de Application Signals para la aplicación de Python que usa un servidor WSGI para obtener información sobre cómo hacer que Application Signals funcione.
También hemos identificado otras consideraciones que debe tener en cuenta al habilitar las aplicaciones de Python para Application Signals. Para obtener más información, consulte La aplicación Python no se inicia después de activar Application Signals.
Configuración de una aplicación Node.js con el formato de módulo ESM
La compatibilidad ofrecida para las aplicaciones Node.js con el formato de módulo ESM es limitada. Para obtener más información, consulte Limitaciones conocidas de Node.js con ESM.
Para el formato de módulo ESM, no es posible habilitar Application Signals a través de la consola ni anotando el archivo de manifiesto. Omita el paso 8 del procedimiento anterior y siga estos pasos:
Para habilitar Application Signals para una aplicación Node.js con ESM
Instale en su aplicación Node.js las dependencias pertinentes para la autoinstrumentación:
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation npm install @opentelemetry/instrumentation@0.54.0Agregue las siguientes variables de entorno al archivo Dockerfile de su aplicación y cree la imagen.
... 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"]Agregue las variables de entorno
OTEL_RESOURCE_ATTRIBUTES_POD_NAME,OTEL_RESOURCE_ATTRIBUTES_NODE_NAME,OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME,POD_NAMESPACEyOTEL_RESOURCE_ATTRIBUTESal archivo de implementación yaml de la aplicación. Por ejemplo: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)"Implemente la aplicación Node.js en el clúster.
Una vez que haya habilitado sus aplicaciones en los clústeres de Amazon EKS, podrá supervisar el estado de las mismas. Para obtener más información, consulte Monitoreo del estado operativo de sus aplicaciones con Application Signals.
Habilitación de Application Signals en un clúster de Amazon EKS mediante la configuración avanzada del complemento de observabilidad de CloudWatch
De forma predeterminada, la supervisión del rendimiento de las aplicaciones (APM) basada en OpenTelemetry (OTEL) se activa mediante Application Signals al instalar el complemento de observabilidad de EKS de CloudWatch (versión 5.0.0 o posterior) o el gráfico de Helm. Puede personalizar aún más los ajustes específicos utilizando la configuración avanzada para el complemento de Amazon EKS o anulando valores con el gráfico de Helm.
nota
Si utiliza una solución de APM basada en OpenTelemetry (OTEL), la activación de Application Signals afectará a la configuración de observabilidad actual. Revise la implementación actual antes de continuar. Para mantener la configuración de APM actual tras la actualización a la versión 5.0.0 o posterior, consulte Exclusión de Application Signals.
El complemento de observabilidad de CloudWatch también proporciona un control adicional más preciso para incluir o excluir servicios específicos según sea necesario en la nueva configuración avanzada. Para obtener más información, consulte Activación de APM a través de Application Signals para el clúster de Amazon EKS .
Habilitación de Application Signals en Amazon EKS con el AWS CDK
Si aún no ha activado Application Signals en esta cuenta, debe conceder a Application Signals los permisos que necesita para detectar los servicios. Consulte Habilitación de Application Signals en su cuenta.
Habilite Application Signals para sus aplicaciones
import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib'; const cfnDiscovery = new applicationsignals.CfnDiscovery(this, 'ApplicationSignalsServiceRole', { } );El recurso Discovery de CloudFormation otorga a Application Signals los siguientes permisos:
-
xray:GetServiceGraph -
logs:StartQuery -
logs:GetQueryResults -
cloudwatch:GetMetricData -
cloudwatch:ListMetrics -
tag:GetResources
Para obtener más información acerca de este rol, consulte Permisos de roles vinculados a un servicio para CloudWatch Application Signals.
-
Instale el complemento
amazon-cloudwatch-observability.Cree un rol de IAM con la
CloudWatchAgentServerPolicyy el OIDC asociado al clúster.const cloudwatchRole = new Role(this, 'CloudWatchAgentAddOnRole', { assumedBy: new OpenIdConnectPrincipal(cluster.openIdConnectProvider), managedPolicies: [ManagedPolicy.fromAwsManagedPolicyName('CloudWatchAgentServerPolicy')], });
Instale el complemento con el rol de IAM creado anteriormente.
new CfnAddon(this, 'CloudWatchAddon', { addonName: 'amazon-cloudwatch-observability', clusterName: cluster.clusterName, serviceAccountRoleArn: cloudwatchRole.roleArn });Añada una de las siguientes opciones en la sección
PodTemplatedel archivo de manifiesto de carga de trabajo.Idioma Archivos Java
instrumentation.opentelemetry.io/inject-java: "true"
Python
instrumentation.opentelemetry.io/inject-python: "true"
.Net
instrumentation.opentelemetry.io/inject-dotnet: "true"
Node.js
instrumentation.opentelemetry.io/inject-nodejs: "true"
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)
Activación de Application Signals en Amazon EKS con el protocolo de contexto para modelos (MCP)
Puede usar el servidor Protocolo de contexto para modelos (MCP) de CloudWatch Application Signals para activar Application Signals en clústeres de Amazon EKS mediante interacciones de IA conversacional. Proporciona una interfaz de lenguaje natural para configurar la supervisión de Application Signals.
El servidor MCP automatiza el proceso de activación al comprender sus requisitos y generar la configuración adecuada. En lugar de seguir manualmente los pasos de la consola o escribir el código del CDK, simplemente puede describir lo que desea activar.
Requisitos previos
Antes de usar el servidor MCP para activar Application Signals, asegúrese de lo siguiente:
Entorno de desarrollo compatible con MCP (como Kiro, Claude Desktop, VSCode con extensiones MCP u otras herramientas compatibles con MCP)
El servidor MCP de CloudWatch Application Signals configurado en el IDE. Para obtener instrucciones de configuración detalladas, consulte la documentación del servidor MCP de CloudWatch Application Signals
.
Uso del servidor MCP
Una vez que haya configurado el servidor MCP de CloudWatch Application Signals en el IDE, puede solicitar una guía de activación mediante instrucciones en lenguaje natural. Si bien el asistente de codificación puede inferir el contexto a partir de la estructura del proyecto, proporcionar detalles específicos en las instrucciones ayuda a garantizar una orientación más precisa y pertinente. Incluya información como el lenguaje de la aplicación, el nombre del clúster de Amazon EKS y las rutas absolutas a la infraestructura y al código de la aplicación.
Peticiones de prácticas recomendadas (específicas y completas):
"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"
Peticiones menos efectivas:
"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
Plantilla rápida:
"Enable Application Signals for my [LANGUAGE] service on EKS. App code: [ABSOLUTE_PATH_TO_APP] IaC code: [ABSOLUTE_PATH_TO_IAC]"
Beneficios de usar el servidor MCP
El uso del servidor MCP de CloudWatch Application Signals ofrece varias ventajas:
Interfaz en lenguaje natural: describa lo que desea activar sin memorizar comandos ni sintaxis de la configuración.
Guía adaptada al contexto: el servidor MCP comprende el entorno específico y proporciona recomendaciones personalizadas
Reducción de errores: la generación automática de configuraciones minimiza los errores de escritura manual.
Configuración más rápida: cambie de la intención a la implementación con mayor rapidez.
Herramienta de aprendizaje: vea las configuraciones generadas y comprenda cómo funciona Application Signals.
Recursos adicionales
Para obtener más información sobre la configuración y el uso del servidor MCP de CloudWatch Application Signals, consulte la documentación del servidor MCP