Skip to main content
باختصاراستنسخ HackerNews Analyzer، واملأ ملف .env بنقطة نهاية OTLP والرمز المميز الخاصين بك، ثم ألصق توجيه agent. لا تحتاج الواجهة الخلفية إلى أي عمليات استيراد لـ OpenTelemetry؛ إذ يوصّل agent الحزمة @hyperdx/node-opentelemetry عند بدء العملية.الوقت المطلوب: نحو 10 دقائق
HackerNews Analyzer هو تطبيق Node.js يستعلم عن مجموعة بيانات HackerNews المستضافة في العرض التجريبي العام لـ ClickHouse. كل مخطط وجدول ومربع بحث هو استعلام ClickHouse حقيقي، لذا ينتج كل تفاعل trace تكون الـ span الرئيسية فيه هي استدعاء HTTPS من الواجهة الخلفية إلى ClickHouse. هذه مهمة مختلفة عن العرض التجريبي لإعادة تشغيل الجلسة، الذي يضيف instrumentation إلى تطبيق يعمل في المتصفح فقط باستخدام ClickStack محلي عبر Docker. هنا تحصل على auto-instrumentation للواجهة الخلفية، وspans لاستعلامات ClickHouse، وإعادة تشغيل الجلسة من التطبيق نفسه.

المتطلبات الأساسية

  • Node 18+ وnpm
  • نقطة نهاية لـ ClickStack OTLP/HTTP ورمز مميز للاستيعاب:
    • ClickHouse Cloud: افتح الخدمة، ثم ClickStack → تهيئة exporter لـ OpenTelemetry → متغيرات البيئة. البروتوكول هو http/protobuf. تكون headers بالشكل authorization=<ingestion token>، من دون بادئة Bearer.
    • collector محلي: استخدم http://localhost:4318. إذا كان collector غير مؤمَّن، فاترك authorization= فارغًا.

استنسخ المستودع

استنسخ HackerNews Analyzer، وثبّت التبعيات، وانسخ قالب ملف البيئة:
ستملأ ملف .env في الخطوات التالية، ثم جهّز التطبيق لإرسال بيانات التتبّع من هذا الدليل.

أضِف أدوات القياس عن بُعد إلى التطبيق

1

شغّل التطبيق

من الدليل المستنسخ hn-news-analyzer، شغّل التطبيق. يتصل مصدر بيانات ClickHouse افتراضيًا بالعنقود التجريبي العام للقراءة فقط، لذا يعمل دون الحاجة إلى أي إعداد إضافي:
افتح http://localhost:5001. سترى محدِّدًا للسنة، وإحصاءات موجزة، ومخططًا للنشاط، وجدولي أبرز المستخدمين والنطاقات، ومربع بحث. استكشف التطبيق بالنقر: بدّل السنوات وتعمّق في القصص.
تطبيق HackerNews Analyzer يعمل محليًا
في هذه المرحلة، يكون التطبيق قيد التشغيل لكنه غير مزوَّد بأدوات التتبّع. لا يعرض ClickStack أي بيانات، إذ ينتظر بيانات التتبّع.
2

تهيئة البيئة

تقرأ حِزم SDK متغيرات exporter القياسية لـ OpenTelemetry. وهي غير مُضمَّنة برمجيًا في شيفرة المصدر. افتح .env واضبط:
OTEL_EXPORTER_OTLP_ENDPOINT هي نقطة نهاية OTLP/HTTP (المنفذ 4318). وOTEL_EXPORTER_OTLP_HEADERS هو رأس التفويض، بالصيغة authorization=<token> من دون بادئة Bearer.إذا لم يفرض الجامع مصادقة، فاترك الرمز فارغًا (OTEL_EXPORTER_OTLP_HEADERS=authorization=). يجب أن يبقى المتغير موجودًا؛ إذ تتخطى حزمة SDK التهيئة إذا لم يكن معيّنًا أو كان فارغًا بالكامل.تعيد Browser SDK استخدام هذه القيم نفسها. يضمّن vite.config.ts نقطة النهاية والرمز في الحزمة العامة وقت البناء، لذا استخدم رمز استيعاب مؤقتًا، وليس رمزًا مخصصًا للإنتاج.
3

زوّد التطبيق بأدوات القياس عن بُعد

اختر مسارًا واحدًا. تنتهي المسارات الثلاثة بالتطبيق نفسه المزوّد بأدوات القياس.
بعد استنساخ المستودع وتعبئة ملف .env، الصق هذا الـprompt في agent برمجي من داخل ذلك الدليل لإضافة أدوات القياس إلى التطبيق.
4

أنشئ حركة مرور واعرض بيانات التتبّع

أعد تشغيل التطبيق لتفعيل أمر التشغيل الجديد وحزمة المتصفح التي أُنشئت حديثًا:
تأكد من أن رسالة بدء التشغيل تطبع ثلاثة أسطر «Health check passed» لـ /v1/traces و/v1/metrics و/v1/logs. أعد تحميل علامة تبويب المتصفح لكي يقدّم Vite الحزمة المحدّثة، ثم بدّل بين السنوات وانقر على القصص لإنشاء حركة مرور.افتح واجهة مستخدم ClickStack:
  1. انتقل إلى Search وطبّق عامل تصفية لآخر 5 دقائق. ستظهر سجلات hn-analyzer-api تباعًا.
بحث ClickStack يعرض سجلات hn-analyzer-api من آخر خمس دقائق
  1. انقر على طلب وتتبّع الـ trace صعودًا. سترى span لمعالج Express، وspan HTTP تابعًا يشير إلى sql-clickhouse.clickhouse.com مع مدة شبكة فعلية، وسجلات console.log مرتبطة بالـ trace نفسه.
trace في ClickStack يتضمن span لمعالج Express وspan HTTP تابعًا إلى ClickHouse
  1. افتح Session Replay لتشغيل فيديو قابل للتمرير لجلسة متصفح، متزامن مع المخطط الزمني للـ trace.
إعادة تشغيل جلسة ClickStack متزامنة مع المخطط الزمني للـ trace
تظهر السجلات والمقاييس والتتبعات وإعادات تشغيل الجلسات في واجهة المستخدم نفسها، وتستخدم لغة الاستعلام نفسها، وترتبط تلقائيًا.

تعرّف على المزيد

آخر تعديل في ٢٦ سبتمبر ٢٠٢٦