> ## 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.

# إرسال OpenTelemetry إلى ClickStack باستخدام Telflo

> أنشئ ونشر تهيئات OpenTelemetry Collector التي ترسل بيانات telemetry إلى ClickStack أو تكتبها مباشرةً في ClickHouse، مع تولّي Telflo إدارة أسطول الـ collector

export const PartnerBadge = () => {
  return <div className="PartnerBadge">
            <div className="PartnerBadgeIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <polyline points="12.5 9.5 10 12 6 11 2.5 8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="4.54 4.41 8 3.5 11.46 4.41" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M2.15,3.78 L0.55,6.95 A0.5,0.5 0,0,0 0.77,7.62 L2.5,8.5 L4.54,4.41 L2.82,3.55 A0.5,0.5 0,0,0 2.15,3.78 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M13.5,8.5 L15.23,7.62 A0.5,0.5 0,0,0 15.45,6.95 L13.85,3.78 A0.5,0.5 0,0,0 13.18,3.55 L11.46,4.41 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M11.5,4.5 L9,4.5 L6.15,7.27 A0.5,0.5 0,0,0 6.24,8.05 C7.33,8.74 8.81,8.72 10,7.5 L12.5,9.5 L13.5,8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="7.75 13.5 5.15 12.85 3.5 11.67" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                </svg>
            </div>
            تكامل شريك
        </div>;
};

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

<PartnerBadge />

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

  يوضّح لك هذا الدليل كيفية إرسال telemetry إلى ClickStack من OpenTelemetry Collectors التي تديرها Telflo. ستتعلّم كيفية:

  * إنشاء تهيئة collector في المحرر المرئي لـ Telflo أو باستخدام CLI
  * إرسال telemetry إلى ClickStack مفتوح المصدر أو Managed ClickStack، أو كتابتها مباشرةً في ClickHouse
  * نشر التهيئة عن بُعد على أسطول من collectors
  * التأكد من وصول telemetry إلى ClickStack أو إلى جداول ClickHouse الخاصة بك

  الوقت المطلوب: 15-20 دقيقة
</Info>

<h2 id="what-is-telflo">
  ما هو Telflo؟
</h2>

Telflo هو control plane محايد تجاه المزوّدين لـ OpenTelemetry Collectors، ويوفّر إدارة مركزية لتهيئة collector عبر أسطول كامل. وهو يجعل الأساطيل الكبيرة سهلة الإدارة عبر محرر مرئي، واختبارات pipeline، ونشر التهيئة عن بُعد. ويدير Telflo إصدارات builds القياسية من upstream لـ OpenTelemetry collector، دون أي distribution خاص بـ Telflo ودون أي agent مملوك، وبذلك تبقى الـ collectors التي تشغّلها فرقك بالفعل على الـ build نفسه.

ويمكن أيضاً الوصول إلى Telflo من خارج المتصفح عبر [واجهة سطر الأوامر](https://docs.telflo.com/docs/cli/). وبدمج ذلك مع [ClickStack MCP server](/docs/ar/clickstack/mcp)، يصبح بإمكان الـ agent نفسه الذي يستعلم عن الـ telemetry أن يُصلح الـ pipeline الذي أنتجها.

<h2 id="why-telflo-clickstack">
  لماذا Telflo + ClickStack؟
</h2>

يتولى ClickStack استقبال البيانات وتخزينها وتنفيذ الاستعلامات التحليلية بأحجام كبيرة. أما Telflo فيدير مركزيًا أسطول OpenTelemetry Collectors الذي يغذّيه، عبر المضيفات والعناقيد والمناطق.

يوفّر Telflo:

* إدارة مركزية لـ OpenTelemetry Collectors عبر المضيفات والحاويات وKubernetes
* تحريرًا مرئيًا لمسارات البيانات، مع طرح مُحكم للأسطول بأكمله أو لمجموعة واحدة
* التحقق من التغييرات باستخدام عيّنة من بيانات القياس قبل وصولها إلى المجمّعات في بيئة الإنتاج
* توجيه بيانات القياس نفسها إلى ClickStack وإلى وجهات أخرى في الوقت ذاته
* رؤية شاملة للأسطول: أي المجمّعات متصلة، وما الذي يشغّله كل منها، وأيها انحرف عن الإعداد المعتمد

<Tip>
  **أهم النقاط**

  * **يستقبل ClickStack البيانات ويخزّنها ويستعلم عنها على نطاق واسع**
  * **يدير Telflo أسطول المجمّعات الذي يغذّيه**
</Tip>

<h2 id="prerequisites">
  المتطلبات المسبقة
</h2>

* وجهة: [Open Source ClickStack](/docs/ar/clickstack/getting-started/oss)، أو [Managed ClickStack](/docs/ar/clickstack/getting-started/managed)، أو نسخة ClickHouse ذاتية الإدارة
* حساب Telflo ([أنشئ حسابًا على telflo.com](https://telflo.com))
* مكان لتشغيل الـ collectors: جهاز افتراضي أو عنقود Kubernetes
* **Open Source ClickStack**: نقطة نهاية OTLP الخاصة بـ ClickStack (المنفذ `4318` لـ HTTP و`4317` لـ gRPC) ومفتاح واجهة برمجة التطبيقات الخاص بالاستيعاب، وتجده في HyperDX ضمن **Team Settings → API Keys** ([راجع الوثائق هنا](/docs/ar/clickstack/ingesting-data/opentelemetry#sending-otel-data))
* **Managed ClickStack**: نقطة نهاية خدمة ClickHouse Cloud الخاصة بك (المنفذ `8443`) ومستخدم للاستيعاب (راجع [إنشاء مستخدم للاستيعاب](/docs/ar/clickstack/ingesting-data/collector#creating-an-ingestion-user))
* **ClickHouse ذاتي الإدارة**: نقطة نهاية ClickHouse الخاصة بك، وقاعدة بيانات لـ [جداول ClickStack](/docs/ar/clickstack/ingesting-data/schemas)، ومستخدم قادر على إنشائها والكتابة فيها (راجع [إنشاء مستخدم للاستيعاب](/docs/ar/clickstack/ingesting-data/collector#creating-an-ingestion-user-oss))
* اتصال شبكي من الـ collectors إلى نقطة نهاية ClickStack أو ClickHouse الخاصة بك

<h2 id="integrate-telflo-clickstack">
  دمج ClickStack مع Telflo
</h2>

<Steps>
  <Step title="إنشاء تهيئة لـ collector" id="build-configuration">
    1. سجّل الدخول إلى Telflo. في قائمة **Configurations**، انقر على **New Configuration**، ثم **Blank configuration**.
    2. في **Name Your Configuration**، أدخل اسمًا وانقر على **Create**.
    3. أضف مكوّنات receivers: اسحب واحدًا من لوحة المكوّنات إلى مساحة العمل لكل نوع من بيانات telemetry التي تجمعها.
    4. أضف مكوّنات processors: **Memory Limiter** و**Batch**، إلى جانب أي مكوّنات أخرى تحتاجها لتشكيل البيانات قبل خروجها من الـ collector. راجع [القائمة الكاملة لمكوّنات processors التي يدعمها Telflo](https://docs.telflo.com/docs/build/components#processors).
  </Step>

  <Step title="أضِف المُصدِّر" id="add-exporter">
    تستخدم المسارات الثلاثة جميعها المحرر نفسه، وخطوة النشر نفسها، والأسطول نفسه؛ ولا يختلف بينها سوى المُصدِّر. اختر علامة التبويب المناسبة لطريقة النشر لديك: يستقبل ClickStack مفتوح المصدر بيانات OTLP باستخدام مفتاح استيعاب؛ أما ClickStack المُدار وClickHouse ذاتي الإدارة فيستقبلان عمليات كتابة مباشرة إلى جداول ClickStack.

    <Tabs>
      <Tab title="Open Source ClickStack">
        1. اسحب مُصدِّر **OTLP/HTTP** إلى لوحة العمل.
        2. اضبط **Endpoint** على نقطة نهاية OTLP HTTP الخاصة بـ ClickStack، على سبيل المثال `http://clickstack.example.com:4318`.
        3. ضمن **HTTP Headers**، انقر على **Add header**، ثم أدخل `authorization` في **Header name** و`${env:CLICKSTACK_INGESTION_KEY}` في **Header value**. يطلب Telflo هذه القيمة عند تثبيت المجمّعات، لذا لا يُخزَّن المفتاح مطلقًا في التهيئة.

        أما مع gRPC، فاستخدم مُصدِّر **OTLP** على المنفذ `4317` مع الترويسة نفسها ضمن **gRPC Metadata Headers**.
      </Tab>

      <Tab title="Managed ClickStack">
        لا يأتي Managed ClickStack مع مجمّع بوابة، لذا لا توجد نقطة نهاية OTLP مستضافة لإرسال بيانات القياس إليها. والمجمّع الذي تهيئه هنا هو الذي يقوم بدور تلك [البوابة](/docs/ar/clickstack/ingesting-data/collector#collector-roles): امنحه مُستقبِل **OTLP** إلى جانب مُصدِّر ClickHouse، فيكتب إلى خدمة ClickHouse Cloud الخاصة بك. وبعد ذلك ترسل إليه حِزم SDK ومجمّعات الوكيل بيانات OTLP على المنفذ `4318` (HTTP) أو `4317` (gRPC).

        1. اسحب مُصدِّر **ClickHouse** إلى لوحة العمل.
        2. املأ **Endpoint** بنقطة نهاية خدمة ClickHouse Cloud الخاصة بك (المنفذ `8443`)، واضبط **Database** على `default`، واضبط **Username** على مستخدم الاستيعاب الخاص بك.
        3. اضبط **Password** على `${env:CLICKHOUSE_PASSWORD}`. يطلب Telflo هذه القيمة عند تثبيت المجمّعات، لذا لا تُخزَّن بيانات الاعتماد مطلقًا في التهيئة.
        4. ضمن **Schema & Tables**: إذا لم تكن [جداول ClickStack](/docs/ar/clickstack/ingesting-data/schemas) موجودة بعد، فاترك **Create Schema on Startup** مفعّلًا ليقوم المُصدِّر بإنشائها. وعطّله بعد وجودها.

        أبقِ **Batch** قبل المُصدِّر في المسار: فأداء ClickHouse يكون في أفضل حالاته مع عمليات الإدراج المجمّعة. وإذا كنت تشغّل بالفعل [مجمّع ClickStack](/docs/ar/clickstack/ingesting-data/collector#configuring-the-collector) كبوابة OTLP لديك، فيمكنك بدلًا من ذلك اتباع خطوات Open Source ClickStack، باستخدام [`OTLP_AUTH_TOKEN`](/docs/ar/clickstack/ingesting-data/collector#securing-the-collector) الذي ضبطته على ذلك المجمّع كقيمة للترويسة.
      </Tab>

      <Tab title="Self-managed ClickHouse">
        يقوم المجمّع الذي تهيئه هنا بدور [البوابة](/docs/ar/clickstack/ingesting-data/collector#collector-roles) الخاصة بك: امنحه مُستقبِل **OTLP** إلى جانب مُصدِّر ClickHouse. ترسل إليه حِزم SDK ومجمّعات الوكيل بيانات OTLP، وهو يكتبها إلى ClickHouse.

        1. اسحب مُصدِّر **ClickHouse** إلى لوحة العمل.
        2. املأ **Endpoint** (على سبيل المثال `https://clickhouse.example.com:8443`) و**Database** و**Username**، مع توجيه **Database** إلى قاعدة البيانات التي توجد فيها جداول ClickStack.
        3. اضبط **Password** على `${env:CLICKHOUSE_PASSWORD}`. يطلب Telflo هذه القيمة عند تثبيت المجمّعات، لذا لا تُخزَّن بيانات الاعتماد مطلقًا في التهيئة.
        4. ضمن **Schema & Tables**: إذا لم تكن جداول ClickStack موجودة بعد، فاترك **Create Schema on Startup** مفعّلًا ليقوم المُصدِّر بإنشائها. وعطّله بعد وجودها.

        أبقِ **Batch** قبل المُصدِّر في المسار: فأداء ClickHouse يكون في أفضل حالاته مع عمليات الإدراج المجمّعة. وإذا كنت تشغّل بالفعل [مجمّع ClickStack](/docs/ar/clickstack/ingesting-data/collector#configuring-the-collector) كبوابة OTLP لديك، فيمكنك بدلًا من ذلك اتباع خطوات Open Source ClickStack، باستخدام [`OTLP_AUTH_TOKEN`](/docs/ar/clickstack/ingesting-data/collector#securing-the-collector) الذي ضبطته على ذلك المجمّع كقيمة للترويسة.
      </Tab>
    </Tabs>

    ارسم الأسهم (edges) من المستقبلات (receivers) مروراً بالمعالجات (processors) وصولاً إلى المُصدِّر (exporter)، بواقع pipeline واحد لكل إشارة. ويعرض صف الـ status إما **config valid** أو عدد الأخطاء التي يلزم إصلاحها، بينما يعرض تبويب **YAML** الإعداد (configuration) المُولَّد.

    <Image img="https://mintcdn.com/private-7c7dfe99/5NhXl45F-rkC2yU0/images/clickstack/telflo/telflo-configuration.webp?fit=max&auto=format&n=5NhXl45F-rkC2yU0&q=85&s=4b8c285f2ceaef0b8d68dfeb998fe899" alt="مسار تجميع في محرر Telflo مع تهيئة مُصدِّر ClickHouse" size="lg" width="3418" height="1908" data-path="images/clickstack/telflo/telflo-configuration.webp" />

    قبل نشر أي شيء، يمكنك تمرير عيّنة من بيانات التتبع (telemetry) عبر التكوين والتحقق من الناتج في الطرف الآخر. راجع [الاختبار في Telflo](https://docs.telflo.com/docs/testing/overview). أو بدلاً من ذلك، يمكنك وصف ما تريد تحقيقه، فيقوم مساعد الذكاء الاصطناعي في Telflo، الذي يُفتح بزر **AI** في شريط الأدوات، ببناء التكوين والتحقق من صحته واختباره نيابةً عنك. ويمكن للوكيل (agent) الخاص بك القيام بالأمر نفسه عبر [واجهة سطر أوامر Telflo](https://docs.telflo.com/docs/cli/).
  </Step>

  <Step title="نشر إصدار" id="publish-version">
    انقر على **Publish** في شريط الأدوات. الإصدارات المنشورة للقراءة فقط؛ وللمتابعة في إجراء التعديلات، انقر على **Create New Version**.
  </Step>

  <Step title="أنشئ مجموعة وابدأ النشر" id="deploy-collectors">
    1. انتقل إلى **Fleet**، وانقر على **New Fleet**، ثم اختر المكان الذي تعمل فيه collectors، سواء على أجهزة افتراضية أو في Kubernetes. أدخل **Name** وانقر على **Create fleet**.
    2. من تبويب **Deploy Groups** الخاص بالـ fleet، انقر على **Assign** في مجموعة **Default** واختر الـ configuration المنشورة والإصدار.
    3. انقر على **Install** في المجموعة، وأدخل قيمة لكل environment variable تشير إليه الـ configuration؛ فيضيفها Telflo إلى أمر التثبيت. نفّذ هذا الأمر في المكان الذي يُفترض أن تعمل فيه collectors، [متّبعًا تعليمات التثبيت الخاصة بـ Telflo](https://docs.telflo.com/docs/fleet-management/install-collectors). ويحمل هذا الأمر install token الخاص بالـ fleet إلى جانب القيم التي أدخلتها، لذا تعامل معه كمعلومة حسّاسة.
    4. في تبويب **Collectors**، تُبلّغ collectors عن الحالة **Pending pickup**، ثم **Applying**، ثم **In sync**.

    لتنفيذ rollout لتغيير ما، انشر إصدارًا جديدًا وأسنِده إلى المجموعة؛ وللرجوع إلى الوضع السابق، أسنِد إصدارًا سبق نشره.

    <Image img="https://mintcdn.com/private-7c7dfe99/5NhXl45F-rkC2yU0/images/clickstack/telflo/telflo-fleet.webp?fit=max&auto=format&n=5NhXl45F-rkC2yU0&q=85&s=fc39b525dff977bd4f637f2b5efb3f78" alt="fleet في Telflo وجميع collectors فيه متزامنة بعد عملية rollout" size="lg" width="3420" height="1892" data-path="images/clickstack/telflo/telflo-fleet.webp" />
  </Step>

  <Step title="تحقّق من بيانات التتبّع" id="verify-telemetry">
    افتح HyperDX وابحث عن إحدى خدماتك في عرض **Search**؛ واستخدم **Chart Explorer** للمقاييس. أما مع Managed ClickStack، فافتح خدمتك في وحدة تحكم ClickHouse Cloud وانقر على **Launch ClickStack**. وفي حالة ClickHouse ذاتي الإدارة، استعلم [جداول ClickStack](/docs/ar/clickstack/ingesting-data/schemas) مباشرةً، على سبيل المثال `SELECT ServiceName, count() FROM otel_logs GROUP BY ServiceName`.
  </Step>
</Steps>

<h2 id="advanced-configuration">
  التكوين المتقدم
</h2>

<h3 id="fan-out-routing">
  التوجيه المتعدد (Fan-out routing)
</h3>

يمكن إرسال بيانات القياس نفسها في الوقت ذاته إلى ClickStack للتخزين طويل الأجل، وإلى منصة أخرى أثناء عملية الترحيل، وإلى نظام SIEM لتحليل الأمان. أضِف المُصدِّرات (exporters) على لوحة العمل واربطها بالـ pipelines التي ينبغي أن تغذّيها، أو ابدأ من pipeline جاهز في [مكتبة المسارات الخاصة بـ Telflo](https://telflo.com/flows).

<h3 id="compression-and-performance">
  الضغط والأداء
</h3>

* **مُصدِّرا OTLP/HTTP وOTLP**: أبقِ **Compression** على gzip.
* **ClickHouse exporter**: أبقِ **Async Insert** مفعّلًا، واترك **Compression** على lz4، وأضِف معالج **Batch** قبله في السلسلة. راجع [تحسين عمليات الإدراج](/docs/ar/clickstack/ingesting-data/collector#optimizing-inserts).

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

* **إنشاء لوحات المعلومات**: أنشئ تصورات في HyperDX للسجلات والمقاييس والتتبعات
* **إعداد التنبيهات**: هيّئ التنبيهات في ClickStack للحالات الحرجة
* **التحسين بمساعد الذكاء الاصطناعي**: اطلب منه تعديل خط معالجة بيانات أو اقتراح اختبارات
* **الانتقال من مزوّد آخر**: تغطي [flows](https://telflo.com/flows) عملية التحويل، إذ تحلّ محل الوكلاء الموجودين بالفعل في أسطولك وترسل البيانات بشكل مزدوج إلى كلتا الواجهتين الخلفيتين أثناء مقارنتك بينهما

<h2 id="read-more">
  اقرأ المزيد
</h2>

* [وثائق Telflo](https://docs.telflo.com/docs)
* [البداية السريعة: من لوحة فارغة إلى collector منشور](https://docs.telflo.com/docs/getting-started/quickstart)
* [اختبار تهيئة collector](https://docs.telflo.com/docs/testing/overview)
* [إدارة الأسطول في Telflo](https://docs.telflo.com/docs/fleet-management/overview)
* [تثبيت collectors](https://docs.telflo.com/docs/fleet-management/install-collectors)
* [استيعاب البيانات باستخدام OpenTelemetry](/docs/ar/clickstack/ingesting-data/opentelemetry)
* [مخططات جداول ClickStack](/docs/ar/clickstack/ingesting-data/schemas)
