Дублированные таймсерии в CollectorRegistry при запуске prometheus (python) - PullRequest
1 голос
/ 05 августа 2020

Я пытаюсь следовать readme клиентского проекта python. Итак, у меня есть следующий код

from prometheus_client import start_http_server, Summary
import random
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)

if __name__ == '__main__':
    # Start up the server to expose the metrics.
    start_http_server(8000)
    # Generate some requests.
    while True:
        process_request(random.random())

. Я все еще пытаюсь понять, как использовать здесь Прометей, но мой вопрос немного другой. Я использую анаконду, и я создал среду conda. Внутри этой среды я установил spyder для использования в качестве IDE. Итак, я помещаю этот код в файл и запускаю его.

В первый раз проблем нет (и я мог бы провести мониторинг с помощью Prometheus, но это уже другая история). Однако, когда я хочу остановить это, я нажимаю Ctrl- C и, как и ожидалось, программа завершается.

Однако, если я запустил ее во второй раз, я получил следующую ошибку:

Traceback (most recent call last):

  File "C:\Users\user\Prometheus\firstPro\primer.py", line 13, in <module>
    REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')

  File "C:\Users\user\anaconda3\envs\firstPro\lib\site-packages\prometheus_client\metrics.py", line 121, in __init__
    registry.register(self)

  File "C:\Users\user\anaconda3\envs\firstPro\lib\site-packages\prometheus_client\registry.py", line 31, in register
    duplicates))

ValueError: Duplicated timeseries in CollectorRegistry: {'request_processing_seconds_created', 'request_processing_seconds_sum', 'request_processing_seconds_count', 'request_processing_seconds'}

, и я не могу снова запустить программу python. По-видимому, существуют «дублированные временные ряды», поэтому кажется, что предыдущий прогон оставил что-то не закрытым.

Если я закрою spyder и открою его снова, я могу запустить его снова в первый раз.

Может ли кто-нибудь помочь мне в том, что здесь происходит?

...