@@ -49,13 +49,13 @@ def populate_metrics(self):
49
49
** metric_args , ** values ,
50
50
_log_init = False , logger = self .logger ))
51
51
52
- def get_data (self , label_filter = {}):
52
+ async def get_data (self , label_filter = {}):
53
53
"""
54
54
Gets the data from the endpoint.
55
55
Updates the JSON labels.
56
56
Populates the metrics using the new labels and data.
57
57
"""
58
- from requests import get , post
58
+ from aiohttp import ClientSession
59
59
from json import loads
60
60
from json .decoder import JSONDecodeError
61
61
from time import time
@@ -71,20 +71,21 @@ def get_data(self, label_filter={}):
71
71
kwargs ['headers' ] = self .headers
72
72
73
73
start_time = time ()
74
- if self .post_data :
75
- self .logger .debug ("POST data: %s" , self .post_data )
76
- request = post (self .endpoint , json = self .post_data , ** kwargs )
77
- else :
78
- request = get (self .endpoint , ** kwargs )
74
+ async with ClientSession () as session :
75
+ if self .post_data :
76
+ async with session .post (self .endpoint , json = self .post_data , ** kwargs ) as request :
77
+ self .logger .debug ("POST data: %s" , self .post_data )
78
+ request_data = await request .text ()
79
+ else :
80
+ async with session .get (self .endpoint , ** kwargs ) as request :
81
+ request_data = await request .text ()
79
82
self ._request_time = time () - start_time
80
- self .logger .debug ( " Request time: %s" , self ._request_time )
83
+ self .logger .info ( "[%s] Request time: %s" % ( self . endpoint , self ._request_time ) )
81
84
82
- if request .status_code != 200 :
83
- raise ValueError ("[%s] Request failed: %s" % (request .status_code , request .text ))
84
- self .logger .debug ("Got data: %s" , request .text )
85
+ self .logger .debug ("Got data: %s" , request_data )
85
86
86
87
try :
87
- self .data = loads (request . text )
88
+ self .data = loads (request_data )
88
89
except JSONDecodeError as error :
89
90
raise ValueError ("Failed to decode JSON: %s" % error )
90
91
0 commit comments