View a markdown version of this page

Integración de las métricas de CloudWatch con Amazon Managed Service para Prometheus - Servicio administrado por Amazon para Prometheus

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 las métricas de CloudWatch con Amazon Managed Service para Prometheus

Disponer de todas las métricas en un solo lugar puede ser útil. Amazon Managed Service para Prometheus no realiza la ingesta de las métricas de Amazon CloudWatch de forma automática. Sin embargo, puede usar Amazon Data Firehose y AWS Lambda para enviar métricas de CloudWatch a Amazon Managed Service para Prometheus.

En esta sección se describe cómo instrumentar un flujo de métricas de Amazon CloudWatch y cómo utilizar Amazon Data Firehose y AWS Lambda para ingerir métricas en Amazon Managed Service para Prometheus.

Configurará una pila con AWS Cloud Development Kit (CDK) para crear una secuencia de entrega de Firehose, una función Lambda y un bucket de Amazon S3 para demostrar un escenario completo.

Infraestructura

Lo primero que debe hacer es configurar la infraestructura para esta receta.

Las secuencias de métricas de CloudWatch permiten reenviar los datos de las métricas de streaming a un punto de conexión 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

Para crear un espacio de trabajo de Amazon Managed Service para Prometheus
  1. 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
  2. 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
  1. Instale las dependencias

    Desde la raíz del repositorio aws-o11y-recipes, cambia el directorio a CWMetricStreamExporter mediante el siguiente comando:

    cd sandbox/CWMetricStreamExporter

    De ahora en adelante, se considerará la raíz del repositorio.

  2. Cambie el directorio a /cdk mediante el siguiente comando:

    cd cdk
  3. Instale las dependencias de CDK mediante el siguiente comando:

    npm install
  4. 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
  5. 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
  1. 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

    Cambie los nombres del flujo de entrega de Firehose y del bucket de Amazon S3 como prefiera.

  2. Para compilar el 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 de Lambda en Go e implementa el CDK en CloudFormation.

  3. Para completar la implementación, revise y acepte los cambios de IAM que requiera la pila.

  4. (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.

Creación de una secuencia de Amazon CloudWatch

Ahora que dispone de una función de Lambda para administrar las métricas, puede crear la secuencia de métricas desde Amazon CloudWatch.

Para crear una secuencia de métricas personalizada en CloudWatch
  1. Diríjase a la consola de CloudWatch, en https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList, y seleccione Crear secuencia de métricas.

  2. Seleccione las métricas necesarias, ya sea todas o solo las de los espacios de nombres seleccionados.

  3. En Configuration, elija Seleccionar una Firehose existente propiedad de la cuenta.

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

  5. Cambie el formato de salida a JSON.

  6. Asigne a la secuencia de métricas un nombre que tenga sentido.

  7. Elija Create metric stream (Crear flujo métrico).

  8. (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.

Las métricas se están transmitiendo ahora de Amazon CloudWatch a Amazon Managed Service para Prometheus.

Eliminación

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
  1. Comience por eliminar la pila de CloudFormation con los siguientes comandos:

    cd cdk cdk destroy
  2. 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`
  3. Por último, elimine la secuencia de métricas de Amazon CloudWatch mediante la consola de Amazon CloudWatch.