Sentry
تعرّف على كيفية دمج سجلات الواجهة الخلفية الخاصة بـ Sentry مع عمليات إعادة تشغيل الجلسات في OpenReplay لتوسيع قدراتك في المراقبة وتصحيح الأخطاء.
1. إنشاء رمز مصادقة Sentry
Section titled 1. إنشاء رمز مصادقة Sentryانتقل إلى Sentry > Account > API > Auth Tokens وأنشئ رمز مصادقة بالأذونات التالية:
event:readorg:readproject:read
ستستخدم هذا الرمز في الخطوة التالية عند تمكين تكامل Sentry في لوحة تحكم OpenReplay.
2. تمكين تكامل Sentry في OpenReplay
Section titled 2. تمكين تكامل Sentry في OpenReplay- انسخ معرّفات (Slugs) المنظمة والمشروع الخاصة بك:
- انتقل إلى صفحة Projects في لوحة تحكم Sentry.
- انسخ
organization_slugوproject_slugالخاصين بك.
- قم بتكوين التكامل في OpenReplay:
- في OpenReplay، انتقل إلى Preferences > Integrations.
- حدد بطاقة تكامل Sentry.
- أدخل
organization_slugوproject_slugورمز المصادقة الذي أنشأته في الخطوة 1.
3. تمرير openReplaySession.id
Section titled 3. تمرير openReplaySession.idلكي يتمكن OpenReplay من ربط حدث Sentry بجلسة المستخدم المسجَّلة، يجب وسم الحدث بمعرّف جلسة فريد، وهو openReplaySession.id.
الواجهة الأمامية
Section titled الواجهة الأماميةإذا كنت تستخدم Sentry في تطبيق الواجهة الأمامية لديك، يمكنك اتّباع المثال أدناه.
ملاحظة: إنّ tracker.start() غير متزامن ويُرجِع Promise. يجب عليك الانتظار حتى يتم حلّه قبل محاولة الحصول على معرّف الجلسة.
// JavaScript Example for for Single Page Applications (SPA):
import OpenReplay from "@openreplay/tracker";
import * as Sentry from "@sentry/browser";
const tracker = new OpenReplay({
projectKey: 'YOUR_PROJECT_KEY',
});
tracker.start().then(() => {
const sessionId = tracker.getSessionID();
if (sessionId) {
Sentry.setTag("openReplaySession.id", sessionId);
}
// Your application code
});
استخدام مقتطف OpenReplay
Section titled استخدام مقتطف OpenReplayif (window.OpenReplay) {
window.OpenReplay.start().then(() => {
const sessionId = window.OpenReplay.getSessionID();
if (sessionId) {
Sentry.setTag("openReplaySession.id", sessionId);
}
// Your application code
});
}
الواجهة الخلفية
Section titled الواجهة الخلفيةإذا كنت تستخدم Sentry SDK في الواجهة الخلفية لديك، فيجب تمرير معرّف الجلسة من الواجهة الأمامية إلى الواجهة الخلفية في كل طلب ترغب في تتبّعه. يمكن القيام بذلك باستخدام رأس HTTP مخصّص.
كود الواجهة الأمامية لإرسال معرّف الجلسة
import OpenReplay from "@openreplay/tracker";
const tracker = new OpenReplay({
projectKey: 'YOUR_PROJECT_KEY',
});
tracker.start().then(() => {
const sessionId = tracker.getSessionID();
const headers = {
'Content-Type': 'application/json',
};
if (sessionId) {
headers['openReplaySession.id'] = sessionId;
}
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
});
});
4. إرفاق openReplaySessionURL (اختياري لكنه مفيد)
Section titled 4. إرفاق openReplaySessionURL (اختياري لكنه مفيد)إذا كنت ترغب في ربط عنوان URL الخاص بتسجيل OpenReplay مع Sentry وعرضه كوسم، يمكنك القيام بذلك عن طريق إضافة الوسم openReplaySessionURL.
مثال على الواجهة الأمامية
Section titled مثال على الواجهة الأماميةimport OpenReplay from "@openreplay/tracker";
import * as Sentry from "@sentry/browser";
const tracker = new OpenReplay({
projectKey: 'YOUR_PROJECT_KEY',
});
tracker.start().then(() => {
const sessionId = tracker.getSessionID();
const sessionURL = tracker.getSessionURL();
if (sessionId) {
// Tag Sentry events with the session ID
Sentry.setTag("openReplaySession.id", sessionId);
}
if (sessionURL) {
// Tag Sentry events with the session URL (requires OpenReplay Tracker v3.6.0+)
Sentry.setTag("openReplaySessionURL", sessionURL);
}
// Your application code
});
هل لديك أسئلة؟
Section titled هل لديك أسئلة؟إذا واجهت أي مشكلات، تواصل معنا عبر Slack أو تفضّل بزيارة المنتدى واحصل على المساعدة من مجتمعنا.