
Sergey
17.06.2017
22:04:58

Алексей
17.06.2017
22:05:09
:)
количество метрик не кардиналити
кардиналити это полный набор всех вариатов тегов

Google

Sergey
17.06.2017
22:09:32
мощность множества.
к сожалению, соответствующая статья в википедии представляет собой дикий неудобоваримый кирпич.

Алексей
17.06.2017
22:10:12
да. у парней из инфлюксдата есть наудивление толковая девочка пиарщик которая как то рассказывала что же это такое.
на понятных примерах

Sergey
17.06.2017
22:11:52
вполне возможно. но было бы больше толка, если б они наняли ещё и годных программистов.

Maxim
18.06.2017
08:54:58
коллеги, а чего такое внезапно с телеграфом случилось?
он зачем-то стал все слеши в подчеркивания превращать
вот так

Алексей
18.06.2017
09:08:31
хм. у меня нет
1,3,2

Maxim
18.06.2017
09:08:51
$ dpkg -l|grep teleg
ii telegraf 1.3.2-1 amd64 Plugin-driven server agent for reporting metrics into InfluxDB.
нашел
func sanitize(value string) string {
return invalidNameCharRE.ReplaceAllString(value, "_")
}

Google

Maxim
18.06.2017
09:09:50
это в https://github.com/influxdata/telegraf/blob/master/plugins/outputs/prometheus_client/prometheus_client.go
вот в этом коммите: https://github.com/influxdata/telegraf/commit/949072e8dc9f000f77db70bf1daed5408d33f035

Алексей
18.06.2017
09:12:13
ага. у меня версия то 1,3,2 но телегрфа не рестартнут.
такая же бойда

Maxim
18.06.2017
09:12:26
ггг
обнимемся, бро (not gay)

Алексей
18.06.2017
09:13:05
надо снова идти к чуваку

Maxim
18.06.2017
09:13:06
чо, пойти им баг назвездеть штоле

Алексей
18.06.2017
09:13:13
и говорить что он негодяй

Maxim
18.06.2017
09:13:29
четыре дня назад все сломали

Алексей
18.06.2017
09:14:18
ой вей. это ведь в кардиналити все пойдет :(

Maxim
18.06.2017
09:14:25
ага

Алексей
18.06.2017
09:15:03
var invalidNameCharRE = regexp.MustCompile([^a-zA-Z0-9_])
маловато

Maxim
18.06.2017
09:15:27
ну надо слеш сюда добавить, да
только имя какое-то инвертированное
это же по идее validNameCharRE
не?
то есть, если я верно понял логику, то все символы, НЕ входящие в этот регексп, будут заменены на "_"

Google

Алексей
18.06.2017
09:21:49
ну в контексте использования всё верно
return invalidNameCharRE.ReplaceAllString(value, "_")

Maxim
18.06.2017
09:28:07
ну ок, ладно
го - для роботов, я всегда это говорил :troll:

Алексей
18.06.2017
09:29:35
слава роботам!

Maxim
18.06.2017
09:34:51
https://github.com/influxdata/telegraf/issues/2937
Aleksey плюсуй ;)

Алексей
18.06.2017
09:38:17
ак видимо надо пересобрать с праивльным патчем
и выкатить на сервер
посмотрет ьчего еще поломалось

Maxim
18.06.2017
09:39:37
можно попробовать пулриквезднуть
бляяяяя
пидоры

Maxim
18.06.2017
09:40:47
там еще и минуса нет
все хостнеймы по пизде
ну ёбана, а...

Алексей
18.06.2017
09:42:07
вот я и говорю надо бы подумать какие еще оставить
_-./

Maxim
18.06.2017
09:42:46
а точку заекранить не надо?

Алексей
18.06.2017
09:42:55
надо конечно

Maxim
18.06.2017
09:43:20
у го ж не pcre, там свой путь какой-то

Google

Алексей
18.06.2017
09:43:32
дада. re2

Maxim
18.06.2017
09:52:42
$ ag invalidNameCharRE
plugins/outputs/prometheus_client/prometheus_client.go
20:var invalidNameCharRE = regexp.MustCompile(`[^a-zA-Z0-9_]`)
171: return invalidNameCharRE.ReplaceAllString(value, "_")
отлично
оно всего в одном месте используется

lastsky
18.06.2017
09:56:36
они там ебнулись точно.
доброе утро.

Maxim
18.06.2017
10:22:44
еще и минус надо экранировать

Admin
ERROR: S client not available

Maxim
18.06.2017
10:23:49
@freeseacher var invalidNameCharRE = regexp.MustCompile(`[^a-zA-Z0-9_\-/\.]`)
https://gist.github.com/Bregor/c48505bc8cad3cd8f17c597e7c8f7c2b
$ go run sanitize.go
dots__..._bucks______slashes__///_minuses__---_underscores______pluses_____
точки, минусы и слеши на месте
@freeseacher https://github.com/Bregor/telegraf/blob/master/plugins/outputs/prometheus_client/prometheus_client_test.go#L127-L148
они там специально даже в тестах минусики проверяют
казлы
то есть я боюсь, что пулриквест нихера не примут и баг закроют, как вонтфикс

Vladimir
18.06.2017
10:42:31

Maxim
18.06.2017
10:44:08
еще б найти ее там...
надо сказать, в прометее куча отдельных валидаторов для разных кейсов
инфлюксовцы совершенно явно беспалева взяли вот это: https://github.com/prometheus/prometheus/blob/master/util/strutil/strconv.go#L23

Google

Maxim
18.06.2017
10:46:29
и даже функцию sanitize слово в слово притырили из этого пакета
https://github.com/prometheus/prometheus/blob/master/util/strutil/strconv.go#L42-L44
но при этом это санитизация _лейблов_
а они применяют ее к именам метрик
не могу найти в прометее регекспа для санитизации имен метрик
@freeseacher, @Civiloid, помогайте ;)
чот походу в прометее вообще не санитизируют имена метрик
как приехали, так и берут
санитизация есть только для лейблов
либо я чего-то глобально не понимаю
опять же, в инпутах есть стандартный плагин, следящий за файлами
ничего мне не мешает в имени файла использовать двоеточие, например
телеграф заменит это на андерскор
https://github.com/influxdata/telegraf/issues/2937#issuecomment-309270989
написал пока такой каммент
но чот не уверен, что это как-то вразумит товарищей...

Andor
18.06.2017
11:24:51
Прометей принимает как есть, если парсинг не зафейлился
Посмотрите в код либы экспортера

Maxim
18.06.2017
11:26:42
но они же при этом не заменяют кучу символов на андерскоры же