المراقبة
معرّفان يربطان كل شيء
- معرّف الاستدعاء — كل ردّ يحمل
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 |