Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions API_mem_usage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from flask import Flask, jsonify,request
from db_connect import get_data, get_query

app = Flask(__name__)


@app.route('/usage', methods=['POST'])
def get_usage():

data = request.get_json()
print(data)


timestamp = data.get('timestamp')
hour = data.get('hour')
minute = data.get('minute')
second = data.get('second')

query=get_query(timestamp, hour, minute, second)


#print(query)
data= get_data(query)
if data == []:
return "no data available at this time"
else:

keys = ['id', 'timestamp', 'memory_footprint', 'cpu_usage', 'hour', 'minute', 'second']

result = []
for sublist in data:
dictionary = dict(zip(keys, sublist))
result.append(dictionary)

print(result)

return jsonify(result)


if __name__ == '__main__':
app.run(port=2910)
57 changes: 57 additions & 0 deletions db_connect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@


import psycopg2
from psycopg2.extras import RealDictCursor
import os
from dotenv import load_dotenv


# loading from .env file
load_dotenv()

db_user=os.getenv('DB_USER')
db_password=os.getenv('DB_password')



def db_connect():
conn = psycopg2.connect(
host='localhost',
port='5432',
database='db_ushnah',
user=db_user,
password=db_password
)
return conn

def get_data(query):
conn=db_connect()
cursor = conn.cursor()
cursor.execute(query)
data = cursor.fetchall()
print(data)
cursor.close()
return data

def get_query(timestamp, hour, minute, second):
if timestamp is not None:
query = f"SELECT * FROM memory_usage WHERE timestamp = '{timestamp}'"
else:
query = "SELECT * FROM memory_usage WHERE "
conditions = []

if hour is not None:
conditions.append(f"hour = {hour}")
if minute is not None and hour is None and second is None:
conditions.append(f"minute = {minute}")
if minute is not None and hour is None and second is not None:
conditions.append(f"minute = {minute} and second = {second}")
if minute is not None and hour is not None and second is None:
conditions.append(f"hour = {hour} and minute = {minute}")
if second is not None and hour is None and minute is None:
conditions.append(f"second = {second}")

query += " and ".join(conditions)

return query