From 682c943b2e18875717343a713959965369f50916 Mon Sep 17 00:00:00 2001 From: Sven Holz Date: Thu, 16 Jun 2022 23:19:41 +0200 Subject: [PATCH] fixes of setup script, creating better template files, ensure coorect latency output to influx --- Docker_Build/latency_monitor.py | 4 +- README.md | 8 ++-- ...ce.yml => grafana-datasource-template.yml} | 0 setup-full_stack.sh | 37 ++++++++++++++----- 4 files changed, 33 insertions(+), 16 deletions(-) rename grafana/{provisioning/datasources/grafana-datasource.yml => grafana-datasource-template.yml} (100%) diff --git a/Docker_Build/latency_monitor.py b/Docker_Build/latency_monitor.py index abd9d18..92f1e60 100644 --- a/Docker_Build/latency_monitor.py +++ b/Docker_Build/latency_monitor.py @@ -82,7 +82,7 @@ class MyInfluxDB(): def write(self, host, host_location, ping_response): self.host = host self.host_location = host_location - self.ping_response = int(ping_response) + self.ping_response = float(ping_response) self.influx_timestamp = int(time_ns()) self.data_point = Point("latency_monitor").tag("location", self.host_location).tag("host", self.host).field("latency", self.ping_response).time(self.influx_timestamp) self.write_api.write(bucket=self.INFX_BUCKET, @@ -114,7 +114,7 @@ class ThreadPing(Thread): self.starttime = time() while True: self.ping_response_list = ping(self.host, count=1) - self.ping_response = self.ping_response_list.rtt_avg_ms + self.ping_response = "{:.2f}".format(self.ping_response_list.rtt_avg_ms) self.MyDB.write(self.host, self.host_location, self.ping_response) sleep(self.host_timer - ((time() - self.starttime) % 1)) diff --git a/README.md b/README.md index 1ee0a55..5fdd967 100644 --- a/README.md +++ b/README.md @@ -284,10 +284,10 @@ Contributors names and contact info * cleanup * v0.2a - * fixed some missing variables - * fixe a missing integer declaration in latency-monitor - * added automatic config creation for full-stack - * cleanups + * fixed some missing variables + * fixe a missing integer declaration in latency-monitor + * added automatic config creation for full-stack + * cleanups * v0.1 * Initial Release diff --git a/grafana/provisioning/datasources/grafana-datasource.yml b/grafana/grafana-datasource-template.yml similarity index 100% rename from grafana/provisioning/datasources/grafana-datasource.yml rename to grafana/grafana-datasource-template.yml diff --git a/setup-full_stack.sh b/setup-full_stack.sh index 2226b5e..087cc62 100755 --- a/setup-full_stack.sh +++ b/setup-full_stack.sh @@ -1,24 +1,37 @@ #!/bin/bash -# Check if .env allready exists -if ! test -e .env; then - echo "FAIL: You need to copy file env to .env and edit it!!!" - exit 1 -fi - -# copy compose template to final compose file (OVERWRITTEN!!!) -cp -f ./docker-compose-full_stack.yml ./docker-compose.yml +Date=`date +%Y%m%d_%H%M%s` # locate my path MyScriptPath=`dirname $0` MyScriptPathContainer="$MyScriptPath/CONTAINER/" +# Check if .env allready exists +if ! test -e $MyScriptPath/.env; then + echo "FAIL: You need to copy file env to .env and edit it!!!" + exit 1 +fi + +# backup old compose files +cp -f $MyScriptPath/docker-compose.yml $MyScriptPath/docker-compose-$Date.backup +# copy compose template to final compose file (OVERWRITTEN!!!) +cp -f $MyScriptPath/docker-compose-full_stack.yml $MyScriptPath/docker-compose.yml + +# Make relevant grafana templating direcotries +echo "MKDIR: creating $MyScriptPath/grafana/provisioning/datasources" +mkdir -p $MyScriptPath/grafana/provisioning/datasources +# backup old grafana datasource file +cp -f $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml $MyScriptPath/grafana/grafana-datasource-$Date.backup +# copy grafana datasource file template to grafana datasource file +cp -f $MyScriptPath/grafana/grafana-datasource-template.yml $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml + + # Replace .env MyPath Path with local path if NOT changed -sed -i -e "s#/YOUR_PATH_TO_CONTAINER_STATIC_DATA#$MyScriptPathContainer#g" .env +sed -i -e "s#/YOUR_PATH_TO_CONTAINER_STATIC_DATA#$MyScriptPathContainer#g" $MyScriptPath/.env # Read variables from .env file -source .env +source $MyScriptPath/.env echo "INFO: MyPath is $MyPath" @@ -35,6 +48,8 @@ echo "CHANGE: replace PLACE_YOUR_FQDN_HERE with $MyFQDN in $MyScriptPath/docker- sed -i -e "s/PLACE_YOUR_FQDN_HERE/$MyFQDN/g" $MyScriptPath/docker-compose.yml # Changes in grafana/provisioning/datasources/grafana-datasource.yml +echo "CHANGE: replace YOUR_INFLUXDB_URL with $INFLUX_URL in $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml" +sed -i -e "s#YOUR_INFLUXDB_URL#$INFLUX_URL#g" $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml echo "CHANGE: replace YOUR_ADMIN_TOKEN with $INFLUX_TOKEN in $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml" sed -i -e "s/YOUR_ADMIN_TOKEN/$INFLUX_TOKEN/g" $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml echo "CHANGE: replace YOUR_ORGANIZATION with $INFLUX_ORG in $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml" @@ -45,6 +60,8 @@ sed -i -e "s/YOUR_BUCKET_NAME/$INFLUX_BUCKET/g" $MyScriptPath/grafana/provisioni # Correct owner and permissions to satisfy the containers echo "CHMOD: chmod -R 755 $MyPath" chmod -R 755 $MyPath +echo "CHMOD: chmod -R 755 $MyScriptPath/grafana/provisioning" +chmod -R 755 $MyScriptPath/grafana/provisioning echo "CHMOD: chmod 644 $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml" chmod 644 $MyScriptPath/grafana/provisioning/datasources/grafana-datasource.yml echo "CHOWN: chown -R 472.472 $MyPath/grafana/var_lib"