Datadog

Comment intégrer Datadog à OpenReplay et visualiser les erreurs backend aux côtés des rejeux de session.

Datadog

Découvrez comment intégrer les erreurs backend de Datadog aux rejeux de session d’OpenReplay afin d’étendre vos capacités de surveillance et de débogage.

1. Générer la clé API et la clé d’application Datadog

Section titled 1. Générer la clé API et la clé d’application Datadog
  1. Allez dans Datadog > Integrations > APIs et générez la clé API, ou utilisez celle qui existe déjà.
  2. Sur la même page, cliquez sur Application Keys et générez une nouvelle clé d’application.

2. Configurer l’intégration Datadog dans OpenReplay

Section titled 2. Configurer l’intégration Datadog dans OpenReplay

Dans votre compte OpenReplay, suivez ces 3 étapes pour finaliser les corrélations entre les rejeux de session et les erreurs backend de Datadog.

Activer l’intégration Datadog

Section titled Activer l’intégration Datadog
  1. Allez dans Preferences > Integrations dans OpenReplay.
  2. Sélectionnez l’onglet Backend Logging.
  3. Sélectionnez le projet pour lequel vous souhaitez activer l’intégration Datadog : repérez la carte de l’intégration Datadog > cliquez dessus.

Saisir les identifiants Datadog

Section titled Saisir les identifiants Datadog

Dans la barre latérale de l’intégration Datadog, saisissez :

  1. La clé API Datadog
  2. La clé d’application
  1. Cliquez sur Add pour tester la connexion

3. Propager openReplaySession.id

Section titled 3. Propager openReplaySession.id

Pour relier un événement Datadog à la session utilisateur enregistrée, un identifiant de session unique openReplaySession.id doit être propagé de votre frontend vers votre backend à chaque requête que vous souhaitez suivre. Cela peut être réalisé à l’aide d’un en-tête HTTP personnalisé.

Frontend : Inclure openReplaySession.id dans les requêtes API

Section titled Frontend : Inclure openReplaySession.id dans les requêtes 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 : Inclure openReplaySession.id dans les logs

Section titled Backend : Inclure openReplaySession.id dans les logs

Voici un exemple en Python utilisant le module logging pour inclure automatiquement openReplaySession.id dans vos 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 vous rencontrez des problèmes, rejoignez notre Slack ou consultez notre Forum et obtenez de l’aide auprès de notre communauté.