Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Integración de CloudWatch métricas con Amazon Managed Service para Prometheus
Tener todas tus métricas en un solo lugar puede ayudarte. Amazon Managed Service for Prometheus no ingiere automáticamente las métricas de Amazon. CloudWatch Sin embargo, puedes usar Amazon Data Firehose AWS Lambda para enviar CloudWatch métricas a Amazon Managed Service for Prometheus.
En esta sección se describe cómo instrumentar un flujo de CloudWatch métricas de Amazon y cómo utilizar Amazon Data Firehose, así como AWS Lambdacómo incorporar métricas en Amazon Managed Service for Prometheus.
Configurará una pila con el AWS Cloud Development Kit (CDK)
Infraestructura
Lo primero que debe hacer es configurar la infraestructura para esta receta.
CloudWatch los flujos métricos permiten reenviar los datos de métricas de streaming a un punto final HTTP o a un bucket de Amazon S3.
La configuración de la infraestructura constará de 4 pasos:
-
Configuración de requisitos previos
-
Creación de un espacio de trabajo de Amazon Managed Service para Prometheus
-
Instalación de dependencias
-
Implementación de la pila
Requisitos previos
-
AWS CLI Está instalado y configurado en su entorno.
-
TypeScript de AWS CDK instalado en el entorno.
-
Node.js y Go instalados en el entorno.
-
El repositorio github (
CWMetricsStreamExporter
) del exportador de CloudWatch métricas de AWS observabilidadse ha clonado en tu máquina local.
Para crear un espacio de trabajo de Amazon Managed Service para Prometheus
-
La aplicación de demostración de esta receta se ejecutará sobre Amazon Managed Service para Prometheus. Cree el espacio de trabajo de Amazon Managed Service para Prometheus con el comando siguiente:
aws amp create-workspace --alias prometheus-demo-recipe
-
Asegúrese de que el espacio de trabajo se haya creado con el siguiente comando:
aws amp list-workspaces
Para obtener más información sobre Amazon Managed Service para Prometheus, consulte la Guía de usuario de Amazon Managed Service para Prometheus.
Para instalar las dependencias
-
Instale las dependencias
Desde la raíz del repositorio
aws-o11y-recipes
, cambia el directorio aCWMetricStreamExporter
mediante el siguiente comando:cd sandbox/CWMetricStreamExporter
De ahora en adelante, se considerará la raíz del repositorio.
-
Cambie el directorio a
/cdk
mediante el siguiente comando:cd cdk
-
Instale las dependencias de CDK mediante el siguiente comando:
npm install
-
Vuelva a cambiar el directorio a la raíz del repositorio y, a continuación, cambie el directorio a
/lambda
mediante el siguiente comando:cd lambda
-
Una vez en la carpeta
/lambda
, instale las dependencias de Go mediante:go get
Ahora ya están instaladas todas las dependencias.
Para implementar la pila
-
En la raíz del repositorio, abra
config.yaml
y modifique la URL del espacio de trabajo de Amazon Managed Service para Prometheus reemplazando{workspace}
por el ID del espacio de trabajo recién creado y la región en la que se encuentra el espacio de trabajo de Amazon Managed Service para Prometheus.Por ejemplo, modifique lo siguiente con:
AMP: remote_write_url: "https://aps-workspaces.us-east-2.amazonaws.com/workspaces/{workspaceId}/api/v1/remote_write" region: us-east-2
Cambia los nombres de la transmisión de entrega de Firehose y del depósito de Amazon S3 a tu gusto.
-
Para compilar el código Lambda AWS CDK y el código Lambda, ejecute el siguiente comando en la raíz del repositorio:
npm run build
Este paso de compilación garantiza la creación del binario Go Lambda y, en él, despliega la CDK. CloudFormation
-
Para completar la implementación, revise y acepte los cambios de IAM que requiera la pila.
-
(Opcional) Puede comprobar si la pila se ha creado ejecutando el comando siguiente:
aws cloudformation list-stacks
En la lista aparecerá una pila llamada
CDK Stack
.
Crear una CloudWatch transmisión de Amazon
Ahora que tienes una función lambda para gestionar las métricas, puedes crear el flujo de métricas desde Amazon CloudWatch.
Para crear un flujo de CloudWatch métricas
-
Ve a la CloudWatch consola, en https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList
, y selecciona Crear flujo de métricas. -
Seleccione las métricas necesarias, ya sea todas o solo las de los espacios de nombres seleccionados.
-
En
Configuration
, elija Seleccionar una Firehose existente propiedad de la cuenta. -
Utilizará la Firehose creada anteriormente por el CDK. En el menú desplegable Seleccionar la secuencia de Kinesis Data Firehose, seleccione la secuencia creada anteriormente. Tendrá un nombre como
CdkStack-KinesisFirehoseStream123456AB-sample1234
. -
Cambie el formato de salida a JSON.
-
Asigne a la secuencia de métricas un nombre que tenga sentido.
-
Elija Create metric stream (Crear flujo métrico).
-
(Opcional) Para comprobar la invocación de la función de Lambda, vaya a la consola de Lambda
y elija la función KinesisMessageHandler
. Seleccione la pestaña Supervisar y la subpestaña Registros y, en Invocaciones recientes, debería haber entradas de la función de Lambda que se está activando.nota
Es posible que pasen hasta 5 minutos antes de que las invocaciones comiencen a mostrarse en la pestaña Supervisar.
Tus estadísticas se están transmitiendo ahora de Amazon CloudWatch a Amazon Managed Service for Prometheus.
Limpieza
Puede que desee limpiar los recursos que se han utilizado en este ejemplo. El siguiente procedimiento explica cómo hacerlo. Esto detendrá la secuencia de métricas que ha creado.
Para limpiar los recursos
-
Comience por eliminar la CloudFormation pila con los siguientes comandos:
cd cdk cdk destroy
-
Elimine el espacio de trabajo de Amazon Managed Service para Prometheus:
aws amp delete-workspace --workspace-id \ `aws amp list-workspaces --alias prometheus-sample-app --query 'workspaces[0].workspaceId' --output text`
-
Por último, elimina el flujo de CloudWatch métricas de Amazon con la CloudWatch consola de Amazon
.