Логгинг жана байкоолук (observability)
Иштеп жаткан Node-кызматты ичинен чындап көрө ала турган нерсеге айландырыңыз
- продакшенде эмнеге структураланган (JSON) логгинг
console.logдон жакшы экенин түшүндүрүп, ал үчүн pino колдоно аласыз; - туура лог деңгээлин тандап, ар бир чөйрө үчүн ырастай аласыз;
- суроо-талаптын ар бир лог сабагына
AsyncLocalStorageаркылуу correlation id тиркей аласыз; - метрикаларды Prometheus форматында бере аласыз жана RED методу жөнүндө ой жүгүртө аласыз;
- бөлүштүрүлгөн трассировка контекстти таратуу аркылуу спандарды бир трейске кантип бириктирерин сүрөттөй аласыз;
- туура liveness жана readiness ден соолук текшерүүлөрүн жаза аласыз.
1. Байкоолук мониторингге каршы: үч мамы
Мониторинг системаңыз белгилүү босоголорго (порогдорго) карата ден соолукта экенин айтат ("CPU > 90%", "ката жыштыгы > 1%"). Байкоолук кеңири: ал симптомдон алдын ала аныктабаган түпкү себепке чейин из ээрчип, эмнеге экенин изилдөөгө мүмкүндүк берген касиет. Аны кийин кошуп болбойт — кызмат пайдалуу сигналдарды чыгарууга инструменттелген болсо гана байкалуучу болот.
Үч мамынын ар бири өзүнчө суроого жооп берет:
- Логдор — "ушул учурда так эмне болду?" Убакыт белгиси жана контексти бар өзүнчө окуялар. Жогорку деталдаштыруу, чоң көлөм, бир байтка жогору баа.
- Метрикалар — "убакыт боюнча канча / канчалык көп / канчалык тез?" Жакшы топтолгон арзан сандык убакыт катарлары (эсептегичтер, gauge, гистограммалар), дашборддорду жана алерттерди азыктандырат.
- Трейстер — "бул бир суроо-талаптын учтан-учка жолу кандай болгон?" Кызматтар аркылуу убакыт боюнча ченелген спандардын дарагы, кечигүү чындыгында кайда кеткенин көрсөтөт.
Алар бири-бирин толуктайт, алмаштырбайт. Метрика боюнча алерт иштейт ("заказ таризделүүнүн p99 кечигүүсү секирди"); трейс жай спан — базага чакырык экенин көрсөтөт; ал спандагы логдор так суроону жана бөгөттөлгөн сапты ачат. Ар бирин өзүнүн максатына жараша колдонуңуз.