changes
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Wolfgang Hottgenroth 2025-03-12 20:49:44 +01:00
parent 83f71b3f81
commit a5d3b13629
4 changed files with 28 additions and 20 deletions

View File

@ -7,22 +7,7 @@ IMAGE_NAME=numberimage
docker build --progress=plain -t $IMAGE_NAME . docker build --progress=plain -t $IMAGE_NAME .
SECRETS=`mktemp` . load-debug-env
gpg --decrypt --passphrase $GPG_PASSPHRASE --yes --batch --output $SECRETS ./deployment/secrets.asc
. $SECRETS
rm $SECRETS
DB_NAMESPACE=database1
DB_DEPLOYNAME=database
REDIS_NAMESPACE=redis
REDIS_SERVICE_NAME=redis
PGHOST=`kubectl get services $DB_DEPLOYNAME -n $DB_NAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"`
REDISHOST=`kubectl get services $REDIS_SERVICE_NAME -n $REDIS_NAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"`
REDIS_URL=redis://$REDISHOST:6379/4
docker run \ docker run \
-it \ -it \

15
load-debug-env Normal file
View File

@ -0,0 +1,15 @@
SECRETS=`mktemp`
gpg --decrypt --passphrase $GPG_PASSPHRASE --yes --batch --output $SECRETS ./deployment/secrets.asc
. $SECRETS
rm $SECRETS
DB_NAMESPACE=database1
DB_DEPLOYNAME=database
REDIS_NAMESPACE=redis
REDIS_SERVICE_NAME=redis
PGHOST=`kubectl get services $DB_DEPLOYNAME -n $DB_NAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"`
REDISHOST=`kubectl get services $REDIS_SERVICE_NAME -n $REDIS_NAMESPACE -o jsonpath="{.status.loadBalancer.ingress[0].ip}"`
REDIS_URL=redis://$REDISHOST:6379/4

View File

@ -4,6 +4,8 @@ import json
import plotly.express as px import plotly.express as px
import plotly.graph_objects as po import plotly.graph_objects as po
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.ticker import ScalarFormatter
import pandas as pd import pandas as pd
import psycopg import psycopg
import sqlalchemy import sqlalchemy
@ -131,13 +133,16 @@ def plot_png():
max(cast(values->'stratum'->>'value' as int)) as stratum max(cast(values->'stratum'->>'value' as int)) as stratum
from measurements from measurements
where time >= date_trunc('day', now()) AND time < date_trunc('day', now()) + '1 day'::interval and where time >= date_trunc('day', now()) AND time < date_trunc('day', now()) + '1 day'::interval and
application = 'TSM' and attributes->>'Label' = 'david' application = 'SNMP' and attributes->>'Label' = 'harrison'
group by bucket, device group by bucket, device
order by bucket, device order by bucket, device
""" """
df = pd.read_sql(query, con=engine) df = pd.read_sql(query, con=engine)
df['rootdisp'] = df['rootdisp'] / 1e6
fig, ax1 = plt.subplots() plot_date = df['bucket'].dt.date.iloc[0] if not df.empty else "Unknown Date"
fig, ax1 = plt.subplots(figsize=(10,5))
ax1.plot(df['bucket'], df['rootdisp'], 'r-', label='Root Dispersion') ax1.plot(df['bucket'], df['rootdisp'], 'r-', label='Root Dispersion')
ax1.set_xlabel('Time') ax1.set_xlabel('Time')
@ -150,9 +155,12 @@ def plot_png():
ax2.tick_params(axis='y', labelcolor='b') ax2.tick_params(axis='y', labelcolor='b')
ax2.set_yticks(range(int(df['stratum'].min()), int(df['stratum'].max()) + 1)) ax2.set_yticks(range(int(df['stratum'].min()), int(df['stratum'].max()) + 1))
fig.suptitle('NTP Server Numbers') fig.suptitle(f"harrison - {plot_date}")
fig.tight_layout() fig.tight_layout()
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
fig.autofmt_xdate(rotation=45)
img_io = io.BytesIO() img_io = io.BytesIO()
plt.savefig(img_io, format='png') plt.savefig(img_io, format='png')
img_io.seek(0) img_io.seek(0)

View File

@ -10,7 +10,7 @@ import ntp_routes
if __name__ == '__main__': if __name__ == '__main__':
app.run(port=8080) app.run(host='0.0.0.0', port=8080)
else: else:
exposed_app = ProxyFix(app, x_for=1, x_host=1) exposed_app = ProxyFix(app, x_for=1, x_host=1)