> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> إدخال البيانات باستخدام OpenTelemetry في ClickStack - حزمة Observability من ClickHouse

# إدخال البيانات باستخدام OpenTelemetry

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

تُستقبل جميع البيانات في ClickStack عبر مثيل **OpenTelemetry (OTel) collector**، الذي يعمل كنقطة الدخول الأساسية للسجلات والمقاييس والتتبعات وبيانات الجلسات. نوصي باستخدام [توزيعة ClickStack الرسمية](#installing-otel-collector) من الـ collector لهذا المثيل.

<Tip>
  تتوفر أيضًا نسخة مُدارة من ClickStack — راجع [Managed ClickStack](/ar/clickstack/getting-started/managed).
</Tip>

يرسل المستخدمون البيانات إلى هذا الـ collector من خلال [language SDKs](/ar/clickstack/ingesting-data/sdks/index) أو عبر وكلاء جمع البيانات الذين يجمعون مقاييس البنية التحتية والسجلات (مثل OTel collectors التي تعمل بدور [agent](/ar/clickstack/ingesting-data/collector#collector-roles)، أو تقنيات أخرى مثل [Fluentd](https://www.fluentd.org/) أو [Vector](https://vector.dev/)). أما الفرق التي تريد pipeline مُدارة لـ OpenTelemetry، فإن [Bindplane](/ar/clickstack/integration-partners/bindplane) يوفر حلًا أصليًا لـ OpenTelemetry مع وجهة ClickStack أصلية، مما يبسّط جمع بيانات telemetry ومعالجتها وتوجيهها.

<div id="sending-otel-data">
  ## إرسال بيانات OpenTelemetry
</div>

<Tabs>
  <Tab title="ClickStack المُدار">
    ### تثبيت ClickStack OpenTelemetry collector

    لإرسال البيانات إلى Managed ClickStack، يجب نشر OTel collector في [دور gateway](/ar/clickstack/ingesting-data/collector#collector-roles). سترسل أدوات instrumentation المتوافقة مع OTel الأحداث إلى هذا الـ OTel collector عبر OTLP باستخدام HTTP أو gRPC.

    <Info>
      **نوصي باستخدام ClickStack OpenTelemetry collector**

      يتيح لك ذلك الاستفادة من إدخال بيانات موحّد، وschemas موحّدة ومفروضة، وتوافق جاهز مع ClickStack UI ‏(HyperDX). كما يتيح استخدام schema الافتراضي الاكتشاف التلقائي للمصادر وعمليات تعيين الأعمدة المُعدّة مسبقًا.
    </Info>

    لمزيد من التفاصيل، راجع ["نشر الـ collector"](/ar/clickstack/ingesting-data/collector).

    ### إرسال البيانات إلى الـ collector

    لإرسال البيانات إلى Managed ClickStack، وجّه أدوات OpenTelemetry instrumentation إلى نقاط النهاية التالية التي يوفّرها OpenTelemetry Collector:

    * **HTTP (OTLP):** `http://localhost:4318`
    * **gRPC (OTLP):** `localhost:4317`

    بالنسبة إلى [language SDKs](/ar/clickstack/ingesting-data/sdks/index) ومكتبات telemetry التي تدعم OpenTelemetry، يمكنك ببساطة تعيين متغير البيئة `OTEL_EXPORTER_OTLP_ENDPOINT` في تطبيقك:

    ```shell theme={null}
    export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
    ```

    إذا كنت تنشر [توزيعة contrib من OTel collector](https://github.com/open-telemetry/opentelemetry-collector-contrib) بدور agent، فيمكنك استخدام OTLP exporter للإرسال إلى ClickStack collector. فيما يلي مثال على إعداد agent يستهلك [ملف السجل المهيكل هذا](https://datasets-documentation.s3.eu-west-3.amazonaws.com/http_logs/access-structured.log.gz).

    ```yaml theme={null}
    # clickhouse-agent-config.yaml
    receivers:
      filelog:
        include:
          - /opt/data/logs/access-structured.log
        start_at: beginning
        operators:
          - type: json_parser
            timestamp:
              parse_from: attributes.time_local
              layout: '%Y-%m-%d %H:%M:%S'
    exporters:
      # HTTP setup
      otlphttp/hdx:
        endpoint: 'http://localhost:4318'
        compression: gzip
     
      # gRPC setup (alternative)
      otlp/hdx:
        endpoint: 'localhost:4317'
        compression: gzip
    processors:
      batch:
        timeout: 5s
        send_batch_size: 10000
    service:
      telemetry:
        metrics:
          address: 0.0.0.0:9888 # Modified as 2 collectors running on same host
      pipelines:
        logs:
          receivers: [filelog]
          processors: [batch]
          exporters: [otlphttp/hdx]
    ```
  </Tab>

  <Tab title="ClickStack مفتوح المصدر">
    يتضمّن معظم توزيعات ClickStack مكوّن ClickStack OpenTelemetry collector، بما في ذلك:

    * [All-in-One](/ar/clickstack/deployment/all-in-one)
    * [Docker Compose](/ar/clickstack/deployment/docker-compose)
    * [Helm](/ar/clickstack/deployment/helm)

    ### تثبيت ClickStack OpenTelemetry collector

    يمكن أيضًا نشر ClickStack OTel collector بشكل مستقل، بعيدًا عن بقية مكونات المكدس.

    إذا كنت تستخدم توزيعة [HyperDX-only](/ar/clickstack/deployment/hyperdx-only)، فستكون مسؤولًا بنفسك عن إيصال البيانات إلى ClickHouse. ويمكنك القيام بذلك من خلال:

    * تشغيل OpenTelemetry collector الخاص بك وتوجيهه إلى ClickHouse - انظر أدناه.
    * الإرسال مباشرةً إلى ClickHouse باستخدام أدوات بديلة، مثل [Vector](https://vector.dev/)، و[Fluentd](https://www.fluentd.org/)، وغير ذلك، أو حتى [توزيعة OTel contrib collector الافتراضية](https://github.com/open-telemetry/opentelemetry-collector-contrib).

    <Info>
      **نوصي باستخدام ClickStack OpenTelemetry collector**

      يتيح لك ذلك الاستفادة من آلية ingestion موحّدة، وschemas مفروضة، وتوافق جاهز مع HyperDX UI. كما أن استخدام schema الافتراضي يتيح الاكتشاف التلقائي للمصادر وعمليات تعيين الأعمدة المُعدّة مسبقًا.
    </Info>

    لمزيد من التفاصيل، راجع ["نشر الـ collector"](/ar/clickstack/ingesting-data/collector).

    ### إرسال البيانات إلى الـ collector

    لإرسال البيانات إلى ClickStack، وجّه إعدادات OpenTelemetry instrumentation في تطبيقك إلى endpoints التالية التي يوفّرها OpenTelemetry collector:

    * **HTTP (OTLP):** `http://localhost:4318`
    * **gRPC (OTLP):** `localhost:4317`

    بالنسبة إلى [language SDKs](/ar/clickstack/ingesting-data/sdks/index) ومكتبات telemetry التي تدعم OpenTelemetry، يمكنك ببساطة تعيين متغير البيئة `OTEL_EXPORTER_OTLP_ENDPOINT` في تطبيقك:

    ```shell theme={null}
    export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
    ```

    بالإضافة إلى ذلك، يلزم إرسال ترويسة تفويض تتضمن مفتاح API للإدخال. يمكنك العثور على المفتاح في تطبيق HyperDX ضمن `Team Settings → API Keys`.

    <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/ingestion-keys.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=6522a41c2edd4e899b357dbcff1994de" alt="مفاتيح الإدخال" size="lg" width="3600" height="1902" data-path="images/use-cases/observability/ingestion-keys.png" />

    بالنسبة إلى SDKs الخاصة باللغات، يمكن بعد ذلك ضبط هذا إما بواسطة الدالة `init` أو عبر متغير البيئة `OTEL_EXPORTER_OTLP_HEADERS`، على سبيل المثال:

    ```shell theme={null}
    OTEL_EXPORTER_OTLP_HEADERS='authorization=<YOUR_INGESTION_API_KEY>'
    ```

    ينبغي كذلك أن تتضمّن المكوّنات العاملة بدور agent ترويسة Authorization هذه في أي اتصال عبر OTLP. على سبيل المثال، إذا كنت تنشر [إصدار contrib من OTel collector](https://github.com/open-telemetry/opentelemetry-collector-contrib) بدور agent، فيمكنه استخدام مُصدِّر OTLP. يرد أدناه مثال على إعداد agent يستهلك [ملف السجل المنظَّم](https://datasets-documentation.s3.eu-west-3.amazonaws.com/http_logs/access-structured.log.gz) هذا. لاحظ ضرورة تحديد مفتاح تفويض — راجع `<YOUR_API_INGESTION_KEY>`.

    ```yaml theme={null}
    # clickhouse-agent-config.yaml
    receivers:
      filelog:
        include:
          - /opt/data/logs/access-structured.log
        start_at: beginning
        operators:
          - type: json_parser
            timestamp:
              parse_from: attributes.time_local
              layout: '%Y-%m-%d %H:%M:%S'
    exporters:
      # HTTP setup
      otlphttp/hdx:
        endpoint: 'http://localhost:4318'
        headers:
          authorization: <YOUR_API_INGESTION_KEY>
        compression: gzip
     
      # gRPC setup (alternative)
      otlp/hdx:
        endpoint: 'localhost:4317'
        headers:
          authorization: <YOUR_API_INGESTION_KEY>
        compression: gzip
    processors:
      batch:
        timeout: 5s
        send_batch_size: 10000
    service:
      telemetry:
        metrics:
          address: 0.0.0.0:9888 # Modified as 2 collectors running on same host
      pipelines:
        logs:
          receivers: [filelog]
          processors: [batch]
          exporters: [otlphttp/hdx]
    ```
  </Tab>
</Tabs>
