Python/Python Programming

[ Python ] Prometheus metric 값 가져오기

Pydole 2023. 5. 24. 13:56

 

 

Python을이용하여 promQL 쿼리하여 값 가져오기

 

Sample Metric :  jvm_memory_used_bytes 

 

import requests
from datetime import datetime

instance = '127.0.0.1:8080'
job = 'spring'
query = 'sum(jvm_memory_used_bytes{area="heap", instance="%s", job="%s"})' % (instance,job)

def prometheus_data(instance,jop,query):
    response = requests.get('http://127.0.0.1:9090/api/v1/query', params={'query': query})
    response = response.json()['data']['result']
    response = response[0]['value']
    
    return datetime.fromtimestamp(int(response[0])), int(response[1])
    # Unix TimeStamp는 datetime 모듈로 일반타임으로 변경 리턴
    
    
print(prometheus_data(instance,job,query))

--------------------------------------------------------------------------------------------

(datetime.datetime(2023, 5, 24, 13, 44, 14), 5207844864)

 

 

 

특정시간 때 Metric을 보고 싶을 때는,

 

import datetime
from datetime import timedelta

t = datetime.datetime.now(datetime.timezone.utc) - timedelta(days=1)

        ...... params={'query': query,'time':t.isoformat()}
   
        # 'time':RFC 3339 Format

 

 

 

Document : https://prometheus.io/docs/prometheus/latest/querying/api/