2017-12-22 4 views
0

私はプロメテウスを初めて使用しており、Pythonライブラリを使用してカスタムエクスポータを作成しようとしています。このため私はprometheus_clientを使用しています。API呼び出しからサードパーティシステムへのデータを取得し、Promethuesに表示します

私の最終目標は、ボールトノードを監視することです。私は、ボールトノードのメトリックを収集するために使用できるいくつかのAPIを用意しています。これの終わりに私はprometues dahsboardのようなものを言ってほしい。

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

など。

私はhttps://github.com/prometheus/client_pythonからもらったベース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を使いたい。

だから私は次のようなsomethinをやろう:

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

しかし、この明らかにdoesntの仕事。

私はエラーを取得する:

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呼び出しからいくつかの価値を引き出し、それをプロメテウスに表示したいと考えています。

答えて

2

私の知る限りあなたは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() 

であなたの関数を呼び出す必要がある。そして、あなたはゲージ

TEST_VALUE.set(<extracted value>) 
の値に必要
関連する問題