ბიბლიოთეკა
00/07 · ~36 წთ
GUIDEDECK · სისტემებისთვის, რომელთა შიგნითაც ვერ იხედებით

დაკვირვებადობა
& მონიტორინგი
პროდაქშენში მომუშავე სისტემებისთვის.

36-წუთიანი სამუშაო სესია იმაზე, როგორ იცოდეთ, რას აკეთებს თქვენი პროგრამა ახლა — სამი საყრდენი (მეტრიკები, ლოგები, ტრეისები), ოქროს სიგნალები, განაწილებული ტრეისინგი, გაფრთხილებები SLO-ზე და ინსტრუმენტები, რომლებიც ამ ყველაფერს ერთად კრავს.

~36 წთშერეული გუნდივენდორისგან დამოუკიდებელი
გადაახვიეთ
01 · რატომ დაკვირვებადობა 4 წთ

მხოლოდ იმას ასწორებთ,
რასაც ხედავთ.

როგორც კი კოდი ლეპტოპს დატოვებს და რეალურ მომხმარებლებთან ამუშავდება, ის შავ ყუთად იქცევა. მოთხოვნა ნელია — მაგრამ სად? ჩექაუთი ვარდება — მაგრამ რატომ და ვისთან? დაკვირვებადობა ის გზაა, რომლითაც ამ შავ ყუთს შეკითხვებს დაუსვამთ — სასურველია მანამ, სანამ გატეხილობის შესახებ კლიენტი გეტყვით.

დაკვირვებადობა — რამდენად კარგად შეგიძლიათ გაიგოთ, რა ხდება სისტემის შიგნით იმ მონაცემებიდან, რომლებსაც ის გამოსცემს. სისტემა დაკვირვებადია მაშინ, როცა მასზე ახალ შეკითხვებს პასუხობთ — მათ შორის ისეთებზე, რომელთა დასმაც წინასწარ არ გიფიქრიათ — ისე, რომ სანახავად ახალი კოდი არ გამოუშვათ.

მონიტორინგი vs. დაკვირვებადობა

  • მონიტორინგი უყურებს იმას, რაზეც უკვე იცოდით, რომ უნდა გედევნებინათ თვალი — CPU, შეცდომების სიხშირე, დისკის ადგილი — და გეუბნებათ, როდის ფუჭდება ცნობილი რამ. ის პასუხობს შეკითხვებს, რომლებიც წინასწარ ჩაწერეთ.
  • დაკვირვებადობა უფრო ფართო შესაძლებლობაა — ახალი შეკითხვების დასმა ფაქტის შემდეგ. მონიტორინგი მისი ერთი გამოყენებაა: დაშბორდები და გაფრთხილებები ის შეკითხვებია, რომლებიც წინასწარ აირჩიეთ.
  • მიახლოებითი წესი: მონიტორინგი გეუბნებათ, რომ რაღაც ვერ მუშაობს; დაკვირვებადობა კი გეხმარებათ იპოვოთ, რატომ.
მონიტორინგი
ცნობილი კითხვები
დაკვირვებადობა
უცნობი კითხვები · რატომ ნელია ჩექაუთი · v2.3-ზე მყოფ EU მომხმარებელს · მხოლოდ 18:00-ის შემდეგ? · იკვლიე, წინასწარ ნუ აცხობ
CPU 90%-ზე მეტია?
შეცდომები ბევრია?
დისკი გაივსო?

მონიტორინგი ფარავს იმ შეკითხვებს, რომლებიც ჩაწერეთ; დაკვირვებადობა კი საშუალებას გაძლევთ დასვათ ისეთები, რომლებიც არ ჩაგიწერიათ.

სამი საყრდენი

დაკვირვებადობის თითქმის ყველა ინსტრუმენტი ტელემეტრიის სამ სახეობას ეყრდნობა. ამ სესიის დანარჩენი ნაწილი თითო საყრდენს ეთმობა.

მეტრიკები

რიცხვები დროში

იაფი, აგრეგირებული გაზომვები — მოთხოვნები წამში, შეცდომების სიხშირე, შეყოვნება. შესანიშნავია დაშბორდებისა და გაფრთხილებებისთვის; ისინი გეუბნებიან, რომ რაღაც შეიცვალა.

ლოგები

მოვლენები, რომლებშიც ეძებთ

ცალკეული მომხდარი ამბების დროის ნიშნულიანი ჩანაწერები. მდიდარი დეტალი, რომელსაც ფაქტის შემდეგ ეკითხებით; ისინი გეუბნებიან, რა მოხდა კონკრეტულ შემთხვევაში.

ტრეისები

ერთი მოთხოვნის მოგზაურობა

ერთი მოთხოვნის სრული გზა, სანამ ის სერვისებს შორის გადადის. ისინი გეუბნებიან, სად წავიდა დრო და რომელი გადასვლა ჩავარდა.

ჰგავს  საავადმყოფოს ისტორიას — მეტრიკები სასიცოცხლო ჩვენებების მონიტორებია, ლოგები ექთნის ჩანაწერები, ტრეისი კი ერთი პაციენტის გაყოლა ყველა განყოფილებაში.

02 · მეტრიკები 6 წთ

იაფი რიცხვები,
გაზომილი დროში.

მეტრიკა მონიტორინგის სამუშაო ცხენია: ერთი რიცხვი, რომელსაც ისევ და ისევ ზომავთ და დროით მწკრივად ინახავთ. რადგან თითოეული წერტილი პაწაწინაა და წინასწარ აგრეგირებული, მილიონობით მათგანის შენახვა და კვირეების ისტორიის დახატვა ჯიბეს არ დაგიცლით.

მეტრიკა — რიცხვითი გაზომვა, ჩაწერილი გარკვეული ინტერვალით, რომელიც დროით მწკრივს ქმნის (მნიშვნელობა პლუს დროის ნიშნული, ჩვეულებრივ ისეთი ლეიბლებით, როგორიცაა service ან region). წარმოიდგინეთ, როგორ ემატება ერთეულები http_requests_total-ს, ან როგორ იზომება memory_used_bytes ყოველ 15 წამში.
counter

მხოლოდ იზრდება

მიმდინარე ჯამი — მომსახურებული მოთხოვნები, დანახული შეცდომები. თქვენ მისი ცვლილების ტემპს ხატავთ.

gauge

იზრდება და მცირდება

მომენტის მნიშვნელობა — ტემპერატურა, რიგის სიღრმე, ახლა გამოყენებული მეხსიერება.

histogram

ანაწილებს დიაპაზონებად

ითვლის მნიშვნელობებს დიაპაზონების მიხედვით — ეს არის პროცენტილური შეყოვნების, მაგალითად p95-ისა და p99-ის, საფუძველი.

label

ყოფს მწკრივს

გასაღები/მნიშვნელობის ლეიბლი (route, status), რომლითაც ფილტრავთ და აჯგუფებთ. ლეიბლების მნიშვნელობები დაბალკარდინალური შეინახეთ.

ოთხი ოქროს სიგნალი

Google-ის SRE პრაქტიკიდან: თუ მომხმარებელზე ორიენტირებულ სერვისზე მხოლოდ ოთხ რამეს დააკვირდებით, სწორედ ამათ დააკვირდით. ისინი თითქმის ყველა მომხმარებლისთვის ხილულ პრობლემას იჭერენ.

L

შეყოვნება

რამდენ ხანს გრძელდება მოთხოვნები. თვალი ადევნეთ პროცენტილებს (p95/p99), და არა საშუალოს — და გამიჯნეთ ნელი წარმატებები ნელი შეცდომებისგან.

T

ტრაფიკი

რამდენი მოთხოვნაა — მოთხოვნები წამში, ტრანზაქციები წუთში. ის აძლევს კონტექსტს ყველა დანარჩენ სიგნალს.

E

შეცდომები

ჩავარდნილი მოთხოვნების სიხშირე — ცხადი (HTTP 500) და ფარული (არასწორი პასუხი, 200 გატეხილი შიგთავსით).

S

გაჯერება

რამდენად სავსეა სისტემა — CPU, მეხსიერება, რიგის სიღრმე. ეს ის სიგნალია, რომელიც გაფრთხილებთ მანამ, სანამ დანარჩენები აფეთქდება.

# A counter, split by route and status label http_requests_total{route="/checkout", status="500"} 42 # Errors as a fraction of all traffic, last 5 min rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m]) # p95 latency from a histogram histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
ms time p95 avg deploy

საშუალო მშვიდად გამოიყურება; p95 კი სიმართლეს გეუბნებათ. ყოველთვის დახატეთ კუდი.

რჩევა  მოთხოვნების მომსახურე სერვისებისთვის RED — Rate, Errors, Duration — იგივე ოქროს სიგნალებია სხვა სიტყვებით; რესურსებისთვის კი USE — Utilization, Saturation, Errors.

03 · ლოგები 5 წთ

მოვლენები, რომლებშიც
ფაქტის შემდეგ ეძებთ.

როცა მეტრიკა გეუბნებათ, რომ შეცდომებმა იმატა, ლოგები თითოეულის ამბავს გიყვებიან: რომელი მომხმარებელი, რომელი შემავალი მონაცემი, რომელმა ხაზმა გადმოაგდო შეცდომა. ლოგი ერთი მომხდარი ამბის დროის ნიშნულიანი ჩანაწერია — და ყველაზე დიდი გაუმჯობესება, რაც შეგიძლიათ შეიტანოთ, არის მისი სტრუქტურირებულ მონაცემად და არა პროზად ჩაწერა.

სტრუქტურირებული ლოგი — ლოგის ხაზი, დაწერილი მანქანურად წაკითხვადი გასაღები/მნიშვნელობის ველებად (ჩვეულებრივ JSON), და არა თავისუფალი ტექსტის წინადადებად. სწორედ სტრუქტურა გაძლევთ საშუალებას გაფილტროთ user_id-ით, დააჯგუფოთ status-ით და დახატოთ რაოდენობები — იმის ნაცვლად, რომ ფრაზას grep-ით ეძებოთ და იმედი გქონდეთ.
თავისუფალი ტექსტი — ძნელი ძებნა
# a sentence — fine for a human, painful at scale User 8842 checkout failed after 3 retries: timeout User 8843 checkout ok in 240ms # to count failures you must parse English
სტრუქტურირებული — ძებნადი
{ "ts": "2026-06-27T18:04:11Z", "level": "error", "event": "checkout_failed", "user_id": 8842, "retries": 3, "reason": "payment_timeout", "trace_id": "a1b2c3" }

თითოეული სერვისი თავის ხაზებს ერთ, ძებნად საცავში აგზავნის — ასე მთელ სისტემას ერთბაშად ეკითხებით.

ლოგირება, რომელიც ამართლებს

  • დონეები პატიოსნად გამოიყენეთ — error ახლავე მოქმედებისთვის, warn საეჭვოსთვის, info ეტაპებისთვის, debug სრული ნაკადისთვის.
  • დაამატეთ მოთხოვნის/ტრეისის id ყოველ ხაზს, რომ ერთი მოთხოვნის ლოგები ერთად ააწყოთ — და მის ტრეისზე გადახვიდეთ (ნაწილი 4).
  • არასდროს დაალოგოთ საიდუმლოები ან პერსონალური მონაცემები (PII) — პაროლები, ტოკენები, ბარათის სრული ნომრები. ლოგები ბევრისთვის წაკითხვადი და დიდხანს ცოცხალია.
  • გაითვალისწინეთ ღირებულება — ლოგები ყველაზე ძვირი საყრდენია. ხმაურიან მონაკვეთებზე შერჩევა გამოიყენეთ; შეცდომები კი დატოვეთ.
04 · ტრეისები 6 წთ

გაჰყევით ერთ მოთხოვნას
ყველა სერვისში.

მიკროსერვისულ სისტემაში ერთმა დაწკაპუნებამ შეიძლება ათეულ სერვისს შეეხოს. მეტრიკა ამბობს "ჩექაუთი ნელია"; ლოგები კი ამ ათეულ მანქანაზეა მიმოფანტული. ტრეისი მათ ერთ ქრონოლოგიად აწყობს, რომ ზუსტად დაინახოთ, რომელმა გადასვლამ შეჭამა დრო ან გადმოაგდო შეცდომა.

ტრეისი — ერთი მოთხოვნის სრული ჩანაწერი მისი სისტემაში გავლისას, შედგენილი სპანებისგან. სპანი ერთი სამუშაო ერთეულია (ერთი სერვისის გამოძახება ან მონაცემთა ბაზის შეკითხვა) დაწყების დროით, ხანგრძლივობითა და მშობლით — ასე სპანები ხედ ეწყობა და მთელ მოგზაურობას აჩვენებს. განაწილებული ტრეისინგი სწორედ ამის კეთებაა ცალკეულ სერვისებს შორის.

როგორ უკავშირდება სპანები ერთმანეთს

  • პირველი სერვისი იწყებს ფესვის სპანს და ქმნის trace_id-ს.
  • ის ამ id-ს (პლუს მიმდინარე span_id-ს) შემდეგ სერვისს მოთხოვნის ჰედერით გადასცემს — ეს არის კონტექსტის გავრცელება.
  • ყოველი შემდგომი გამოძახება ხსნის შვილ სპანს ამ მშობლის ქვეშ, ასე რომ ყველა სპანს ერთი trace_id აქვს.
  • ბექენდი მათ id-ის მიხედვით ხელახლა კრებს მარჯვნივ ნაჩვენებ ჩანჩქერად.
gateway 320ms
auth 60ms
checkout 240ms
payment 150ms ✕
db 40ms
trace_id a1b2c3 · დრო →
თითო ზოლი = სპანი · სიგანე = ხანგრძლივობა · ჩადგმა = მშობელი

ჩანჩქერზე ერთი შეხედვითაც აშკარაა ნელი და ჩავარდნილი payment სპანი.

// OpenTelemetry: wrap work in a span
await tracer.startActiveSpan("charge_card", async (span) => {
  span.setAttribute("amount", order.total)
  try {
    await gateway.charge(order)   // header carries trace_id
  } catch (e) {
    span.recordException(e)        // span turns red ✕
    throw e
  } finally { span.end() }
})

traceparent ჰედერი id-ს ქვემოთ ატარებს, ასე რომ ყველა სერვისის სპანი ერთსა და იმავე ტრეისში ხვდება.

ჰგავს  ამანათის თრექინგის ნომერს — ერთი id მიჰყვება ამანათს ყველა განყოფილებაში, ასე რომ ზუსტად ხედავთ, სად გაიჭედა.

05 · გაფრთხილება და SLO 6 წთ

გამოიძახეთ სიმპტომზე,
და არა მიზეზზე.

ტელემეტრია მხოლოდ მაშინაა სასარგებლო, როცა სწორი გაფრთხილება სწორ ადამიანთან სწორ დროს მიდის. ხაფანგი ისაა, რომ ყველაფერზე აყენებთ გაფრთხილებას — გამოძახებების კედელს, რომელსაც არავინ კითხულობს. გამოსავალი კი ისაა, რომ გააფრთხილოთ იმაზე, რასაც მომხმარებელი ნამდვილად გრძნობს, და "საკმარისად კარგი" SLO-თი განსაზღვროთ.

SLI / SLO / შეცდომების ბიუჯეტი — SLI არის სერვისის ჯანმრთელობის გაზომილი მაჩვენებელი (მაგ. 300ms-ზე სწრაფად შესრულებული მოთხოვნების %). SLO არის მიზანი, რომელსაც ამ SLI-სთვის ჰპირდებით (მაგ. 99.9% 30 დღეში). შეცდომების ბიუჯეტი კი ნარჩენია — 100% − SLO — იმდენი ჩავარდნა, რამდენიც გეშვებათ, სანამ ფუნქციონალის გამოშვებას შეაჩერებთ და საიმედოობას გამოასწორებთ.

სიმპტომი vs. მიზეზი

  • სიმპტომის გაფრთხილება (გამოძახება): "ჩექაუთის შეცდომების სიხშირე > 5% 5 წუთის განმავლობაში" — მომხმარებელს ახლა სტკივა. გააღვიძეთ ვინმე.
  • მიზეზის გაფრთხილება (თიქეთი): "ერთი რეპლიკის CPU მაღალია" — შესაძლოა არაფერია, თუ მომხმარებლებზე არ აისახება. ამის გამო ღამის 3 საათზე ნუ გამოიძახებთ.
  • კარგი გამოძახება ქმედითი, გადაუდებელი და მომხმარებლისთვის ხილულია. დანარჩენი ყველაფერი დაშბორდი ან თიქეთია.
  • შეცდომების ბიუჯეტი ძალიან სწრაფად იწვება → გააფრთხილეთ და შეანელეთ. ბიუჯეტი ხელუხლებელია → თავისუფლად გამოუშვით.
დარჩა 39%
დახარჯულია 61%
ბიუჯეტი ამოიწურა
30-დღიანი ბიუჯეტი (SLO 99.9%)
წვის ტემპი

ბიუჯეტი საიმედოობას დასახარჯ რესურსად წარმოგვიდგენს — წვის ტემპი კი გეუბნებათ, რამდენად მალე ამოიწურება იგი.

# Page only on a user-visible symptom - alert: HighCheckoutErrorRate expr: | rate(http_requests_total{route="/checkout",status=~"5.."}[5m]) / rate(http_requests_total{route="/checkout"}[5m]) > 0.05 for: 5m # avoid flapping on a blip labels: { severity: page } annotations: { summary: "Checkout failing for users" }

სიმძიმე წყვეტს არხს: გადაუდებელზე გამოძახება, გაფრთხილებაზე ჩატი, დანარჩენზე თიქეთი.

06 · ინსტრუმენტები 5 წთ

დაკვირვებადობის
სტეკი.

ამას იშვიათად აშენებთ ნულიდან. ბაზარი იყოფა ტელემეტრიის შეგროვების ვენდორისგან დამოუკიდებელ გზად, თითო საყრდენისთვის საუკეთესო ინსტრუმენტებად და ერთიან, ყოვლისმომცველ პლატფორმებად. ქვემოთ თითოეული ჩანართი ასახელებს წამყვან რეალურ ვარიანტებს ერთსტრიქონიანი დადებითი და უარყოფითი მხარით.

OpenTelemetry (OTel) — ვენდორისგან დამოუკიდებელი, ღია სტანდარტი მეტრიკების, ლოგებისა და ტრეისების შესაქმნელად და გასაგზავნად. კოდს ერთხელ ინსტრუმენტავთ OTel-ის მიხედვით და შემდეგ ნებისმიერ ბექენდზე მიმართავთ. ეს ყველაზე უსაფრთხო არჩევანია, რადგან ერთი ვენდორის აგენტზე მიჯაჭვისგან გიცავთ.

ტელემეტრიის ინსტრუმენტაცია & გაგზავნა

OpenTelemetry

სტანდარტი

  • დადებითი: ერთი ვენდორისგან დამოუკიდებელი API + SDK-ები + Collector სამივე საყრდენისთვის — მიჯაჭვის გარეშე.
  • უარყოფითი: მუდმივად იცვლება; ლოგები ყველაზე ნაკლებად მომწიფებული საყრდენია და დაყენებას ნამდვილად სჭირდება ძალისხმევა.
OTel Collector

მილი შუაში

  • დადებითი: ერთი ადგილიდან იღებთ, აპარტიულებთ, ფილტრავთ და გადაამისამართებთ ტელემეტრიას ნებისმიერ ბექენდზე.
  • უარყოფითი: კიდევ ერთი კომპონენტი, რომელიც უნდა გაუშვათ, გაზომოთ და ცოცხლად შეინარჩუნოთ — შეიძლება ვიწრო ყელად იქცეს.

დროითი მწკრივები & დაშბორდები

Prometheus

მეტრიკების საცავი

  • დადებითი: ფაქტობრივი ღია სტანდარტი; მძლავრი PromQL, pull-მოდელი, უზარმაზარი ეკოსისტემა.
  • უარყოფითი: ერთი ნოუდი თავისთავად არც გრძელვადიანია და არც მაღალხელმისაწვდომი — მასშტაბისთვის Thanos/Mimir ემატება.
Grafana

დაშბორდები

  • დადებითი: ლამაზი, წყაროსგან დამოუკიდებელი დაშბორდები Prometheus-ზე, Loki-ზე, Tempo-ზე და სხვებზე.
  • უარყოფითი: მხოლოდ ვიზუალიზაციაა — არაფერს ინახავს; დაშბორდების გამრავლებას დისციპლინა სჭირდება.

მოვლენების შენახვა & ძებნა

Grafana Loki

ლეიბლებით ინდექსირებული ლოგები

  • დადებითი: იაფია — ინდექსავს ლეიბლებს და არა სრულ ტექსტს; ბუნებრივად ეწყობა Prometheus/Grafana-ს.
  • უარყოფითი: სრულტექსტური ძებნა უფრო სუსტია; ლეიბლები თავიდანვე კარგად უნდა გაწეროთ.
ELK / OpenSearch

სრულტექსტური ლოგები

  • დადებითი: Elasticsearch + Kibana — მძლავრი სრულტექსტური ძებნა და მომწიფებული ანალიტიკა.
  • უარყოფითი: ბევრ საცავს ჭამს და მასშტაბზე გაშვება და აწყობა ოპერაციულად მძიმეა.

განაწილებული ტრეისინგის ბექენდები

Jaeger

მომწიფებული ტრეისინგი

  • დადებითი: CNCF-ის პროექტი, გამოცდილი ტრეისების ძებნა და ჩანჩქერის ინტერფეისი; OTel-native.
  • უარყოფითი: საკუთარ საცავ ბექენდს თავად უვლით; მეტრიკებთან/ლოგებთან ნაკლებადაა ინტეგრირებული.
Grafana Tempo

იაფი ტრეისების საცავი

  • დადებითი: ობიექტურ საცავზე იაფია; ერთ Grafana-ს პანელში კრავს ტრეისებს ↔ ლოგებს ↔ მეტრიკებს.
  • უარყოფითი: შეკითხვა ეყრდნობა იმას, რომ trace_id ჯერ კარგი მეტრიკებით ან ლოგებით იპოვოთ.

მართვადი პლატფორმები სამივე საყრდენისთვის

Datadog

ბაზრის ლიდერი

  • დადებითი: ყველაზე ფართო ინტეგრაციები და ყველაზე გამართული ერთიანი გამოცდილება სამივე საყრდენზე.
  • უარყოფითი: ღირებულება მონაცემების მოცულობის ზრდასთან ერთად სწრაფად და მოულოდნელად იზრდება.
Dynatrace

საწარმო / AI

  • დადებითი: ძლიერი ავტოინსტრუმენტაცია და მიზეზის ავტომატური დადგენა დიდი ინფრასტრუქტურისთვის.
  • უარყოფითი: მძიმეა და ყველაზე ძვირი; პატარა გუნდისთვის ზედმეტია.
Grafana Cloud

ღია სტეკი, ჰოსტინგით

  • დადებითი: მართვადი Prometheus/Loki/Tempo — ღია სტანდარტები, მიჯაჭვის გარეშე, ხელგაშლილი უფასო ტარიფი.
  • უარყოფითი: ერთ გაპრიალებულ პანელზე მეტ აწყობას მოითხოვს; ნაწილებს თავად აერთებთ.
New Relic

მოხმარებაზე ფასიანი APM

  • დადებითი: ერთიანი APM მარტივი ფასით — თითო მომხმარებელზე + თითო GB-ზე.
  • უარყოფითი: მიღებულ მოცულობაზე დაფუძნებული ბილინგი დიდ ნაკადზე მაინც გაკვირვებთ; ინტერფეისი დატვირთულია.

გარედან შემოწმებები & მორიგეობა

Better Stack

აპთაიმი + მორიგეობა

  • დადებითი: თანამედროვე ხელმისაწვდომობის მონიტორინგი, სტატუსის გვერდები და ინციდენტზე გამოძახება ერთ მოწესრიგებულ პროდუქტში.
  • უარყოფითი: ორიენტირებულია სინთეტიკურ შემოწმებებზე — სრულფასოვანი მეტრიკების/ტრეისების ბექენდი არაა.
Pingdom

კლასიკური აპთაიმი

  • დადებითი: მარტივი, დიდი ხნის გამოცდილი გლობალური ხელმისაწვდომობისა და გვერდის სიჩქარის შემოწმებები.
  • უარყოფითი: ვიწრო არეალი; მის უკან მაინც გჭირდებათ ნამდვილი დაკვირვებადობის სტეკი.

როგორ ავირჩიოთ

  • ინსტრუმენტაცია ყოველთვის OpenTelemetry-ით გააკეთეთ. ის კოდს ბექენდისგან თიშავს, ასე რომ ვენდორის მოგვიანებით შეცვლა კონფიგურაციის ცვლილებაა და არა გადაწერა.
  • პატარა გუნდი / ღირებულებაზე მგრძნობიარე: Grafana-ს სტეკი (Prometheus + Loki + Tempo), თვითჰოსტინგით ან Grafana Cloud-ზე — ღია სტანდარტები, დაბალი ღირებულება, მიჯაჭვის გარეშე.
  • გინდათ ერთი გაპრიალებული პანელი და გადაიხდით: Datadog ან New Relic; Dynatrace კი დიდი საწარმოებისთვის, რომლებსაც მიზეზის ავტომატური დადგენა სჭირდებათ.
  • ყოველთვის დაამატეთ გარედან ხელმისაწვდომობის შემოწმება (Better Stack / Pingdom) — ის იჭერს სრულ ჩავარდნებს, რომლებზეც თქვენივე სტეკი ვერაფერს გეტყვით, როცა თავად ის არის დაწოლილი.
07 · გარჩეული ინციდენტი, შეჯამება 4 წთ

სამი საყრდენი ერთად მუშაობს.

აი, როგორ მიმდინარეობს რეალური გამართვის სესია — თითოეული საყრდენი ესტაფეტას შემდეგს გადასცემს.

1მეტრიკა გაფრთხილებთ. ჩექაუთის შეცდომების სიხშირე 5%-ს კვეთს — ირთვება სიმპტომური გამოძახება. იცით, რომ მომხმარებლებს სტკივათ.
2დაშბორდები ადგილს აზუსტებს. ოქროს სიგნალების დაფა აჩვენებს, რომ შეცდომები მხოლოდ /checkout-ზეა, მხოლოდ EU რეგიონში, და დეპლოის შემდეგვე დაიწყო.
3ტრეისი პოულობს გადასვლას. გახსენით ჩავარდნილი მოთხოვნის ჩანჩქერი — payment-ის სპანი წითელი და ნელია. ახლა უკვე იცით, სად.
4ლოგები გეუბნებათ, რატომ. სპანის trace_id-დან გადადით მის ლოგებზე: payment_timeout გეითვეის ახალ ენდპოინტთან. გააკეთეთ როლბექი. მორჩა.

ხუთი რამ, რაც თან უნდა წაიღოთ

  • სამი საყრდენი: მეტრიკები გეუბნებათ, რომ, ტრეისები — სად, ლოგები — რატომ.
  • დააკვირდით ოქროს სიგნალებს — შეყოვნება, ტრაფიკი, შეცდომები, გაჯერება — და ხატეთ პროცენტილები და არა საშუალოები.
  • დაალოგეთ სტრუქტურირებულად, ყოველ ხაზზე ტრეისის id-ით, და არასდროს დაალოგოთ საიდუმლოები.
  • გამოიძახეთ იმ სიმპტომებზე, რომლებსაც მომხმარებელი გრძნობს; "საკმარისად კარგი" SLO-თი განსაზღვრეთ და შეცდომების ბიუჯეტი დახარჯეთ.
  • ინსტრუმენტაცია OpenTelemetry-ით გააკეთეთ, რომ ბექენდი თქვენი არჩევანი დარჩეს და არა თქვენი გალია.

ერთი წინადადება დასამახსოვრებლად

"თუ კითხვაზე პასუხის გასაცემად კოდი უნდა გამოუშვათ, ეს სისტემა დაკვირვებადი არ ყოფილა."

— სამუშაო განსაზღვრება

ცოდნის შემოწმება

დაგამახსოვრდათ?

ხუთი სწრაფი კითხვა საყრდენებზე, ოქროს სიგნალებზე, ტრეისინგსა და SLO-ებზე — მყისიერი პასუხი, ავტორიზაციის გარეშე.

შეაფასეთ ეს დასტა
იყავით პირველი

ნავიგაცია ← → ღილაკებით ან სქროლით · უკან ბიბლიოთეკაში