Datadog
Узнайте, как интегрировать ошибки бэкенда Datadog с воспроизведениями сессий OpenReplay, чтобы расширить возможности мониторинга и отладки.
1. Сгенерируйте API Key и Application Key в Datadog
Section titled 1. Сгенерируйте API Key и Application Key в Datadog- Перейдите в Datadog > Integrations > APIs и сгенерируйте API Key или используйте существующий.
- На этой же странице нажмите Application Keys и сгенерируйте новый application key.
2. Настройте интеграцию Datadog в OpenReplay
Section titled 2. Настройте интеграцию Datadog в OpenReplayВ своём аккаунте OpenReplay выполните эти 3 шага, чтобы завершить сопоставление воспроизведений сессий с ошибками бэкенда Datadog.
Включите интеграцию Datadog
Section titled Включите интеграцию Datadog- Перейдите в Preferences > Integrations в OpenReplay.
- Выберите вкладку Backend Logging.
- Выберите проект, для которого вы хотите включить интеграцию Datadog: найдите карточку интеграции Datadog > нажмите на неё.
Введите учётные данные Datadog
Section titled Введите учётные данные DatadogВ боковой панели интеграции Datadog введите:
- Datadog API Key
- Application Key
Проверьте соединение
Section titled Проверьте соединение- Нажмите Add, чтобы проверить соединение
3. Передавайте openReplaySession.id
Section titled 3. Передавайте openReplaySession.idЧтобы связать событие Datadog с записанной пользовательской сессией, необходимо передавать уникальный идентификатор сессии openReplaySession.id из вашего фронтенда в бэкенд при каждом запросе, который вы хотите отслеживать. Это можно сделать с помощью пользовательского HTTP-заголовка.
Фронтенд: добавьте openReplaySession.id в API-запросы
Section titled Фронтенд: добавьте openReplaySession.id в 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
});
Бэкенд: добавьте openReplaySession.id в логи
Section titled Бэкенд: добавьте openReplaySession.id в логиНиже приведён пример на Python с использованием модуля logging для автоматического добавления openReplaySession.id в ваши логи.
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()
Остались вопросы?
Section titled Остались вопросы?Если у вас возникнут какие-либо проблемы, присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.