المراقبة

معرّفان يربطان كل شيء

  • معرّف الاستدعاء — كل ردّ يحمل X-Request-Id، وكل رفض يكرّره في requestId. سجّله مع كل استدعاء؛ فهو ما تحتاجه أنيس للعثور على استدعائك.
  • معرّف العملية — المعرّف الذي اخترته لطلب الشراء. سجّله في كل خطوة، من تخزين نيّة الشراء إلى تخزين الرموز. فهو يتتبّع عملية شراء واحدة عبر نظامك وأنيس.

ما يستدعي التنبيه

الإشارة السبب
طلبات الشراء ذات النتيجة المجهولة — انتهاء المهلة، وانقطاع الاتصال، والردود التي لا يمكن التحقق منها، وحالات الرفض التي قد يكتمل الطلب بعدها رغم ذلك، ورفض وصولك (invalid_credentials وinsufficient_scope وwallet_not_granted) الذي لا يقول شيئًا عن محاولة سابقة يجب استئناف كلٍّ منها بمعرّف العملية نفسه — وبعد رفض وصولك، حين يُعاد الوصول
الردود التي تعذّر التحقق منها شيء ما بينك وبين أنيس غيّر ردًّا، أو أن إحدى الساعات منحرفة بشدة، أو فاتك تدوير مفتاح لدى أنيس. أما دفعة قصيرة واحدة من ردود 503 غير الموقّعة في الاستدعاءات الموقَّعة فتعني أن التوقيع لدى أنيس نفسها غير متاح لفترة وجيزة
invalid_credentials في كل استدعاء أُلغي المفتاح أو استُبدل، أو انحرفت الساعة. وفي طلب الشراء: أعِد الوصول، ثم استأنف بالمعرّف نفسه
rate_limited حركة استدعاءاتك قريبة من حدّ وضعه موظفو أنيس

لا تسجّل أبدًا

مفتاحك الخاص، أو التواقيع، أو نصوص التوقيع، أو أرقام الاستخدام الواحد (nonce)، أو رمز التسجيل، أو رموز البطاقات (الأرقام التسلسلية ورموز القسائم) — في أي مكان: السجلات، أو التتبّعات (traces)، أو المقاييس، أو تقارير الأخطاء.

مع حزمة SDK لـ ‎.NET

تُبلغ حزمة SDK عن كل شيء تحت اسم واحد، Anis.Partners.Sdk، للتتبّعات وللمقاييس، وتكتب سجلاتها عبر نظام التسجيل الخاص بك:

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing => tracing.AddSource("Anis.Partners.Sdk"))
    .WithMetrics(metrics => metrics.AddMeter("Anis.Partners.Sdk"));
المقياس ما يخبرك به
anis.partners.order.outcomes طلبات الشراء حسب النتيجة: completed، processing، replayed — وunknown، وهي التي يجب التنبيه عليها (وابتداءً من الإصدار 1.1.0 تدخل فيها أيضًا طلبات الشراء المرفوضة بسبب حدّ معدّل الاستدعاءات أو بسبب وصولك)
anis.partners.request.duration كل استدعاء، حسب المسار والحالة أو رمز الرفض
anis.partners.signature.duration الوقت المستغرق في التوقيع — الخزنة (vault) البطيئة يظهر أثرها هنا
anis.partners.response.verification.failures الردود التي جرى التخلّص منها، حسب القاعدة التي فشلت
anis.partners.signing_keys.fetches مرات جلب المفاتيح العامة لأنيس؛ ارتفاع refresh يعني تدوير مفاتيح

يحمل تتبّع كل استدعاء المسارَ ومعرّفَ الاستدعاء، ومعرّفَ العملية في طلبات الشراء. لا تسجّل حزمة SDK أبدًا أيًّا من الأسرار المذكورة أعلاه — إذ تفحص اختباراتها كل سطر سجل وكل تتبّع وكل مقياس بحثًا عنها.

المزيد في صفحة حزمة SDK لـ ‎.NET.

مع حزمة SDK لـ PHP أو TypeScript و Node.js أو Python

تُبلّغ عن المقاييس والسمات وأحداث السجل نفسها التي تُبلّغ عنها حزمة SDK لـ ‎.NET، تحت اسم القياس الخاص بكل منها:

الحزمة التتبّع والمقاييس (OpenTelemetry) السجلات
PHP anis-ly/partners مسجّل PSR-3 الخاص بك
TypeScript و Node.js @anis-ly/partners الـ logger الذي تمرّره إلى العميل
Python anis_partners وحدة logging القياسية، والمسجّل anis_partners