ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Прапаную азнаёміцца ​​з расшыфроўкай даклада Рамана Хаўроненкі "ExtendedPromQL"

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Коратка пра мяне. Мяне клічуць Раман. Я працую ў CloudFlare, жыву ў Лондане. Але таксама я мэйтэрнэр VictoriaMetrics.
І я аўтар ClickHouse плагіна для Grafana і ClickHouse-proxy - гэта маленькі проксі для ClickHouse.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Мы пачнем з першай часткі, якая называецца “Складанасці перакладу” і ў ёй я буду расказваць пра тое, што любая мова ці нават проста мова зносін – гэта вельмі важна. Таму што гэта тое, як вы перадаеце іншаму чалавеку ці сістэме свае думкі, як вы фармулюеце запыт. Людзі ў інтэрнэце спрачаюцца пра тое, якая мова лепшая – java ці нейкая іншая. Для сябе я вырашыў, што трэба выбіраць пад задачу, бо ўсё гэта спецыфічна.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Пачнём з самага пачатку. Што такое PromQL? PromQL - гэта Prometheus Query Language. Гэта тое, як мы фармуем запыты ў Prometheus, каб атрымаць time series дадзеныя, часовыя шэрагі.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Што такое time series дадзеныя? Калі літаральна, то гэта тры параметры.

гэта:

  • На што мы глядзім.
  • Калі мы на гэта глядзім.
  • І якое значэнне паказвае.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Калі паглядзець на гэтую дыяграму (гэтая дыяграма з майго тэлефона, якая паказвае статыстыку маіх крокаў), то тут можна хутка адказаць на гэтыя пытанні.

Мы глядзім на крокі. Мы бачым значэнне і бачым час, калі мы глядзім на гэта. Г. зн. гледзячы на ​​гэтую дыяграму лёгка можна сказаць, што ў нядзелю я прайшоў каля 15 000 крокаў. Гэта time series дадзеныя.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Зараз давайце "разаб'ём" (пераўтваральны) іх у іншую мадэль дадзеных у выглядзе табліцы. Тут у нас таксама ёсьць тое, на што мы глядзім. Тут я крыху дадаў дадатковыя дадзеныя, якія мы будзем называць мета-дадзенымі, г. зн. гэта прайшоў не я, а два чалавекі, дапусцім, Jay і Silent Bob. Вось гэта тое, на што мы глядзім; што гэта паказвае і калі яно паказвае гэтае значэнне.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.
Цяпер давайце паспрабуем захаваць усе гэтыя дадзеныя ў базе дадзеных. Для прыкладу я ўзяў ClickHouse сінтаксіс. І тут мы ствараем адну табліцу, якая завецца "Steps", г. зн. на што мы глядзім. Тут ёсьць час, калі мы на гэта глядзім; што яно паказвае і нейкія мета-дадзеныя, дзе мы будзем захоўваць, хто гэта: Jay і Silent Bob.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І для таго каб паспрабаваць візуалізаваць гэта ўсё, мы будзем выкарыстоўваць Grafana, таму што, па-першае, гэта прыгожа.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Таксама мы будзем выкарыстоўваць гэты плягін. На гэта ёсць дзве прычыны. Першая - таму што я яго напісаў. І я сапраўды ведаю, як цяжка выцягваць time series дадзеныя з ClickHouse, каб паказаць у Grafana.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Адлюстроўваць мы будзем у Graph Panel. Гэта самая папулярная панэль у Grafana, якая паказвае залежнасць значэння ад часу, таму нам трэба ўсяго толькі два параметры.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.
Давайце напішам самы просты запыт - як паказаць статыстыку крокаў у Grafana, захоўваючы гэтыя дадзеныя ў ClickHouse, у той табліцы, што мы стварылі. І мы пішам вось такі просты запыт. Мы выбіраем з крокаў. Мы выбіраем значэнне і выбіраем час гэтых значэнняў, т. е. тыя ж тры параметры, пра якія мы казалі.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І ў выніку мы атрымаем вось такі графік. Хто ведае, чаму ён такі дзіўны?

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Правільна, трэба адсартаваць па часе.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І ў выніку мы атрымаем ужо лепей, але ўсё яшчэ дзіўны графік. Хто ведае, чаму? Правільна, там два ўдзельніка, і мы ў Grafana аддаём два time series, таму што калі разабрацца з дата-мадэллю яшчэ раз, то кожная time series - гэта ўнікальная камбінацыя імя і ўсіх ключ-значэнняў labels.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Таму нам трэба абраць канкрэтнага чалавека. Мы выбіраем Jay.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І малюем яшчэ раз. Цяпер ужо графік падобны на праўду. Цяпер гэта нармальны графік і ўсё працуе добра.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І, напэўна, вы ведаеце, як зрабіць прыкладна тое ж самае, але ў Prometheus праз PromQL. Прыкладна вось дык вось. Трохі прасцей. І яшчэ разаб'ем гэта ўсё. Мы бралі Steps. І фільтруем па Jay. Мы тут не паказваем, што нам трэба атрымаць значэньне і мы не выбіраем час.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

А зараз паспрабуем палічыць хуткасць перасоўвання Jay ці Silent Bob. У ClickHouse нам трэба будзе зрабіць runningDifference, т. е. палічыць адрозненне паміж парамі кропак і падзяліць іх на час, каб атрымаць дакладную хуткасць. Запыт будзе выглядаць прыкладна вось так.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І пакажа ён прыкладна вось такія значэнні, т. е. прыкладна 1,8 кроку ў секунду робіць Silent Bob ці Jay.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І ў Prometheus вы ведаеце, як гэта зрабіць таксама. Нашмат прасцей, чым было да гэтага.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.І каб гэта заставалася таксама проста рабіць у Grafana я дадаў вось такую ​​абгортку, якая вельмі падобна выглядае на PromQL. Яна называецца Rate Macros або як хочаце яе называйце. У Grafana вы пішыце проста "rate", але дзесьці ў глыбіні яна трансфармуецца вось у такі вялікі запыт. І вам не трэба нават на яго глядзець, ён дзесьці там ёсць, але вы эканоміце кучу часу, таму што пісаць такія велізарныя SQL-запыты - гэта заўсёды затратна. Вы можаце лёгка памыліцца і потым доўга не разумець, што адбываецца.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

А гэта запыт, які не змясціўся нават у адзін слайд і мне прыйшлося яго нават разбіць на дзве калонкі. Гэта таксама запыт у ClickHouse, які робіць той жа самы rate, але па абедзвюх time series: і Silent Bob, і па Jay, каб у нас на панэлі былі дзве time series. І гэта ўжо вельмі складана, на маю думку.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І па Prometheus гэта будзе sum (rate). Для ClickHouse я зрабіў асобны макрас, які называецца RateColumns, які выглядае, як запыт у Prometheus.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Мы паглядзелі і быццам бы PromQL увесь такі класны, але ў яго ёсць, вядома, абмежаванні.

гэта:

  • Limited SELECT.
  • Памежныя JOIN.
  • Няма падтрымкі HAVING.

І калі вы прапрацавалі з ім доўга, то вы ведаеце, што часам вельмі цяжка зрабіць нешта ў PromQL, а ў SQL можна рабіць практычна ўсё, таму што ўсе гэтыя варыянты, якія мы зараз прагаварылі, можна было зрабіць у SQL. Але ці было б зручна гэтым карыстацца? І гэта напіхвае мяне на думку, што не заўсёды самая магутная мова можа быць самай зручнай.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Таму часам трэба выбіраць мову пад задачы. Гэта як бітва Бэтмэна з Супермэнам. Зразумела, што Супермэн мацнейшы, але Бэтмен змог яго перамагчы, таму што ён больш практычны і дакладна ведаў, што ён робіць.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І наступная частка - гэта Extending PromQL.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Яшчэ раз пра VictoriaMetrics. Што такое VictoriaMetrics? Гэта time series базы дадзеных, яна ў OpenSource, мы дыстрыбуюць яе single і cluster-версіі. Па нашых бенчмарках яна хутчэй за ўсё, што ёсць на рынку цяпер і па кампрэсіі аналагічна, т. е. жывыя людзі рэпартуюць кампрэсію дзесьці ў 0,4 байт на кропку, калі ў Prometheus - гэта 1,2-1,4.

Мы падтрымліваем не толькі Prometheus. Мы падтрымліваем InfluxDB, Graphite, OpenTSDB.

У нас можна "пісаць", т. е. можна пераносіць старыя дадзеныя.

І яшчэ мы ідэальна працуем з Prometheus і Grafana, т. е. мы падтрымліваем PromQL engine. І ў Grafana вы можаце проста памяняць Prometheus endpoint на VictoriaMetrics і ў вас усе дашборды будуць працаваць, як і працавалі.

Але вы можаце выкарыстоўваць і дадатковыя фішкі, якая дае VictoriaMetrics.

Мы хутка пройдзем па функцый, якія мы дадалі.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Omit interval param - вы можаце прапускаць інтэрвал параметраў у Grafana. Калі вы не жадаеце атрымліваць дзіўныя графікі пры zoom-in/out у панэлі, тое рэкамендуецца выкарыстоўваць зменную $__interval. Гэта ўнутраная змена Grafana і яна сама выбірае дыяпазон дадзеных. І VictoriaMetrics можа сама разумець, якім гэты дыяпазон даложаны быць. І вам не трэба апдэйціць усе вашыя запыты. Будзе нашмат прасцей.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Другая функцыя - гэта interval referencing. Вы можаце выкарыстоўваць гэты інтэрвал у сваіх выразах. Вы можаце памнажаць, дзяліць, перадаваць, спасылацца на яго.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Далей сямейства rollup function. Rollup function трансфармуе любы ваш time series у тры асобныя time series. Гэта min, max і avg. Я лічу, што гэта вельмі зручна, таму што часам гэта можа паказаць нейкія outliers (анамаліі) і недакладнасці.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І калі вы проста робіце irate ці rate, то верагодна вы можаце прапусціць нейкія выпадкі, калі time series паводзіць сябе не так, як вы меркавалі. З гэтай функцыяй нашмат прасцей убачыць, дапусцім, што max вельмі моцна ад avg.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Далей пераменная default. Default - гэта значыць, якое значэнне нам трэба адмаляваць у Grafana, калі ў нас няма time series у дадзены момант. Калі гэта адбываецца? Дапусцім вы экспартуеце нейкую метрыку па памылках. І ў вас такое класнае прыкладанне, што калі вы стартавалі, то ў вас няма памылак і нават няма памылак у наступныя тры гадзіны ці нават дзень. І ў вас ёсць дашборды, якія паказваюць адносіны з success да error. І яны будуць вам паказваць нічога, таму што ў вас няма метрыкі error. А ў default вы можаце паказаць што заўгодна.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Keep_last_Value - захоўвае апошняе значэнне метрыкі, калі яна знікла. Калі Prometheus пасля наступнага скрэйпа не знайшоў яе на працягу 5 хвілін, то тут мы будзем запамінаць яе апошняе значэнне і вашыя графікі зноў не зламаюцца.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Scrape_interval - паказвае, як часта Prometheus збірае дадзеныя па ваша метрыцы, з якой частатой. Тут можна ўбачыць пропуск, напрыклад.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.
Label replace - папулярная функцыя. Але мы лічым, што яна крыху складаная, таму што яна прымае цэлых аргументаў. І вам трэба не толькі памятаць 5 аргументаў, але яшчэ і памятаць іх паслядоўнасць.
ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.
Таму, чаму б не зрабіць іх прасцей? Т. е. разбіць на дробныя функцыі са зразумелым сінтаксісам.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І зараз самае цікавае. Чаму мы лічым, што гэта extended PromQL? Таму што мы падтрымліваем Common Table Expressions. Вы можаце перайсці па QR-кодзе (https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL), паглядзець спасылкі з прыкладамі, з playground, дзе можаце выканаць запыты непасрэдна ў VictoriaMetrics без яе ўстаноўкі проста ў браўзэры.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І што ж гэта такое? Вось гэты запыт зверху - гэта даволі папулярны запыт. Я думаю, у любым дашбордзе ў многіх кампаній вы карыстаецеся адзін і той жа фільтр для ўсяго. Звычайна так. Але калі вам трэба дадаць нейкі новы фільтр, тое даводзіцца абнаўляць кожную панэль, альбо спампоўваць дашборд, адчыняць у JSON, рабіць find replace, што таксама займае час. Чаму б не захоўваць гэтае значэнне ў зменнай і перавыкарыстоўваць яго? Гэта выглядае, на мой погляд, на шмат прасцей і зразумелей.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Напрыклад, калі мне трэба абнаўляць фільтры ў Grafana ва ўсіх запытах, а дашборд пры гэтым можа быць вялізны ці іх можа быць нават некалькі. І як бы я хацеў вырашаць гэтую праблему ў Grafana?

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Я вырашаю гэтую праблему так: я раблю commonFilter і ў ім вызначаю гэты фільтр, а потым яго перавыкарыстоўваю ў запытах. Але калі вы зробіце зараз гэтак жа, гэта не будзе працаваць, таму што Grafana не дазваляе вам выкарыстоўваць зменныя ўнутры зменных запытаў. І гэта крыху дзіўна.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І таму я зрабіў такі варыянт, які дазваляе гэта рабіць. І калі вам цікава ці вы хочаце такую ​​фічу, то падтрымайце ці дызлайкніце, калі вам не падабаецца такая ідэя. https://github.com/grafana/grafana/pull/16694

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Далей пра PromQL extended. Тут мы вызначаем не толькі зменную, але цэлую функцыю. І завем яе ru (resource usage). І прымае гэтая функцыя вольныя рэсурсы, абмежаванне па рэсурсе і фільтр. Накшталт бы сінтаксіс увесь просты. І вельмі лёгка выкарыстоўваць гэтую функцыю і палічыць працэнт вольнай памяці ў нас. Т. е. колькі ў нас ёсць памяці, якое абмежаванне і як фільтраваць. Гэта выглядае нашмат зручней, калі б вы пісалі гэта ўсё, перавыкарыстоўваючы адны і тыя ж фільтры, таму што гэта б ператварылася ў вялікі-вялікі запыт.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

І вось прыклад такога вялікага-вялікага запыту. Ён з афіцыйнага дашборда NodeExporter для Grafana. Але я слаба разумею, што тут адбываецца. Т. е., вядома, разумею, калі прыгледзецца, але колькасць дужак можа адразу панізіць матывацыю разбірацца ў тым, што тут адбываецца. І чаму б не зрабіць яго прасцей і зразумелей?

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Напрыклад, вось так, вылучыўшы значныя рэчы ці часткі ў зменныя. І потым зрабіць сваю базавую матэматыку. Гэта ўжо больш падобна на праграмаванне, гэта тое, што я б і хацеў бачыць у будучыні ў Grafana.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Вось другі прыклад, як мы можам зрабіць гэта яшчэ прасцей, калі б у нас ужо была гэтая функцыя be, а яна ўжо ёсць непасрэдна ў VictoriaMetrics. І вы тады проста перадаеце закэшаванае значэнне, якое вы абвясцілі ў CTE.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Я ўжо казаў, пра тое, як важна выкарыстоўваць патрэбную мову праграмавання. І, мусіць, у кожнай кампаніі ў Grafana дзеецца што-небудзь сваё. І, напэўна, вы яшчэ даяце доступ да Grafana сваім распрацоўшчыкам, і распрацоўшчыкі робяць нешта сваё. І ўсе яны робяць гэта неяк па-рознаму. А хацелася, каб неяк аднолькава, г.зн. звесці да агульнага стандарту.

Дапусцім, у вас ёсць нават не проста сістэмныя інжынеры, можа быць у вас нават ёсць эксперты, дэвопс або SRE. Можа ў вас есць эксперты, якія ведаюць, што такое маніторынг, ведаюць, што такое Grafana, г. зн. яны працуюць з гэтым гадамі і яны дакладна ведаюць, як рабіць правільна. І яны ўжо пісалі гэта 100 разоў і ўсім тлумачылі, але чамусьці ніхто не слухае.

А што, калі б яны змаглі гэтыя веды непасрэдна пакласці ў Grafana, каб іншыя карыстачы маглі перавыкарыстоўваць функцыі? І калі б трэба было б палічыць працэнт свабоднай памяці, то яны б проста прымянілі функцыю. А што, калі стваральнікі экспарцёраў, разам са сваім прадуктам давалі таксама і набор функцый, як працаваць з іх метрыкамі, бо яны дакладна ведаюць, што гэта за метрыкі і як іх правільна лічыць?

Вось гэтага насамрэч не існуе. Вось гэта я зрабіў сам. Гэта падтрымка бібліятэк у Grafana. Дапушчальны, рабяты, якія зрабілі NodeExporter, зрабілі тое, пра што я распавёў. І падалі таксама набор функцый.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Т. е. выглядае гэта прыкладна так. Вы падключаеце гэтую бібліятэку ў Grafana, вы заходзіце ў рэдагаванне і тут вельмі проста ў JSON напісана, як працаваць з гэтай метрыкай. Т. е. нейкі набор функцый, іх апісанне і ў што яны разгортваюцца.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

На маю думку, гэта магло б быць карысным, таму што тады ў Grafana вы б пісалі проста так. І вам Grafana "кажа", што ёсць вось вось такая функцыя з вось такой бібліятэкі – давайце яе выкарыстоўваць. Мне здаецца, што гэта было б вельмі здорава.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

Трохі пра VictoriaMetrics. Мы робім вельмі шмат цікавых рэчаў. Пачытайце нашы артыкулы пра compression, пра нашы спаборніцтвы з іншымі time series дадаткамі дадзеных, наша тлумачэнне як працаваць з PromQL, таму што ў гэтым шмат яшчэ пачаткоўцаў, а таксама пра vertical scalability і пра супрацьстаянне з Thanos.

ExtendedPromQL — расшыфроўка дакладу Рамана Хаўроненкі.

пытанні:

Я пачну сваё пытанне з простай жыццёвай гісторыі. Калі я ўпершыню пачаў выкарыстоўваць Grafana, я напісаў вельмі пераканаўчы запыт даўжынёй у 5 радкоў. У выніку атрымаўся вельмі пераканаўчы графік. Гэты графік амаль з'ехаў у production. Але пры бліжэйшым разглядзе аказалася, што гэты графік паказвае абсалютную ахінею, якая не мае ніякага дачынення да рэальнасці, хоць лічбы трапляюць у дыяпазон, які мы чакалі ўбачыць. І маё пытанне. У нас есць бібліятэкі, у нас ёсць функцыі, а як мы пішам тэсты для Grafana? Вы напісалі складаны запыт, ад якога залежыць бізнэс-рашэнне - замовіць сапраўдны кантэйнер сервераў ці не заказваць. І як мы ведаем, гэтая функцыя, якая малюе графік падобная да праўды. Дзякуй.

Дзякуй за пытанне. Тут дзве часткі. Першая - у мяне складаецца ўражанне, зыходзячы з маёй практыкі, што большасць карыстачоў, калі глядзяць на свае графікі, не разумеюць, што яны ім паказваюць. Чамусьці людзі вельмі добрыя ў тым, каб прыдумаць апраўданне любой анамаліі, якая адбываецца на графіках, нават калі гэта памылка ўнутры функцыі. І другая частка - мне здаецца, што выкарыстанне вось такіх функцый нашмат лепш падышло б да рашэння вашай праблемы, замест таго, каб кожны з вашых распрацоўшчыкаў рабіў свой capacity planning і памыляўся з нейкай верагоднасцю.

Як праверыць?

Як праверыць? Мусіць, ніяк.

У выглядзе тэсту ў Grafana.

Прычым тут Grafana? Grafana транслюе гэты запыт непасрэдна ў DataSource.

Дадаючы ледзь-ледзь у параметры.

Не, у Grafana нічога не дадаюць. Там могуць быць GET-параметры, як, дапусцім, step. Ён відавочна не паказваецца, але вы яго можаце перавызначыць, можаце не перавызначаць, але ён дадаецца аўтаматычна. Вы тут не напішыце тэсты. Я думаю, што ня варта спадзявацца тут на Grafana, як на крыніцу праўды.

Дзякуй за даклад! Дзякуй за кампрэсію! Вы ўспаміналі пра mapping зменнай у графіцы, што ў Grafana нельга выкарыстоўваць зменную ў зменнай. Разумееце, пра што я?

Да.

Гэта было першапачаткова галаўным болем, калі я хацеў зрабіць alert у Grafana. І там трэба alert рабіць для кожнага хаста асобна. Вось гэтая штука, якую вы зрабілі, яна працуе для alerts у Grafana?

Калі Grafana не звяртаецца да зменных неяк па-іншаму, то так, яна будзе працаваць. Але мая парада не выкарыстоўваць алертынг у Grafana наогул, вам лепш выкарыстоўваць alertmanager.

Так, я яго выкарыстоўваю, але проста гэта ў Grafana здалося лягчэй у наладзе, але дзякуй за параду!

Крыніца: habr.com

Дадаць каментар