Date: Sat, 13 Feb 2021 16:05:45 -0500
Subject: [PATCH 62/68] Update InfluxDB type on README
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index dd25a3e..de4e654 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ ecosystem into InfluxDB using Grafana for a frontend
Requirements:
* [Python 3.6.7+](https://www.python.org/downloads/release/python-367/)
* [Python3-pip](https://pip.pypa.io/en/stable/installing/)
-* [InfluxDB 1.8.x](https://www.influxdata.com/)
+* [InfluxDB 1.8.x or 2.0.x](https://www.influxdata.com/)
* [Grafana](https://grafana.com/)
From a4d54f912c4df1b420825c5dd43f654515386edf Mon Sep 17 00:00:00 2001
From: Gabe Revells
Date: Sat, 13 Feb 2021 16:38:42 -0500
Subject: [PATCH 63/68] Clean up linting errors
---
varken/influxdb2manager.py | 8 ++++----
varken/iniparser.py | 12 +++++++-----
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/varken/influxdb2manager.py b/varken/influxdb2manager.py
index 0cb9df9..3979ba4 100644
--- a/varken/influxdb2manager.py
+++ b/varken/influxdb2manager.py
@@ -1,8 +1,7 @@
from sys import exit
from logging import getLogger
-from requests.exceptions import ConnectionError
import influxdb_client
-from influxdb_client import InfluxDBClient, Point
+from influxdb_client import InfluxDBClient
from influxdb_client.client.write_api import SYNCHRONOUS
@@ -15,7 +14,8 @@ class InfluxDB2Manager(object):
exit()
self.influx = InfluxDBClient(url=self.server.url, token=self.server.token, org=self.server.org,
- timeout=self.server.timeout, verify_ssl=self.server.verify_ssl, ssl_ca_cert=self.server.ssl)
+ timeout=self.server.timeout, verify_ssl=self.server.verify_ssl,
+ ssl_ca_cert=self.server.ssl)
self.influx_write_api = self.influx.write_api(write_options=SYNCHRONOUS)
# Create the bucket if needed
@@ -41,6 +41,6 @@ class InfluxDB2Manager(object):
try:
self.influx_write_api.write(bucket=self.server.bucket, record=d)
- except (InfluxDBServerError, ConnectionError) as e:
+ except Exception as e:
self.logger.error('Error writing data to influxdb2. Dropping this set of data. '
'Check your database! Error: %s', e)
diff --git a/varken/iniparser.py b/varken/iniparser.py
index 96fff88..6874dc2 100644
--- a/varken/iniparser.py
+++ b/varken/iniparser.py
@@ -146,12 +146,14 @@ class INIParser(object):
self.config_blacklist()
# Parse InfluxDB options
- self.influx2_enabled = env.get('VRKN_GLOBAL_INFLUXDB2_ENABLED', self.config.getboolean('global', 'influx2_enabled'))
+ self.influx2_enabled = env.get('VRKN_GLOBAL_INFLUXDB2_ENABLED',
+ self.config.getboolean('global', 'influx2_enabled'))
if self.influx2_enabled:
# Use INFLUX version 2
try:
- url = self.url_check(env.get('VRKN_INFLUXDB2_URL', self.config.get('influx2', 'url')), section='influx2')
+ url = self.url_check(env.get('VRKN_INFLUXDB2_URL', self.config.get('influx2', 'url')),
+ section='influx2')
ssl = boolcheck(env.get('VRKN_INFLUXDB2_SSL', self.config.get('influx2', 'ssl')))
verify_ssl = boolcheck(env.get('VRKN_INFLUXDB2_VERIFY_SSL', self.config.get('influx2', 'verify_ssl')))
@@ -164,11 +166,11 @@ class INIParser(object):
return
self.influx_server = Influx2Server(url=url, token=token, org=org, timeout=timeout, ssl=ssl,
- verify_ssl=verify_ssl)
+ verify_ssl=verify_ssl)
else:
try:
url = self.url_check(env.get('VRKN_INFLUXDB_URL', self.config.get('influxdb', 'url')),
- include_port=False, section='influxdb')
+ include_port=False, section='influxdb')
port = int(env.get('VRKN_INFLUXDB_PORT', self.config.getint('influxdb', 'port')))
ssl = boolcheck(env.get('VRKN_INFLUXDB_SSL', self.config.get('influxdb', 'ssl')))
verify_ssl = boolcheck(env.get('VRKN_INFLUXDB_VERIFY_SSL', self.config.get('influxdb', 'verify_ssl')))
@@ -181,7 +183,7 @@ class INIParser(object):
return
self.influx_server = InfluxServer(url=url, port=port, username=username, password=password, ssl=ssl,
- verify_ssl=verify_ssl)
+ verify_ssl=verify_ssl)
# Check for all enabled services
for service in self.services:
From a30450f224ca6f2ee466d558c9f492075970dbc2 Mon Sep 17 00:00:00 2001
From: Gabe Revells
Date: Sat, 13 Feb 2021 16:40:02 -0500
Subject: [PATCH 64/68] Wrap create bucket in try/catch
---
varken/influxdb2manager.py | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/varken/influxdb2manager.py b/varken/influxdb2manager.py
index 3979ba4..66eb12d 100644
--- a/varken/influxdb2manager.py
+++ b/varken/influxdb2manager.py
@@ -22,18 +22,21 @@ class InfluxDB2Manager(object):
bucket_api = self.influx.buckets_api()
- bucket = bucket_api.find_bucket_by_name(self.server.bucket)
+ try:
+ bucket = bucket_api.find_bucket_by_name(self.server.bucket)
- if bucket is None:
- self.logger.info('Creating bucket %s', self.server.bucket)
+ if bucket is None:
+ self.logger.info('Creating bucket %s', self.server.bucket)
- org_api = influxdb_client.service.organizations_service.OrganizationsService(self.influx.api_client)
- orgs = org_api.get_orgs()
- for org in orgs.orgs:
- if org.name == self.server.org:
- my_org = org
+ org_api = influxdb_client.service.organizations_service.OrganizationsService(self.influx.api_client)
+ orgs = org_api.get_orgs()
+ for org in orgs.orgs:
+ if org.name == self.server.org:
+ my_org = org
- self.influx.buckets_api().create_bucket(bucket_name=self.server.bucket, org_id=my_org.id)
+ self.influx.buckets_api().create_bucket(bucket_name=self.server.bucket, org_id=my_org.id)
+ except Exception as e:
+ self.logger.error('Failed creating new InfluxDB bucket! Error: %s', e)
def write_points(self, data):
d = data
From 51483f33a50f2617f2d4454deba52e898df4b259 Mon Sep 17 00:00:00 2001
From: Gabe Revells
Date: Mon, 1 Mar 2021 10:42:35 -0500
Subject: [PATCH 65/68] Use bucket given in ini file
---
varken/iniparser.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/varken/iniparser.py b/varken/iniparser.py
index 6874dc2..84d5af9 100644
--- a/varken/iniparser.py
+++ b/varken/iniparser.py
@@ -158,6 +158,7 @@ class INIParser(object):
verify_ssl = boolcheck(env.get('VRKN_INFLUXDB2_VERIFY_SSL', self.config.get('influx2', 'verify_ssl')))
org = env.get('VRKN_INFLUXDB2_ORG', self.config.get('influx2', 'org'))
+ bucket = env.get('VRKN_INFLUXDB2_BUCKET', self.config.get('influx2', 'bucket'))
token = env.get('VRKN_INFLUXDB2_TOKEN', self.config.get('influx2', 'token'))
timeout = env.get('VRKN_INFLUXDB2_TIMEOUT', self.config.get('influx2', 'timeout'))
except NoOptionError as e:
@@ -166,7 +167,7 @@ class INIParser(object):
return
self.influx_server = Influx2Server(url=url, token=token, org=org, timeout=timeout, ssl=ssl,
- verify_ssl=verify_ssl)
+ verify_ssl=verify_ssl, bucket=bucket)
else:
try:
url = self.url_check(env.get('VRKN_INFLUXDB_URL', self.config.get('influxdb', 'url')),
From 5e68f6a45929c3a5869b1c3f0541a3e7a24a7f4f Mon Sep 17 00:00:00 2001
From: Daniel
Date: Thu, 22 Jun 2023 21:32:24 -0700
Subject: [PATCH 66/68] Log exception to troubleshoot errors
---
varken/influxdb2manager.py | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/varken/influxdb2manager.py b/varken/influxdb2manager.py
index 66eb12d..62229ec 100644
--- a/varken/influxdb2manager.py
+++ b/varken/influxdb2manager.py
@@ -39,11 +39,10 @@ class InfluxDB2Manager(object):
self.logger.error('Failed creating new InfluxDB bucket! Error: %s', e)
def write_points(self, data):
- d = data
- self.logger.info('Writing Data to InfluxDBv2 %s', d)
+ self.logger.info('Writing Data to InfluxDBv2 %s', data)
try:
- self.influx_write_api.write(bucket=self.server.bucket, record=d)
+ self.influx_write_api.write(bucket=self.server.bucket, record=data)
except Exception as e:
- self.logger.error('Error writing data to influxdb2. Dropping this set of data. '
- 'Check your database! Error: %s', e)
+ self.logger.exception('Error writing data to influxdb2. Dropping this set of data. '
+ 'Check your database! Error: %s', e)
From 996ad353fa9148c12421f2fb48fc48b57af7eccd Mon Sep 17 00:00:00 2001
From: Daniel
Date: Thu, 22 Jun 2023 21:48:27 -0700
Subject: [PATCH 67/68] Allow configured influx2 address as URL (no port)
---
varken/iniparser.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/varken/iniparser.py b/varken/iniparser.py
index 84d5af9..f882b4e 100644
--- a/varken/iniparser.py
+++ b/varken/iniparser.py
@@ -153,7 +153,7 @@ class INIParser(object):
# Use INFLUX version 2
try:
url = self.url_check(env.get('VRKN_INFLUXDB2_URL', self.config.get('influx2', 'url')),
- section='influx2')
+ section='influx2', include_port=False)
ssl = boolcheck(env.get('VRKN_INFLUXDB2_SSL', self.config.get('influx2', 'ssl')))
verify_ssl = boolcheck(env.get('VRKN_INFLUXDB2_VERIFY_SSL', self.config.get('influx2', 'verify_ssl')))
From e34e58aabc9e7118454d3062543f186ca8acdad1 Mon Sep 17 00:00:00 2001
From: Daniel
Date: Thu, 22 Jun 2023 21:52:32 -0700
Subject: [PATCH 68/68] Bypass validity check to troubleshoot
---
varken/iniparser.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/varken/iniparser.py b/varken/iniparser.py
index f882b4e..fc84d87 100644
--- a/varken/iniparser.py
+++ b/varken/iniparser.py
@@ -107,6 +107,7 @@ class INIParser(object):
valid = match(regex, url_check) is not None
if not valid:
+ return url_check
if inc_port:
self.logger.error('%s is invalid in module [%s]! URL must host/IP and '
'port if not 80 or 443. ie. localhost:8080',