171 похожих чатов

А вариант с динамическим формированием словарей (КМ мапов) для

лейблов и их значений не прокатит?
Грубо:
экспортер копит словарь id=hash(metricName,labelName,labelValue) -> tuple{ metricName,labelName,labelValue}, а значения метрик шлёт с соответствующими id.
Сам словарь (id- > tuple) мог бы посылаться прому как вместе с метриками целиком или как update с прошлого скрейпа, так и забираться промом отдельно.
Если при каждом скрейпе словарь не тащить, то трафик сильно пожмётся.
В какой то сепени похоже на шаблоны в netflow v9 и в ipfix.

1 ответов

16 просмотров

Akumuli поддерживает похожий протокол, все что передается в БД сразу после установки соединения сначала интерпретируется как словарь, если это не прокатывает, то фолбэк на обычный протокол, если словарь передан, то можно потом отправлять метрики используя id вместо лэйблов, либо указывать лэйблы полностью. Это обратно совместимо с ранними версиями протокола. Главных минусов два: может быть дорого хранить большой словарь на каждое TCP соединение; непонятно что делать если нужно изменить словарь (либо разрешить передавать его в любое время и усложнить тем самым протокол для всех, либо передавать только в начале, но на клиенте нужно больше логики в некоторых случаях). Для прома скорее всего можно было бы что-то похожее придумать, только для pull модели это не так просто, кмк.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта