diff --git a/circle/monitor/__init__.py b/circle/monitor/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/circle/monitor/__init__.py diff --git a/circle/monitor/calvin/__init__.py b/circle/monitor/calvin/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/circle/monitor/calvin/__init__.py diff --git a/circle/monitor/calvin/calvin/__init__.py b/circle/monitor/calvin/calvin/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/circle/monitor/calvin/calvin/__init__.py diff --git a/circle/monitor/calvin/src/calvin.py b/circle/monitor/calvin/src/calvin.py deleted file mode 100644 index 95566d3..0000000 --- a/circle/monitor/calvin/src/calvin.py +++ /dev/null @@ -1,167 +0,0 @@ -import requests - - -class GraphiteHandler: - - def __init__(self, server_name="localhost", server_port="8080"): - self.__server_name = server_name - self.__server_port = server_port - self.__queries = [] - self.__responses = [] - - def put(self, query): - self.__queries.append(query) - - def cleanUpQueries(self): - self.__queries = [] - - def cleanUpResponses(self): - self.__responses = [] - - def isEmpty(self): - return len(self.__queries) is 0 - - def generateAll(self): - """ - Regenerate the queries before sending. - """ - for query in self.__queries: - query.generate() - - def send(self): - """ - Generates the corrent query for the Graphite webAPI and flush all the - queries in the fifo. - Important: After sending queries to the server the fifo will lost its - content. - """ - url_base = "http://%s:%s/render?" % (self.__server_name, - self.__server_port) - for query in self.__queries: - response = requests.get(url_base + query.getGenerated()) - if query.getFormat() is "json": - self.__responses.append(response.json()) # DICT - else: - self.__responses.append(response) - self.cleanUpQueries() - - def pop(self): - """ - Pop the first query has got from the server. - """ - try: - return self.__responses.pop(0) # Transform to dictionary - except: - print("There is no more responses.") - - -class Query: - - def __init__(self): - """ - Query initializaion: - default format is json dictionary - keys: ("target <string>","datapoints <list>") - """ - self.__target = "" - self.__metric = "" - self.__start = "" - self.__end = "" - self.__function = "" - self.__response_format = "json" - self.__generated = "" - - def setTarget(self, target): - """ - Hostname of the target we should get the information from. - After the hostname you should use the domain the target is in. - Example: "foo.foodomain.domain.com.DOMAIN" where DOMAIN is - the root of the graphite server. - """ - self.__target = '.'.join(target.split('.')[::-1]) - - def getTarget(self): - return self.__target - - def setMetric(self, metric): - self.__metric = metric - - def getMetric(self): - return self.__metric - - def setAbsoluteStart(self, year, month, day, hour, minute): - """ - Function for setting the time you want to get the reports from. - """ - if(len(year) > 4 or len(year) < 2): - raise - self.__start = hour + ":" + minute + "_" + year + month + day - - def setRelativeStart(self, value, scale): - """ - Function for setting the time you want to get the reports from. - """ - if (scale not in ["years", - "months", "days", "hours", "minutes", "seconds"]): - raise - self.__start = "-" + str(value) + scale - - def getStart(self): - return self.__start - - def setAbsoluteEnd(self, year, month, day, hour, minute): - """ - Function for setting the time until you want to get the reports from. - """ - if(len(year) > 4 or len(year) < 2): - raise - self.__end = hour + ":" + minute + "_" + year + month + day - - def setRelativeEnd(self, value, scale): - """ - Function for setting the time until you want to get the reports from. - """ - if (scale not in ["years", - "months", "days", "hours", "minutes", "seconds"]): - raise - self.__end = "-" + str(value) + scale - - def getEnd(self): - return self.__end - - def setFormat(self, fmat): - """ - Function for setting the format of the response from the server. - Valid values: ["csv", "raw", "json"] - """ - valid_formats = ["csv", "raw", "json"] - if fmat not in valid_formats: - raise - self.__response_format = fmat - - def getFormat(self): - return self.__response_format - - def generate(self): - """ - You must always call this function before sending the metric to the - server for it generates the valid format that the graphite API can - parse. - """ - tmp = "target=" + self.__target + "." + self.__metric - if len(self.__start) is not 0: - tmp = tmp + "&from=" + self.__start - if len(self.__end) is not 0: - tmp = tmp + "&until=" + self.__end - tmp = tmp + "&format=" + self.__response_format - self.__generated = tmp - return self.__generated - - def getGenerated(self): - """ - Returns the generated query string. - Throws exception if it haven't been done yet. - """ - if len(self.__generated) is 0: - raise - return self.__generated