Size: a a a

VictoriaMetrics_ru

2019 May 30

TF

Terry Filch in VictoriaMetrics_ru
docker run -dit --name victoriametric-new -p 8428:8428 --restart on-failure:3 -http.disableResponseCompression valyala/victoria-metrics

только так получилось запустить
источник

D

Dima in VictoriaMetrics_ru
yuyu L16+8E
Может вопрос и не совсем по VM, но всё-же.
Выстроена цепочка:  Cisco IOS-XR телеметрия —> Cisco Pipeline коллектор —> VictoriaMetrics
Данные до VM доходят, но названия label и метрик (как их Pipeline называет следуя yang модели) в VM выглядят примерно так:
Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters.bytes-sent
В результате в PromQL с ними ну совсем неудобно работать.
Те же данные прилетают с такими именами и в InfluxDB, но там хоть такие имена для measurements достаточно в кавычки (") взять.
А в PromQL что с ними делать?
Может кто с этим или похожим уже боролся?
Вроде в прометеусе были rename rules, можно во время скрейпинга переименовывать как хочешь.
источник

AV

Aliaksandr Valialkin in VictoriaMetrics_ru
Terry Filch
root@px4-glaber / # docker run -it --rm --name victoriametric \
>   -p 8428:8428  \
>   --restart on-failure:3 \
>   --retentionPeriod 1 \
>   --http.disableResponseCompression \
>   --loggerLevel ERROR \
>   --memory.allowedPercent 30 \
>   valyala/victoria-metrics:latest
unknown flag: --retentionPeriod
See 'docker run --help'.
root@px4-glaber / # ^C
root@px4-glaber / # docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@px4-glaber / # docker run -it --rm --name victoriametric \
>   -p 8428:8428  \
>   --restart on-failure:3 \
>   -retentionPeriod 1 \
>   -http.disableResponseCompression \
>   -loggerLevel ERROR \
>   -memory.allowedPercent 30 \
>   valyala/victoria-metrics:latest
unknown shorthand flag: 'r' in -retentionPeriod
See 'docker run --help'.
флаги вм нужно указывать после valyala/victoria-metrics:latest. Перед ним идут флаги докера :)
источник

TF

Terry Filch in VictoriaMetrics_ru
Aliaksandr Valialkin
флаги вм нужно указывать после valyala/victoria-metrics:latest. Перед ним идут флаги докера :)
🙈
источник

yL

yuyu L16+8E in VictoriaMetrics_ru
Dima
Вроде в прометеусе были rename rules, можно во время скрейпинга переименовывать как хочешь.
Так прометея в моей цепочке нет. Остаётся либо pipeline править, либо на стороне VM менять. Или оставить как есть и терпеть.
источник

VP

Vsevolod Polyakov in VictoriaMetrics_ru
Aliaksandr Valialkin
кто-нибудь пользуется netdata? Там сделали патч с поддержкой записи метрик в ремоут сторедж по prometheus remote write протколу - https://github.com/netdata/netdata/pull/6062 . Может, есть желающие его потестировать вместе с victoriametrics?
я пользуюсь. У них тэги просто тихий ужас
источник

ВС

Виталий Солдатов in VictoriaMetrics_ru
источник

ВС

Виталий Солдатов in VictoriaMetrics_ru
с fill(previous)
источник

s

sensory deprivation in VictoriaMetrics_ru
Eduard Generalov
Не надо. Нееееет. Лучше консул, правда.
А че так? Любопытно просто.
источник

yL

yuyu L16+8E in VictoriaMetrics_ru
Aliaksandr Valialkin
Например, {__name__="Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters.bytes-sent"}
В продолжение темы: такое длинное имя метрики получается на стороне VM как следствие недавней смены меппинга в VM на measurement.field для telegraf/influx данных.
Если бы  measurement, как раньше, шла  в label, а field - в имя метрики, такого паровоза бы не было.
Сырые данные выглядят так:
Server: [http://10.xx.xx.xx:8428], wkid 0, writing 570 points in db: telemetry
(prec: [ms], consistency: [], retention: [])
       Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization,EncodingPath=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization,Producer=xxxxx,node-name=0/0/CPU0 total-cpu-fifteen-minute=3i,total-cpu-five-minute=3i,total-cpu-one-minute=3i 1559204774467000000
источник

EG

Eduard Generalov in VictoriaMetrics_ru
sensory deprivation
А че так? Любопытно просто.
Индусы писали. Воткни себе self-hosted кубер, узнаешь.
источник

TF

Terry Filch in VictoriaMetrics_ru
Eduard Generalov
Индусы писали. Воткни себе self-hosted кубер, узнаешь.
омг, люди вон сколько втыкают себе кубеня и норм
источник

TF

Terry Filch in VictoriaMetrics_ru
было бы желание и время
источник

EG

Eduard Generalov in VictoriaMetrics_ru
Terry Filch
омг, люди вон сколько втыкают себе кубеня и норм
У мну их 5 кластеров, и так же, как и у всех - etcd мозга поябывал. Вплоть до коррапта бд.
источник

AV

Aliaksandr Valialkin in VictoriaMetrics_ru
Кажется понял, в чем проблема: у вас два временных ряда - success и timeout, в которые записываются точки для каждого ответа на сервере. Это означает, что частота точек зависит от частоты запросов, а интервал между точками может быть произвольным. Это не сходится с моделью данных в прометеусе, которая наследуется вм - точки во временных рядах должны идти с постоянной частотой через равные промежутки времени (scrape interval). Вам нужно преобразовать временные ряды для событий в счетчики этих событий. Т.е. увеличивать значение счетчика на единицу при наступлении success или timeout, и сохранять в базу текущее значение этих счетчиков через равные промежутки времени. Проще всего это сделать с помощью statsd - он сам принимает единичные события и периодически отдает счетчики по этим событиям в базу данных.
источник

AV

Aliaksandr Valialkin in VictoriaMetrics_ru
yuyu L16+8E
В продолжение темы: такое длинное имя метрики получается на стороне VM как следствие недавней смены меппинга в VM на measurement.field для telegraf/influx данных.
Если бы  measurement, как раньше, шла  в label, а field - в имя метрики, такого паровоза бы не было.
Сырые данные выглядят так:
Server: [http://10.xx.xx.xx:8428], wkid 0, writing 570 points in db: telemetry
(prec: [ms], consistency: [], retention: [])
       Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization,EncodingPath=Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization,Producer=xxxxx,node-name=0/0/CPU0 total-cpu-fifteen-minute=3i,total-cpu-five-minute=3i,total-cpu-one-minute=3i 1559204774467000000
Но тогда в запросах нужно было бы указывать фильтр по measurement, чтобы отсеять ненужные ряды из других measurments
источник

yL

yuyu L16+8E in VictoriaMetrics_ru
Aliaksandr Valialkin
Но тогда в запросах нужно было бы указывать фильтр по measurement, чтобы отсеять ненужные ряды из других measurments
У меня нет готовых идей как подобное лучше разрулить, кроме того, что нужны какие-то sanitize/filter/map/rewrite  rules  для данных, входящих в VM c influx line-протоколом, и, скорее всего, "per source". Может вообще проще это делегировать  внешней прокси-проге между источником данных и VM...

Судя по докам на Data Model  прометея имена метрик должны матчить регулярке [a-zA-Z_:][a-zA-Z0-9_:]*  + использование ':' зарезервировано под user defined recording rules.
Для label регулярка [a-zA-Z_][a-zA-Z0-9_]*
VM, как показал эксперимент, даёт больше свободы. Это может и неплохо, но вот PromQL в Explore в графане даже '-' в имени label не переваривает.
Пока не до конца понял - это JS в графане проверяет или уже VM отлуп даёт, похоже что и VM не переваривает:
curl  --user 'victoria:victoria' -g --url 'http://lmon:8428/api/v1/series?' --data-urlencode 'match[]={interface-name="Bundle-Ether3"}'
{"status":"error","errorType":"422","error":"cannot parse \"{interface-name=\\\"Bundle-Ether3\\\"}\": tagFilterExpr: unexpected token \"-\"; want \"=\", \"!=\", \"=~\", \"!~\", \",\", \"}\"; unparsed data: \"-name=\\\"Bundle-Ether3\\\"}\""}
источник

ВС

Виталий Солдатов in VictoriaMetrics_ru
[[processors.regex]]
namepass = ["measurement"]

 [[processors.regex.fields]]
   key = "EncodingPath"
   pattern = "^.Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization$"
   replacement = "cpu"
источник

yL

yuyu L16+8E in VictoriaMetrics_ru
Виталий Солдатов
[[processors.regex]]
namepass = ["measurement"]

 [[processors.regex.fields]]
   key = "EncodingPath"
   pattern = "^.Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization$"
   replacement = "cpu"
Это если в telegraf. А у меня поток в  из Pipeline напрямую в VM идёт. Хотя спасибо за идею - попробую зарулить Pipeline на вход telegraf, там зафильтровать/переименовать, а уже из telegraf в VM отправить.
источник

ВС

Виталий Солдатов in VictoriaMetrics_ru
precision = "s" не забудь в агенте. с дефолтовым будут провалы в vm
источник