قابلیت مشاهده и نمونه برداری ردیابی
1) چرا قابل مشاهده بودن
قابلیت مشاهده (O11y) به سه سؤال پاسخ می دهد: چه اتفاقی می افتد، چرا، چگونه آن را برطرف کنیم. این به 4 سیگنال بستگی دارد:- معیارها (aggregates، به سرعت واکنش نشان می دهند) ؛
- سیاهههای مربوط (جزئیات و پزشکی قانونی) ؛
- ردیابی (روابط علت و معلولی متقابل) ؛
- پروفایل ها (CPU/heap/lock contention در حالت prod).
کلید: ارتباط بین سیگنال + اقتصاد تله متری (نمونه برداری، نگهداری، فشرده سازی).
2) نقشه سیگنال و اصول
2. 1 قرمز/استفاده
RED (برای API): نرخ (RPS), خطاها (% 5xx/4xx مهم), مدت زمان (p50/p95/p99).
استفاده (برای منابع): استفاده، اشباع، خطاها (NIC، CPU، دیسک، صف).
2. 2 محصولات ثابت
تعریف یک SLO (به عنوان مثال "تاخیر p95 "/v1/پرداخت" ≤ 300ms، بودجه اشتباه 0. 5 درصد در 30 روز) هشدار باید «فریاد» تنها زمانی که SLO نقض شده است و یا سوخته.
2. 3 زمینه
پیاده سازی زمینه ردیابی W3C ('traceparent'، 'tracestate') و چمدان برای ایمن انتقال آن/ویژگی های کسب و کار (به عنوان مثال 'tenant'، 'منطقه'، بدون PII).
3) معماری قابل مشاهده
SDK/ابزار دقیق: OpenTelemetry (OTel) در خدمات (HTTP/gRPC/DB/مشتریان).
دریافت → غنی سازی → نمونه برداری → صادرات (Prometheus، Tempo/Jaeger، Loki/ELK، ClickHouse).
- معیارها: Prometheus/Mimir/VictoriaMetrics ؛
- مسیرهای پیاده روی: تمپو/یگر/زیپکین ؛
- سیاهههای مربوط: Loki/ELK/بردار → S3 + ذخیره سازی deshevoye ؛
- پروفایل: پیروسکوپ/پارکا.
- همبستگی: نمودارهای خدمات، نمونه ها، انتقال از نمودار p99 به یک ردیابی خاص.
4) ردیابی نمونه برداری: استراتژی
4. 1 نمونه برداری مبتنی بر سر
پیاده سازی ساده و ارزان (در SDK/ingress).
معایب: ممکن است خطاهای نادر/درخواست های آهسته را از دست بدهد.
هنگامی که: RPS بالا، بودجه دقیق، سهم قابل پیش بینی (به عنوان مثال، 1-5٪) مورد نیاز است.
4. 2 نمونه گیری مبتنی بر دم
تصمیم گیری در Collector پس از پایان دوره انجام می شود.
ناهنجاری ها را می توان انتخاب کرد: خطاها، p99، مسیرهای خاص/مستاجران.
معایب: بافر، سخت تر و گران تر.
چه زمانی: مسیرهای «معنی دار» با هزینه متوسط مورد نیاز است.
4. 3 مدل ترکیبی
سر جهانی 1-5٪، به علاوه قوانین دم: «همیشه خطاها/دهانه های آهسته را ذخیره کنید»، «نمونه 50٪ از ترافیک قناری»، «صرفه جویی در تمام آثار مسیرهای پرداخت در یک حادثه».
5) نمونه برداری پویا و بودجه تله متری
آگاه از بودجه: حجم نگه دارید ≤ N مسیرهای پیاده روی/دقیقه ؛ اگر بیش از حد باشد، آستانه ها را افزایش دهید (به عنوان مثال، فقط p99 را انتخاب کنید. 5 +، فقط خطا).
قوانین بر اساس مسیر/مستاجر: نقاط پایانی مهم/مستاجران - با سهم بیشتر.
Adaptive windows: bursts → به طور موقت میزان خطا/آهسته را افزایش می دهد.
کاهش کاردینالیتی: عادی عامل کاربر، IP/ASN، آثار پشته اسکواش، اسرار ماسک.
6) پیکربندی (منابع)
6. 1 OpenTelemetry Collector - نمونه برداری دم (yaml-fragment)
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 پرومتئوس - نمونه (قطعه)
در برنامه، هنگام ضبط هیستوگرام، نمونه هایی با «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 - کاهش هزینه سیاهههای مربوط
برچسبها فقط پایدار هستند ('service', 'env', 'region', 'route _ class').
کاردینالیتی بالا (request_id، user_id) - در بار، اما با redaction.
نمونه «موفق» InfoLogs، هر گونه خطا/هشدار را ذخیره کنید.
6. 4 Jaeger/Tempo - نگهداری و شاخص
ذخیره مسیرهای پیاده روی خام برای 3-7 روز، aggregates/symmetries برای دیگر.
فعال کردن پارکت/بلوک در ذخیره سازی ارزان (سازگار با S3)، شاخص ها جمع و جور هستند.
7) شبیه سازی ردیابی
7. ۱ نامگذاری و صفات
در خدمت شما هستم. نام، خدمات. نسخه '،' استقرار. محیط زیست ".
همین. روش '،' HTTP. مسیر '،' HTTP. هدف، http. status_code'، تور. همکار. نام و نام خانوادگی.
ویژگی های کسب و کار بدون PII: «مستاجر»، «منطقه»، «ارائه دهنده پرداخت»، «game _ id».
7. ۲ رویدادها و ارتباطات
حوادث دهانه: نقاط مهم (شروع معامله DB، retray، مدار باز، حافظه پنهان از دست).
لینک ها: زاپروس → ارتباطات vebkhuk/sobytiye ؛ برای EDA و صندوق ورودی/صندوق ورودی مفید است.
7. 3 نمونه
نمونه هایی با «trace _ id» را به هیستوگرام های تاخیر/اندازه اضافه کنید: ناوبری از → trace برای ردیابی متریک در یک کلیک.
8) معیارها: چه و چگونه
8. 1 فنی
قرمز توسط مسیر/مستاجر/ارائه دهنده (PSP، KYC).
Пулы: 'db _ connections _ in _ use'، 'http _ client _ in _ flight'، 'queue _ depth'.
تثبیت: تلاش مجدد, وقفه, مدار باز/نیمه باز, بازدید نرخ محدود.
Go/Java/Python runtime: GC مکث می کند، پشته، safepoints، تاخیر GIL.
8. 2 معیارهای کسب و کار
ثبت نام/ورود/سپرده/نتیجه گیری، تبدیل، شکست 3DS/KYC، نسبت بازپرداخت.
ویژگی های مهم: زمان به کیف پول، پرداخت نرخ موفقیت.
8. 3 کاردینالیتی و ذخیره سازی
هیستوگرام با سطل صریح (به عنوان مثال،. [50 100 200 300 500 1000 2000])
اجتناب از علائم با کاردینالیتی بالا (user_id خام، request_id) - آنها را به سیاهههای مربوط/مسیرهای پیاده روی.
9) سیاهههای مربوط: استانداردها و همبستگی
فرمت: JSON + کلید های مورد نیاز ('timestamp'، 'level'، 'message'، 'trace _ id'، 'span _ id'، 'service'، 'env').
ویرایش: ماسک PAN، نشانه ها، PII.
نمونه برداری: 100٪ برای «خطا/هشدار»، 5-20٪ برای «اطلاعات» در مسیرهای «پر سر و صدا»
اتصال به ردیابی - از طریق 'trace _ id'. Log strings → «pivot» برای ردیابی و برعکس.
10) پروفایل در فروش
فعال کردن پروفایل مداوم (Pyroscope/Parca) برای CPU/heap/-/قفل.
قله های همبستگی p99 با پشته های داغ ؛ 7-14 روز نگه دارید.
11) هشدار در مورد SLO/بودجه ناقص
هشدار SLO: «بودجه اشتباه سریعتر از X ٪/ساعت صرف می شود» (هشدار پیش بینی).
علائم، نه علل: هشدار به سطح مشتری (RUM/edge یا per-route)، نه به CPU.
چند پنجره، نرخ چند سوختگی: 2٪ در 1 ساعت و 5٪ در 6 ساعت - دو شرایط.
سکوت در طول تخریب برنامه ریزی شده: تغییر آستانه در طول پرچم های ویژگی/قناری.
12) هزینه و نگهداری
سهمیه حجم: مسیرهای پیاده روی ≤ N TB/ماه، سیاهههای مربوط - گرم 3-7 روز، سرد S3 30-90 روز، معیارها - downsampling (1 دقیقه → 5 دقیقه → 1 ساعت).
قوانین دم کاهش حجم × 10- × 100، نگه داشتن اشتباه/آهسته است.
سیگنال های کم هزینه - معیارها ؛ با بالاترین ارزش - «درست» مسیرهای پیاده روی و پروفایل.
13) ضد گلوله
«100٪ مسیرهای پیاده روی همیشه» → انفجار هزینه، سر و صدا و ترمز.
سیاهههای مربوط در قالب آزاد بدون کلید/ماسک.
معیارهای برچسب بی نهایت (user_id/ip/full UA).
بدون «traceparent »/« چمدان» - را نمی توان در ارتباط است.
هشدارها در CPU/heap به جای SLO - چت «سوختگی» بدون سود.
نمونه برداری «تصادفی 1٪» بدون خطا اولویت/آهسته - از دست دادن موارد با ارزش است.
14) نمونه هایی از داشبورد (اسکلت)
بررسی API: RPS، میزان خطا در کلاس، تاخیر p95/p99 (نمونه ها قابل کلیک هستند)، مسیرهای بالا.
Release/Canary: مقایسه معیارهای نسخه قدیمی/جدید، outlier-rate، open-circuits، retries.
PSP/KYC: میزان موفقیت توسط ارائه دهندگان، تاخیر و شکست، همبستگی با خطاهای پرداخت.
Infra: استفاده از منابع، اشباع صف، افت شبکه.
15) ویژگی های iGaming/امور مالی
مسیرهای بحرانی (سپرده/نتیجه گیری): ردیابی 100٪ فقط برای حوادث یا پنجره های محدود ؛ در حالت عادی - دم «همه با خطا/تاخیر طولانی».
منطقه/مستاجر: اضافه کردن «مستاجر»، «صلاحیت»، «نام تجاری» به چمدان ؛ ساخت SLO ها توسط حوزه قضایی.
فیلتر Antifrod/bot: معیارها و ردیابی راه حل های ریسک API (اجازه/انکار/چالش)، چالش گذر نرخ، سرعت بازدید.
حسابرسی/انطباق: حفظ حداقل لازم، بدون PII ؛ سیاهههای مربوط ثابت - در یک مدار جداگانه.
16) تولید لیست آمادگی
- انتشار پایان به پایان ('traceparent'، 'چمدان')، همبستگی ورود به سیستم/متریک/ردیابی.
- جمع کننده OTel با نمونه برداری دم (خطاها/آهسته/مسیرهای مهم) + پیش فرض احتمالی.
- معیارهای RED/USE، سطل های صریح، نمونه ها → انتقال به ردیابی.
- SLO و هشدار بودجه اشتباه (دو جدول زمانی).
- مقررات تله متری و بودجه ؛ معیارهای downsampling ؛ ذخیره سازی سرد برای سیاهههای مربوط.
- استاندارد JSON ورود به سیستم، ویرایش PII/اسرار.
- پروفایل در فروش شامل ؛ داشبورد «داغ» پشته برای این حادثه.
- داشبورد قناری و مقایسه نسخه ؛ آزادی بدون «نقاط کور».
- Runbook: چگونه می توان به طور موقت سهم نمونه برداری یک حادثه را افزایش داد.
- مستندات نامگذاری ویژگی/برچسب و مهار کاردینالیتی بالا.
17) TL ؛ دکتر متخصص
ایجاد قابلیت مشاهده در اطراف همبستگی: RED/USE → نمونه معیارهای → مسیرهای پیاده روی → سیاهههای مربوط/پروفایل. مدیریت هزینه از طریق نمونه برداری ترکیبی: سر کوچک٪ + قوانین دم (اشتباهات، آهسته، مسیرهای مهم/مستاجران). هشدارها - در SLO و بودجه خطا. نگه داشتن retentions و cardinality تحت کنترل، استفاده از OTel جمع کننده به عنوان یک سیستم عصبی مرکزی. "برای پرداخت/مسیرهای قضایی - تله متری اولویت و بهداشت اطلاعات دقیق.