概要
過去にライブラリを使った方法を紹介しました
今回は requests だけでコールしてみました
環境
- Python 3.11.3
- requests 2.31.0
サンプルコード
API は query_range を使います
from datetime import datetime, timedelta, timezone
import requests
proxies = {"http": "192.168.100.2:3128"}
# 30分前から現在時刻まで取得
now = datetime.now(timezone.utc)
end = now.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
start = (now - timedelta(minutes=30)).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
params = {
"query": 'instance:node_filesystem_avail:ratio{mountpoint="/var/opt/gitlab"}',
"start": start,
"end": end,
"step": "60s",
}
schema = "http"
hostname = "192.168.100.1"
port = "9090"
path = "/api/v1/query_range"
url = f"{schema}://{hostname}:{port}{path}"
res = requests.get(url, params=params, proxies=proxies)
print(res.json())
注意事項
step=60s にしていますが query_range API の場合、取得できる最大プロットの数が 11,000 になるのでそれを超えなければ更に短い時間でも OK です
query API であれば制限はないようです
一週間取得する場合には 60s からでないと取得できません
また Prometheus はデフォルトだと 15 日間しかデータを保存していません
最後に
メトリックを取得するだけならかなり簡単にコールできるので専用のライブラリはいらないかもです
0 件のコメント:
コメントを投稿