Datadog

Como integrar o Datadog com o OpenReplay e ver os erros de backend junto com os session replays.

Datadog

Saiba como integrar os erros de backend do Datadog aos session replays do OpenReplay para ampliar seus recursos de monitoramento e depuração.

1. Gerar a API Key e a Application Key do Datadog

Section titled 1. Gerar a API Key e a Application Key do Datadog
  1. Acesse Datadog > Integrations > APIs e gere a API Key, ou use a que já existe.
  2. Na mesma página, clique em Application Keys e gere uma nova application key.

2. Configurar a integração do Datadog no OpenReplay

Section titled 2. Configurar a integração do Datadog no OpenReplay

Na sua conta do OpenReplay, siga estes 3 passos para concluir a correlação dos session replays com os erros de backend do Datadog.

Habilitar a integração do Datadog

Section titled Habilitar a integração do Datadog
  1. Acesse Preferences > Integrations no OpenReplay.
  2. Selecione a aba Backend Logging.
  3. Selecione o projeto para o qual você quer habilitar a integração do Datadog: localize o card da integração do Datadog > clique nele.

Informar as credenciais do Datadog

Section titled Informar as credenciais do Datadog

Na barra lateral da integração do Datadog, informe:

  1. API Key do Datadog
  2. Application Key
  1. Clique em Add para testar a conexão

3. Propagar o openReplaySession.id

Section titled 3. Propagar o openReplaySession.id

Para vincular um evento do Datadog à sessão de usuário gravada, é preciso propagar um ID de sessão único, openReplaySession.id, do seu frontend para o seu backend em cada requisição que você quiser rastrear. Isso pode ser feito usando um header HTTP personalizado.

Frontend: incluir o openReplaySession.id nas requisições de API

Section titled Frontend: incluir o openReplaySession.id nas requisições de 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 o openReplaySession.id nos logs

Section titled Backend: incluir o openReplaySession.id nos logs

Abaixo está um exemplo em Python usando o módulo logging para incluir automaticamente o openReplaySession.id nos seus 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()

Se você tiver algum problema, conecte-se ao nosso Slack e receba ajuda da nossa comunidade.