Note:

Supervisión de aplicaciones mediante OCI Application Performance Monitoring y OpenTelemetry

Introducción

Con frecuencia, la supervisión de aplicaciones que varían en los componentes de la pila puede resultar difícil. Un enfoque unificado para supervisar estos componentes permite una visibilidad integral y estadísticas sobre los problemas que puedan surgir. OpenTelemetry es un estándar del sector para recopilar datos de rastreo, métricas y logs para la mayoría de los lenguajes de programación. Puede proporcionar estadísticas potentes cuando se combina con los servicios de observación y gestión de Oracle Cloud Infrastructure (OCI), como OCI Application Performance Monitoring y OCI Logging Analytics.

Diagrama que muestra el flujo de datos OpenTelemetry.

OCI Application Performance Monitoring proporciona una amplia visibilidad del rendimiento de las aplicaciones y la capacidad de diagnosticar incidencias rápidamente para ofrecer un nivel de servicio consistente. Esto incluye la supervisión de los diversos componentes y la lógica de aplicación en los clientes, los servicios de terceros y los niveles informáticos de backend, de forma local o en la nube.

Diagrama que muestra la visión general del servicio OCI Application Performance Monitoring.

OCI Logging Analytics es una solución en la nube de OCI que indexa, enriquece, agrega, explora, busca, analiza, correlaciona, visualiza y supervisa todos los datos de log de las aplicaciones y la infraestructura del sistema. Obtenga estadísticas potentes de los datos de log mediante modelos de IA/AA seleccionados creados en OCI Logging Analytics.

Diagrama que muestra la visión general del servicio OCI Logging Analytics.

OpenTelemetry tiene varias implementaciones para diferentes lenguajes de programación y se actualiza o desarrolla constantemente. El propósito de este marco es tener una forma unificada y estandarizada de recopilar y enviar datos de monitoreo.

En este tutorial, aprenderá a instrumentar una aplicación con OpenTelemetry y a exportar los datos recopilados a servicios de OCI como OCI Application Performance Monitoring y OCI Logging Analytics.

Objetivos

Requisitos

Ejemplo de GitHub

Si desea implementar la supervisión para las aplicaciones MERN/MEAN/MEVN, utilice el repositorio GitHub oci-observability-and-management. Este repositorio incluye archivos para:

Tarea 1: Configuración de OCI Application Performance Monitoring

  1. Creación de un dominio de OCI Application Performance Monitoring (APM)

    Nota: Revise la documentación de OCI Application Performance Monitoring para conocer las tareas necesarias.

    1. Conéctese a la consola de OCI y vaya a Observability & Management, Application Performance Management, Administration para abrir la página de administración de OCI Application Performance Monitoring.

    2. Haga clic en Crear dominio APM e introduzca un nombre de dominio. Observe la siguiente información que se encuentra en la página de dominio de OCI Application Performance Monitoring.

      • Punto final de carga de datos: URL para enviar datos a OCI Application Performance Monitoring.

      • Clave de datos pública: se utiliza con el agente de explorador de OCI Application Performance Monitoring.

      • Clave de datos privada: para conectarse con recopiladores de datos como OpenTelemetry.

      Imagen en la que se muestran los detalles del dominio de OCI Application Performance Monitoring.

  2. Preparar una solicitud

    Para supervisar el frontend de una aplicación, instrumente el agente de explorador de OCI Application Performance Monitoring. Para obtener más información, consulte Pasos de instrumentación de explorador/cliente.

    Instrumentación de servidor

    • Para obtener rastreos integrales, se necesita la propagación de contexto de los rastreos frontend de un explorador/cliente al servidor. Una cosa a tener en cuenta al hacerlo es asegurarse de que haya cabeceras HTTP para proporcionar el contexto. Por defecto, OpenTelemetry utiliza W3C (traceparent) para propagar automáticamente el contexto. Hay otros tipos de cabecera que se pueden utilizar, pero deben contabilizarse en el código de aplicación.

      Diagrama de datos de cabecera HTTP para propagación de contexto.

    • Asegúrese de agregar el siguiente código con el fragmento JavaScript que ejecuta la instrumentación del explorador/cliente.

      window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
      
    • Instruya la instrumentación automática o el backend manual según lo que esté disponible, consulte pasos del lenguaje de programación.

    Ejemplos en GitHub

Tarea 2: Configuración de OCI Logging Analytics

  1. Enviar logs de aplicación

    Envíe logs de aplicación a OCI Logging Analytics, lo que permite correlacionar rastreos, métricas y logs para obtener una visibilidad completa de la aplicación. El registro se puede activar mediante bibliotecas de registro estándar y agregador de logs personalizado. El agregador de logs se debe crear para enviar los logs mediante los puntos finales de REST o SDK proporcionados por OCI, como se muestra.

    Diagrama que muestra el flujo de datos de log.

  2. Creación de una clave de firma de API

    1. Vaya a la consola de OCI y vaya a Usuario, Configuración de usuario.

    2. Seleccione Claves de API en Recursos.

    3. Haga clic en Agregar clave de API, Generar par de claves de API, Descargar clave privada y Agregar.

    4. Copie el contenido de Configuration File Preview y haga clic en Close.

      Imagen de una vista previa de archivo de configuración en OCI.

  3. Creación de un Archivo de Configuración

    Cree un directorio (.oci) y un archivo de configuración con contenido de la vista previa del archivo de configuración y la ruta al archivo de clave privada. A continuación se muestra un ejemplo del archivo de configuración.

    [DEFAULT]
    user= [User OCID]
    fingerprint= [API Key Fingerprint]
    tenancy= [Tenancy OCID]
    region= [Region]
    key_file= [Path to Private Key File]
    
  4. Creación de un analizador de log

    1. Vaya a la consola de OCI y vaya a Observación y gestión, Logging Analytics, Administración.

    2. Haga clic en Analizadores, Crear Analizador y seleccione Tipo como JSON.

    3. Introduzca el contenido del log JSON de ejemplo, analizará y extraerá campos y lo asignará a nombres de campo específicos y haga clic en Guardar cambios.

      Imagen de una configuración de analizador de logs en OCI.

  5. Creación de un origen de log

    1. Vaya a la consola de OCI y vaya a Logging Analytics, Administración, Orígenes, Crear origen.

    2. Introduzca Tipo de origen como File y Tipos de entidad como Host (Linux).

    3. En Analizador específico, seleccione el analizador creado en la tarea 2.4 y haga clic en Crear origen.

      Imagen de los detalles de un origen de log en OCI.

  6. Crear un grupo de logs

    1. Vaya a la consola de OCI y vaya a Logging Analytics, Administración, Grupos de logs, Crear grupo de logs.

    2. Introduzca Nombre, Descripción del grupo de logs y haga clic en Crear.

      Nota: Tenga en cuenta Oracle Cloud Identity (OCID) del grupo de logs que se utilizará más adelante.

      Imagen de los detalles de un grupo de logs en OCI.

      Imagen que resalta un OCID de grupo de logs en OCI.

      Imagen que resalta un OCID de compartimento en OCI.

  7. Obtener los detalles del espacio de nombres

    1. Vaya a la consola de OCI, vaya a Identidad, Compartimentos, haga clic en el compartimento donde se crea el origen de log y copie el OCID del compartimento.

    2. Abra Cloud Shell y ejecute el siguiente comando para obtener el espacio de nombres.

      oci os ns get -c compartmentID
      

    Imagen en la que se muestra cómo obtener los detalles del espacio de nombres en una consola de OCI.

  8. Creación de un agregador de logs

    Se puede crear un agregador de logs personalizado mediante los SDK de OCI Logging Analytics proporcionados para diferentes lenguajes de programación como Java, Python, .Net, TypeScript/JavaScript, Go y Ruby o utilizar puntos finales de OCI API Rest. Para obtener más información, consulte Software Development Kits (SDK) y API Reference and Endpoints.

    Ejemplo en GitHub: Apendiente de log: JavaScript (pila MERN).

Anote los siguientes parámetros necesarios para inicializar y enviar logs a OCI Logging Analytics desde los pasos anteriores.

Una vez que los registros de log se hayan creado para diferentes niveles de log (depuración, información, advertencia y error) mediante el agregador de logs, se enviarán a OCI Logging Analytics y podrá ver los registros de log en Log Explorer como se muestra a continuación.

Vista del explorador de logs en OCI Logging Analytics.

Tarea 3: Correlacionar rastreos y logs

OpenTelemetry incluye TraceId y SpanId en los registros de log y esto permite correlacionar directamente logs y rastreos que se corresponden con el mismo contexto de ejecución. La aplicación rastrea y abarca los flujos a OCI Application Performance Monitoring y se conecta al servicio OCI Logging Analytics. OCI Application Performance Monitoring proporciona una forma sencilla de navegar desde rastreos y períodos hasta logs en OCI Logging Analytics con un solo clic mediante una configuración de aumento de detalle.

Los detalles son enlaces a otros servicios de OCI u otros servicios personalizados que utilizan URL personalizables, incluidos atributos de períodos (por ejemplo: loganalytics/explorer?search=<OciInstanceId>, donde ociInstanceId es un atributo de período). Siga los siguientes pasos para configurar desgloses en OCI Application Performance Monitoring.

GIF que muestra un ejemplo de aumento de detalle de OCI Application Performance Monitoring a OCI Logging Analytics.

Tarea 4: Creación de un panel de control personalizado

Una vez que los datos y las métricas de rastreo estén en OCI, utilícelos para representarlos visualmente. Crear un panel de control personalizado es fácil, solo tiene que arrastrar y soltar los widgets necesarios y modificar los datos de origen (datos de métricas, rastreo o log).

Para obtener más información sobre los paneles de control personalizados, consulte:

Ejemplo de panel de control creado para una aplicación MERN.

Imagen en la que se muestra un panel de control personalizado en OCI Application Performance Monitoring.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.