@@ -11,12 +11,14 @@ class KairosDB:
1111 """
1212 KairosDB REST client
1313 """
14- def __init__ (self , server , port , user = None , password = None ):
14+ def __init__ (self , server , port , user = None , password = None , timeout = 60 , debug = False ):
1515 self .server = server
1616 self .port = port
1717 self .user = user
18+ self .debug = debug
1819 self .password = password
1920 self .s = requests .Session ()
21+ self .s .timeout = timeout
2022 if self .password :
2123 self .s .auth = (self .user , self .password )
2224 #self.s.headers.update({'x-test': 'true'})
@@ -42,36 +44,31 @@ def put_metrics(self, metrics, comp=True):
4244 else :
4345 payload = json .dumps (metrics )
4446 try :
45- self .logger .debug ("Inserting %d metrics" % len (metrics ))
46- response = self .s .post (self .apis ['post_metrics' ], payload , headers = headers )
47- response .raise_for_status ()
47+ if not self .debug :
48+ self .logger .debug ("Inserting %d metrics" % len (metrics ))
49+ response = self .s .post (self .apis ['post_metrics' ], payload , headers = headers )
50+ response .raise_for_status ()
4851
49- # # DEBUG: send one metric at time
50- # for m in metrics:
51- # pay = [m]
52- # try:
53- # response = self.s.post(self.apis['post_metrics'], json.dumps([m]), headers=headers)
54- # response.raise_for_status()
55- # except:
56- # self.logger.error("Exception in post()", exc_info=True)
57- # self.logger.error("Request payload: %s" % (json.dumps(pay, indent=4)))
58- # self.logger.error("Reason %s" % (response.text))
59-
52+ # DEBUG: send one metric at time
53+ else : # TODO: Make this configurable
54+ for m in metrics :
55+ pay = [m ]
56+ try :
57+ response = self .s .post (self .apis ['post_metrics' ], json .dumps ([m ]), headers = headers )
58+ response .raise_for_status ()
59+ except :
60+ self .logger .exception ("Exception in post()" )
61+ self .logger .error ("Request payload: %s" % (json .dumps (pay , indent = 4 )))
6062 except :
61- #e = sys.exc_info()[0]
62- #logger.error("[%s] Exception in post(): %s", "KairosDB", e)
63- #self.logger.error("Exception in post()", exc_info=True)
6463 self .logger .exception ("Exception in post()" )
65- #if response:
66- # self.logger.error("Reason %s" % (response.text))
67- #self.logger.error("Request payload: %s" % (json.dumps(pay, indent=4)))
68- #print "[%s] Exception in post(): %s" % ("KairosDB", e,)
69- #print "[%s] Reason: " % ("KairosDB",)
70- #print response.text
71- #pass
7264
7365 def query_metrics (self , query ):
74- self .logger .debug ("query metrics: %s" % repr (query ))
75- headers = {'Accept-Encoding' : 'gzip, deflate' }
76- response = self .s .post (self .apis ['post_query' ], data = json .dumps (query ), headers = headers )
77- return response .json ()
66+ response = None
67+ try :
68+ self .logger .debug ("query metrics: %s" % repr (query ))
69+ headers = {'Accept-Encoding' : 'gzip, deflate' }
70+ response = self .s .post (self .apis ['post_query' ], data = json .dumps (query ), headers = headers )
71+ response .raise_for_status ()
72+ return response .json ()
73+ except :
74+ self .logger .exception ("Exception in post()" )
0 commit comments