CloudWatch
Comment intégrer CloudWatch avec OpenReplay et voir les erreurs backend aux côtés des rejeux de session.
1. Créer un compte de service
Section titled 1. Créer un compte de service- Connectez-vous à votre compte AWS.
- Accédez au tableau de bord IAM.
- Cliquez sur Users.
- Cliquez sur le bouton Add user.
- Définissez le nom sur « openreplay_cw ».
- Dans le type d’accès, sélectionnez Programmatic access.
- Cliquez sur le bouton Next: Permissions.
- Choisissez Attach existing policies directly
- Dans la liste des autorisations, choisissez CloudWatchReadOnlyAccess.
- Cliquez sur le bouton Next: Tags.
- Cliquez sur le bouton Next: Review.
- Cliquez sur le bouton Create user.
- Copiez l’
Access key IDet laSecret access key.
2. Activer CloudWatch dans OpenReplay
Section titled 2. Activer CloudWatch dans OpenReplayPlacez votre Access key ID et votre Secret access key dans le tableau de bord d’OpenReplay sous « Preferences > Integration », sélectionnez la région et choisissez le groupe de logs que vous souhaitez suivre dans la liste déroulante.

3. Propager openReplaySessionToken
Section titled 3. Propager openReplaySessionTokenPour lier un événement CloudWatch à la session utilisateur enregistrée, un jeton unique doit être propagé depuis votre frontend vers votre backend à chaque requête que vous souhaitez suivre. Cela peut être fait à l’aide d’un en-tête HTTP personnalisé. Dans l’exemple ci-dessous, nous utilisons la fonction fetch pour envoyer cet en-tête.
const headers = {
Accept: 'application/json',
'Content-Type': 'application/json',
};
if (tracker.getSessionToken()) { // use window.OpenReplay instead of tracker if you're using the snippet
headers['X-OpenReplay-SessionToken'] = tracker.getSessionToken(); // Inject openReplaySessionToken
}
fetch('www.your-backend.com', {
'GET',
headers,
});
Pour qu’OpenReplay puisse associer une entrée de log Cloudwatch à la session utilisateur enregistrée, un jeton unique doit être propagé dans le cadre de chaque erreur backend que vous souhaitez suivre.
Voici un exemple en Python utilisant le Monkey Patching.
import sys
import traceback
#...
old_tb = traceback.print_exception
old_f = sys.stdout
old_e = sys.stderr
OPENREPLAY_SESSION_TOKEN = None
class F:
def write(self, x):
if OPENREPLAY_SESSION_TOKEN is not None and x != '\n':
old_f.write(f"[openReplaySessionToken={OPENREPLAY_SESSION_TOKEN}] {x}")
else:
old_f.write(x)
def flush(self):
pass
def tb_print_exception(etype, value, tb, limit=None, file=None, chain=True):
if OPENREPLAY_SESSION_TOKEN is not None:
value = type(value)(f"[openReplaySessionToken={OPENREPLAY_SESSION_TOKEN}] " + str(value))
old_tb(etype, value, tb, limit, file, chain)
traceback.print_exception = tb_print_exception
sys.stderr = F()
Le nom de la balise openReplaySessionToken est sensible à la casse.
Vous avez des questions ?
Section titled Vous avez des questions ?Si vous rencontrez des problèmes, rejoignez notre Slack ou consultez notre Forum et obtenez de l’aide de notre communauté.