@metrics_ru

Страница 22 из 681
Maxim
03.09.2016
18:00:30
ща пример покажу

Алексей
03.09.2016
18:00:34
давай

Maxim
03.09.2016
18:01:14
$ cat /etc/prometheus/rules/service_is_unreachable.rules ALERT service_is_unreachable IF sum by (node, service)(consul_catalog_service_node_healthy == 0 and (consul_catalog_service_node_healthy{node !~ ".*beta.+"} or consul_catalog_service_node_healthy{service = "blackbox-exporter"})) FOR 3m LABELS { severity = "critical" } ANNOTATIONS { summary = "ALARM! service \"{{ $labels.service }}\" on node {{ $labels.node }} is unreachable", description = "Wake up and shine" }

Алексей
03.09.2016
18:02:21
так и ?

Google
Maxim
03.09.2016
18:02:35
если node !~ ".*beta.+" или service = "blackbox-exporter", то колотить в рынду

у тебя вместо node !~ ".*beta.+" будет $labels.env == "prod"

или я не так понял твой вопрос?

Алексей
03.09.2016
18:04:19
видимо да, не понял

я могу сделать это так вот

ALERT disk_usage_percent_critical IF disk_used_percent{env="infrastructure",fstype!="rootfs"} > 95 LABELS { service = "disk", severity = "minor", value = "{{$value}}", environment = "infrastructure" } ANNOTATIONS { summary = "Disk alert triggered", description = "{{$labels.host}}:{{$labels.path}} have {{$value}}", } ALERT disk_usage_percent_critical IF disk_used_percent{env="prod",fstype!="rootfs"} > 85 LABELS { service = "disk", severity = "minor", value = "{{$value}}", environment = "Production" } ANNOTATIONS { summary = "Disk alert triggered", description = "{{$labels.host}}:{{$labels.path}} have {{$value}}", }

но это жесткое дублирование кода

Maxim
03.09.2016
18:07:31
ALERT disk_usage_percent_critical IF disk_used_percent{env="infrastructure",fstype!="rootfs"} > 95 or disk_used_percent{env="prod",fstype!="rootfs"} > 85 LABELS { service = "disk", severity = "minor", value = "{{$value}}", } ANNOTATIONS { summary = "Disk alert triggered", description = "In environment {{$labels.env}} {{$labels.host}}:{{$labels.path}} have {{$value}}" }

не?

IF prod_case or infra_case а дальше все одинаковое вроде

абля, ты там еще env длинно пишешь

пропустил

вообще можно убрать

Google
Maxim
03.09.2016
18:10:11
там будет в дескрипшне

Алексей
03.09.2016
18:11:19
ну тоесть логику понял да

усложняем If

Maxim
03.09.2016
18:11:35
ну зато не дублируем остальное

Алексей
03.09.2016
18:27:07
логично да. спасибо.

Maxim
03.09.2016
21:59:11
https://github.com/prometheus/prometheus/releases/tag/v1.1.0

Алексей
03.09.2016
22:08:15
прекрасная новость

не понимаю поведение функции rate

она мне для counter rate(net_bytes_recv{host="$host"}[25s]) отдает в 10 раз ментшгие значения чем реальность

Maxim
03.09.2016
23:06:50
сумму забыл небось

Алексей
03.09.2016
23:07:05
хм

а при чем тут сумма ?

у меня ровно одна метрика

Maxim
03.09.2016
23:07:20
ну ты описание к рейту читал?

https://prometheus.io/docs/querying/functions/#rate

Алексей
03.09.2016
23:07:49
Note that when combining rate() with an aggregation operator (e.g. sum()) or a function aggregating over time (any function ending in _over_time), always take a rate() first, then aggregate. Otherwise rate() cannot detect counter resets when your target restarts.

Maxim
03.09.2016
23:08:11
не, я не об этом

выше

> rate(v range-vector) calculates the per-second average rate of increase of the time series in the range vector.

per-second average rate

Google
Maxim
03.09.2016
23:08:56
теперь сложи их

Алексей
03.09.2016
23:08:59
эм

не понимаю логики

у меня есть каунтер

он растет

Maxim
03.09.2016
23:09:16
он изменяется

иногда

Алексей
03.09.2016
23:09:19
ну да

нет он все время ростет

Maxim
03.09.2016
23:09:37
ну он не монотонно меняется

я понимаю, что уменьшаться он не может

он же каунтер

ну так вот

он иногда подрастает

а rate монотонно регистрирует его изменение раз в секунду за заданный интервал

ну короче

вот держи пример

sum (rate (container_network_receive_bytes_total{kubernetes_io_hostname=~"^$Node$"}[10m])) by (kubernetes_pod_name)

Алексей
03.09.2016
23:11:41
sum(rate(net_bytes_recv{host="XXX"}[25s]))

Maxim
03.09.2016
23:11:47
вооот

Google
Maxim
03.09.2016
23:11:53
you get the idea

теперь должно стать правильно

Алексей
03.09.2016
23:12:09
но в результате я получаю тот же самый график

ну чуть более сглаженный

отличия от реального положения дел ровно в 10 раз

Maxim
03.09.2016
23:16:33
абля

а с каким интервалом ты эту метрику снимаешь-то?

Алексей
03.09.2016
23:16:57
10s

Maxim
03.09.2016
23:17:22
я про scrape_interval

Алексей
03.09.2016
23:17:27
да

10s

Maxim
03.09.2016
23:18:37
поставь у рейта отрезок побольше

минут десять

Алексей
03.09.2016
23:19:32
так же

Maxim
03.09.2016
23:20:19
а с чем сравниваешь?

Алексей
03.09.2016
23:21:11
сравниваю с nload на интерфейсе

nload говорит у тя есть 20мегабит, чувак

Maxim
03.09.2016
23:22:26
нене

погоди

Алексей
03.09.2016
23:22:29
а prom говорит что 2,8

Google
Maxim
03.09.2016
23:22:38
вот у тебя есть net_bytes_recv

Алексей
03.09.2016
23:22:49
да

Maxim
03.09.2016
23:22:56
без сумм, рейтов и всего говна

Алексей
03.09.2016
23:23:07
там цифра получена хорошая

и ее порядок верный

Maxim
03.09.2016
23:23:49
если ты руками возьмешь показатели несколько раз с примерно равными интервалами, ты получишь примерно верный рейт?

Алексей
03.09.2016
23:24:10
уверен что да.

Maxim
03.09.2016
23:24:18
а я не уверен

Алексей
03.09.2016
23:24:30
ибо эти же цифры кладутся тем же телеграфом в influxdb

и там рисуются верно

Maxim
03.09.2016
23:35:35
ну ты попробуй засечь

эксперимент же интереснее, чем тупняк

https://www.youtube.com/playlist?list=PLoz-W_CUquUlCq-Q0hy53TolAhaED9vmU

ptchol
04.09.2016
13:52:01
пронкон ))

Алексей
04.09.2016
20:15:12
ну ты попробуй засечь
попробовал 1457483011240-1457510637082 1457510637082-1457537699861 1457537699861-1457566716138 1457566716138-1457596700841 1457596700841-1457596700841 1457625703386-1457657536805

нормально растет

как раз ~27000000

Maxim
04.09.2016
20:15:42
нормально растет - это запредельная точность

как оно с реальностью-то пересекается?

Алексей
04.09.2016
20:16:00
да

Страница 22 из 681