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

Коллеги ну поделитесь большой тайной - что используете на клиенте

(имеется в виду сервисах): гистограммы или саммариз?
у меня например разброс размеров ответов и латенси очень большой и заранее описать это бакетами определенных размеров не могу - попаду пальцем в небо
саммариз вроде сами все считают и уже в готовом виде - но сколько за это придется заплатить производительностью сервиса?

18 ответов

6 просмотров

никто кроме тебя не будет бенчмаркать твой сервис

я не понял как это связано с вопросом? я вроде бы нигде и не отказывался! 😳

извиняюсь если есть сомнения на тему производительности снятия метрик, то только ты сам можешь попробовать варианты и выбрать тот, который нравится больше

См. https://valyala.medium.com/improving-histogram-usability-for-prometheus-and-grafana-bc7e5df0e350

спасибо - почитаю

статья об оптимизации создания и хранения гистограмм в victoriaMetrics - пока нет возможности изучать и спользовать ее хотелось бы понять что на практике лучше использовать - гистограммы или саммариз?

На практике все зависит от желаемого результата. Если важно знать распределение значений метрики (например, если значения распределены не по нормальному закону, а имеют несколько "всплесков" и эти "всплески" могут перемещаться по шкале значений с течением времени), то лучше использовать гистограммы с бакетами, покрывающими с хорошим разрешением большинство возможных значений метрики. Если же важно знать максимальное значение метрики для какого-то процента измерений (например, максимальное время ответа для 95% пользователей aka 95-й персентиль), то тогда используйте summary.

спасибо за подробное разъяснение! а вот реальными примерами про гистограммы можно? толковых материалов по реальным применениям мало - поэтому сложно сориентироваться когда их применять

Обычно гистограммы используют вместо саммари, если нужна возможность объединения гистограмм по нескольким метрикам. Например, у вас есть кластер микросервисов, и вы измеряете время выполнения запроса на каждом микросервисе. Если вам нужно подсчитать время выполнения запроса по всем микросервисам (минимальное, максимальное, какой-нибудь квантиль), либо построить heatmap по времени выполнения запроса по всем микросервисам, то тут без гисторграмм не обойтись, т.к. квантили по отдельным сервисам нельзя объединять. Гистограммы же легко объединять путем сложения бакетов. После объединения можно легко подсчитать нужные квантили или посторить heatmap. Единственный момент - объединение работает только для гистограмм, содержащих одинаковый набор бакетов с одинаковыми границами.

вроде и на русском, но понятнее не становится :) квантили бакеты :)

👌ага вот где собака порылась! я по простоте своей решил все саммариз покрыть и сводить их потом в одну диаграмму - а оно то не сводимое! спасибо!такого нигде не читал Подскажите еще одну вещь - насколько затратно потом считать все квантили по гистограммам - в доке пугают что это может стать узким местом в мониторинге Правильно ли я понимаю что гистограммы лучше использовать для измерения времени? (я например не могу себе даже представить какие и сколько корзин я должен описать для размеров запросов/ответов - настолько it depends of user data)

https://prometheus.io/docs/practices/histograms/#errors-of-quantile-estimation попробуй тут на английском

это я уже раза 3 с лупой читал! :)

понимаю. я 2 недели в голову укладывал. но после того как уложил понял что без этого вообще в мониторинге делать нечего

уговорили, сегодня с микроскопом перепрочту )

2 недели?

ну ладно ладно. месяца

Чем больше бакетов в гистограмме, тем больше накладные расходы на сбор, хранение и выборку данных, т.к. значения для каждого бакета хранятся в отдельном временном ряду, занимающем место на диске. Гистограммы можно использовать для сбора статистики по любым величинам, в т.к. времени выполнения каких-либо операций и размерам запросов/ответов. Для того, чтобы не нужно было думать про размер корзин, можно использовать т.н. hdr histograms вроде тех, что описаны в https://valyala.medium.com/improving-histogram-usability-for-prometheus-and-grafana-bc7e5df0e350

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
В дельфе нет никакого коробочного (без установки третьих либ) способа получить CallStack с расшифровкой отладочных символов?
notme
7
Приветики всем!)) Подскажите: есть функция, которая записывает число типа Cardinal в четыре байта, хранимые в TBytes. Можете помочь мне, показав, как должна выглядеть функци...
Моринаро
5
Карта сайта