Как создать собственные метрики в Прометей? - PullRequest
0 голосов
/ 11 апреля 2019

Я настраиваю PoC мониторинга для будущих требований.PoC разработан локально на моем компьютере.Для мониторинга метрики я использую Прометей и Графану.Я хочу посчитать количество полученных файлов и время, потраченное на их обработку.Для этого мне нужно создать пользовательские метрики.

Я использую Python 2.7.5.На данный момент я связал Прометей и цель.Я получаю метрики, но не знаю, как создать метрики, которые я хочу.

counter = prom.Counter('python_my_counter', 'This is my counter')
gauge = prom.Gauge('python_my_gauge', 'This is my gauge')
histogram = prom.Histogram('python_my_histogram', 'This is my histogram')
summary = prom.Summary('python_my_summary', 'This is my summary')


def thr():
    while True:
        counter.inc(random.random())
        gauge.set(random.random() * 15 - 5)
        histogram.observe(random.random() * 10)
        summary.observe(random.random() * 10)
        process_request(random.random() * 5)

        time.sleep(1)

Я ожидаю, что сумма полученных файлов "подсчитать количество полученных файлов" метрика.Время, затраченное на обработку файла (т. Е. 2 ​​с), и сумма времени, затраченного на обработку файла (50 с).

1 Ответ

1 голос
/ 11 апреля 2019

вам не нужны все эти метрики для вашего случая использования.Просто зарегистрируйте summary метрику в Prometheus, что-то вроде:

from prometheus_client import Summary
import time
# Create a metric to track time spent and requests made.
REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')
# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
    """A dummy function that takes some time."""
    time.sleep(t)

Тогда у вас есть request_processing_seconds_count и request_processing_seconds_sum метрики.

...