GH GambleHub

قابلیت مشاهده: گزارش ها، معیارها، ردیابی ها

قابلیت مشاهده: گزارش ها، معیارها، ردیابی ها

1) چرا شما به آن نیاز دارید

قابلیت مشاهده: توانایی یک سیستم برای پاسخ دادن به سوالات برنامه ریزی نشده در مورد شرایط آن. این به سه سیگنال اصلی بستگی دارد:
  • معیارها مجموعه ای جمع و جور برای SLI/SLO و هشدار علائم هستند.
  • ردیابی - زنجیرهای پرس و جو پایان به پایان.
  • سیاهههای مربوط - رویدادهای دقیق برای تحقیقات و ممیزی.

هدف: RCA سریع، هشدارهای پیشگیرانه و قابلیت اطمینان مدیریت شده در بودجه خطا.

2) اصول معماری

تک زمینه: در همه جا ما 'trace _ id'، 'span _ id'، 'tenant _ id'، 'request _ id'، 'user _ agent'، 'client _ ip _ hash' را پرتاب می کنیم.
استانداردها: OpenTelemetry (OTel) برای SDK/عوامل، فرمت ورود JSON (متعارف، با طرح).
علائم> علل: هشدار توسط علائم کاربر (تاخیر/خطاها)، نه توسط CPU.
ارتباط سیگنال: از → متریک به نمونه → به سیاهههای مربوط خاص توسط 'trace _ id'.
امنیت و حریم خصوصی: PII در سیاهههای مربوط، رمزگذاری در حمل و نقل/در حالت استراحت، سیاهههای مربوط به حسابرسی غیر قابل تغییر است.
چند اجاره: جداسازی فضای نام/کلید/سیاست.

3) طبقه بندی و طرح های سیگنال

3. 1 معیارها

RED (نرخ، خطا، مدت زمان) برای خدمات و USE (استفاده، اشباع، خطا) برای زیرساخت.
Типы: شمارنده، سنج، هیستوگرام/خلاصه. برای تاخیر، هیستوگرام با سطل ثابت.
نمونه ها: اشاره به 'trace _ id' در سطل هیستوگرام «داغ».

مینی طرح معیارها (منطق. مدل):

name: http_server_duration_seconds labels: {service, route, method, code, tenant}
type: histogram buckets: [0. 01, 0. 025, 0. 05, 0. 1, 0. 25, 0. 5, 1, 2, 5]
exemplar: trace_id

3. 2 آثار

Span = عملیات با «نام»، «شروع/پایان»، «ویژگی ها»، «رویدادها»، «وضعیت».
W3C ردیابی زمینه برای تحمل.
نمونه برداری: پایه (سر) + پویا (دم) + قوانین «اهمیت» (خطاها، p95 بالا).

3. 3 سیاهههای مربوط

فقط ساختار JSON ؛ سطوح: اشکال زدایی/اطلاعات/هشدار/خطا.
فیلدهای مورد نیاز عبارتند از «ts _ utc»، «level»، «message»، «trace _ id»، «span _ id»، «tenant _ id»، «env»، «service»، «region»، «host»، «labels {}».
ممنوع: اسرار، نشانه ها، PAN، کلمه عبور. PII - فقط توکن شده/ماسک شده.

نمونه ای از یک رشته log (JSON):
json
{"ts":"2025-10-31T12:05:42. 123Z","level":"ERROR","service":"checkout","env":"prod",
"trace_id":"c03c...","span_id":"9ab1...","tenant_id":"t-42","route":"/pay",
"code":502,"msg":"payment gateway timeout","retry":true}

4) جمع آوری و حمل و نقل

نمایندگان/صادرکنندگان (daemonset/sidecar) → بافر در گره → bus/ingest (TLS/mTLS) → فروشگاه سیگنال.
مورد نیاز: عقب فشار، retrays، deduplication، محدودیت cardinality (برچسب!)، حفاظت در برابر «طوفان ورود به سیستم».

معیارها: کشش (سازگار با Prometheus) یا فشار از طریق OTLP.
ردیابی: OTLP/HTTP (gRPC)، نمونه های دم بر روی جمع کننده.
Logs: local collection (journal/docker/stdout) → تجزیه کننده → نرمال کننده.

5) ذخیره سازی و نگهداری (لایه ای)

معیارها: TSDB گرم 7-30 روز (با نمونه پایین)، جمع برای یک دوره طولانی تر (90-365 روز).
ردیابی: 1-7 روز کامل، و سپس جمع/دهانه از خدمات «مهم» ؛ فهرست فروشگاه در «سرویس»، «وضعیت»، «خطا».
سیاهههای مربوط: شاخص گرم 7-14 روز، گرم 3-6 ماه، آرشیو تا 1-7 سال (انطباق). حسابرسی - WORM.

بهینه سازی هزینه: downsampling، فیلتر کردن DEBUG در فروش، سهمیه برچسب، نمونه برداری برای آهنگ.

6) SLI/SLO، هشدار و وظیفه

SLI: در دسترس بودن (٪ درخواست های موفق)، تاخیر (p95/p99)، سهم 5xx، طراوت داده ها، سهم مشاغل موفق.
SLO: هدف در SLI (به عنوان مثال 99. 9٪ موفقیت آمیز ≤ 400 میلی ثانیه).
بودجه خطا: 0. 1٪ «حاشیه برای خطا» → قوانین داستان/آزمایش.

هشدار با علائم (مثال):
  • 'ALERT HighLatency' если 'p99 (http_server_duration_seconds{route="/pay"})> 1s' 5мин.
  • 'ALERT ErrorRate' если 'rate (http_requests_total{code=~"5.."}[5m] )/rate (http_requests_total[5m])> 0. 02`.
  • هشدار سیلو (CPU/دیسک) - فقط به عنوان کمکی، بدون صفحه بندی.

7) همبستگی سیگنال

متریک «قرمز» → کلیک بر روی نمونه → یک «trace _ id» خاص → نگاهی به «slow» span → باز کردن سیاهههای مربوط با همان «trace _ id».
ارتباط با نسخه های منتشر شده: ویژگی های «نسخه»، «image _ sha»، «feature _ flag».
برای داده/ETL: 'dataset _ urn', 'run _ id', link to lineage (مقاله مربوطه را ببینید).

8) نمونه برداری و کاردینالیتی

معیارها: برچسب ها را محدود کنید (بدون 'user _ id'، 'session _ id') ؛ سهمیه/اعتبار در ثبت نام.
ردیابی: ترکیب سر نمونه (در ورودی) و دم نمونه (در جمع کننده) با قوانین: «همه چیز است که 5xx، P99، خطا - 100٪».
سیاهههای مربوط: سطح و خفه کردن ؛ برای خطاهای مکرر مکرر - رویدادهای جمع آوری (کلید dedupe).

مثال نمونه برداری دم (مفهومی، جمع کننده OTel):
yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_code: ERROR rate_allocation: 1. 0
- type: latency threshold_ms: 900 rate_allocation: 1. 0
- type: probabilistic hash_seed: 42 sampling_percentage: 10

9) امنیت و حریم خصوصی

در حمل و نقل/در حالت استراحت: رمزگذاری (TLS 1. 3، AEAD، KMS/HSM).
PII/اسرار: ضد عفونی کننده قبل از حمل و نقل، نشانه گذاری، ماسک کردن.
دسترسی: ABAC/RBAC برای خواندن ؛ جدایی از تولید/خوانندگان/مدیران نقش.

حسابرسی: ورود بدون تغییر دسترسی به سیاهههای مربوط/آثار ؛ export - به صورت رمزگذاری شده

چند اجاره: فضای نام/برچسب مستاجر با سیاست ؛ جداسازی کلید رمزگذاری.

10) پروفایل های پیکربندی (قطعات)

Prometheus (معیارهای HTTP + هشدار):
yaml global: { scrape_interval: 15s, evaluation_interval: 30s }
scrape_configs:
- job_name: 'app'
static_configs: [{ targets: ['app-1:8080','app-2:8080'] }]
rule_files: ['slo. rules. yaml']
اسلو. قوانین. یامل (به عنوان مثال قرمز):
yaml groups:
- name: http_slo rules:
- record: job:http_request_duration_seconds:p99 expr: histogram_quantile(0. 99, sum(rate(http_server_duration_seconds_bucket[5m])) by (le,route))
- alert: HighLatencyP99 expr: job:http_request_duration_seconds:p99{route="/pay"} > 1 for: 5m
OpenTelemetry SDK (شبه کد):
python provider = TracerProvider(resource=Resource. create({"service. name":"checkout","service. version":"1. 8. 3"}))
provider. add_span_processor(BatchSpanProcessor(OTLPExporter(endpoint="otel-collector:4317")))
set_tracer_provider(provider)
with tracer. start_as_current_span("pay", attributes={"route":"/pay","tenant":"t-42"}):
business logic pass
سیاهههای مربوط به برنامه (stdout JSON):
python log. info("gw_timeout", extra={"route":"/pay","code":502,"trace_id":get_trace_id()})

11) داده/ETL و جریان

SLI برای داده ها: طراوت (حداکثر تاخیر)، کامل بودن (ردیف در مقابل انتظار)، «کیفیت» (اعتبار سنج/تکراری).
هشدارها: پرش پنجره، تاخیر مصرف کننده، رشد DLQ.
همبستگی: 'run _ id'، 'dataset _ urn'، رویدادهای تبار ؛ آثار برای خطوط لوله (دهانه در هر دسته/پارتیشن).
Kafka/NATS: معیارهای تولید کننده/مصرف کننده، تاخیر/شکست ؛ آثار توسط هدر (از جمله 'traceparent').

12) پروفایل و eBPF (سیگنال اضافی)

مسیرهای سطح پایین CPU/-/IO ؛ پروفیل در هر حادثه

eBPF تله متری (تاخیر شبکه، DNS، تماس های سیستم) به «trace _ id »/PID گره خورده است.

13) تست مشاهده پذیری

قرارداد سیگنال - صادرات معیارها/برچسب ها/هیستوگرام ها را به CI بررسی می کند.
پروب های مصنوعی: سناریوهای RUM/مشتریان شبیه سازی شده برای SLI های خارجی.
هرج و مرج/آتش سوزی: از کار انداختن وابستگی ها، تخریب - ما به چگونگی واکنش هشدارها و شرکت کنندگان نگاه می کنیم.
Smoke in Prod: پس از استقرار بررسی کنید که نقاط پایانی جدید دارای معیارها و ردیابی هستند.

14) کنترل هزینه و حجم

بودجه توسط سیگنال/فرمان ؛ داشبورد «هزینه هر سیگنال».
کاردینالیتی تحت بودجه (SLO برای کاردینالیتی)، محدودیت در برچسب های جدید.
Downsampling، ارائه کلاس داده، آرشیو سرد و WORM برای حسابرسی.

15) بهره برداری و SLO از پلت فرم قابل مشاهده

SLO پلت فرم: 99. 9٪ از مصرف موفقیت آمیز ؛ تاخیر به شاخص متریک ≤ 30 ثانیه، سیاهههای مربوط ≤ 2 دقیقه، آثار ≤ 1 دقیقه.
هشدار پلت فرم: تاخیر تزریق، رشد قطره، خطای امضا/رمزگذاری، سرریز بافر.
DR/HA: چند منطقه، تکرار، پیکربندی/قانون پشتیبان گیری.

16) چک لیست

قبل از فروش:
  • در همه جا 'ردیابی _ id '/' span _ id' پرتاب می شود ؛ JSON با یک نمودار وارد می شود.
  • معیارهای RED/USE با هیستوگرام ؛ نمونه → هم ترازی.
  • نمونه برداری دم را فعال کنید ؛ قوانین 5xx/p99 = 100%
  • هشدار توسط علائم + Runybooks ؛ ساعت آرام/ضد فلپ.
  • ضدعفونی کننده PII ؛ رمزگذاری در حالت استراحت/در حمل و نقل WORM برای حسابرسی.
  • Retentions و بودجه برای حجم/cardinality.
عملیات:
  • بررسی هشدار ماهانه (سر و صدا/دقت)، آستانه تنظیم.
  • گزارش بودجه خطا و اقدامات انجام شده (fichfreeze، سخت شدن).
  • بررسی پوشش داشبورد/ورود/ردیابی برای مسیرهای بحرانی.
  • حوادث آموزش و به روز رسانی runbook.

17) Runbook'и

RCA: p99/افزایش حقوق

1. داشبورد قرمز را برای «پرداخت» باز کنید.
2. برو به نمونه → یک مسیر آهسته → آشکار «دهانه باریک» (به عنوان مثال،. راه دوری است. تماس بگیرید).
3. سیاهههای مربوط به باز کردن توسط 'trace _ id' → مشاهده timeouts/retrays.
4. فعال کردن ویژگی بازگشت/RPS محدود, اطلاع صاحبان وابستگی.
5. پس از تثبیت - RCA، بلیط بهینه سازی، آزمون پخش.

ناهنجاری در داده ها (ورود DWH):

1. SLI «طراوت» قرمز → مسیر کار → زمین شکست.

2. بررسی کارگزار/DLQ ورود به سیستم، خطاهای اتصال.

3. پردازش مجدد را شروع کنید، مصرف کنندگان (BI/محصول) را از طریق کانال وضعیت اطلاع دهید.

18) خطاهای مکرر

سیاهههای مربوط بدون طرح و بدون 'trace _ id'. تحقیقات گاهی اوقات به تأخیر می افتد.

هشدار در مورد زیرساخت ها به جای علائم. پيجينگ «به شير تبديل ميشه»

کاردینالیتی بی حد و مرز معیارها. انفجار هزینه و بی ثباتی.

همه چیز 100% پیگیری می شود. گران و غیر ضروری امکان نمونه برداری هوشمند

PII/اسرار در سیاهههای مربوط. شامل پاک کننده ها و لیست های قرمز.
ویژگیهای «بیصدا» کد جدید بدون متریک/ردیابی/سیاهههای مربوط.

19) سوالات متداول

س: آیا باید متن خام سیاهههای مربوط را ذخیره کنم ؟

A: بله، اما با نگهداری و آرشیو ؛ برای هشدارها و SLO ها، جمع ها کافی هستند. حسابرسی - در WORM.

س: چه چیزی را برای آهنگ ها انتخاب کنید - نمونه برداری سر یا دم ؟

A: ترکیب: سر احتمالی برای basecoat + قوانین دم برای خطاها و ناهنجاری ها.

س: چگونه می توانم معیارهای کاربر و معیارهای فنی را پیوند دهم ؟

A: از طریق عمومی «ردیابی» و برچسب های کسب و کار («مسیر»، «مستاجر»، «طرح»)، و همچنین از طریق رویدادهای محصول (تبدیل) با همبستگی به آهنگ.

س: چگونه در هشدارها غرق نشویم ؟

A: ضرب و شتم علائم، وارد ساعات آرام، deduplication، گروه بندی، اولویت بندی SLO و مالک به طور پیش فرض در هر هشدار.

مواد مرتبط:
  • «گزارش های حسابرسی و تغییر ناپذیر»
  • «در حمل و نقل/در حالت استراحت رمزگذاری»
  • «مدیریت مخفی»
  • «منبع داده (اصل و نسب)»
  • حریم خصوصی از طریق طراحی (GDPR)
  • «Webhook گارانتی تحویل»
Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.