الانتقال إلى المحتوى الرئيسي
تستخدم ClickStack معيار OpenTelemetry لجمع بيانات القياس عن بُعد (السجلات والتتبعات). ويتم إنشاء التتبعات تلقائيًا عبر التضمين التلقائي، لذلك لا حاجة إلى التضمين اليدوي للاستفادة من التتبّع. يغطي هذا الدليل تكامل ما يلي:
  • السجلات
  • المقاييس
  • التتبعات

البدء

تثبيت حزمة التضمين لـ ClickStack OpenTelemetry

استخدم الأمر التالي لتثبيت حزمة التضمين الخاصة بـ ClickStack OpenTelemetry.
ثبّت مكتبات OpenTelemetry الخاصة بالتتبّع التلقائي للحزم التي يستخدمها تطبيق بايثون. نوصي باستخدام أداة opentelemetry-bootstrap المرفقة مع OpenTelemetry Python SDK لفحص حزم تطبيقك وإنشاء قائمة بالمكتبات المتاحة.

تكوين متغيرات البيئة

بعد ذلك، ستحتاج إلى تكوين متغيرات البيئة التالية في الـ shell لديك لإرسال بيانات القياس عن بُعد إلى ClickStack عبر OpenTelemetry Collector:
يُستخدم متغير البيئة OTEL_SERVICE_NAME للتعرّف على خدمتك في تطبيق HyperDX، ويمكن أن يكون أي اسم تريده.

شغّل التطبيق باستخدام وكيل OpenTelemetry لبايثون

يمكنك الآن تشغيل التطبيق باستخدام وكيل OpenTelemetry لبايثون (opentelemetry-instrument).

إذا كنت تستخدم Gunicorn أو uWSGI أو uvicorn

في هذه الحالة، سيتطلب وكيل OpenTelemetry لبايثون بعض التغييرات الإضافية لكي يعمل. لتهيئة OpenTelemetry لخوادم التطبيقات التي تستخدم وضع خادم الويب pre-fork، تأكد من استدعاء الدالة configure_opentelemetry داخل hook ما بعد التفرّع.

الإعدادات المتقدمة

التقاط الشبكة

من خلال تمكين ميزات التقاط الشبكة، يصبح بإمكان المطورين تصحيح أخطاء رؤوس طلبات HTTP وحمولات المتن بفعالية. ويمكن تحقيق ذلك ببساطة عبر ضبط العلامة HYPERDX_ENABLE_ADVANCED_NETWORK_CAPTURE على 1.

استكشاف الأخطاء وإصلاحها

عدم ظهور السجلات بسبب مستوى التسجيل

يستخدم معالج logging في OpenTelemetry، افتراضيًا، المستوى logging.NOTSET، والذي يُعيَّن افتراضيًا إلى مستوى WARNING. يمكنك تحديد مستوى logging عند إنشاء logger:

التصدير إلى وحدة التحكم

تعرض حزمة OpenTelemetry SDK الخاصة بـ بايثون عادةً الأخطاء في وحدة التحكم عند حدوثها. ومع ذلك، إذا لم تواجه أي أخطاء ولكن لاحظت أن بياناتك لا تظهر في HyperDX كما هو متوقع، فيمكنك تفعيل وضع Debug. عند تفعيل وضع Debug، ستُطبع جميع بيانات القياس عن بُعد في وحدة التحكم، مما يتيح لك التحقق مما إذا كان تطبيقك مهيأً بشكل صحيح لإرسال البيانات المتوقعة.
اطّلع هنا على مزيد من المعلومات حول التضمين في OpenTelemetry لبايثون: https://opentelemetry.io/docs/instrumentation/python/manual/
آخر تعديل في ٢ يوليو ٢٠٢٦