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 futures::TryFutureExt;
use log::{debug, error, info, trace, warn};
use opentelemetry::trace::{Span, Tracer};
use opentelemetry::trace::{Span, Status, Tracer};
use opentelemetry::KeyValue;
use std::io::Result;
use std::path::{Path, PathBuf};
@@ -234,6 +234,16 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
playlist_path,
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 {
let wait_start = std::time::Instant::now();
let permit = semaphore
@@ -245,9 +255,16 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
"Waited for {:?} before starting ffmpeg",
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() {
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));
}
@@ -281,6 +298,8 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
if let Ok(ref res) = ffmpeg_result {
debug!("ffmpeg output: {:?}", res);
}
span.set_status(Status::Ok);
ffmpeg_result
});