@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Mackerel API からサービスメトリクスの値を取得する

api_key = ''
service_name = ''
metric_name = ''

import requests
import json
import datetime
import pprint

headers = {
    'X-Api-Key': api_key,
}

payload = {
    'name': metric_name,
    'from': datetime.datetime.now().timestamp() - 60*60*24*30,
    'to': datetime.datetime.now().timestamp(),
}
r = requests.get(f"https://api.mackerelio.com/api/v0/services/{service_name}/metrics",
                    headers=headers,
                    params=payload,
                )
pprint.pprint(json.loads(r.text))

Mackerel API からサービスメトリクス名の一覧を取得する - @kyanny's blog と合わせて複数のサービスメトリクスの値を一度に取得する場合は以下のようにする。

api_key = ''
service_name = ''

import requests
import json
import datetime
import pprint

headers = {
    'X-Api-Key': api_key,
}

r = requests.get(f"https://api.mackerelio.com/api/v0/services/{service_name}/metric-names",
                 headers=headers,
                )
metric_names = json.loads(r.text)['names']

for metric_name in metric_names:
    payload = {
        'name': metric_name,
        'from': datetime.datetime.now().timestamp() - 60*60*24*30,
        'to': datetime.datetime.now().timestamp(),
    }
    r = requests.get(f"https://api.mackerelio.com/api/v0/services/{service_name}/metrics",
                        headers=headers,
                        params=payload,
                    )
    pprint.pprint(json.loads(r.text))