[{"data":1,"prerenderedAt":190},["ShallowReactive",2],{"seo-verification":3,"blog-ترحيل-مشاريع-sentry-إلى-glitchtip-في-أقل-من-ساعة-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":13,"excerpt":14,"readTime":15,"views":16,"isPinned":17,"publishedAt":18,"category":19,"categories":25,"featuredImage":27,"bgImage":28,"posterImage":29,"relatedSolution":30,"intro":32,"sections":33,"ctaTitle":129,"ctaBody":130,"ctaButton":131,"ctaUrl":132,"relatedPosts":133},322,"ترحيل-مشاريع-sentry-إلى-glitchtip-في-أقل-من-ساعة",{"fr":10,"en":11,"ar":8,"es":12},"migrer-sentry-glitchtip-projets","migrate-your-sentry-projects-to-glitchtip-in-under-an-hour","migrar-tus-proyectos-de-sentry-a-glitchtip-en-menos-de-una-hora","ترحيل مشاريع Sentry إلى GlitchTip في أقل من ساعة","أدت تراجعات Sentry 26.4.x إلى تعطّل استيعاب المهام المجدولة منذ أغسطس 2026. إليك كيفية ترحيل جميع مشاريعك إلى GlitchTip v6 بتبديل بسيط لـ DSN.",9,0,false,"2026-09-02T00:00:00+00:00",{"id":20,"name":21,"slug":22,"color":23,"icon":24},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[26],{"id":20,"name":21,"slug":22,"color":23,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmigrer-sentry-glitchtip-projets-poster.svg",{"categorySlug":21,"appSlug":31},"glitchtip","منذ الإصدار 26.4.1، تراكمت ثلاثة انحدارات رئيسية في Sentry self-hosted: تعطّل monitor_consumer الذي يوقف استيعاب المهام المجدولة على مستوى المؤسسة، ومستهلكو Snuba الذين يملؤون السجلات بحلقة لا نهائية دون إصلاح رسمي، وحاويات seaweedfs-1 وweb-1 التي تُبلَّغ على أنها غير صحية عند بدء تشغيل الإصدار 26.4.2. في مواجهة هذه الاضطرابات دون أفق مضمون للحل، يوفّر GlitchTip v6 — المتوافق مع بروتوكول Sentry SDK — مخرجًا نظيفًا: تغيير متغير بيئة واحد لكل مشروع، ويستأنف الاستيعاب فورًا.",[34,38,49,52,80,83,87,90,126],{"type":35,"title":36,"body":37},"h2","الانحدارات في Sentry 26.4.x التي تدفع إلى الترحيل","في أغسطس 2026، تراكمت ثلاث مشكلات في مستودع getsentry\u002Fself-hosted بما يكفي من التقارير لتشكّل إشارة ترحيل واضحة. توثّق المشكلة #4301 تعطّلًا في المستهلك Kafka ingest-monitors بعد الترقية إلى 26.4.1: تبقى مجموعة المستهلكين متصلة لكن CURRENT-OFFSET يتوقف عن التقدم. النتيجة المباشرة أن جميع مراقبي المهام المجدولة تتحوّل إلى حالة خطأ مع فقدان البيانات الخلفية، وتصبح ميزة Crons غير قابلة للاستخدام على مستوى المؤسسة بأكملها. تظهر المشكلة فقط في الحالات التي تحتوي على بيانات متراكمة (أكثر من 1.2 مليون صف في sentry_monitorcheckin). المشكلة #4306 تُفيد بأن جميع مستهلكي Snuba يطبعون الخطأ 'Failed to read directory ‪\u002Fetc\u002Fsentry-options\u002Fvalues‬' في حلقة لا نهائية — أُغلقت دون إصلاح رسمي بحالة 'not planned'. المشكلة #4321 تخص الإصدار 26.4.2: تُبلَّغ حاويات seaweedfs-1 وweb-1 على أنها غير صحية عند بدء التشغيل.",{"type":39,"title":40,"items":41},"ul","ما يقدمه GlitchTip v6 كبديل",[42,43,44,45,46,47,48],"**توافق SDK على مستوى البروتوكول** — ينفّذ GlitchTip البروتوكول ذاته الذي يستخدمه Sentry. صيغة DSN هي نفسها (`‪https:\u002F\u002F\u003Ckey>@your-domain.com\u002F\u003Cproject-id>‬`)، وتعمل حزم `@sentry\u002Fbrowser` و`sentry-sdk` بلغة Python و`sentry-go` دون تعديل في الكود.","**ترخيص AGPL-3.0، مفتوح المصدر** — GlitchTip v6 (صدر في 3 فبراير 2026) تحتفظ به فريق مستقل بتمويل من المستخدمين. لا ترخيص مزدوج ولا مكوّنات مملوكة.","**بصمة Docker مخففة** — تستبدل النسخة 6 Celery بـ django-vtasks، وUvicorn\u002FGunicorn بـ Granian (خادم HTTP مكتوب بـ Rust)، وتوفر وضع الكل في واحد المستقر للحالات المتواضعة.","**UUIDv7 وتقسيم محسّن للجداول** — راجعت النسخة 6 إدارة المفاتيح الأساسية (UUIDv7) وتقسيم الجداول لاستعلامات أسرع على أحجام الأحداث الكبيرة.","**دعم السجلات والتتبع (v6.1)** — أضافت النسخة 6.1، الصادرة في 23 مارس 2026، استيعاب السجلات عبر sentry-sdk وتخزينًا باردًا اختياريًا بـ DuckDB.","**تكلفة مقتصرة على البنية التحتية** — يكفي VPS بذاكرة 2 غيغابايت للأحمال المعتدلة. تكلفة خطة Sentry Team هي 26 دولارًا شهريًا مقابل 50,000 خطأ.","**تبديل DSN قابل للعكس** — إذا احتجت للعودة إلى Sentry، يكفي تبديل متغيّر آخر. لا يُضاف أي اعتماد في الكود.",{"type":35,"title":50,"body":51},"المتطلبات الأساسية قبل الترحيل","يفترض هذا الدليل أن GlitchTip منشور وجاهز على VPS خاص بك. إن لم يكن كذلك، راجع أولًا مقال 'استضافة GlitchTip v6 على VPS'. للترحيل تحتاج ثلاثة أشياء: وصول المسؤول إلى Sentry (لقراءة DSN الحالية وتصدير تكوين التنبيهات)، وصول المسؤول إلى GlitchTip (لإنشاء المشاريع المعادلة واسترداد DSN الجديدة)، وقائمة متغيرات البيئة أو ملفات التكوين لكل تطبيق يحتوي على قيمة SENTRY_DSN. يتم الترحيل مشروعًا بمشروع. إن كان لديك خمسة مشاريع في Sentry، ستنشئ خمسة في GlitchTip وتبدّل خمسة متغيرات. خصّص نحو عشر دقائق للمشروع الأول؛ اللاحقة تأخذ دقيقتين إلى ثلاث.",{"type":53,"title":54,"steps":55},"steps","إجراء الترحيل — من المشروع الأول إلى إيقاف Sentry",[56,59,62,65,68,71,74,77],{"title":57,"body":58},"جرد مشاريع Sentry وDSN الخاصة بها.","في واجهة Sentry، انتقل إلى الإعدادات > المشاريع. لكل مشروع، دوّن الاسم والمنصة (Python أو JavaScript أو PHP) وDSN الكامل (الإعدادات > مفاتيح العميل). صدّر أيضًا قواعد التنبيه (التنبيهات > القواعد): ستحتاج إلى إعادة إنشائها يدويًا في GlitchTip.",{"title":60,"body":61},"أنشئ المشاريع المعادلة في GlitchTip.","في واجهة GlitchTip، انتقل إلى مؤسستك ثم مشاريع > مشروع جديد. اختر المنصة المقابلة. بعد إنشاء المشروع، يعرض GlitchTip فورًا DSN المشروع بالصيغة `‪https:\u002F\u002F\u003Cpublic-key>@your-domain.com\u002F\u003Cnumeric-id>‬`.",{"title":63,"body":64},"انسخ DSN الجديد من GlitchTip وسجّله.","من صفحة المشروع في GlitchTip: الإعدادات > مفاتيح العميل > DSN. انسخ القيمة الكاملة. هذه هي المعلومة الوحيدة التي تحتاجها للتبديل.",{"title":66,"body":67},"أعد تكوين التنبييهات في GlitchTip.","قبل تحويل حركة المرور، أعد إنشاء قواعد التنبيه في GlitchTip: حدود الخطأ، الإشعارات بالبريد الإلكتروني أو webhook، التكرار. يدعم GlitchTip webhooks الواردة لتغطية معظم التكاملات.",{"title":69,"body":70},"بدّل DSN في تطبيقك.","استبدل قيمة متغير SENTRY_DSN (أو معامل `dsn` في تهيئة SDK) بـ DSN الجديد من GlitchTip. أعد النشر أو أعد تشغيل عملية التطبيق. لا يوجد كود آخر يتغيّر.",{"title":72,"body":73},"تحقق من استلام الأحداث في GlitchTip.","أطلق خطأ اختباريًا يدويًا (`Sentry.captureException(new Error('test'))` أو ما يعادله). في GlitchTip، يجب أن يظهر الحدث في مشكلات المشروع خلال ثوانٍ. إن لم يظهر، راجع قسم استكشاف الأخطاء.",{"title":75,"body":76},"كرّر العملية لكل مشروع.","بعد التحقق من المشروع الأول، كرّر الخطوات 1 إلى 6 لكل مشروع Sentry. أبقِ Sentry يعمل خلال فترة الانتقال — يبقى السجل التاريخي متاحًا طالما النظام يعمل.",{"title":78,"body":79},"أوقف Sentry بعد انتهاء فترة التحقق.","بعد أسبوعين من التشغيل الطبيعي في GlitchTip، أوقف حاويات Sentry (`docker compose down`). يبقى السجل التاريخي متاحًا إن أعدت تشغيل النظام مؤقتًا، لكن الأخطاء الجديدة لن تصله.",{"type":35,"title":81,"body":82},"توافق SDK — الأطر والأنظمة المدعومة","لا يعيد GlitchTip تنفيذ SDKs: يستهلك البروتوكول ذاته الذي يستخدمه Sentry، مما يعني أن أي SDK رسمي لـ Sentry يعمل دون تعديل. اللغات والأطر الأكثر شيوعًا مدعومة بشكل أصلي. في Python، يتكامل `sentry-sdk` مع Django وFlask وFastAPI وCelery. في JavaScript وTypeScript، تعمل `@sentry\u002Fbrowser` و`@sentry\u002Fnode` و`@sentry\u002Fnextjs` و`@sentry\u002Fvue` مباشرةً. في Ruby مدعوم `sentry-rails` و`sentry-ruby`. Go لديه `getsentry\u002Fsentry-go`. PHP يمكنه استخدام `sentry\u002Fsentry-laravel` أو `sentry\u002Fsentry-symfony`. Java وAndroid لديهما SDKs رسمية. الخيار الوحيد الذي يجب تعطيله في بعض SDKs هو `auto_session_tracking` — لا يدعم GlitchTip تتبع الجلسة في الوقت الفعلي، لكن هذا لا يؤثر على إبلاغ الأخطاء.",{"type":84,"title":85,"body":86},"tip","إبقاء Sentry يعمل بالتوازي خلال فترة التحقق","حتى لو جعلت تراجعات 26.4.x من Sentry غير موثوق، لا توقف النظام فورًا بعد أول تبديل. أبقِ النظامين يعملان بالتوازي لمدة أسبوع إلى أسبوعين: Sentry للرجوع إلى السجل التاريخي، وGlitchTip لاستقبال الأخطاء الجديدة. ملاحظة مهمة: الأحداث السابقة لا تنتقل من Sentry إلى GlitchTip. لا توجد أداة لاستيراد السجل التاريخي — وهذا مقصود إذ تختلف التنسيقات الداخلية. هدف هذا الترحيل ليس الحفاظ على ستة أشهر من السجلات، بل استعادة استيعاب الأخطاء اليوم.",{"type":35,"title":88,"body":89},"استكشاف الأخطاء — أكثر ثلاث مشكلات شيوعًا بعد التبديل","**الأحداث لا تصل إلى GlitchTip.** تحقق أولًا من صحة صياغة DSN: الصيغة المتوقعة هي `‪https:\u002F\u002F\u003Ckey>@your-domain.com\u002F\u003Cid>‬`. إذا كانت نسختك من GlitchTip خلف reverse proxy، تأكد من تمرير ترويسات `X-Forwarded-For` و`X-Forwarded-Proto` — قد يُرسل proxy مُعدٌّ بشكل خاطئ أخطاء 400 أو 413 بصمت. راجع سجلات حاوية GlitchTip (`docker compose logs web`) لتأكيد الاستلام. **DSN مرفوض بخطأ 401 أو 403.** في الغالب، المفتاح العام في DSN لا يتطابق مع مشروع GlitchTip المستهدف. تأكد من نسخ DSN من المشروع الصحيح. **تجميع الأخطاء لا يشبه Sentry.** يستخدم GlitchTip خوارزمية بصمة خاصة به. ستُجمَّع الأخطاء من النوع ذاته، لكن التطابق مع مجموعات Sentry غير مضمون — خاصة للاستثناءات ذات stacktraces الديناميكية. هذا سلوك متوقع.",{"type":91,"title":92,"left_label":93,"right_label":94,"rows":95,"headers":124},"comparison","Sentry cloud مقابل GlitchTip self-hosted — ما الذي يتغير فعلًا","Sentry Team (سحابي)","GlitchTip self-hosted",[96,100,104,108,112,116,120],[97,98,99],"التكلفة الأساسية","{{sentry.team.price}}\u002Fشهر (سنوي) — 50,000 خطأ مضمّن","تكلفة VPS فقط — ‪99 درهم\u002Fشهر‬\u002Fشهر",[101,102,103],"حد الأخطاء","حصة صارمة، يُفوتر الزائد","لا حصة — محدود بتخزين VPS",[105,106,107],"توافق SDK","بروتوكول Sentry الأصلي","نفس بروتوكول السلك — لا تعديل في الكود",[109,110,111],"استيراد السجل","لا ينطبق","غير متاح — الأحداث السابقة تبقى في Sentry",[113,114,115],"التنبيهات والتكاملات","واجهة كاملة، Slack وPagerDuty وJira أصليًا","Webhooks واردة، بريد إلكتروني — يغطي الحالات الشائعة",[117,118,119],"الصيانة","تديرها Sentry (تحديثات تلقائية)","على عاتقك — ‪`docker compose pull && docker compose up -d`‬",[121,122,123],"الترخيص","مملوك (BSL 1.1 للسحابة)","AGPL-3.0 — كود مصدر قابل للمراجعة",[5,125,94],"Sentry Team (cloud)",{"type":35,"title":127,"body":128},"البدء من الصفر مع GlitchTip على VPS من ServOrbit","إذا لم يكن لديك نسخة GlitchTip في الإنتاج بعد وترغب في مغادرة Sentry self-hosted، يكفي VPS بذاكرة 2 غيغابايت لتشغيل GlitchTip v6 بتكوين الكل في واحد. التثبيت الكامل — Docker Compose، وnginx كـ reverse proxy، وشهادة TLS، ومتغيرات البيئة — موثّق في المقال المخصص. بعد جاهزية النسخة، يتبع الترحيل من Sentry الإجراء الموضّح في هذا المقال: إنشاء المشاريع، واسترداد DSN، وتبديل المتغيرات. الوقت الإجمالي من إنشاء VPS حتى استلام أول حدث في GlitchTip يقل عادةً عن ساعة.","انشر GlitchTip على VPS من ServOrbit","يكفي VPS بذاكرة 2 غيغابايت لاستضافة GlitchTip v6 واستقبال أخطاء جميع مشاريعك. لا حصص أحداث، لا اشتراك شهري.","نشر GlitchTip على VPS","\u002Fmarketplace\u002Fالتطوير\u002Fglitchtip",[134,150,172],{"id":135,"slug":136,"slugs":137,"title":141,"excerpt":142,"readTime":143,"views":16,"isPinned":17,"publishedAt":144,"category":145,"categories":146,"featuredImage":27,"bgImage":28,"posterImage":148,"relatedSolution":149},250,"تثبيت-glitchtip-على-vps-تتبع-الأخطاء-بشكل-مستقل",{"fr":138,"en":139,"ar":136,"es":140},"self-host-glitchtip-vps","self-host-glitchtip-on-a-vps-a-sovereign-error-tracker","instalar-glitchtip-en-un-vps","تثبيت GlitchTip على VPS: تتبع الأخطاء بشكل مستقل","انشر GlitchTip v6 على VPS Linux باستخدام Docker Compose. متوافق مع SDK Sentry، يعمل بذاكرة 2 جيجابايت ويتصل بتغيير متغير DSN فقط.",7,"2026-08-13T00:00:00+00:00",{"id":20,"name":21,"slug":22,"color":23,"icon":24},[147],{"id":20,"name":21,"slug":22,"color":23,"icon":24},"\u002Fblog\u002Fcovers\u002Fself-host-glitchtip-vps-poster.svg",{"categorySlug":21,"appSlug":31},{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":20,"views":16,"isPinned":17,"publishedAt":159,"category":160,"categories":166,"featuredImage":27,"bgImage":28,"posterImage":168,"relatedSolution":169},220,"grafana-tempo-وopentelemetry-التتبع-الموزع-على-خادم-vps",{"fr":154,"en":155,"ar":152,"es":156},"opentelemetry-grafana-tempo-vps","grafana-tempo-and-opentelemetry-distributed-tracing-on-vps","grafana-tempo-opentelemetry-trazado-distribuido-vps","‏Grafana Tempo و‏OpenTelemetry: التتبع الموزع على خادم VPS","انشر مكدس تتبع موزع كامل على خادم VPS الخاص بك باستخدام OpenTelemetry و‏Grafana Tempo، بعيداً عن الارتباط بموردين ومن دون تكاليف APM.","2026-08-04T00:00:00+00:00",{"id":161,"name":162,"slug":163,"color":164,"icon":165},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[167],{"id":161,"name":162,"slug":163,"color":164,"icon":165},"\u002Fblog\u002Fcovers\u002Fopentelemetry-grafana-tempo-vps-poster.svg",{"categorySlug":170,"appSlug":171},"المراقبة-وقابلية-الرصد","grafana",{"id":173,"slug":174,"slugs":175,"title":179,"excerpt":180,"readTime":161,"views":16,"isPinned":17,"publishedAt":181,"category":182,"categories":187,"featuredImage":27,"bgImage":28,"posterImage":189,"relatedSolution":27},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":176,"en":177,"ar":174,"es":178},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","checklist-docker-compose-en-produccion","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‎10 إعدادات Docker Compose يجب التحقق منها قبل أي نشر إنتاجي: إعادة التشغيل والفحوص الصحية والحدود والأسرار والسجلات.","2026-08-06T00:00:00+00:00",{"id":183,"name":184,"slug":185,"color":186,"icon":185},3,"النشر","deploiement","bg-success\u002F10 text-success",[188],{"id":183,"name":184,"slug":185,"color":186,"icon":185},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",1788446469452]