GH GambleHub

پشته قابل مشاهده

1) چرا شما نیاز به یک پشته مشاهده پذیری دارید

RCA سریع و کاهش MTTR: از علامت تا علت در عرض چند دقیقه.
مدیریت SLO: اندازه گیری خطاها/تاخیر، هشدار توسط بودجه نادرست.
کنترل انتشار: محاسبات قناری، بازگشت خودکار توسط معیارها.
امنیت و حسابرسی: مسیرهای دسترسی، ناهنجاری ها، نگهداری قانونی.
شفافیت FinOps: هزینه ذخیره سازی/درخواست ها، هزینه هر SLO.

روش شناسی: سیگنال های طلایی (تاخیر/ترافیک/خطاها/اشباع)، RED، استفاده.

2) معماری پایه پشته

قطعات توسط لایه

مجموعه/عوامل: صادر کنندگان، Promtail/Fluent Bit، OTel SDK/Auto-Instr، Blackbox-probes.
Шина/ingest: Prometheus remote_write → Mimir/Thanos، توزیع کنندگان/مصرف کنندگان Loki، مصرف کنندگان Tempo/Jaeger.
ذخیره سازی: S3/GCS/MinIO شی (طولانی سرد)، SSD (ردیف گرم).
پرس و جو/تجسم: Grafana (پانل ها، ویدجت های SLO)، Kibana (اگر ELK).
مدیریت: Alertmanager/Graphana هشدار، کاتالوگ خدمات، RBAC، مدیر مخفی.

الگوهای استقرار

مدیریت شده (خدمات ابر/ابر Grafana) - سریع و گران تر در حجم.
خود میزبانی در K8s - کنترل کامل، نیاز به عملیات و FinOps دارد.

3) استانداردهای داده: یکپارچه «طرح مشاهده»

3. 1 معیارها (پرومتئوس/OpenMetrics)

برچسب های مورد نیاز: 'env'، 'منطقه'، 'خوشه'، 'فضای نام'، 'سرویس'، 'نسخه'، 'مستاجر' (اگر چند مستاجر)، 'نقطه پایانی'.
نامگذاری: 'snake _ case'، پسوندهای '_ total'، '_ seconds'، '_ bytes'.
نمودار نوار: سطل ثابت (SLO گرا).
Cardinality: شامل 'user _ id'، 'request _ id' در برچسب ها نیست.

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

فرمت: JSON ؛ فیلدهای مورد نیاز «ts»، «level»، «service»، «env»، «trace _ id»، «span _ id»، «msg».
PII: پوشش بر روی عامل (PAN، نشانه ها، ایمیل، و غیره).
برچسب های Loki: فقط کاردینالیتی کم («برنامه»، «فضای نام»، «سطح»، «مستاجر»).

3. 3 آهنگ ها

معناشناسی OTel: "خدمات. نام، استقرار. محیط زیست، DB. سیستم '،' http. '.
نمونه برداری: مسیرهای هدف p99 «always _ on »/tail-sampling هستند، بقیه« parent/ratio »هستند.
جاسازی شناسه: تلنگر 'trace _ id/span _ id' را به سیاهههای مربوط و معیارهای (برچسب/زمینه).

4) همبستگی M-L-T (معیارها/سیاههها/ردیابی)

از گراف هشدار (متریک) → سیاهههای فیلتر شده توسط 'trace _ id' → یک ردیابی خاص.

از ردیابی (دامنه آهسته)، یک درخواست برای معیارهای یک backend خاص در فاصله فاصله است →

دکمههای Drilldown در پانلها: «to logs» و «to traces» با جایگزینی متغیر («$ env»، «$ service»، «$ trace _ id»).

5) OpenTelemetry Collector: خط لوله مرجع

yaml receivers:
otlp:
protocols: { http: {}, grpc: {} }
prometheus:
config:
scrape_configs:
- job_name: kube-nodes static_configs: [{ targets: ['kubelet:9100'] }]

processors:
batch: {}
memory_limiter: { check_interval: 1s, limit_mib: 512 }
attributes:
actions:
- key: deployment. environment value: ${ENV}
action: insert tail_sampling:
decision_wait: 5s policies:
- name: errors type: status_code status_code: { status_codes: [ERROR] }
- name: important-routes type: string_attribute string_attribute: { key: http. target, values: ["/payments","/login"] }
- name: probabilistic type: probabilistic probabilistic: { sampling_percentage: 10 }

exporters:
otlphttp/mimir: { endpoint: "https://mimir/api/v1/push" }
otlphttp/tempo: { endpoint: "https://tempo/api/traces" }
loki:
endpoint: https://loki/loki/api/v1/push labels:
attributes:
env: "deployment. environment"
service: "service. name"

service:
pipelines:
metrics: { receivers: [prometheus, otlp], processors: [memory_limiter, batch], exporters: [otlphttp/mimir] }
logs:   { receivers: [otlp], processors: [batch], exporters: [loki] }
traces:  { receivers: [otlp], processors: [memory_limiter, attributes, tail_sampling, batch], exporters: [otlphttp/tempo] }

6) هشدار: SLO و چند سوختگی

ایده: alertim در سطح «CPU> 80٪» نیست، بلکه در مصرف بودجه خطا است.

قالب های PromQL:
promql
5-minute error rate err_ratio_5m =
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m]))

Quick burn (1m window)
(err_ratio_1m / (1 - SLO)) > 14. 4

Slow burn (30m)
(err_ratio_30m / (1 - SLO)) > 2
تاخیر (هیستوگرام):
promql latency_p95 =
histogram_quantile(0. 95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))

7) داشبورد: ساختار پوشه

00_Overview - پلت فرم: SLO، p95، 5xx٪، ظرفیت، حوادث فعال.
10_Services - توسط خدمات: RPS، P95/P99، خطاها، انتشار (حاشیه نویسی).
20_Infra - K8s/nodes/story/network، etcd، کنترل کننده ها.
30_DB/Queues - PostgreSQL/Redis/Kafka/RabbitMQ.
40_Edge/DNS/CDN/WAF - ورود، LB، قوانین WAF.
50_Synthetic - اسکریپت های آپ تایم و بدون سر.
60_Cost/FinOps - ذخیره سازی، پرس و جو، داغ/سرد، پیش بینی.

هر پانل: شرح، واحد، مالک، لینک runbook، drilldown.

8) سیاهههای مربوط: کارگاه LogQL

logql
API errors
{app="api", level="error"}     = "Exception"

Nginx 5xx in 5 minutes
{app="nginx"}      json      status=~"5.."      count_over_time([5m])

Extract Fields
{app="payments"}      json      code!=""      unwrap duration      avg()

9) آهنگ: TraceQL و کلاهبرداری

کمترین سرعت را پیدا کنید:

{ service. name = "api" }      duration > 500ms
ساندویچ SQL آهسته در پرس و جو آهسته:

{ name = "HTTP GET /order" }      child. span. name = "SELECT" & child. duration > 50ms

10) مصنوعی و آپ تایم

Blackbox-exporter: نمونه های HTTP/TCP/TLS/DNS از مناطق ≥3/ASN.
بی سر: ورود/سپرده اسکریپت برنامه ریزی شده.
هشدار حد نصاب: باعث اگر ≥2 منطقه ای یک شکست را ببینید.
صفحه وضعیت: به روز رسانی خودکار + نظرات دستی.

11) ذخیره و نگهداری

معیارها: 7-30 روز گرم (ردیف های سریع)، قوانین downsampling/ضبط، ذخیره سازی شیء سرد (ماه ها).
سیاهههای مربوط: گرم برای 3-7 روز، سپس با یک شاخص (فروشگاه Loki chunk/ELK ILM) S3/GCS می شود.
آثار: 3-7 روز «همیشه _ روشن» + ذخیره سازی طولانی مدت برای نمونه (دم نمونه برداری/رد).

توصیه ها:
  • چرخش در اندازه و زمان ؛ بودجه برای درخواست (سهمیه/محدودیت).
  • سیاست های جداگانه برای تولید/مرحله و داده های امنیتی.

12) چند اجاره و دسترسی

جدا از «مستاجر »/« فضای نام »/فضاها، الگوهای شاخص و قطعنامه ها.
برچسب منابع برای صدور صورت حساب: «مستاجر»، «خدمات»، «تیم».
داشبورد واردات/هشدار - در فضاهای تیم های خاص.

13) ایمنی و انطباق

TLS/mTLS از عوامل به backends، HMAC برای سلامت خصوصی.
RBAC برای خواندن/نوشتن، ممیزی تمام درخواست ها و هشدارها.
نسخه PII در لبه ؛ ممنوعیت اسرار در سیاهههای مربوط ؛ DSAR/حقوقی نگه دارید.
جداسازی: خوشه های جداگانه/nymspaces برای دامنه های حساس.

14) FinOps: هزینه مشاهده پذیری

ما کاردینالیتی برچسب ها و منطق را در مصرف (و نه در درخواست ها) کاهش می دهیم.
نمونه برداری آهنگ + هدف همیشه در برای مسیرهای بحرانی.
قوانین Downsampling/ضبط برای تجمع سنگین.
بایگانی دسترسی نادر به شیء سرد.
Метрики: 'storage _ cost _ gb _ day', 'query _ cost _ hour', 'cost _ per _ rps', 'cost _ per _ 9'.

15) CI/CD و تست های قابل مشاهده

پیوند معیارها/سیاهههای مربوط در CI: ممنوعیت «انفجار» کاردینالیتی، تأیید هیستوگرام/واحد.
تست های قرارداد قابل مشاهده: معیارهای مورد نیاز/زمینه های ورود، 'trace _ id' در میان افزار.
Canary: حاشیه نویسی انتشار در نمودار، SLO-auto-rollback.

16) نمونه: نمایش داده شد سریع

نقاط پایانی با خطا:
promql topk(10, sum by (route) (rate(http_requests_total{status=~"5.."}[5m])))
پردازنده:
promql sum by (namespace, pod) (rate(container_cpu_cfs_throttled_seconds_total[5m])) > 0
تاخیر کافکا:
promql max by (topic, group) (kafka_consumergroup_lag)

از سیاهههای مربوط به آهنگ (Loki → Tempo): عبور 'trace _ id' به عنوان یک لینک به Tempo UI/داشبورد.

17) کیفیت پشته: چک لیست

  • توافق متریک/ورود به سیستم/ردیابی طرح ها و واحد.
  • 'trace _ id' در سیاههها و معیارها، حفاری از پانل ها.
  • هشدار SLO چند سوز بدون flapping (حد نصاب/چند پنجره).
  • Downsampling، درخواست سهمیه، محدودیت گام/محدوده.
  • کلاس های نگهداری و ذخیره سازی مستند و اعمال می شود.
  • تجدید نظر RBAC/حسابرسی/PII گنجانده شده است.
  • داشبورد: مالک، runbooks، ≤2 -3 صفحه نمایش، پاسخ سریع.
  • FinOps-dashboard (حجم، هزینه، سخنرانان برتر).

18) برنامه پیاده سازی (3 تکرار)

1. MVP (2 هفته): پرومتئوس → میمیر، لوکی، تمپو ؛ جمع کننده OTel ؛ داشبورد اصلی و هشدارهای SLO ؛ نمونه های بلک باکس

2. مقیاس (3-4 هفته): نمونه برداری دم، downsampling، چند منطقه مصرف، RBAC/فضاهای، FinOps-داشبورد.
3. طرفدار (4 + هفته): بازگشت خودکار در SLO، synthetics بدون سر از مسیرهای کلیدی، Legal Hold، نمونه کارها و گزارش SLO.

19) ضد الگوهای

«گرافیک زیبا بدون SLO» - هیچ عمل → هیچ سود.
برچسب های کاردینالیتی بالا ('user _ id', 'request _ id') - انفجار حافظه و هزینه.
سیاهههای مربوط بدون JSON و بدون 'trace _ id' - هیچ همبستگی.
هشدار منابع به جای علائم - سر و صدا و فرسودگی در تماس.
عدم وجود سیاست های نگهداری - افزایش هزینه های کنترل نشده.

20) مینی سوالات متداول

چه چیزی را انتخاب کنید: Loki یا ELK ؟

ELK برای جستجوی پیچیده/چهره ؛ لوکی برای سناریوهای grep-like ارزانتر و سریعتر است. هیبرید اغلب استفاده می شود.

آیا همه نیاز به پیگیری دارند ؟

بله، حداقل در مسیرهای کلیدی (ورود، پرداخت، پرداخت) با نمونه برداری دم - این به طرز چشمگیری سرعت RCA را افزایش می دهد.

چگونه از صفر شروع کنیم ؟

OTEL Collector → Mimir/Loki/Tempo → SLO اساسی و نمونه های جعبه سیاه → سپس داشبورد و هشدار سوختگی.

مجموع

پشته مشاهده پذیری مجموعه ای از ابزارهای متفاوت نیست، بلکه یک سیستم سازگار است: استانداردهای داده های یکنواخت → همبستگی M-L-T → هشدار SLO و synthetics → ایمنی و FinOps. ضبط شماتیک، نظم و انضباط برچسب و حفظ، اتصال OTel، اضافه کردن drilldown و بازگشت خودکار - و شما قابلیت اطمینان قابل کنترل در هزینه قابل فهم است.

Contact

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

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

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

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

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

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