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