Datadog

Cómo integrar Datadog con OpenReplay y ver los errores del backend junto a las repeticiones de sesión.

Datadog

Aprende cómo integrar los errores de backend de Datadog con las repeticiones de sesión de OpenReplay para ampliar tus capacidades de monitoreo y depuración.

1. Genera la API Key y la Application Key de Datadog

Section titled 1. Genera la API Key y la Application Key de Datadog
  1. Ve a Datadog > Integrations > APIs y genera la API Key, o usa la existente.
  2. En la misma página, haz clic en Application Keys y genera una nueva application key.

2. Configura la integración de Datadog en OpenReplay

Section titled 2. Configura la integración de Datadog en OpenReplay

En tu cuenta de OpenReplay, sigue estos 3 pasos para completar las correlaciones de las repeticiones de sesión con los errores del backend de Datadog.

Habilita la integración de Datadog

Section titled Habilita la integración de Datadog
  1. Ve a Preferences > Integrations en OpenReplay.
  2. Selecciona la pestaña Backend Logging.
  3. Selecciona el proyecto en el que quieres habilitar la integración de Datadog: Localiza la tarjeta de la integración de Datadog > Haz clic en ella.

Introduce las credenciales de Datadog

Section titled Introduce las credenciales de Datadog

En la barra lateral de la integración de Datadog introduce:

  1. API Key de Datadog
  2. Application Key
  1. Haz clic en Add para probar la conexión

3. Propaga openReplaySession.id

Section titled 3. Propaga openReplaySession.id

Para vincular un evento de Datadog con la sesión de usuario grabada, es necesario propagar un ID de sesión único openReplaySession.id desde tu frontend hacia tu backend en cada solicitud que quieras rastrear. Esto se puede hacer usando una cabecera HTTP personalizada.

Frontend: Incluye openReplaySession.id en las solicitudes de la API

Section titled Frontend: Incluye openReplaySession.id en las solicitudes de la API
// JavaScript Example for for Single Page Applications (SPA):
const sessionId = tracker.getSessionID(); 

const headers = {
  'Content-Type': 'application/json',
};

if (sessionId) {
  headers['openReplaySession.id'] = sessionId;
}

// Make the API request
fetch('https://www.your-backend.com/api/endpoint', {
  method: 'GET', // or 'POST', 'PUT', etc.
  headers,
  // ...other options
})
  .then(response => {
    // Handle response
  })
  .catch(error => {
    // Handle error
  });

Backend: Incluye openReplaySession.id en los logs

Section titled Backend: Incluye openReplaySession.id en los logs

A continuación se muestra un ejemplo en Python que usa el módulo logging para incluir automáticamente el openReplaySession.id en tus logs.

import logging
from flask import Flask, request, g

app = Flask(__name__)

# Configure the root logger
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

# Create a custom logging filter
class OpenReplayFilter(logging.Filter):
    def filter(self, record):
        session_id = getattr(g, 'openreplay_session_id', None)
        if session_id:
            record.msg = f"[openReplaySession.id={session_id}] {record.msg}"
        return True

# Add the filter to the logger
logger.addFilter(OpenReplayFilter())

@app.before_request
def before_request():
    # Extract the session ID from headers and store it in the Flask `g` object
    g.openreplay_session_id = request.headers.get('openReplaySession.id')

@app.route('/api/endpoint')
def api_endpoint():
    # Your logic here

    # Log an event with the session ID automatically included
    logger.info("Endpoint accessed")

    return 'Success', 200

@app.errorhandler(Exception)
def handle_exception(e):
    # Log the error with the session ID automatically included
    logger.error(f"Error: {str(e)}")
    return 'Internal Server Error', 500

if __name__ == '__main__':
    app.run()

Si encuentras algún problema, conéctate a nuestro Slack o visita nuestro Foro y obtén ayuda de nuestra comunidad.