(node_filesystem_size_bytes{job=~"node-exporter",fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{job=~"node-exporter",fstype=~"ext.?|xfs"}) *100/
(node_filesystem_avail_bytes {job=~"node-exporter",fstype=~"ext.?|xfs"} + (node_filesystem_size_bytes{job=~"node-exporter",fstype=~"ext.?|xfs"} - node_filesystem_free_bytes{job=~"node-exporter",fstype=~"ext.?|xfs"}))
)by(instance)
- как в вот такую красоту добавить hostname (node_uname_info)?
Куда и что понавставлять? И сколько раз?
* on (instance) group_left (nodename) node_uname_info{job=~"node-exporter"}
да, получилось (просто дописал в конце) а куда теперь вписать device и mountpoint?
Этот заппос можно сократить для последних версий victoriametrics, которая умеет автоматически подставлять недостающие фильтры. Например, вот этот запрос должен работать идентично первоначальному: max( (node_filesystem_size_bytes{job=~"node-exporter",fstype=~"ext.?|xfs"}-node_filesystem_free_bytes) *100/ (node_filesystem_avail_bytes + (node_filesystem_size_bytes - node_filesystem_free_bytes)) )by(instance) Вот тут можно убедиться, что этот запрос разворачивается в первоначальный с фильтрами для каждой указанной в запросе метрике: https://play.victoriametrics.com/select/accounting/1/6a716b0f-38bc-4856-90ce-448fd713e3fe/prometheus/graph/?#/expand-with-exprs?expr=max%28%0A++%28node_filesystem_size_bytes%7Bjob%3D%7E%22node-exporter%22%2Cfstype%3D%7E%22ext.%3F%7Cxfs%22%7D-node_filesystem_free_bytes%29+*100%2F+%28node_filesystem_avail_bytes+%2B+%28node_filesystem_size_bytes+-+node_filesystem_free_bytes%29%29%0A++%29by%28instance%29 Чтобы к результату добавить лейбл hostname из метртки node_uname_info, в конец запроса нужно дописать вот это: * on(instance) group_left(hostname) См. про такую конструкцию вот тут - https://www.robustperception.io/exposing-the-software-version-to-prometheus/
Фильтры по device и mountpoint можно добавить к списку фильтров для первой указанной в запросе метрики - они автоматически применятся к остальным метрикам в последних версиях victoriametrics, как было указано выше
Я в РФ, у меня в прод никто не поставит VM
а это и не решение, т.к. фильтр тебе не даст лейблы device и mountpoint, просто синтаксический сахар
Почему не даст, в других алертах они есть. Просто я плохо понимаю синтаксис
потому что max(...) by (instance) оставит только 1 лейбл - instance кмк тебе нужно что-то вроде topk(1, (node_filesystem_size_bytes{fstype=~"ext.?|xfs"}-node_filesystem_free_bytes{fstype=~"ext.?|xfs"}) *100 / (node_filesystem_avail_bytes {fstype=~"ext.?|xfs"} + (node_filesystem_size_bytes{fstype=~"ext.?|xfs"} - node_filesystem_free_bytes{fstype=~"ext.?|xfs"})) ) by (instance) * on(instance) group_left(nodename) node_uname_info
А можно пояснение для тех, кто не в теме - чем чревата установка Victoria Metrics в РФ?
если open source версия ничем, для использования в компании версии enterprise - то нужно покупать лицензию, которая не продаётся в рф
Обсуждают сегодня