Last active
May 29, 2018 13:36
-
-
Save icehongssii/79ad5a2a8777cfe85b8f14fffcc04950 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import requests | |
import db_query_frames | |
import time | |
class InfluxHandler(object): | |
def __init__(self, _db_name = None, _host_frame = db_query_frames.WRITE_HOST): | |
self.db_host = _host_frame.format(database_name = _db_name) | |
self.db_name = _db_name | |
self._session = requests.Session() | |
adapter = requests.adapters.HTTPAdapter( | |
pool_connections=int(db_query_frames.pool_size), | |
pool_maxsize=int(db_query_frames.pool_size) | |
) | |
def _request(self,url,method='GET',data={},headers = db_query_frames.headers,params=None): | |
if params is None: params = {} | |
resp = self._session.request(url=url, method=method, data=data, headers=headers, params=None) | |
print resp.status_code | |
#TODO to make raw qurey | |
def query_making(self, query): | |
if param is None: | |
print query | |
#TODO | |
def create_database(self, dbname): | |
self.query_making("CREATE DATABASE {0}".format(dbname)) | |
def write_point(self,data = {}): | |
data = self.generateTagsForDatabaseFromDict(data) | |
self._request(url=self.db_host,method="POST",data = data) | |
def generateTagsForDatabaseFromDict(self, _elements): | |
print _elements["time"] | |
medium_frame = "" | |
frame = "%s=%s" | |
for _key in _elements: | |
if _key == "tags": | |
tag_frame = [] | |
for _elem_key in _elements[_key]: | |
#_elem_key | |
tag_frame.append(frame % (_elem_key,str(_elements[_key][_elem_key]))) | |
tag_frame = ",".join(tag_frame) | |
if _key == "fields": | |
field_frame = [] | |
for _elem_key in _elements[_key]: | |
field_frame.append(frame % (_elem_key, str(_elements[_key][_elem_key]))) | |
field_frame = ",".join(field_frame) | |
return db_query_frames.WRITE_DATA.format(measurement = _elements["measurement"], | |
tags = tag_frame, | |
fields=field_frame, | |
timestamp = _elements["time"]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment