إمكانية الرصد и العينات النزرة
1) لماذا يمكن الملاحظة
الملاحظة (O11y) تجيب على ثلاثة أسئلة: ما يحدث، ولماذا، وكيفية إصلاحه. يعتمد على 4 إشارات:- المقاييس (المجاميع، تتفاعل بسرعة) ؛
- السجلات (التفاصيل والطب الشرعي) ؛
- الآثار (العلاقات الشاملة بين الأسباب والنتائج) ؛
- الملفات الشخصية (وحدة المعالجة المركزية/كومة/خلاف القفل في وضع الحث).
المفتاح: الارتباط بين الإشارات + اقتصاديات القياس عن بعد (أخذ العينات والاحتفاظ بها والضغط عليها).
2) خريطة الإشارة والمبادئ
2. 1 أحمر/استخدم
RED (لواجهة برمجة التطبيقات): معدل (RPS)، أخطاء (% 5xx/4xx مهمة)، المدة (p50/p95/p99).
الاستخدام (للموارد): الاستخدام، التشبع، الأخطاء (NIC، وحدة المعالجة المركزية، القرص، قوائم الانتظار).
2. 2 ثابت المنتج
تعريف SLO (على سبيل المثال "p95 latency '/v1/payments' ≤ 300 ms، خاطئ الميزانية 0. 5 في المائة في 30 يوما"). يجب أن «تصرخ» التنبيهات فقط عندما يتم انتهاك SLO أو حرقه.
2. 3 السياق
تنفيذ سياق تتبع W3C («traceparent»، «tracestate») والأمتعة لنقل تلك الخصائص/الأعمال بشكل آمن (على سبيل المثال «مستأجر»، «منطقة»، لا PII).
3) بنية القابلية للمراقبة
SDK/الأجهزة الذاتية: OpenTelemetry (OTel) في الخدمات (HTTP/gRPC/DB/العملاء).
UTel Collector as a bus: الاستقبال → الإثراء → أخذ العينات → التصدير (Prometheus, Tempo/Jaeger, Loki/ELK, ClickHouse).
- المقاييس: Prometheus/Mimir/VictoriaMetrics ؛
- المسارات: تيمبو/جايجر/زيبكين ؛
- الجذوع: تخزين Loki/ELK/Vector→S3+deshevoye ؛
- الملفات الشخصية: Pyroscope/Parca.
- الارتباط: الرسوم البيانية للخدمة، النماذج، الانتقال من الرسم البياني p99 إلى أثر معين.
4) تتبع العينات: الاستراتيجيات
4. 1 أخذ العينات على الرأس
التنفيذ البسيط والرخيص (في SDK/الدخول).
السلبيات: قد تفوت الأخطاء النادرة/الاستفسارات البطيئة.
عندما: ارتفاع RPS، ميزانيات صارمة، هناك حاجة إلى حصة يمكن التنبؤ بها (على سبيل المثال، 1-5٪).
4. 2 أخذ العينات على أساس الذيل
يتم اتخاذ القرار في Collector بعد نهاية الفترة.
يمكن ضمان اختيار الحالات الشاذة: الأخطاء، p99، مسارات/مستأجرين محددين.
السلبيات: التخزين المؤقت، أصعب وأكثر تكلفة.
عندما: هناك حاجة إلى مسارات «ذات مغزى» بتكلفة معتدلة.
4. 3 نموذج مشترك
الرأس العالمي 1-5٪، بالإضافة إلى قواعد الذيل: «حفظ دائمًا الأخطاء/الامتدادات البطيئة»، «عينة 50٪ من حركة مرور الكناري»، «حفظ جميع آثار مسارات الدفع في الحادث».
5) ميزانية أخذ العينات والقياس عن بعد الديناميكية
إدراك الميزانية: الاحتفاظ بمسارات/دقائق الحجم ≤ N ؛ إذا تم تجاوزه، ارفع العتبات (على سبيل المثال، اختر p99 فقط. 5 +، خطأ فقط).
القواعد حسب المسار/المستأجر: نقاط النهاية المهمة/المستأجرين - بحصة أكبر.
النوافذ التكيفية: الانفجارات → تزيد مؤقتًا من معدل الخطأ/البطء.
تقليل الكاردينالية: تطبيع وكيل المستخدم، IP/ASN، آثار مكدس الاسكواش، أسرار القناع.
6) التكوينات (المراجع)
6. 1 OpenTelemetry Collector - tail-sampling (yaml-framment)
yaml receivers:
otlp: { protocols: { http: {}, grpc: {} } }
processors:
batch: { send_batch_size: 8192, timeout: 2s }
tail_sampling:
decision_wait: 5s num_traces: 100000 expected_new_traces_per_sec: 5000 policies:
- name: always-error type: status_code status_code: { status_codes: [ERROR] }
- name: slow-endpoints type: latency latency: { threshold_ms: 300 } # p95 цель
- name: important-routes type: string_attribute string_attribute: { key: http. target, values: ["/v1/payments", "/v1/payouts"] }
- name: tenant-eu1 type: string_attribute string_attribute: { key: tenant, values: ["eu-1"] }
- name: probabilistic-default type: probabilistic probabilistic: { sampling_percentage: 5. 0 }
exporters:
otlphttp/tempo: { endpoint: http://tempo:4318 }
prometheus: { endpoint: "0. 0. 0. 0:9464" }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tail_sampling]
exporters: [otlphttp/tempo]
6. 2 بروميثيوس - نماذج (جزء)
في التطبيق، عند تسجيل histograms، أضف نماذج مع 'trace _ id'. في Grafana، تؤدي النقرات على «الإبر» إلى أثر.
yaml scrape_configs:
- job_name: api scrape_interval: 10s honor_labels: true static_configs: [{ targets: ["api:9100"] }]
exemplar_limit: 10
6. 3 Loki - تقليل تكلفة جذوع الأشجار
التسميات مستقرة فقط («الخدمة»، «env»، «المنطقة»، «الطريق _ الفئة»).
الكاردينالية العالية (request_id، user_id) - في الحمولة، ولكن مع التنقيح.
تذوق أجهزة InfoLogs «الناجحة»، وحفظ أي أخطاء/تحذيرات.
6. 4 Jaeger/Tempo - الاحتفاظ والمؤشر
قم بتخزين المسارات الخام لمدة 3-7 أيام، والتجمعات/التماثلات لفترة أطول.
مكّن parquet/blocks في التخزين الرخيص (متوافق مع S3)، الفهارس مدمجة.
7) تتبع المحاكاة
7. 1 التسمية والصفات
خدمة. اسم '،' خدمة. ، 'نشر. البيئة ".
'http. ، 'http. الطريق، 'http. الهدف، 'http. status_code'، 'نت. نظير. الاسم ".
سمات الأعمال بدون PII: "مستأجر"، "منطقة"، "payment _ provider"، "game _ id'.
7. 2 أحداث ووصلات
أحداث الامتداد: نقاط مهمة (بدء صفقة DB، إعادة الطرح، فتح الدائرة، تفويت ذاكرة التخزين المؤقت).
الروابط: الاتصالات zapros→vebkhuk/sobytiye ؛ مفيد لـ EDA و outbox/inbox.
7. 3 حالات
أضف أمثلة باستخدام «trace _ id» إلى catency/size histograms: التنقل من → أثر إلى تتبع متري في نقرة واحدة.
8) المقاييس: ماذا وكيف
8. 1 تقني
RED حسب المسار/المستأجر/المزود (PSP، KYC).
Пулы: "db _ connections _ in _ use", "http _ client _ in _ flight'," queue _ depth ".
التثبيت: الإعادات، المهلات، الدوائر المفتوحة/نصف المفتوحة، ضربات حد السعر.
Go/Java/Python وقت التشغيل: توقف GC مؤقتًا، كومة، نقاط أمان، تأخير GIL.
8. 2 مقاييس الأعمال
التسجيل/تسجيل الدخول/الودائع/الاستنتاجات، التحويل، 3DS/KYC الإخفاقات، نسبة رد التكاليف.
ميزات مهمة: الوقت إلى المحفظة، ومدفوعات معدل النجاح.
8. 3 الكاردينالية والتخزين
Histograms مع دلاء صريحة (على سبيل المثال [5010020030050010002000] ms').
تجنب العلامات ذات الكاردينالية العالية (user_id الخام، request_id) - خذها إلى السجلات/المسارات.
9) السجلات: المعايير والارتباط
التنسيق: مفاتيح JSON + المطلوبة («timestamp» و «level' و» message «و» trace _ id «و» span _ id' و «service» و «env»).
التحرير: قناع PAN، رمز، PII.
أخذ العينات: 100٪ لـ «خطأ/تحذير»، 5-20٪ لـ «معلومات» عن المسارات «الصاخبة»
الارتباط بالآثار - عبر 'trace _ id'. سلاسل السجل → «محور» للتتبع والعكس صحيح.
10) التنميط في المبيعات
تمكين التنميط المستمر (Pyroscope/Parca) لوحدة المعالجة المركزية/كومة/ألوك/أقفال.
ربط قمم p99 مع الأكوام الساخنة ؛ استمر لمدة 7-14 يومًا.
11) تنبيه بشأن ميزانية SLO/المعيبة
تنبيهات SLO: «يتم إنفاق الميزانية الخاطئة بشكل أسرع من X ٪/ساعة» (تنبيهات التنبؤ).
الأعراض وليس الأسباب: التنبيه إلى مستوى العميل (RUM/edge أو لكل مسار)، وليس إلى وحدة المعالجة المركزية.
معدل حرق متعدد النوافذ: 2٪ في 1 ساعة و 5٪ في 6 ساعة - شرطان.
الصمت أثناء التدهور المخطط له: تغيير العتبة أثناء أعلام الميزات/الكناري.
12) التكلفة والاحتفاظ بها
حصص الحجم: مسارات ≤ N TB/month، سجلات - ساخنة 3-7 أيام، باردة S3 30-90 يومًا، مقاييس - منخفضة الحجم (1 دقيقة → 5 دقائق → 1 ساعة).
تقلل قواعد الذيل من حجم × 10- × 100، مع الحفاظ على الخطأ/البطء.
أقل إشارات التكلفة - المقاييس ؛ مع أعلى قيمة - المسارات والملامح «الصحيحة».
13) أنتيباترن
«مسارات 100٪ دائمًا» → انفجار التكلفة والضوضاء والفرامل.
سجلات بتنسيق مجاني بدون مفاتيح/إخفاء.
مقاييس التسمية اللانهائية (user_id/ip/full UA).
لا يمكن ربط «traceparent »/« الأمتعة».
تنبيهات على وحدة المعالجة المركزية/كومة بدلاً من SLO - الدردشة «تحترق» دون فائدة.
أخذ العينات «عشوائية 1٪» بدون أولوية خطأ/بطيئة - تفقد الحالات القيمة.
14) أمثلة على لوحات القيادة (الهياكل العظمية)
نظرة عامة على واجهة برمجة التطبيقات: RPS، معدل الخطأ حسب الفئة، زمن الوصول p95/p99 (النماذج قابلة للنقر)، المسارات العليا.
الإصدار/الكناري: مقارنة مقاييس الإصدار القديم/الجديد، معدل الاستبعاد، الدوائر المفتوحة، الإعادات.
PSP/KYC: معدل النجاح من قبل مقدمي الخدمة، والكمون والفشل، والارتباط بأخطاء الدفع.
Infra: الاستخدام عن طريق الموارد، والتشبع في قائمة الانتظار، وقطرات الشبكة.
15) تفاصيل iGaming/Finance
المسارات الحرجة (الرواسب/الاستنتاجات): تتبع 100٪ فقط للحوادث أو النوافذ المحدودة ؛ في الوضع العادي - الذيل «كل ذلك مع خطأ/زمن انتقال طويل».
المنطقة/المستأجر: يضاف «المستأجر» و «الولاية القضائية» و «العلامة التجارية» إلى الأمتعة ؛ بناء المنظمات غير الحكومية حسب الولاية القضائية.
مرشح Antifrod/bot: مقاييس وآثار حلول Risk API (السماح/الرفض/التحدي)، معدل تمرير التحدي، ضربات السرعة.
مراجعة الحسابات/الامتثال: الاحتفاظ بالحد الأدنى اللازم، بدون دليل الأداء الموحد ؛ جذوع الأشجار الثابتة - في دائرة منفصلة.
16) قائمة التحقق من الاستعداد
- الانتشار من طرف إلى طرف («traceparent»، «الأمتعة»)، ارتباط لوغاريتم/متري/نزر.
- جامع OTEL مع أخذ عينات الذيل (أخطاء/مسارات بطيئة/مهمة) + افتراضي احتمالي.
- مقاييس RED/USE، دلاء صريحة، نماذج → الانتقال إلى التتبع.
- SLO وتنبيه الميزانية الخاطئ (جدولان زمنيان).
- أنظمة وميزانية القياس عن بعد ؛ وتقليص المقاييس ؛ التخزين البارد لجذوع الأشجار.
- سجل JSON الموحد، تنقيح PII/الأسرار.
- إدراج التنميط في المبيعات ؛ لوحات القيادة من الأكوام «الساخنة» للحادث.
- لوحات معلومات الكناري ومقارنة النسخ ؛ الإفراج بدون «نقاط عمياء».
- دليل التشغيل: كيفية زيادة حصة أخذ العينات من الحادث مؤقتًا.
- وثائق تسمية السمات/التسميات وتثبيط الكرازة العالية.
17) TL ؛ د
بناء إمكانية الرصد حول الارتباط: RED/USE → نماذج المقاييس → المسارات → السجلات/الملامح. إدارة التكلفة من خلال أخذ العينات المجمعة: قواعد صغيرة للرأس + الذيل (أخطاء، طرق بطيئة، مهمة/مستأجرين). التنبيهات - على ميزانية SLO والخطأ. حافظ على الاحتفاظات والكاردينالية تحت السيطرة، واستخدم OTEL Collector كـ "جهاز عصبي مركزي. "بالنسبة لمسارات الدفع/الولاية القضائية - القياس عن بعد ذي الأولوية والنظافة الصارمة للبيانات.