Recursive Sorting fix and many logging/tracing enhancements #33

Merged
cameron merged 11 commits from feature/fix-recursive-sort into master 2025-06-12 20:03:21 +00:00
Showing only changes of commit a25ffcc351 - Show all commits

View File

@@ -3,7 +3,7 @@ use crate::otel::global_tracer;
use actix::prelude::*; use actix::prelude::*;
use futures::TryFutureExt; use futures::TryFutureExt;
use log::{debug, error, info, trace, warn}; use log::{debug, error, info, trace, warn};
use opentelemetry::trace::{Span, Tracer}; use opentelemetry::trace::{Span, Status, Tracer};
use opentelemetry::KeyValue; use opentelemetry::KeyValue;
use std::io::Result; use std::io::Result;
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
@@ -234,6 +234,16 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
playlist_path, playlist_path,
msg.video_path.file_name().unwrap().to_str().unwrap() msg.video_path.file_name().unwrap().to_str().unwrap()
); );
let tracer = global_tracer();
let mut span = tracer
.span_builder("playlistgenerator.generate_playlist")
.with_attributes(vec![
KeyValue::new("video_file", video_file.clone()),
KeyValue::new("playlist_file", playlist_file.clone()),
])
.start(&tracer);
Box::pin(async move { Box::pin(async move {
let wait_start = std::time::Instant::now(); let wait_start = std::time::Instant::now();
let permit = semaphore let permit = semaphore
@@ -245,9 +255,16 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
"Waited for {:?} before starting ffmpeg", "Waited for {:?} before starting ffmpeg",
wait_start.elapsed() wait_start.elapsed()
); );
span.add_event("Waited for FFMPEG semaphore", vec![
KeyValue::new("wait_time", wait_start.elapsed().as_secs_f64())
]);
if Path::new(&playlist_file).exists() { if Path::new(&playlist_file).exists() {
debug!("Playlist already exists: {}", playlist_file); debug!("Playlist already exists: {}", playlist_file);
span.set_status(Status::error(format!(
"Playlist already exists: {}",
playlist_file
)));
return Err(std::io::Error::from(std::io::ErrorKind::AlreadyExists)); return Err(std::io::Error::from(std::io::ErrorKind::AlreadyExists));
} }
@@ -282,6 +299,8 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
debug!("ffmpeg output: {:?}", res); debug!("ffmpeg output: {:?}", res);
} }
span.set_status(Status::Ok);
ffmpeg_result ffmpeg_result
}); });