Пас аз он, Carbon-c-relay ченакҳоро ба кластери Графит мефиристад. Мо Carbon-кэшро, ки дар Go аз нав навишта шудааст, ҳамчун анбори асосии метрика истифода мебарем. Go-carbon, аз сабаби чанд риштаи худ, хеле бартарии Carbon-кэш аст. Он маълумотро қабул мекунад ва онро ба дискҳо бо истифода аз бастаи whisper (стандартӣ, ки бо python навишта шудааст) менависад. Барои хондани маълумот аз анборҳои худ, мо API Graphite-ро истифода мебарем. Он нисбат ба стандарти Graphite WEB хеле тезтар аст. Бо маълумот дар оянда чӣ мешавад?
Онҳо ба Графана мераванд. Мо кластерҳои графитҳои худро ҳамчун манбаи асосии маълумот истифода мебарем, инчунин мо Grafana-ро ҳамчун веб-интерфейс барои намоиши метрика ва сохтани панелҳои идоракунӣ дорем. Барои ҳар як хидмати худ, таҳиягарон панели идоракунии худро эҷод мекунанд. Сипас онҳо дар асоси онҳо графикҳо месозанд, ки ченакҳоеро, ки аз замимаҳои худ менависанд, нишон медиҳанд. Илова ба Grafana, мо инчунин SLAM дорем. Ин як деви питон аст, ки SLA-ро дар асоси маълумот аз графит ҳисоб мекунад. Тавре ки ман аллакай гуфтам, мо якчанд даҳҳо микросервис дорем, ки ҳар кадоми онҳо талаботи худро доранд. Бо истифода аз SLAM, мо ба ҳуҷҷатҳо меравем ва онро бо он чизе, ки дар Graphite мавҷуд аст, муқоиса мекунем ва муқоиса мекунем, ки то чӣ андоза талабот ба мавҷудияти хидматҳои мо мувофиқат мекунад.
Биёед минбаъд равем: огоҳӣ. Он бо истифода аз системаи қавӣ - Moira ташкил карда шудааст. Он мустақил аст, зеро он дар зери сарпӯши худ Графити худро дорад. Аз ҷониби бачаҳои SKB "Kontur" таҳия шудааст, ки бо python ва Go навишта шудааст, манбаи комилан кушода. Моира ҳамон ҷараёнеро, ки ба графитҳо меравад, мегирад. Агар бо ягон сабаб захираи шумо бимирад, огоҳии шумо то ҳол кор хоҳад кард.
Мо Moira-ро дар Кубернетес ҷойгир кардем; он кластери серверҳои Redis-ро ҳамчун пойгоҳи асосӣ истифода мебарад. Дар натиҷа системаи ба хатогиҳо тобовар буд. Он ҷараёни ченакҳоро бо рӯйхати триггерҳо муқоиса мекунад: агар дар он зикр нашуда бошад, он ченакро мепартояд. Ҳамин тавр, он метавонад гигабайтҳои метрикаро дар як дақиқа ҳазм кунад.
Мо инчунин ба он LDAP-и корпоративиро замима кардем, ки бо ёрии он ҳар як корбари системаи корпоративӣ метавонад дар асоси триггерҳои мавҷуда (ё навтаъсис) барои худ огоҳинома эҷод кунад. Азбаски Moira дорои графит аст, он ҳама хусусиятҳои онро дастгирӣ мекунад. Пас шумо аввал сатрро гиред ва онро ба Grafana нусхабардорӣ кунед. Бубинед, ки маълумот дар графикҳо чӣ гуна нишон дода мешавад. Ва он гоҳ шумо ҳамон сатрро мегиред ва онро ба Moira нусхабардорӣ мекунед. Шумо онро бо маҳдудият овезон мекунед ва дар баромад огоҳӣ мегиред. Барои ин ҳама ба шумо дониши мушаххас лозим нест. Moira метавонад тавассути SMS, почтаи электронӣ, Jira, Slack ҳушдор диҳад ... Он инчунин иҷрои скриптҳои фармоиширо дастгирӣ мекунад. Вақте ки триггер бо ӯ рӯй медиҳад ва ӯ ба скрипти фармоишӣ ё бинарӣ обуна мешавад, вай онро иҷро мекунад ва JSON-ро ба stdin барои ин бинар мефиристад. Мувофиқи он, барномаи шумо бояд онро таҳлил кунад. Шумо бо ин JSON чӣ кор хоҳед кард, ба шумо вобаста аст. Агар хоҳед, ба Telegram фиристед, агар хоҳед, дар Jira супоришҳо кушоед, ҳар коре кунед.
Мо инчунин таҳияи худро барои огоҳӣ истифода мебарем - Imagotag. Мо панелеро, ки одатан барои тамғаҳои нархҳои электронӣ дар мағозаҳо истифода мешавад, ба ниёзҳои худ мутобиқ кардем. Мо аз Мойра ба он триггерҳо овардем. Он нишон медиҳад, ки онҳо дар кадом ҳолатанд ва кай ба амал омадаанд. Баъзе аз бачаҳои таҳиякунанда огоҳиномаҳоро дар Slack ва почтаи электронӣ ба манфиати ин панел партофтанд.
Хуб, азбаски мо як ширкати пешрафта ҳастем, мо инчунин дар ин система Kubernetes-ро назорат мекардем. Мо онро ба система бо истифода аз Heapster дохил кардем, ки мо онро дар кластер насб кардем, он маълумот ҷамъ мекунад ва ба Graphite мефиристад. Дар натиҷа, диаграмма чунин менамояд: