Skip to content
Snippets Groups Projects

WIP: Re-implementation of Theodolite with Kotlin/Quarkus

Merged Sören Henning requested to merge theodolite-kotlin into master
2 files
+ 27
12
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 25
11
from fastapi import FastAPI
from fastapi import FastAPI,Request
import trend_slope_computer as trend_slope_computer
import logging
import os
import pandas as pd
import json
import numpy as np
from fastapi.encoders import jsonable_encoder
app = FastAPI()
def execute(results, threshold):
@app.get("/evaluate-slope")
def evaluate_slope(total_lag):
print("request received")
print(total_lag)
execute(total_lag, 1000)
return {"suitable" : "false"}
d = []
for result in results:
#print(results)
group = result['metric']['group']
for value in result['values']:
# print(value)
d.append({'group': group, 'timestamp': int(
value[0]), 'value': int(value[1]) if value[1] != 'NaN' else 0})
df = pd.DataFrame(d)
def execute(total_lag, threshold):
df = pd.DataFrame(total_lag)
print(df)
try:
trend_slope = trend_slope_computer.compute(df, 60)
trend_slope = trend_slope_computer.compute(df, 0)
except Exception as e:
err_msg = 'Computing trend slope failed'
print(err_msg)
@@ -30,3 +35,12 @@ def execute(total_lag, threshold):
print(f"Trend Slope: {trend_slope}")
return trend_slope < threshold
@app.post("/evaluate-slope",response_model=bool)
async def evaluate_slope(request: Request):
print("request received")
x = json.loads(await request.body())
#x = np.array(x['total_lag'])
y = execute(x['total_lag'], 1000)
print(print(y))
return y
Loading