Datadog

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

Datadog

Aprende a integrar los errores del backend de Datadog con las grabaciones de sesión de OpenReplay para ampliar tus capacidades de monitoreo y depuración.

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

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

2. Configurar la integración de Datadog en OpenReplay

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

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

Habilitar la integración de Datadog

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

Introducir las credenciales de Datadog

Section titled Introducir las credenciales de Datadog

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

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

3. Propagar openReplaySession.id

Section titled 3. Propagar 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 utilizando un encabezado HTTP personalizado.

Frontend: Incluir openReplaySession.id en las solicitudes a la API

Section titled Frontend: Incluir openReplaySession.id en las solicitudes a 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: Incluir openReplaySession.id en los logs

Section titled Backend: Incluir openReplaySession.id en los logs

A continuación se muestra un ejemplo en Python que utiliza 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.