Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ
Найти Π² Π”Π·Π΅Π½Π΅

πŸ•’πŸ“‹ Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: ΠΊΠ°ΠΊ простая идСя мСняСт взгляд Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π½Π°Π΅Ρ‚, насколько Π²Π°ΠΆΠ½Ρ‹ Π»ΠΎΠ³ΠΈ для диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Однако Π²Ρ‹Π±ΠΎΡ€ частоты ΠΈ способа логирования оказываСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. НСдавно Π² Π±Π»ΠΎΠ³Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π”ΠΆΠΎΠ½Π° Π‘ΠΊΠΎΠ»Π°Ρ€ΠΎ появилась нСобычная, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΊΡ€Π°ΠΉΠ½Π΅ логичная идСя: Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ ΠΏΠΎ количСству событий. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ, ΠΈ Ρ‡Ρ‚ΠΎ это мСняСт Π² повсСднСвной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² прилоТСниях с большим ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ простой ΠΌΠ΅Ρ‚ΠΎΠ΄: Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π»ΠΎΠ³ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ N событий. НапримСр, послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 1000 сообщСний появляСтся запись: num_events_processed = 0
while True:
event = read_event_from_queue()
process_event(event)
num_events_processed += 1
if num_events_processed % 1000 == 0:
logger.info("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ 1000 событий.") Π­Ρ‚ΠΎ простоС ΠΈ понятноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ нСсёт Π² сСбС скрытыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: Π”ΠΆΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простоС ΠΈ элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π»ΠΎΠ³ Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ количСство событий, Π° Ρ‡
ОглавлСниС
НСоновый Ρ†ΠΈΡ„Π΅Ρ€Π±Π»Π°Ρ‚ ΠΈ Ρ€ΠΎΠ²Π½Ρ‹ΠΉ ΠΏΡƒΠ»ΡŒΡβ€‘Π»ΠΈΠ½ΠΈΡ Π½Π° Ρ‚Ρ‘ΠΌΠ½ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ фиксированному Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вмСсто счётчиков событий.
НСоновый Ρ†ΠΈΡ„Π΅Ρ€Π±Π»Π°Ρ‚ ΠΈ Ρ€ΠΎΠ²Π½Ρ‹ΠΉ ΠΏΡƒΠ»ΡŒΡβ€‘Π»ΠΈΠ½ΠΈΡ Π½Π° Ρ‚Ρ‘ΠΌΠ½ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ фиксированному Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вмСсто счётчиков событий.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π½Π°Π΅Ρ‚, насколько Π²Π°ΠΆΠ½Ρ‹ Π»ΠΎΠ³ΠΈ для диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Однако Π²Ρ‹Π±ΠΎΡ€ частоты ΠΈ способа логирования оказываСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. НСдавно Π² Π±Π»ΠΎΠ³Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π”ΠΆΠΎΠ½Π° Π‘ΠΊΠΎΠ»Π°Ρ€ΠΎ появилась нСобычная, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΊΡ€Π°ΠΉΠ½Π΅ логичная идСя: Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ ΠΏΠΎ количСству событий. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ, ΠΈ Ρ‡Ρ‚ΠΎ это мСняСт Π² повсСднСвной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

πŸ“Š Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: счётчики ΠΈ ΠΈΡ… Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² прилоТСниях с большим ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ простой ΠΌΠ΅Ρ‚ΠΎΠ΄: Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π»ΠΎΠ³ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ N событий. НапримСр, послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 1000 сообщСний появляСтся запись:

num_events_processed = 0

while True:
event = read_event_from_queue()
process_event(event)
num_events_processed += 1

if num_events_processed % 1000 == 0:
logger.info("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ 1000 событий.")

Π­Ρ‚ΠΎ простоС ΠΈ понятноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ нСсёт Π² сСбС скрытыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • πŸ”₯ Пиковая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°:
    Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ высокой активности Π»ΠΎΠ³ΠΈ ΡΡ‹ΠΏΠ»ΡŽΡ‚ΡΡ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ миллисСкунду, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ систСму ΠΈ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго прилоТСния.
  • πŸ’€ Вишина Π² тСстировании:
    Π’ условиях Π½ΠΈΠ·ΠΊΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° локальной машинС, Π»ΠΎΠ³ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ (ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ нСсколько ΠΌΠΈΠ½ΡƒΡ‚ ΠΈΠ»ΠΈ часов), ΠΈ Π²Ρ‹ тСряСтС ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.
  • πŸ’Ύ ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π»ΠΎΠ³ΠΎΠ²:
    НСограничСнныС всплСски Π»ΠΎΠ³ΠΎΠ² приводят ΠΊ накоплСнию Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π΄ΠΎΡ€ΠΎΠ³ΠΎ стоит с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния рСсурсов хранСния ΠΈ услоТняСт Π°Π½Π°Π»ΠΈΠ·.

⏱️ Новый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π”ΠΆΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ простоС ΠΈ элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π»ΠΎΠ³ Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ количСство событий, Π° Ρ‡Π΅Ρ€Π΅Π· фиксированный ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду):

last_time_logged = time.time()
num_events_processed_since_last_log = 0

while True:
event = read_event_from_queue()
process_event(event)
num_events_processed_since_last_log += 1

current_time = time.time()
if current_time - last_time_logged >= 1.0:
logger.info(f"Π—Π° послСднюю сСкунду ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ {num_events_processed_since_last_log} событий.")
num_events_processed_since_last_log = 0
last_time_logged = current_time

πŸš€ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ гСниально?

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ избавляСт ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • 🎯 Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°:
    Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ логирования постоянны, поэтому Π²Ρ‹ всСгда Π·Π½Π°Π΅Ρ‚Π΅, сколько записСй ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² Π»ΠΎΠ³ Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, час ΠΈΠ»ΠΈ сутки.
  • πŸ“ˆ Π§Ρ‘Ρ‚ΠΊΠΈΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ «сСрдцСбиСния» систСмы:
    Π”Π°ΠΆΠ΅ Ссли событий ΠΌΠ°Π»ΠΎ, Π²Ρ‹ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сбои (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Π·Π°ΠΌΡ‘Ρ€Π·Π»ΠΎΒ» ΠΈΠ»ΠΈ Β«ΡƒΠΏΠ°Π»ΠΎΒ»).
  • πŸ“‰ Экономия рСсурсов:
    Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ нСнуТная ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅, поиск ΠΈ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ….

πŸ”§ Как это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… систСмах?

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ логирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ настраиваСмыми Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ прилоТСния ΠΈΠ»ΠΈ окруТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·Π½Ρ‹Π΅ ситуации (тСстированиС, ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½, диагностика):

import os

log_interval = float(os.getenv("LOG_INTERVAL_SECONDS", 1.0))
last_time_logged = time.time()
events_processed = 0

while True:
event = read_event_from_queue()
process_event(event)
events_processed += 1

current_time = time.time()
if current_time - last_time_logged >= log_interval:
logger.info(f"[{log_interval}s] ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ {events_processed} событий.")
events_processed = 0
last_time_logged = current_time

πŸŽ“ Π›ΠΈΡ‡Π½Ρ‹ΠΉ взгляд Π°Π²Ρ‚ΠΎΡ€Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ

МнС Π»ΠΈΡ‡Π½ΠΎ каТСтся, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ прСвосходно вписываСтся Π² соврСмСнныС ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ DevOps ΠΈ SRE, Π³Π΄Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ β€” ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ трСбования. Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ позволяСт Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ясности ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ любой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅. ОсобСнно Ρ†Π΅Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ СстСствСнно интСгрируСтся Π² систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Prometheus, Grafana ΠΈΠ»ΠΈ ELK-стСк, Π³Π΄Π΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ записСй ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ инструмСнтов автоматичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Однако Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ контСкст использования. НапримСр, Π² систСмах Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π³Π΄Π΅ Π²Π°ΠΆΠ½Π° точная рСгистрация событий (Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, систСмы управлСния), ΠΈΠ½ΠΎΠ³Π΄Π° стоит ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” фиксированноС Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ критичСских событий сразу ΠΏΡ€ΠΈ ΠΈΡ… наступлСнии.

πŸ—’οΈ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

ИдСя, прСдлоТСнная Π”ΠΆΠΎΠ½ΠΎΠΌ Π‘ΠΊΠΎΠ»Π°Ρ€ΠΎ, Ρ…ΠΎΡ‚ΡŒ ΠΈ выглядит простой ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, Π½Π° самом Π΄Π΅Π»Π΅ являСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠ΅ΠΉ. Она ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ просто ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ‚Ρ€ΡŽΠΊ для программистов, Π° Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠ»ΠΎΡΠΎΡ„ΠΈΡŽ восприятия Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ слСдуСт вСсти наблюдСниС Π·Π° состояниСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

  • βœ… Если Π²Π°ΠΌ Π²Π°ΠΆΠ½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈ экономия рСсурсов β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • ⚠️ Если ΠΆΠ΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ строгоС отслСТиваниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ события, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² своём ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΈ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅ΡΡŒ, насколько ΠΏΡ€ΠΎΡ‰Π΅ станСт ΠΆΠΈΡ‚ΡŒ ΠΈ Π²Π°ΠΌ, ΠΈ вашСй инфраструктурС.

πŸ”— ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ Π”ΠΆΠΎΠ½Π° Π‘ΠΊΠΎΠ»Π°Ρ€ΠΎ: Log by time, not by count