2017-12-22 17 views
0

저는 Prometheus를 처음 사용하며 파이썬 라이브러리를 사용하여 사용자 정의 내보내기를 작성하려고합니다. 이를 위해 prometheus_client을 사용하고 있습니다.API 호출에서 타사 시스템으로 데이터를 가져와 Promethues에 표시합니다.

내 목표는 내 볼트 노드를 모니터링하는 것입니다. 내 볼트 노드에 대한 측정 항목을 수집하는 데 사용할 수있는 여러 API가 있습니다. 그래서

vault_total_conection <some-number> 
vault_total_secrets <some-number> 

및이의 말에 나는 내 promethues이 같은 말을 dahsboard합니다.

내가 https://github.com/prometheus/client_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()) 

은 지금은 모두가 알아 낸 금고쪽으로 API 설정을 가지고있다. 저장소에 연결하여 부동 소수점 숫자를 반환하는 함수가 있습니다.

def extract_metric_from_vault(): 
    // some code 
    return float_number 

이 함수는 위의 코드에서 정의됩니다. 이해해야 할 문제는 promethue 클라이언트와 통합하는 방법입니다. 나는 가치가 높거나 낮을 것이라는 것을 알기 때문에 Gauge를 사용하고 싶다.

TEST_VALUE = Gauge('vault_total_conection', 'Description of gauge') 
TEST_VALUE.extract_metric_from_vault() 

그러나이 명확하게 나던 작업 :

그래서 내가 좋아하는 뭔가를 할하려고합니다.

Traceback (most recent call last): 
    File "main.yaml", line 8, in <module> 
    TEST_VALUE.extract_metric_from_vault() 
AttributeError: 'Gauge' object has no attribute 'extract_metric_from_vault' 

그래서 누군가가 그냥 여기에 점을 연결해야 무엇으로 나를 인도 할 수

가 나는 오류가 발생합니다. 나는 함수를 사용하는 API 호출로부터 가치를 끌어 내 프로 메테우스에 표시하려고합니다. 그런 다음 main()

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

그리고 당신의 함수를 호출 할 필요가 AFAIK

답변

2

, 당신은 게이지의 값이 필요

TEST_VALUE.set(<extracted value>)