Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 98f4235d authored by MOLLI Martin's avatar MOLLI Martin
Browse files

Change metrics

parent 45d59dbb
No related branches found
No related tags found
No related merge requests found
Pipeline #1140339 passed
build.sh 0 → 100644
#!/bin/bash
# Step 2: Build Docker images locally
echo "Building Docker images for services..."
# Build images for camera, motion_detector, and object_recognizer
docker build -t camera:latest ./services/camera
docker build -t motion_detector:latest ./services/motion_detector
docker build -t object_recognizer:latest ./services/object_recognizer
# Step 4: Set up docker-compose for deployment
echo "Navigating to deployment directory..."
cd deploy/docker-compose || exit
# Optional: Stop and remove existing containers and volumes (if any)
echo "Stopping and removing existing containers..."
docker-compose down --volumes --remove-orphans
import random
import socket
from contextlib import contextmanager
import cv2
import pickle
import struct
......@@ -13,6 +15,15 @@ import imutils # pip install imutils
import logging
from opentelemetry.propagate import inject
@contextmanager
def videocapture(*args, **kwargs):
cap = cv2.VideoCapture(*args, **kwargs)
try:
yield cap
finally:
cap.release()
# Configure logging
logging.basicConfig(
format='%(asctime)s - %(levelname)s - %(message)s',
......@@ -23,14 +34,14 @@ logging.basicConfig(
]
)
frametime_histogram = meter.create_histogram(
frametime_histogram = meter.create_gauge(
name="camera_frame_time",
description="Frames time",
unit="ms"
)
sleep_time_between_frame = meter.create_histogram(
name="sleep_time_between_frame",
sleep_time_between_frame = meter.create_gauge(
name="camera_sleep_time_between_frame",
description="sleep_time_between_frame",
unit="ms"
)
......@@ -79,9 +90,6 @@ def generate_random_intervals(events_per_hour):
def main():
#Connect to motion detector and stream video
while True:
client_socket = create_socket_and_connect(host_ip, port)
......@@ -125,7 +133,7 @@ def stream_video_clip(client_socket: socket):
# Open the appropriate video file
video_path = with_animal_video if motion else no_animal_video
with cv2.VideoCapture(video_path) as video_capture:
with videocapture(video_path) as video_capture:
# Determine the number of frames to process according to the clip length
if motion:
......@@ -148,7 +156,7 @@ def stream_video_clip(client_socket: socket):
video_capture.set(cv2.CAP_PROP_POS_FRAMES, 0) # Reload video
continue
else:
logging.info(f"Motion frames processed: {frame_number}")
logging.info(f"Frames read: {frame_number}")
break
# Resize frame for consistent processing
......@@ -169,12 +177,12 @@ def stream_video_clip(client_socket: socket):
#Metric logging
frametime = time.time() - app_start_time
frametime_histogram.record(frametime)
frametime_histogram.set(frametime)
#Sleep if needed to maintain frame rate
elapsed_time = time.time() - frame_beginning_time
sleep_time = MIN_FRAME_TIME - elapsed_time
sleep_time_between_frame.record(sleep_time)
sleep_time_between_frame.set(sleep_time)
time.sleep(max(0.0, sleep_time))
except Exception as error:
logging.error(f"Error sending frame: {error}")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment