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

# مجموعة البيانات التجريبية البعيدة

> بدء الاستخدام مع ClickStack ومجموعة بيانات تجريبية بعيدة

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>;
};

**يفترض هذا الدليل أنك نشرت ClickStack مفتوح المصدر باستخدام [إرشادات الصورة الشاملة](/docs/ar/clickstack/getting-started/oss)، أو [الوضع المحلي فقط](/docs/ar/clickstack/deployment/local-mode-only)، وأكملت إنشاء المستخدم الأولي. أو يمكنك بدلاً من ذلك تخطي الإعداد المحلي بالكامل والاتصال مباشرةً بالعرض التوضيحي المستضاف لـ ClickStack على [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com)، والذي يستخدم مجموعة البيانات هذه.**

يستخدم هذا الدليل مجموعة بيانات تجريبية مستضافة على ClickHouse playground العام في [sql.clickhouse.com](https://sql.clickhouse.com)، ويمكنك الاتصال بها من عملية نشر ClickStack المحلية لديك.

<Warning>
  **غير مدعوم في ClickStack المُدار**

  قواعد البيانات البعيدة غير مدعومة عند استخدام ClickStack المُدار. لذلك، مجموعة البيانات هذه غير مدعومة.
</Warning>

وتتضمن هذه المجموعة نحو 40 ساعة من البيانات المأخوذة من نسخة ClickHouse من العرض التجريبي الرسمي لـ OpenTelemetry (OTel). ويُعاد تشغيل البيانات كل ليلة مع تعديل الطوابع الزمنية لتتوافق مع النافذة الزمنية الحالية، مما يتيح للمستخدمين استكشاف سلوك النظام باستخدام السجلات والتتبعات والمقاييس المدمجة في HyperDX.

<Info>
  **اختلافات البيانات**

  نظرًا إلى أن مجموعة البيانات يُعاد تشغيلها يوميًا بدءًا من منتصف الليل، فقد تختلف العروض المرئية الدقيقة بحسب وقت استكشافك للعرض التجريبي.
</Info>

<div id="demo-scenario">
  ## سيناريو العرض التوضيحي
</div>

في هذا العرض التوضيحي، نحقق في حادثة تتعلق بموقع تجارة إلكترونية يبيع التلسكوبات والملحقات المرتبطة بها.

أفاد فريق دعم العملاء بأن المستخدمين يواجهون مشكلات في إكمال عمليات الدفع عند صفحة إتمام الشراء. وقد صُعِّدت المشكلة إلى فريق هندسة موثوقية الموقع (SRE) للتحقيق فيها.

وباستخدام HyperDX، سيحلل فريق SRE السجلات والتتبعات والمقاييس لتشخيص المشكلة وحلّها، ثم سيراجع بيانات الجلسات للتأكد من أن استنتاجاته تتوافق مع سلوك المستخدمين الفعلي.

<div id="otel-demo">
  ## العرض التجريبي
</div>

يستخدم هذا العرض التوضيحي [نسخة متفرعة يتولى ClickStack صيانتها](https://github.com/ClickHouse/opentelemetry-demo) من تطبيق العرض التجريبي الرسمي.

<div id="demo-architecture">
  ### معمارية العرض التوضيحي
</div>

يتكوّن العرض التوضيحي من خدمات مصغّرة مكتوبة بلغات برمجة مختلفة، تتواصل فيما بينها عبر gRPC وHTTP، بالإضافة إلى مولّد حمل يستخدم Locust لمحاكاة حركة مرور المستخدمين. وقد عُدِّلت الشيفرة المصدرية الأصلية لهذا العرض التوضيحي لاستخدام [تهيئة ClickStack البرمجية](/docs/ar/clickstack/ingesting-data/sdks/index).

<Frame>
  <img src="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/architecture.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=4d6aa3c2f961c03b0c6ee2e0e2a9647c" alt="معمارية" width="2180" height="2282" data-path="images/use-cases/observability/hyperdx-demo/architecture.webp" />
</Frame>

*المصدر: [https://opentelemetry.io/docs/demo/architecture/](https://opentelemetry.io/docs/demo/architecture/)*

يمكن العثور على مزيد من التفاصيل حول العرض التوضيحي في:

* [وثائق OpenTelemetry](https://opentelemetry.io/docs/demo/)
* [التفرّع الذي تتولى ClickStack صيانته](https://github.com/ClickHouse/opentelemetry-demo)

<div id="demo-steps">
  ## خطوات العرض التوضيحي
</div>

**قمنا بتزويد هذا العرض التوضيحي بأدوات الرصد باستخدام [ClickStack SDKs](/docs/ar/clickstack/ingesting-data/sdks/index)، مع نشر الخدمات على Kubernetes، وجمع المقاييس والسجلات منها أيضًا.**

<Steps>
  <Step title="الاتصال بالخادم التجريبي" id="connect-to-the-demo-server">
    <Info>
      **الوضع المحلي فقط**

      يمكن تخطي هذه الخطوة إذا نقرت على `Connect to Demo Server` عند النشر في الوضع المحلي. عند استخدام هذا الوضع، ستبدأ أسماء المصادر بالبادئة `Demo_`، مثل `Demo_Logs`
    </Info>

    انتقل إلى `Team Settings` وانقر على `Edit` بجانب `Local Connection`:

    <Image img="https://mintcdn.com/private-7c7dfe99/0q34g_AjISMsyr4Q/images/use-cases/observability/edit_connection.webp?fit=max&auto=format&n=0q34g_AjISMsyr4Q&q=85&s=bbe2967c61d5b6e4c081ca69cd8a0d4c" alt="تعديل الاتصال" size="lg" width="3600" height="1852" data-path="images/use-cases/observability/edit_connection.webp" />

    أعد تسمية الاتصال إلى `Demo`، ثم أكمل النموذج التالي باستخدام تفاصيل الاتصال التالية الخاصة بالخادم التجريبي:

    * `Connection Name`: `Demo`
    * `Host`: `https://sql-clickhouse.clickhouse.com`
    * `Username`: `otel_demo`
    * `Password`: اتركه فارغًا

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/edit_demo_connection.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2e4afa2b648580a932fd17317fd257d0" alt="تعديل اتصال العرض التوضيحي" size="lg" width="3600" height="1852" data-path="images/use-cases/observability/hyperdx-demo/edit_demo_connection.webp" />
  </Step>

  <Step title="عدّل المصادر" id="modify-sources">
    <Info>
      **الوضع المحلي فقط**

      يمكن تخطي هذه الخطوة إذا نقرت على `Connect to Demo Server` عند النشر في الوضع المحلي. وإذا كنت تستخدم هذا الوضع، فستُسبق أسماء المصادر بالبادئة `Demo_`، مثل `Demo_Logs`
    </Info>

    مرّر للأعلى إلى `Sources`، ثم عدّل كل مصدر من المصادر — `Logs` و`Traces` و`Metrics` و`Sessions` — لاستخدام قاعدة البيانات `otel_v2`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/edit_demo_source.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5029216f40114d7602258a9122c28a90" alt="تحرير مصدر العرض التوضيحي" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/edit_demo_source.webp" />

    <Note>
      قد تحتاج إلى إعادة تحميل الصفحة للتأكد من ظهور القائمة الكاملة لقواعد البيانات ضمن كل مصدر.
    </Note>
  </Step>

  <Step title="عدّل النطاق الزمني" id="adjust-the-timeframe">
    اضبط النطاق الزمني لعرض جميع البيانات من `1 day` السابقة باستخدام منتقي الوقت في الزاوية العلوية اليمنى.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_2.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=01151c3a3155f2d9cdf62a5f50be09c9" alt="الخطوة 2" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_2.webp" />

    قد تلاحظ اختلافًا طفيفًا في عدد الأخطاء في المخطط الشريطي ضمن قسم النظرة العامة، مع زيادة طفيفة باللون الأحمر في عدة أشرطة متتالية.

    <Note>
      سيختلف موضع الأشرطة حسب وقت الاستعلام عن مجموعة البيانات.
    </Note>
  </Step>

  <Step title="صفِّ لعرض الأخطاء" id="filter-to-errors">
    لإبراز حالات ظهور الأخطاء، استخدم عامل التصفية `SeverityText` وحدد `error` لعرض السجلات ذات مستوى الخطأ فقط.

    ينبغي أن يصبح الخطأ أكثر وضوحًا:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_3.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2d06e2a9b54a2057f428dd15fb81203d" alt="الخطوة 3" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_3.webp" />
  </Step>

  <Step title="حدّد أنماط الأخطاء" id="identify-error-patterns">
    باستخدام ميزة التجميع العنقودي في HyperDX، يمكنك تلقائيًا تحديد الأخطاء وتجميعها في أنماط ذات دلالة. وهذا يسرّع عملية التحليل عند التعامل مع كميات كبيرة من السجلات وعمليات التتبّع. لاستخدام هذه الميزة، حدِّد `Event Patterns` من قائمة `Analysis Mode` في اللوحة اليسرى.

    تكشف مجموعات الأخطاء عن مشكلات مرتبطة بعمليات الدفع الفاشلة، بما في ذلك نمط مُسمّى `Failed to place order`. وتشير مجموعات أخرى أيضًا إلى مشكلات في خصم البطاقات وامتلاء الذاكرات المؤقتة.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_4.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=328bfc9496123f380d4341accbeef9f4" alt="الخطوة 4" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_4.webp" />

    لاحظ أن مجموعات الأخطاء هذه ترجع على الأرجح إلى خدمات مختلفة.
  </Step>

  <Step title="استكشف نمط خطأ" id="explore-error-pattern">
    انقر على مجموعة الأخطاء الأكثر وضوحًا، والتي ترتبط بالمشكلة المُبلّغ عنها لدينا والمتمثلة في تمكّن المستخدمين من إتمام عمليات الدفع: `Failed to place order`.

    سيؤدي ذلك إلى عرض قائمة بجميع حالات ظهور هذا الخطأ المرتبطة بخدمة `frontend`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_5.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2c68870e70018a99acfdb5b695fecff9" alt="الخطوة 5" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_5.webp" />

    حدّد أيًّا من الأخطاء الناتجة. ستُعرض البيانات الوصفية للسجلات بالتفصيل. ويشير التمرير عبر كلٍّ من `Overview` و`Column Values` إلى وجود مشكلة في تحصيل رسوم البطاقات بسبب امتلاء ذاكرة التخزين المؤقت:

    `failed to charge card: could not charge the card: rpc error: code = Unknown desc = Visa cache full: cannot add new item.`

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_6.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=16f924302656e4ea844c2f4eafbc4834" alt="الخطوة 6" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_6.webp" />
  </Step>

  <Step title="استكشاف البنية التحتية" id="explore-the-infrastructure">
    لقد حدّدنا خطأً مرتبطًا بالتخزين المؤقت يُرجَّح أنه يتسبب في فشل عمليات الدفع. وما زلنا بحاجة إلى تحديد مصدر هذه المشكلة في معمارية الخدمات المصغّرة لدينا.

    نظرًا إلى مشكلة التخزين المؤقت، فمن المنطقي التحقق من البنية التحتية الأساسية — فربما توجد مشكلة في الذاكرة في الكبسولات المرتبطة؟ في ClickStack، تكون السجلات والمقاييس موحّدة ومعروضة ضمن سياق واحد، مما يسهّل اكتشاف السبب الجذري بسرعة.

    حدّد علامة التبويب `Infrastructure` لعرض المقاييس المرتبطة بالكبسولات الأساسية لخدمة `frontend`، ثم وسّع النطاق الزمني إلى `1d`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_7.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5a28e31ae8720d2df186998667b84c54" alt="الخطوة 7" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_7.webp" />

    لا يبدو أن المشكلة مرتبطة بالبنية التحتية — إذ لم تتغير أي من المقاييس بشكل ملحوظ خلال الفترة الزمنية، سواء قبل الخطأ أو بعده. أغلِق علامة تبويب البنية التحتية.
  </Step>

  <Step title="استكشاف مسار تتبّع" id="explore-a-trace">
    في ClickStack، ترتبط traces تلقائيًا أيضًا بكلٍ من logs وmetrics. لنستكشف الـ trace المرتبط بالسجل الذي اخترناه لتحديد الخدمة المسؤولة.

    حدِّد `Trace` لعرض الـ trace المرتبط. وعند التمرير إلى أسفل هذا العرض، يمكننا رؤية كيف يستطيع HyperDX عرض الـ trace الموزّع عبر الخدمات المصغّرة، مع ربط spans داخل كل خدمة. ومن الواضح أن عملية الدفع تتضمن عدة خدمات مصغّرة، بما في ذلك تلك التي تنفّذ إتمام الشراء وتحويل العملات.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_8.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=ac043a86e611d1df395942057e0cdd08" alt="الخطوة 8" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_8.webp" />

    وعند التمرير إلى أسفل العرض حتى نهايته، يمكننا أن نرى أن خدمة `payment` هي المتسببة في الخطأ، والذي ينتقل بدوره صعودًا عبر سلسلة الاستدعاءات.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_9.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=1f0b34a4a30f3886af3a72e91a36f285" alt="الخطوة 9" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_9.webp" />
  </Step>

  <Step title="البحث في التتبعات" id="searching-traces">
    لقد تبيّن أن المستخدمين يعجزون عن إكمال عمليات الشراء بسبب مشكلة في ذاكرة التخزين المؤقت في خدمة الدفع. لنفحص التتبعات الخاصة بهذه الخدمة بمزيد من التفصيل لنرى ما إذا كان بإمكاننا معرفة المزيد عن السبب الجذري.

    انتقل إلى عرض Search الرئيسي باختيار `Search`. بدّل مصدر البيانات لـ `Traces` وحدد عرض `Results table`. **تأكد من أن النطاق الزمني لا يزال مضبوطًا على آخر يوم.**

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_10.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=c9c219ac88089bdf10025447d4834373" alt="الخطوة 10" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_10.webp" />

    يعرض هذا العرض جميع التتبعات خلال آخر يوم. ونحن نعلم أن المشكلة مصدرها خدمة الدفع، لذا طبّق عامل التصفية `payment` على `ServiceName`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_11.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=3e9ea0e42be919c436d5e589225f40bb" alt="الخطوة 11" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_11.webp" />

    إذا طبّقنا التجميع العنقودي للأحداث على التتبعات باختيار `Event Patterns`، فسنرى فورًا مشكلة ذاكرة التخزين المؤقت في خدمة `payment`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_12.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=0e89b04d68b5e4a039a0abc45be9ccb6" alt="الخطوة 12" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_12.webp" />
  </Step>

  <Step title="استكشف البنية التحتية لأثر التتبّع" id="explore-infrastructure-for-a-trace">
    انتقل إلى عرض النتائج بالنقر على `Results table`. صفِّ النتائج لإظهار الأخطاء فقط باستخدام عامل التصفية `StatusCode` والقيمة `Error`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_13.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=817a9b5fb283fcf91470e5348054c0b5" alt="الخطوة 13" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_13.webp" />

    حدِّد الخطأ `Error: Visa cache full: cannot add new item.`، ثم انتقل إلى علامة التبويب `Infrastructure` ووسِّع النطاق الزمني إلى `1d`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_14.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=8f5b2b1fc31c200afd562ba4b3660fde" alt="الخطوة 14" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_14.webp" />

    من خلال ربط التتبعات بالمقاييس، يمكننا ملاحظة أن الذاكرة وCPU ارتفعا في خدمة `payment`، قبل أن ينخفضا إلى `0` (ويمكن أن نعزو ذلك إلى إعادة تشغيل البود) — مما يشير إلى أن مشكلة `cache` تسببت في مشكلات على مستوى الموارد. ويمكننا توقّع أن هذا قد أثّر في أزمنة إتمام عمليات الدفع.
  </Step>

  <Step title="Event deltas لحلّ المشكلات بشكل أسرع" id="event-deltas-for-faster-resolution">
    تساعد Event Deltas في إبراز الحالات الشاذة عبر إرجاع التغيّرات في الأداء أو معدلات الخطأ إلى مجموعات فرعية محددة من البيانات، مما يسهّل الوصول سريعًا إلى السبب الجذري.

    رغم أننا نعلم أن خدمة `payment` لديها مشكلة في الـ cache تتسبب في زيادة استهلاك الموارد، فإننا لم نحدد السبب الجذري بشكل كامل بعد.

    عُد إلى عرض جدول النتائج وحدد الفترة الزمنية التي تتضمن الأخطاء لتقليص نطاق البيانات. احرص على تحديد عدة ساعات تسبق الأخطاء، وإن أمكن تمتد إلى ما بعدها (فقد تكون المشكلة ما تزال مستمرة):

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_15.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=0790c7966e3f9af2efb7c733c46f88cb" alt="الخطوة 15" size="lg" width="2559" height="1240" data-path="images/use-cases/observability/hyperdx-demo/step_15.webp" />

    أزل عامل تصفية الأخطاء، ثم اختر `Event Deltas` من قائمة `Analysis Mode` على اليسار.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_16.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=e8c8231f259ead8df3f824aab21eea5e" alt="الخطوة 16" size="lg" width="2560" height="1097" data-path="images/use-cases/observability/hyperdx-demo/step_16.webp" />

    تعرض اللوحة العلوية توزيع الأزمنة، وتشير الألوان إلى كثافة الأحداث (عدد الـ spans). وعادةً ما تكون المجموعة الفرعية من الأحداث الواقعة خارج نطاق التركز الرئيسي هي الأجدر بالتحقيق.

    إذا حددنا الأحداث التي تزيد مدتها على `1ms`، وطبّقنا عامل التصفية `Filter by selection`، فسنتمكن من تحليل الفروق بين الأحداث "الطبيعية" ومجموعة الـ spans عالية الكثافة ذات المدة القريبة من 0ms:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_17.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=9b80c09839a0ad955a882f355812ed1c" alt="الخطوة 17" size="lg" width="2558" height="1288" data-path="images/use-cases/observability/hyperdx-demo/step_17.webp" />

    ومع إجراء التحليل على هذه المجموعة الفرعية من البيانات، يمكننا ملاحظة أن spans "Background" خارج التحديد هي في الغالب معاملات Visa، وترتبط باستجابات 0ms بسبب أخطاء الـ cache.
  </Step>

  <Step title="استخدام الرسوم البيانية للحصول على مزيد من السياق" id="using-charts-for-more-context">
    في ClickStack، يمكننا إنشاء مخطط لأي قيمة رقمية من السجلات أو التتبعات أو المقاييس للحصول على سياق أوضح.

    لقد توصلنا إلى ما يلي:

    * أن المشكلة تكمن في خدمة الدفع
    * أن ذاكرة التخزين المؤقت ممتلئة
    * أن ذلك أدى إلى زيادة استهلاك الموارد
    * أن المشكلة منعت اكتمال مدفوعات Visa، أو على الأقل تسببت في تأخر اكتمالها بشكل كبير.

    <br />

    حدّد `Chart Explorer` من القائمة اليسرى. ثم أكمل القيم التالية لرسم مخطط للوقت الذي تستغرقه المدفوعات حتى تكتمل حسب نوع المخطط:

    * `Data Source`: `Traces`
    * `Metric`: `Maximum`
    * `SQL Column`: `Duration`
    * `Where`: `ServiceName: payment`
    * `Timespan`: `Last 1 day`

    <br />

    سيُظهر النقر على `▶️` كيف تدهور أداء المدفوعات بمرور الوقت.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_18.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=20c9082fb16f347cbba6bfbc7769b350" alt="الخطوة 18" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_18.webp" />

    إذا ضبطنا `Group By` على `SpanAttributes['app.payment.card_type']` (اكتب فقط `card` للاستكمال التلقائي)، فسنتمكن من رؤية كيف تدهور أداء الخدمة في معاملات Visa مقارنةً بـ Mastercard:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_19.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=f45208fc8ff343b721342490c8324b27" alt="الخطوة 19" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_19.webp" />

    لاحظ أنه بمجرد حدوث الخطأ، تُعاد الاستجابات خلال `0s`.
  </Step>

  <Step title="سياق إضافي حول استكشاف المقاييس" id="exploring-metrics-for-more-context">
    أخيرًا، لنرسم حجم `cache` كمقياس لمعرفة كيف تغيّر بمرور الوقت، مما يمنحنا سياقًا إضافيًا.

    أكمل القيم التالية:

    * `Data Source`: `Metrics`
    * `Metric`: `Maximum`
    * `SQL Column`: `visa_validation_cache.size (gauge)` (اكتب فقط `cache` للإكمال التلقائي)
    * `Where`: `ServiceName: payment`
    * `Group By`: `<empty>`

    يمكننا أن نرى كيف ازداد حجم `cache` على مدى 4-5 ساعات (على الأرجح بعد عملية نشر برمجي) قبل أن يصل إلى حدٍّ أقصى قدره `100,000`. ومن خلال `Sample Matched Events` نرى أن أخطاءنا ترتبط بوصول `cache` إلى هذا الحد، وبعد ذلك سُجِّل بحجم `0` مع عودة الاستجابات أيضًا خلال `0s`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_20.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=b9505dd5d0103e9881bfd4405c80abf5" alt="الخطوة 20" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_20.webp" />

    باختصار، من خلال استكشاف السجلات، والتتبعات، وأخيرًا المقاييس، توصلنا إلى ما يلي:

    * تكمن المشكلة في خدمة الدفع
    * أدّى تغيّر في سلوك الخدمة، على الأرجح بسبب عملية نشر، إلى زيادة بطيئة في `cache` الخاص بـ Visa على مدى 4-5 ساعات، حتى بلغ حدًا أقصى قدره `100,000`.
    * تسبّب ذلك في زيادة استهلاك الموارد مع نمو حجم `cache`، وعلى الأرجح يعود هذا إلى تنفيذ غير محكم
    * ومع نمو `cache`، تراجع أداء مدفوعات Visa
    * وعند بلوغ الحد الأقصى للحجم، بدأ `cache` في رفض المدفوعات، وسجّل حجمه على أنه `0`.
  </Step>

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

    في HyperDX، ترتبط الجلسات بالتتبعات والسجلات، مما يوفّر رؤية متكاملة للسبب الأساسي.

    على سبيل المثال، إذا زوّدك فريق الدعم بعنوان البريد الإلكتروني لمستخدم واجه مشكلة في الدفع `Ronny.Windler@gmail.com`، فغالبًا ما يكون البدء بجلسة هذا المستخدم أكثر فاعلية من البحث مباشرةً في السجلات أو التتبعات.

    انتقل إلى علامة التبويب `Client Sessions` من القائمة اليسرى، ثم تأكد من ضبط مصدر البيانات على `Sessions` والفترة الزمنية على `Last 1 day`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_21.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5900432299756000fc1b28f5215edaad" alt="الخطوة 21" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_21.webp" />

    ابحث عن `SpanAttributes.userEmail: Ronny.Windler` للعثور على جلسة عميلنا. سيؤدي تحديد الجلسة إلى عرض أحداث المتصفح ووحدات span المرتبطة بجلسة العميل على اليسار، مع إعادة عرض تجربة المستخدم داخل المتصفح على اليمين:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_22.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=eb519943673b654f07010094fc9ea67d" alt="الخطوة 22" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_22.webp" />
  </Step>

  <Step title="إعادة عرض الجلسات" id="replaying-sessions">
    يمكن إعادة تشغيل الجلسات بالضغط على الزر ▶️. ويتيح التبديل بين `Highlighted` و`All Events` مستويات مختلفة من درجة تفصيل الـ spans، إذ يبرز الخيار الأول الأحداث الرئيسية والأخطاء.

    إذا مررنا إلى أسفل الـ spans، يمكننا رؤية خطأ `500` مرتبطًا بـ `/api/checkout`. ويؤدي اختيار الزر ▶️ لهذا الـ span تحديدًا إلى نقل إعادة التشغيل إلى هذه النقطة من الجلسة، مما يتيح لنا التأكد من تجربة العميل — إذ يبدو أن الدفع ببساطة لا يعمل من دون ظهور أي خطأ.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_23.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=d8c8c1176ed6cc2153ab7c64f46a05d3" alt="الخطوة 23" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_23.webp" />

    من خلال تحديد الـ span، يمكننا التأكد من أن السبب كان خطأً داخليًا. وبالنقر على علامة التبويب `Trace` ثم التمرير عبر الـ spans المرتبطة، يمكننا التأكد من أن العميل كان بالفعل ضحية لمشكلة الـ cache لدينا.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_24.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=7b2ab8374676b7850f65ed49c71a844b" alt="الخطوة 24" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_24.webp" />
  </Step>
</Steps>
