Datadog

Comment intégrer Datadog à OpenReplay et voir 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 une API Key et une Application Key Datadog

Section titled 1. Générer une API Key et une Application Key Datadog
  1. Rendez-vous sur Datadog > Integrations > APIs et générez l’API Key, ou utilisez celle existante.
  2. Sur la même page, cliquez sur Application Keys et générez une nouvelle application key.

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. Rendez-vous 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. L’API Key Datadog
  2. L’Application Key
  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é depuis votre frontend vers votre backend lors de 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 l’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é.