Instrumentar un método personalizado para obtener una visibilidad profunda de tu lógica de negocio

8 minutos para completarlo

Vista de análisis
Nota: En esta página se describe el uso de OpenTracing para la instrumentación personalizada de aplicaciones. OpenTracing está obsoleto. Los conceptos presentados aquí todavía se aplican, pero, en su lugar, sigue las instrucciones y ejemplos de Instrumentación personalizada con OpenTelemetry para tu idioma.

Para proporcionarte una visibilidad profunda de tu lógica de negocio, la APM de Datadog te permite personalizar los tramos (spans) que componen tus rastreos en función de tus necesidades e implementación. Esto te permite rastrear cualquier método de tu código base e incluso componentes específicos dentro de los métodos. Puedes utilizar esto para optimizar y monitorizar áreas críticas de tu aplicación en la granularidad que funcione para ti.

Datadog instrumenta muchos marcos no incluidos, como servicios web, bases de datos y cachés y te permite instrumentar tu propia lógica de negocio para tener la visibilidad exacta que necesitas. Mediante la creación de tramos para los métodos, puedes optimizar el tiempo y realizar un rastreo de los errores utilizando la gráfica de llamas y las monitorizaciones APM.

Instrumentación de tu código

Follow the example to get your code instrumented (Seguir el ejemplo para instrumentar el código).

En estos ejemplos se rastrea todo el método BackupLedger.write para medir su tiempo de ejecución y su estado.BackupLedger.write es una acción que guarda en la memoria el estado actual de un libro de contabilidad de transacciones antes de hacer una llamada a una base de datos de pagos para contabilizar un nuevo cargo de un cliente. Esto sucede cuando se accede al endpoint charge del servicio de pagos:

Vista de análisis

El tramo http.request POST /charge/ está tardando mucho sin tener ningún tramo secundario directo. Esta es una pista de que esta solicitud requiere más instrumentación para conocer mejor su comportamiento. Según el lenguaje de programación que utilices, deberás decorar tus funciones de forma diferente:

En Ruby, la APM Datadog te permite instrumentar tu código para generar tramos personalizados instrumentando bloques de código específicos.

Este ejemplo crea un nuevo tramo para la llamada al método BackupLedger.write y un tramo secundario para cada transacción contabilizada en el libro de contabilidad con una etiqueta personalizada con el ID de transacción específico.

require 'ddtrace'

class BackupLedger

  def write(transactions)
    # Use global `Datadog::Tracing.trace` to trace blocks of inline code
    Datadog::Tracing.trace('BackupLedger.write') do |method_span|
      transactions.each do |transaction|
        Datadog::Tracing.trace('BackupLedger.persist') do |span|
          # Add custom metadata to the "persist_transaction" span
          span.set_tag('transaction.id', transaction.id)
          ledger[transaction.id] = transaction
        end
      end
    end

    # [...]
  end
end

Aprovechar la UI de Datadog para ver tus nuevos tramos personalizados

Ahora que has instrumentado tu lógica de negocio, es el momento de ver los resultados en la UI de la APM Datadog .

  1. Ve al Service Catalog (Catálogo de servicios) y haz clic en el servicio al que has añadido tramos personalizados, para abrir su página de servicios. En la página de servicios, haz clic en el specific resource (recurso específico) que has añadido, cambia el filtro de tiempo a The past 15 minutes y desplázate hacia abajo a la tabla de resumen de tramos:

    Tabla de resumen de tramos

La tabla resumen tramos proporciona información agregada sobre los tramos que componen tus rastreos. Aquí puedes identificar tramos que se repiten una cantidad anormal de veces, lo cual indica algún bucle o ineficiencia de acceso a la base de datos (como el problema n+1).

  1. Desplázate hacia abajo a Traces list (Lista de rastreos) y haz clic en uno de tus rastreos.

    Vista de análisis

Has añadido con éxito tramos personalizados a tu código base, y has hecho que estén disponibles en la gráfica de llamas y en Análisis de la aplicación. Este es el primer paso para aprovechar al máximo las herramientas de Datadog. Ahora puedes añadir etiquetas personalizados a tus tramos para hacerlos aún más potentes.

Leer más

PREVIEWING: aliciascott/DOCS-10258