> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# مراقبة تتبعات Node.js باستخدام ClickStack

> مراقبة تتبعات تطبيقات Node.js باستخدام ClickStack

export const TrackedLink = ({href, eventName, children, ...rest}) => {
  const handleClick = () => {
    try {
      if (typeof window !== "undefined" && window.galaxy && eventName) {
        window.galaxy.track(eventName, {
          interaction: "click"
        });
      }
    } catch (e) {}
  };
  return <a href={href} onClick={handleClick} {...rest}>
      {children}
    </a>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<Info>
  **باختصار**

  التقط التتبعات الموزعة من تطبيقات Node.js في ClickStack باستخدام الرصد التلقائي من OpenTelemetry. يتضمن مجموعة بيانات تجريبية ولوحة معلومات مُعدّة مسبقًا.
</Info>

<div id="existing-nodejs">
  ## التكامل مع تطبيق Node.js الحالي
</div>

يتناول هذا القسم كيفية إضافة التتبّع الموزّع إلى تطبيق Node.js الحالي لديك باستخدام الرصد التلقائي في OpenTelemetry.

إذا كنت ترغب في اختبار هذا التكامل قبل تهيئة بيئتك الحالية، يمكنك تجربة الإعداد المُعَدّ مسبقًا والبيانات النموذجية في [قسم مجموعة البيانات التجريبية](#demo-dataset).

<div id="prerequisites">
  ##### المتطلبات الأساسية
</div>

* مثيل ClickStack قيد التشغيل مع إتاحة الوصول إلى نقاط نهاية OTLP (المنافذ 4317/4318)
* تطبيق Node.js حالي (Node.js 14 أو أحدث)
* مدير حزم npm أو yarn
* اسم المضيف أو عنوان IP الخاص بـ ClickStack

<Steps>
  <Step title="تثبيت OpenTelemetry وتهيئته" id="install-configure">
    ثبّت الحزمة `@hyperdx/node-opentelemetry` وقم بتهيئتها عند بدء تطبيقك. راجع [دليل Node.js SDK](/docs/ar/clickstack/ingesting-data/sdks/nodejs#getting-started) للاطلاع على خطوات التثبيت التفصيلية.
  </Step>

  <Step title="الحصول على مفتاح واجهة برمجة تطبيقات لـ ClickStack" id="get-api-key">
    ستحتاج إلى مفتاح واجهة برمجة تطبيقات لإرسال التتبعات إلى نقطة نهاية OTLP الخاصة بـ ClickStack.

    1. افتح HyperDX على عنوان URL الخاص بـ ClickStack (على سبيل المثال: [http://localhost:8080](http://localhost:8080))
    2. أنشئ حسابًا أو سجّل الدخول عند الحاجة
    3. انتقل إلى **Team Settings → API Keys**
    4. انسخ **Ingestion API Key** الخاص بك

    <Image img="https://mintcdn.com/private-7c7dfe99/Xl4dVm4Z5MHG1h5Z/images/clickstack/api-key.webp?fit=max&auto=format&n=Xl4dVm4Z5MHG1h5Z&q=85&s=2988f52ae02de449619fe59ca8c55a58" alt="مفتاح واجهة برمجة تطبيقات لـ ClickStack" width="3810" height="1924" data-path="images/clickstack/api-key.webp" />
  </Step>

  <Step title="شغّل تطبيقك" id="run-application">
    ابدأ تشغيل تطبيق Node.js بعد تعيين متغيرات البيئة:

    ```bash theme={null}
    export CLICKSTACK_API_KEY=your-api-key-here
    export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
    ```
  </Step>

  <Step title="ولّد بعض الحركة" id="generate-traffic">
    أرسل طلبات إلى تطبيقك لإنشاء تتبعات:

    ```bash theme={null}
    # طلبات بسيطة
    curl http://localhost:3000/
    curl http://localhost:3000/api/users
    curl http://localhost:3000/api/products

    # محاكاة حمل
    for i in {1..100}; do curl -s http://localhost:3000/ > /dev/null; done
    ```
  </Step>

  <Step title="تحقّق من التتبعات في HyperDX" id="verify-traces">
    بعد اكتمال التهيئة، سجّل الدخول إلى HyperDX وتحقّق من وصول التتبعات. ينبغي أن ترى شيئًا مشابهًا لما يلي. إذا لم تظهر لك التتبعات، فجرّب تعديل النطاق الزمني:

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/traces-search-view.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=75afbc6596d0bb15abbbbfa82aa8db50" alt="واجهة البحث عن التتبعات" width="3838" height="1936" data-path="images/clickstack/nodejs/traces-search-view.webp" />

    انقر على أي تتبع لعرض التفاصيل، بما في ذلك spans والتوقيت والسمات:

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/trace-view.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=9702806dccc9df636450c26e301a9b2f" alt="عرض تتبع فردي" width="3812" height="1936" data-path="images/clickstack/nodejs/trace-view.webp" />
  </Step>
</Steps>

<div id="demo-dataset">
  ## مجموعة البيانات التجريبية
</div>

للمستخدمين الذين يريدون اختبار التتبّع في Node.js باستخدام ClickStack قبل إضافة أدوات الرصد إلى تطبيقاتهم في بيئة الإنتاج، نوفر مجموعة بيانات نموذجية تحتوي على تتبعات مُولَّدة مسبقًا لتطبيق Node.js بأنماط حركة مرور واقعية.

<Steps>
  <Step title="تنزيل مجموعة البيانات النموذجية" id="download-sample">
    نزّل ملف التتبعات النموذجي:

    ```bash theme={null}
    curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/nodejs/nodejs-traces-sample.json
    ```
  </Step>

  <Step title="بدء ClickStack" id="start-clickstack">
    إذا لم يكن ClickStack قيد التشغيل لديك بعد، فابدأه باستخدام:

    ```bash theme={null}
    docker run -d --name clickstack-demo \
      -p 8080:8080 -p 4317:4317 -p 4318:4318 \
      -e CLICKHOUSE_USER=default \
      -e CLICKHOUSE_PASSWORD= \
      clickhouse/clickstack-all-in-one:latest
    ```
  </Step>

  <Step title="الحصول على مفتاح واجهة برمجة تطبيقات لـ ClickStack" id="get-api-key-demo">
    ستحتاج إلى مفتاح واجهة برمجة تطبيقات لإرسال التتبعات إلى نقطة نهاية OTLP الخاصة بـ ClickStack.

    1. افتح HyperDX على عنوان URL الخاص بـ ClickStack لديك (على سبيل المثال، [http://localhost:8080](http://localhost:8080))
    2. أنشئ حسابًا أو سجّل الدخول إذا لزم الأمر
    3. انتقل إلى **Team Settings → API Keys**
    4. انسخ **Ingestion API Key** الخاص بك

    <Image img="https://mintcdn.com/private-7c7dfe99/Xl4dVm4Z5MHG1h5Z/images/clickstack/api-key.webp?fit=max&auto=format&n=Xl4dVm4Z5MHG1h5Z&q=85&s=2988f52ae02de449619fe59ca8c55a58" alt="مفتاح واجهة برمجة تطبيقات لـ ClickStack" width="3810" height="1924" data-path="images/clickstack/api-key.webp" />

    عيّن مفتاح واجهة برمجة تطبيقات الخاص بك كمتغير بيئة:

    ```bash theme={null}
    export CLICKSTACK_API_KEY=your-api-key-here
    ```
  </Step>

  <Step title="إرسال التتبعات إلى ClickStack" id="send-traces">
    ```bash theme={null}
    curl -X POST http://localhost:4318/v1/traces \
      -H "Content-Type: application/json" \
      -H "Authorization: $CLICKSTACK_API_KEY" \
      -d @nodejs-traces-sample.json
    ```

    ينبغي أن ترى استجابة مثل `{"partialSuccess":{}}`، ما يشير إلى أنه تم إرسال التتبعات بنجاح.
  </Step>

  <Step title="التحقق من التتبعات في HyperDX" id="verify-demo-traces">
    1. افتح [HyperDX](http://localhost:8080/) وسجّل الدخول إلى حسابك (قد تحتاج إلى إنشاء حساب أولًا)
    2. انتقل إلى عرض **Search** وعيّن المصدر إلى **Traces**
    3. عيّن النطاق الزمني إلى **2025-10-25 13:00:00 - 2025-10-28 13:00:00**

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/traces-search-view.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=75afbc6596d0bb15abbbbfa82aa8db50" alt="عرض البحث للتتبعات" width="3838" height="1936" data-path="images/clickstack/nodejs/traces-search-view.webp" />

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/trace-view.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=9702806dccc9df636450c26e301a9b2f" alt="عرض تتبع فردي" width="3812" height="1936" data-path="images/clickstack/nodejs/trace-view.webp" />

    <Info>
      **عرض المنطقة الزمنية**

      يعرض HyperDX الطوابع الزمنية وفقًا للمنطقة الزمنية المحلية لمتصفحك. تمتد البيانات التجريبية عبر **2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC)**. يضمن النطاق الزمني الواسع ظهور التتبعات التجريبية بغض النظر عن موقعك. وبعد ظهور التتبعات، يمكنك تضييق النطاق إلى فترة 24 ساعة للحصول على تصورات أوضح.
    </Info>
  </Step>
</Steps>

<div id="dashboards">
  ## لوحات المعلومات والتصورات
</div>

لمساعدتك على بدء مراقبة أداء تطبيقات Node.js، نوفر لوحة معلومات مُعدّة مسبقًا تتضمن تصورات أساسية للتتبعات.

<Steps>
  <Step title="نزّل إعدادات لوحة المعلومات" id="download-dashboard">
    <TrackedLink href={'https://clickhouse-docs-assets.s3.us-east-1.amazonaws.com/examples/nodejs-traces-dashboard.json'} download="nodejs-traces-dashboard.json" eventName="docs.node_traces_monitoring.dashboard_download">نزّل ملف إعدادات لوحة المعلومات</TrackedLink>.
  </Step>

  <Step title="استورد لوحة المعلومات المُعدّة مسبقًا" id="import-dashboard">
    1. افتح HyperDX وانتقل إلى قسم **لوحات المعلومات**
    2. انقر على **استيراد لوحة معلومات** في الزاوية العلوية اليمنى (ضمن قائمة النقاط الثلاث)

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/import-dashboard.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=ec4eae8ea8e1f77c9b5897b45339b08b" alt="استيراد لوحة معلومات" width="3024" height="556" data-path="images/clickstack/import-dashboard.webp" />

    3. ارفع ملف `nodejs-traces-dashboard.json` وانقر على **إنهاء الاستيراد**

    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/finish-import.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=ace22d7420f7158fea164d9923763c1c" alt="إنهاء الاستيراد" width="3812" height="1936" data-path="images/clickstack/nodejs/finish-import.webp" />
  </Step>

  <Step title="ستُنشأ لوحة المعلومات مع تهيئة جميع التصورات مسبقًا" id="created-dashboard">
    <Image img="https://mintcdn.com/private-7c7dfe99/MFPY913TqoHcFPXJ/images/clickstack/nodejs/example-traces-dashboard.webp?fit=max&auto=format&n=MFPY913TqoHcFPXJ&q=85&s=6198b261f0a7d55d87e08aaff660bf9b" alt="لوحة معلومات نموذجية" width="3812" height="1936" data-path="images/clickstack/nodejs/example-traces-dashboard.webp" />

    <Note>
      بالنسبة إلى مجموعة البيانات التجريبية، اضبط النطاق الزمني على **2025-10-26 13:00:00 - 2025-10-27 13:00:00 (UTC)** (عدّله وفقًا لمنطقتك الزمنية المحلية). لن يكون للنطاق الزمني في لوحة المعلومات المستوردة أي قيمة محددة افتراضيًا.
    </Note>
  </Step>
</Steps>

<div id="troubleshooting">
  ## استكشاف الأخطاء وإصلاحها
</div>

<div id="demo-traces-not-appearing">
  ### عدم ظهور تتبعات العرض التوضيحي عند الإرسال عبر curl
</div>

إذا كنت قد أرسلت التتبعات عبر curl ولكنك لا تراها في HyperDX، فجرّب إرسالها مرةً أخرى:

```bash theme={null}
curl -X POST http://localhost:4318/v1/traces \
  -H "Content-Type: application/json" \
  -H "Authorization: $CLICKSTACK_API_KEY" \
  -d @nodejs-traces-sample.json
```

هذه مشكلة معروفة تحدث عند استخدام نهج العرض التوضيحي عبر curl، ولا تؤثر في تطبيقات الإنتاج المزوّدة بأدوات الرصد.

<div id="no-traces">
  ### عدم ظهور التتبعات في HyperDX
</div>

**تحقق من ضبط متغيرات البيئة:**

```bash theme={null}
echo $CLICKSTACK_API_KEY
# Should output your API key

echo $OTEL_EXPORTER_OTLP_ENDPOINT
# Should output http://localhost:4318 or your ClickStack host
```

**تحقّق من الاتصال بالشبكة:**

```bash theme={null}
curl -v http://localhost:4318/v1/traces
```

يجب أن يتصل بنجاح بـ OTLP endpoint.

**تحقق من سجلات التطبيق:**
ابحث عن رسائل تهيئة OpenTelemetry عند بدء تشغيل تطبيقك. يجب أن تعرض حزمة SDK الخاصة بـ HyperDX تأكيدًا على اكتمال التهيئة.

<div id="next-steps">
  ## الخطوات التالية
</div>

* أعدّ [التنبيهات](/docs/ar/clickstack/features/alerts) للمقاييس المهمة (معدلات الأخطاء، حدود زمن الاستجابة)
* أنشئ لوحات معلومات إضافية لحالات استخدام محددة (مراقبة واجهة برمجة التطبيقات، الأحداث الأمنية)

<div id="going-to-production">
  ## الانتقال إلى الإنتاج
</div>

يستخدم هذا الدليل HyperDX SDK، الذي يرسل التتبعات مباشرةً إلى نقطة نهاية OTLP الخاصة بـ ClickStack. ينجح هذا النهج مع بيئات التطوير والاختبار وعمليات النشر الإنتاجية الصغيرة إلى المتوسطة.
أما في بيئات الإنتاج الأكبر، أو إذا كنت بحاجة إلى مزيد من التحكم في بيانات القياس عن بُعد، ففكّر في نشر OpenTelemetry Collector الخاص بك بصفته agent.
راجع [إدخال البيانات باستخدام OpenTelemetry](/docs/ar/clickstack/ingesting-data/opentelemetry) للاطلاع على أنماط النشر في بيئة الإنتاج وأمثلة على تهيئة collector.
