mirror of
				https://github.com/simon987/hexlib.git
				synced 2025-10-25 14:06:54 +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