Действительно ли функция оценки дает среднее значение по времени для прометея?

Мы можем использовать ix для переупорядочения путем передачи списка:

In [27]:
# get a list of columns
cols = list(df)
# move the column to head of list using index, pop and insert
cols.insert(0, cols.pop(cols.index('Mid')))
cols
Out[27]:
['Mid', 'Net', 'Upper', 'Lower', 'Zsore']
In [28]:
# use ix to reorder
df = df.ix[:, cols]
df
Out[28]:
                      Mid Net  Upper   Lower  Zsore
Answer_option                                      
More_than_once_a_day    2  0%  0.22%  -0.12%     65
Once_a_day              3  0%  0.32%  -0.19%     45
Several_times_a_week    4  2%  2.45%   1.10%     78
Once_a_week             6  1%  1.63%  -0.40%     65

Другой метод - взять ссылку на столбец и вставить его спереди:

In [39]:
mid = df['Mid']
df.drop(labels=['Mid'], axis=1,inplace = True)
df.insert(0, 'Mid', mid)
df
Out[39]:
                      Mid Net  Upper   Lower  Zsore
Answer_option                                      
More_than_once_a_day    2  0%  0.22%  -0.12%     65
Once_a_day              3  0%  0.32%  -0.19%     45
Several_times_a_week    4  2%  2.45%   1.10%     78
Once_a_week             6  1%  1.63%  -0.40%     65

Вы также можете использовать loc для достижения того же результата, что и ix в устаревших версиях панды из 0.20.0 :

df = df.loc[:, cols]

0
задан Yeahia Md Abid 16 January 2019 в 07:29
поделиться

1 ответ

Если ваш интервал очистки составляет 10 с, то это ожидается. Это работает так, что Прометей берет 2 сэмпла в интервале 20 с (так как они разнесены на 10 с), вычисляет разницу (20), экстраполирует ее на весь интервал (40), затем делит на длину интервала ( 20) так вы получите 2.

Мне это тоже не нравится, и я выступаю за для лучшей реализации rate, которая рассматривает последнюю выборку перед диапазоном и последнюю выборку в диапазоне (так что вы бы в вашем случае увеличение должно составлять 20 на 20 с, а не на 20 на 10 с или, возможно, на 0 на 10, в зависимости от того, когда вам выпал запрос). Но до сих пор это никуда не делось. Так что сейчас, по крайней мере, добро пожаловать в клуб.

Один из чрезвычайно хакерских способов противодействовать внедрению Prometheus - это реконструировать его. Например. Выражение, которое даст вам фактическую скорость более 20 секунд в вашем случае:

rate(hello_worlds_total[30s]) / 30 * 20

Т.е. Прометей берет скорость более 20 секунд, экстраполирует ее до 30, а затем вы отменяете эту экстраполяцию. Но это требует, чтобы вы знали об интервале очистки и делали математику, чтобы отменить экстраполяцию Прометея.

0
ответ дан Alin Sînpălean 16 January 2019 в 07:29
поделиться
Другие вопросы по тегам:

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