Metrics in append

This commit is contained in:
Lorenzo Venerandi
2025-02-20 18:57:18 +01:00
parent a30fa7e10f
commit 4d2519462f
4 changed files with 27 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
import argparse
import src
import src.utils as ut
import time
def main():
@@ -32,12 +33,12 @@ def main():
pelato = src.Pelato()
if pelato.metrics_enabled:
pelato.metrics = ut.load_metrics(args.dir)
pelato.metrics = {}
start_time = time.time()
# Esecuzione del comando specificato
if args.command == "gen":
pelato.generate(args.dir)
pelato.metrics = {}
elif args.command == "build":
pelato.build(args.dir)
elif args.command == "deploy":
@@ -51,7 +52,12 @@ def main():
return
if pelato.metrics_enabled:
ut.dump_metrics(pelato.metrics, args.dir)
end_time = time.time()
pelato.metrics['time_total'] = '%.3f'%(end_time - start_time)
full_metrics = ut.load_metrics(args.dir)
full_metrics['runs'].append(pelato.metrics)
ut.dump_metrics(full_metrics, args.dir)
if __name__ == "__main__":
main()

View File

@@ -39,7 +39,7 @@ def generate(project_dir, registry_url, metrics, metrics_enabled):
print(f"Generating code for project {config['project_name']}")
if metrics_enabled:
gen_metrics['n_task'] = len(config['tasks'])
metrics['n_task'] = len(config['tasks'])
start_time = time.time()
# Rimozione della cartella di output

View File

@@ -2,9 +2,12 @@ import docker
import os
import logging
import yaml
import time
def deploy_components(project_dir, nats_host, nats_port, detached):
def deploy_components(project_dir, nats_host, nats_port, detached, metrics, metrics_enabled):
deploy_metrics = {}
# Check if the project directory is valid
if not os.path.exists(f"{project_dir}/gen"):
logging.error(f"Project directory is not valid")
@@ -15,10 +18,13 @@ def deploy_components(project_dir, nats_host, nats_port, detached):
# Docker client
client = docker.from_env()
if metrics_enabled:
start_time = time.time()
# Build the images for the project if they don't exist
try:
client.images.get("wash-deploy-image:latest")
except docker.errors.ImageNotFound:
except:
print(' - Building wash-deploy-image from Dockerfile...')
client.images.build(
@@ -26,6 +32,8 @@ def deploy_components(project_dir, nats_host, nats_port, detached):
dockerfile="deploy.Dockerfile",
tag="wash-deploy-image:latest"
)
if metrics_enabled:
deploy_metrics['image_build_time'] = '%.3f'%(time.time() - start_time)
try:
wait_list = []
@@ -46,6 +54,10 @@ def deploy_components(project_dir, nats_host, nats_port, detached):
logging.error(f"Error deploying project: {e}")
return
if metrics_enabled:
deploy_metrics['components_deploy_time'] = '%.3f'%(time.time() - start_time)
metrics['deploy'] = deploy_metrics
print("Project deployed successfully")
def __deploy_wadm(task_dir, client, nats_host, nats_port, detached, wait_list):

View File

@@ -13,7 +13,9 @@ def dump_metrics(metrics, project_dir):
def load_metrics(project_dir):
if not os.path.exists(f"{project_dir}/metrics.yaml"):
return {}
return {
"runs": []
}
with open(f"{project_dir}/metrics.yaml", 'r') as file:
metrics = yaml.safe_load(file)