

Сайн байцгаана уу, хөөрхөн уншигчид аа 😌
Технологийн ертөнцөд секунд тутамд сая сая код ажиллаж, серверүүд хоорондоо холбогдон, асар том "амьд организм" шиг ажиллаж байдаг. Тэгвэл энэхүү аварга системд ямар нэгэн зүйл буруугаар эргэж, доголдол үүсэхэд бид хэрхэн мэддэг вэ? Түүнийг хэрхэн анагаадаг вэ?
Энд л Monitoring (Хяналт) болон Observability (Ажиглалт) гэх хоёр аврагч гарч ирдэг.
Хүмүүс энэ хоёр ойлголтыг ихэвчлэн ижил зүйл мэтээр андуурдаг. Гэвч тэдгээр нь системийн эрүүл мэндийг хамгаалах огт өөр үүрэгтэй, харилцан бие биенээ нөхдөг ухагдахуунууд юм. Заа тэгвэл одоо хамтдаа Monitoring болон Observability-г та бүхэндээ хамгийн энгийн ойлгомжтойгоор тайлбарлах гээд үзье.

Та машин бариад явж байна гэж төсөөлье. Гэнэт хянах самбар дээр чинь "Check Engine" буюу хөдөлгүүрийг шалгах шар гэрэл аслаа.
Энэ бол Monitoring юм.
Monitoring нь системд урьдчилан тодорхойлсон асуудал үүсэх үед чамд ЮУ тохиолдож байгааг мэдээлдэг. Энэ нь систем урьдчилан таамагласан хэмжүүрүүд (metrics)-ийг давж байгаа эсэхийг хянаж, аюултай түвшинд хүрвэл дохио өгдөг систем юм.
Жишээлбэл Систем ажиллаж байна уу? Хариу өгөх хугацаа хэвийн үү? Сервер унасан уу? серверийн CPU ашиглалт 95%-д хүрлээ гэж имэйл илгээх...

Нөгөө машин руугаа буцаад оръё. Хянах самбар дээр "Check Engine" гэрэл ассан ч яг ямар шалтгаанаар ассаныг та мэдэхгүй. Очлуур (spark plug) нь муудсан уу? Эсвэл маслын даралт унасан уу?
Үүнийг мэдэхийн тулд та машинаа компьютер оношилгоонд оруулж, бүх нарийн өгөгдлүүдийг шинжлүүлэх хэрэгтэй болно.
Энэ бол Observability юм.
Observability нь системийн гадаад гаралтын мэдээлэлд (logs, metrics, traces) үндэслэн дотооддоо ЯАГААД ийм асуудал үүссэнийг олж тогтоох чадвар юм. Орчин үеийн нарийн төвөгтэй, олон жижиг хэсгээс бүрдсэн (microservices) системүүдэд юу буруу болсныг урьдчилан таамаглах бараг боломжгүй байдаг тул Observability маш чухал байдаг.
Жишээлбэл Яагаад энэ хүсэлт удаж байна вэ? Аль хэсэгт гацалт үүсэв? Яг ямар хэрэглэгчид энэ алдаа илэрч байна вэ?, Олон зуун серверийн дунд явж буй хэрэглэгчийн хүсэлтийн "замын зураглалыг" нэг бүрчлэн мөрдөж, алдаа гарсан яг тэр цэгийг олж харах.
Observability-ийг бий болгохын тулд бид системээсээ гурван төрлийн өгөгдлийг цуглуулах шаардлагатай болдог. Тэдгээрийг IT-ийнхан M.E.L.T (Metrics, Events, Logs, Traces) гэж нэрлэх нь бий. Хамгийн гол гурван тулгуур нь:
Эдгээр нь тодорхой хугацааны интервалд хэмжигддэг тоон өгөгдөл юм. Жишээ нь: "Сүүлийн 1 минутад сервер рүү 10,000 хэрэглэгч хандлаа", "CPU ашиглалт 45% байна". Асуудал хаана байж болох ерөнхий дүр зургийг харуулна.
Системд ямар нэгэн үйл явдал болоход бичигдэж үлддэг "өдрийн тэмдэглэл" юм. Жишээ нь: "Захиалга амжилттай хийгдлээ", "Алдаа 500: Өгөгдлийн сантай холбогдож чадсангүй". Яг тухайн цаг мөчид юу болсныг үг бүрчлэн хэлж өгнө.
Хэрэглэгчийн илгээсэн хүсэлт таны системийн олон зуун хаалга, дамжлагыг хэрхэн туулж байгааг харуулдаг мөрдөгч юм. Жишээ нь: "Хэрэглэгчийн хүсэлт эхлээд Веб серверт очсон (5ms) -> дараа нь Төлбөрийн систем рүү шилжсэн (500ms) -> Өгөгдлийн сан руу хандсан (10ms)". Нарийн төвөгтэй системүүд доторх гацалт, удаашралыг яг таг оношилж өгнө.
Танд аль аль нь хэрэгтэй. Monitoring-гүйгээр та хэзээ асуудал үүссэнийг мэдэхгүй бөгөөд харанхуй өрөөнд байгаа мэт байна. Харин Observability-гүйгээр та асуудал гарсан гэдгийг мэдэх боловч хэрхэн шийдвэрлэхээ мэдэхгүй, зүүгээр худаг ухах мэт маш их цаг алдах болно.
Орчин үеийн хэрэглэгчид хүлээх дургүй болсон. Веб сайт эсвэл аппликейшн хэдхэн секунд гацахад л өөр өрсөлдөгч рүү яваад өгдөг. Тиймээс системийн ажиллагааг найдвартай, хурдан байлгахын тулд ухаалаг хяналт (Monitoring) болон гүнзгий ажиглалт (Observability) хоёрыг хослуулах нь бизнес бүрийн амжилтын нууц юм.