GH GambleHub

الآثار الموزعة

آثار موزعة

1) لماذا وما هو

التتبع الموزع هو وسيلة لربط العمليات على طول مسار الطلب بأكمله: بوابة واجهة برمجة التطبيقات الأمامية → → الخدمات الدقيقة → قواعد البيانات/المخابئ → الوسطاء → اللكمات/خطوط الأنابيب.
والنتيجة هي أثر من الامتدادات (الامتداد)، حيث يلتقط كل امتداد تشغيل المكون بالسمات والأحداث والحالة. هذا يسرع RCA ويساعد في الحفاظ على SLOs ويقلل من MTTR.

الأهداف الرئيسية:
  • إبراز المسار الحرج والاختناقات.
  • ارتباط الأعراض (المقاييس) بالأسباب (الامتدادات) والتفاصيل (السجلات).
  • تحليلات إعادة التصوير، قوائم الانتظار، DLQ، المعجبين، «مناشير» زمن الوصول.

2) نموذج البيانات النزرة

تتبع - استدعاء الرسم البياني مع 'trace _ id'.
Span - операция: «name», «kind» (SERVER/CLIENT/PRODUCT/CONSUMER/INTERN), «start/END», «status',» satues «,» events', «links []».
السمات - قيمة المفتاح (الطريق، db. النظام، الرسائل. النظام، السحابة. ، إلخ).
الأحداث - العلامات الفورية داخل الامتداد (على سبيل المثال، "إعادة المحاولة"، "cache _ miss').
روابط سبان - اتصالات خارج «الوالدين والطفل» (باتشي، ريتراي، مروحة داخل/خارج).
البيانات الفوقية المتعلقة بالموارد - العمليات/الخدمات ('الخدمة'. ، النسخة، البيئة).

3) السياق والتحمل

3. 1 سياق تتبع W3C

العناوين:
  • "traceparent": "version-traceid-spanid-flags' (تشمل الأعلام أخذ العينات).
  • «tracetate»: الحالة الخاصة بالبائع (الحد الأدنى).
  • الأمتعة - مفاتيح سياق العمل (محدودة، لا PII/أسرار).

3. 2 سياق الرمي

HTTP: 'traceparent '/' tracestate' ؛ gRPC: البيانات الوصفية ؛ WebSocket: عند التحديث وفي الرسائل ؛

الرسائل: في الرؤوس (Kafka/NATS/RabbitMQ) - احفظ السياق الأصلي مع المنتج ونقل مع CONSUMER.
القواعد: لا «تحمل» السياق - نسجل سمات الامتداد (استعلام، صفوف، db. ، ولكن ليس القيم.

4) أخذ العينات: كيف لا تنكسر

عينات الرأس: احتمالية/حسب القواعد (الطريق، المستأجر، نقطة النهاية).
أخذ عينات الذيل (على الجامع): حفظ المسارات «المثيرة للاهتمام» - الأخطاء، طويلة p95/p99، مسارات نادرة.
النماذج: يخزن Histogram metrics إشارات إلى "trace _ id' محددة.
التوصية: اجمع - الرأس 5-20٪ + قواعد الذيل 100٪ لـ 5xx/timeout/p99.

5) الصفات والتصنيف (الحد الأدنى المطلوب)

العام:
  • خدمة. اسم '،' خدمة. ، 'نشر. البيئة «،» السحابة. المنطقة، 'http. الطريق، 'http. ، 'http. status_code'، 'db. ، 'db. بيان «(مختصر/بدون بيانات)»، الرسائل. ، الرسائل. عملية '،' نظير. الخدمة '،' نت. نظير. اسم '،' المستأجر. '،' طلب. id '.

ملصقات الأعمال: أنيقة وخالية من PII. مثال: 'النظام. الجزء '،' خطة. الطبقة '.

6) النصوص غير المتزامنة وقوائم الانتظار والدفعات

المنتج → المستهلك: إنشاء نطاق المنتج مع السياق ؛ في الرسالة - الرؤوس (التتبع، الأمتعة). يبدأ المستهلك SERVER/CONSUMER-span من الرابط إلى المنتج (إذا لم يكن هناك تسلسل هرمي صارم).
مروحة: مدخل واحد - العديد من المخرجات → يمتد الأطفال أو الروابط.
الدفعة: يقرأ المستهلك مجموعة من رسائل N → امتداد واحد مع "events' لكل رسالة معرف أو" وصلات "لسياقات منفصلة N.
DLQ: رسالة منفصلة. dlq. نشر 'السبب с и العد.
Retrai: "event: retry" + "retry. ' يفضل أن تكون فترة CHILD جديدة للمحاولة.

7) التكامل مع جذوع الأشجار والمقاييس

نكتب السجلات JSON مع «trace _ id »/« span _ id» → من الامتداد ننتقل إلى السجلات بالنقر.
تحتوي مقاييس RED/USE على نماذج → من قمم p99 ننتقل إلى الامتدادات «السيئة».
تولد الآثار إشارات تقنية (أخطاء التبعية) وإشارات الأعمال (التحويل) من خلال الأحداث.

8) الأداء والتكلفة

أخذ عينات الحدث والاختناق.
تخفيض الكاردينالية في السمات (لا يوجد 'مستخدم _ معرف '/' جلسة _ معرف' كملصق!).
الضغط/التجزئة من جانب المصدر ؛ حدود مهلة التصدير.
التخزين: ساخن من 1 إلى 7 أيام، ثم - الوحدات/مسارات «المشكلة» فقط.
فئات الإنفاق: هواة الجمع، الفهارس، التخزين، الخروج.

9) الأمن والخصوصية

في العبور: TLS 1. 3/mTLS kollektor↔agenty; At Rest: encryption, private keys (see «Encryption In Transit/At Rest»).
PII والأسرار: لا تكتب في السمات/الأحداث ؛ ترميز/إخفاء المنتج.
متعدد الإيجارات: "المستأجر. وسياسات القراءة كعلامة مرجعية وعزل للأماكن ؛ (انظر مراجعة الحسابات والسجلات غير المعدلة).

10) مخططات التنفيذ (مرجع)

10. 1 OpenTelemetry SDK (pseudocode)

python from opentelemetry import trace from opentelemetry. sdk. trace import TracerProvider from opentelemetry. sdk. resources import Resource from opentelemetry. sdk. trace. export import BatchSpanProcessor from opentelemetry. exporter. otlp. proto. grpc. trace_exporter import OTLPSpanExporter

provider = TracerProvider(resource=Resource. create({
"service. name":"checkout","service. version":"1. 12. 0","deployment. environment":"prod"
}))
provider. add_span_processor(BatchSpanProcessor(OTLPSpanExporter(endpoint="otel-collector:4317", insecure=True)))
trace. set_tracer_provider(provider)
tr = trace. get_tracer("checkout")

with tr. start_as_current_span("POST /pay", attributes={
"http. route":"/pay","http. method":"POST","tenant. id":"t-42"
}):
business logic, external API call and pass DB

10. 2 جامع OTEL - أخذ عينات الذيل (جزء)

yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_codes: [ERROR]
- type: latency threshold_ms: 900
- type: probabilistic sampling_percentage: 10 exporters:
otlphttp: { endpoint: http://trace-backend:4318 }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tailsampling]
exporters: [otlphttp]

10. 3 كافكا - نقل السياق (مفهوم)

المنتج: أضف الرؤوس "traceparent' و" الأمتعة ".
المستهلك: إذا بدأت الرسالة تدفقًا جديدًا - يمتد SERVER/CONSUMER الجديد من رابط إلى سياق من الرؤوس.

11) البيانات/ETL и ML

لخطوط الأنابيب الدفعية: تمتد على الدفعة/التقسيم مع «dataset». جرة '،' تشغيل. '،' صفوف. داخل/خارج، "نضارة. تأخر ".
لـ ML: امتدادات التدريب/الاستنتاج، إصدار النموذج، زمن الوصول، متجر الميزات.
رابط إلى النسب: 'تشغيل. مجموعة بيانات id 'и'. اسمح لك بالقفز من الأثر إلى الرسم البياني لأصل البيانات.

12) منصة تتبع SLO

ابتلاع التوافر: ≥ 99. 9%

التأخير في الفهرسة: ≤ 60 s p95

تغطية عينة الرأس: ≥ 5-10٪ من الطرق الرئيسية

توفير 100٪ من المسارات مع خطأ الحالة ومع زمن انتقال> عتبة وفقًا لدليل «المسارات الحرجة»

تنبيهات المنصة: نمو الانخفاضات، مهلة التصدير، تأخر الفهرس، ارتفاع درجة حرارة الكاردينالية.

13) الاختبار والتحقق

عقد التتبع في CI: وجود امتدادات على نقاط النهاية الرئيسية، والسمات الإلزامية، و «التتبع» الصحيح يطير عبر البوابة/الوكيل.
عينات اصطناعية/رومية: جمع مسارات من الخارج.
الفوضى/الحوادث: تعطيل التبعيات، والتحقق من أن عينة الذيل «تلتقط» الأخطاء.
الدخان في المبيعات: بعد الإصدار - «هل هناك أي امتدادات» ونموذج → الأثر.

14) القوائم المرجعية

قبل البيع

  • يتم إلقاء سياق تتبع W3C في كل مكان ؛ للرسائل - الرؤوس.
  • تمكين أخذ عينات الرأس الأساسية ؛ تم تكوين قواعد الذيل لـ 5xx/p99.
  • السمات الإلزامية هي الطريق والطريقة والحالة والخدمة. النسخة، المستأجر. هوية.
  • سجلات JSON مع 'trace _ id '/' span _ id'، مقاييس مع نماذج.
  • معقمات PII ؛ التشفير أثناء التنقل/في سياسات الوصول إلى الراحة.
  • لوحات المعلومات: «مسار حرج»، «أخطاء التبعية»، «إعادة/مهلة».

عملية

  • استعراض شهري لكرازة الصفات ؛ الحصص.
  • ضبط عينات الذيل بواسطة SLO (ضوضاء أقل، كلها «ساخنة» - في العينة).
  • تدريب هيئات التنسيق الإقليمي على المقياس الانتقالي → نموذجي → تتبع → الجذوع.
  • التحقق من أغطية قوائم الانتظار و DLQs و ETL.

15) Runbook'и

RCA: p99 زيادة في/أجر

1. افتح لوحة القيادة RED ؛ من bin p99 نموذجًا للتتبع.
2. ابحث عن امتداد CLIENT "الضيق" (على سبيل المثال، "بوابة. اتصل «)، تحقق». العد، المهلة.
3. مقارنة نسخ الخدمات/المناطق التابعة، المنطقة/المنطقة.
4. تمكين التدهور (الحد الأقصى لاستجابة التخزين المؤقت/RPS)، وإخطار مالكي التبعية.
5. بعد الإصلاح - تذاكر RCA والتحسين.

زيادة DLQ

1. فلتر التتبع عن طريق 'رسائل. dlq. نشر '.
2. تحقق من الأسباب (الأحداث)، ارتبط بالإفراج.
3. ابدأ إعادة المعالجة، وقم بزيادة المهلة المؤقتة للمستهلك، وإخطار مالكي المصب.

16) الأخطاء المتكررة

لا يوجد تنبؤ بالسياق من خلال البوابات/السماسرة. الحل: البرامج الوسيطة/المتقاطعة، المكتبات الفردية.
كل المسارات 100٪. غالية الثمن وغير مجدية - استخدم عينات الذيل.
سجلات بدون «تتبع _ معرف». ضاع الارتباط → MTTR ↑.
PII في السمات. قناع/ترميز ؛ الاحتفاظ بالسياق التقني فقط.
ضربات خلفية «كتم الصوت». أضف فترات إلى الدفعة/التقسيم و 'run. id '.
تسمية التناقض. أدخل قاموس الامتدادات ومفاتيح السمات.

17) الأسئلة الشائعة

س: هل أخذ عينات الرأس أو الذيل أفضل ؟

ج: مزيج. يعطي الرأس الطبقة الأساسية، ويضمن الذيل الحفاظ على الشذوذ/الأخطاء.

س: كيف أتتبع كافكا بدون تسلسل هرمي صارم ؟

أ: روابط استخدام النطاق بين المنتج والمستهلك ؛ السياق - في الرؤوس.

س: ماذا تفعل بـ SQL الحساس ؟

أ: 'db. عبارة 'مختصرة/طبيعية (بدون قيم)، أو' db. التشغيل '+ الأبعاد/الوقت.

س: كيف ترتبط بمقاييس الأعمال ؟

ج: أضف سمات المجال بدون PII (خطة/قطاع)، واستخدم أحداث «مراحل العمل» داخل النطاق وانتقل من مقاييس التحويل إلى النموذج.

المواد ذات الصلة:
  • «إمكانية الرصد: السجلات والمقاييس والآثار»
  • «سجلات التدقيق والسجلات الثابتة»
  • «In Transit/At Rest Encryption»
  • «Data Origin (Lineage)»
  • «Privacy by Design (GDPR)»
  • «الإدارة السرية»
Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.