mirror of
https://github.com/simon987/hexlib.git
synced 2025-04-19 17:56:43 +00:00
buffer influxdb module
This commit is contained in:
parent
3adca8cb5e
commit
5784bcee5c
@ -33,7 +33,7 @@ def buffered(batch_size: int, flush_on_exit: bool = False):
|
|||||||
if flush_on_exit:
|
if flush_on_exit:
|
||||||
atexit.register(func, buffer)
|
atexit.register(func, buffer)
|
||||||
|
|
||||||
def wrapper(*items):
|
def wrapper(items):
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
buffer.append(item)
|
buffer.append(item)
|
||||||
|
@ -3,15 +3,22 @@ import traceback
|
|||||||
|
|
||||||
from influxdb import InfluxDBClient
|
from influxdb import InfluxDBClient
|
||||||
|
|
||||||
|
from hexlib.misc import buffered
|
||||||
|
|
||||||
|
|
||||||
class Monitoring:
|
class Monitoring:
|
||||||
def __init__(self, db, host="localhost", logger=logging.getLogger("default")):
|
def __init__(self, db, host="localhost", logger=logging.getLogger("default"), batch_size=1, flush_on_exit=False):
|
||||||
self._db = db
|
self._db = db
|
||||||
self._client = InfluxDBClient(host, 8086, "", "", db)
|
self._client = InfluxDBClient(host, 8086, "", "", db)
|
||||||
self._logger = logger
|
self._logger = logger
|
||||||
|
|
||||||
self._init()
|
self._init()
|
||||||
|
|
||||||
|
@buffered(batch_size, flush_on_exit)
|
||||||
|
def log(points):
|
||||||
|
self._log(points)
|
||||||
|
self.log = log
|
||||||
|
|
||||||
def db_exists(self, name):
|
def db_exists(self, name):
|
||||||
for db in self._client.get_list_database():
|
for db in self._client.get_list_database():
|
||||||
if db["name"] == name:
|
if db["name"] == name:
|
||||||
@ -22,9 +29,10 @@ class Monitoring:
|
|||||||
if not self.db_exists(self._db):
|
if not self.db_exists(self._db):
|
||||||
self._client.create_database(self._db)
|
self._client.create_database(self._db)
|
||||||
|
|
||||||
def log(self, event):
|
def _log(self, points):
|
||||||
try:
|
try:
|
||||||
self._client.write_points(event)
|
self._client.write_points(points)
|
||||||
|
self._logger.debug("InfluxDB: Wrote %d points" % len(points))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self._logger.debug(traceback.format_exc())
|
self._logger.debug(traceback.format_exc())
|
||||||
self._logger.error(str(e))
|
self._logger.error(str(e))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user