Add enhanced logging and tracing for playlist generation
This commit is contained in:
21
src/video.rs
21
src/video.rs
@@ -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
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user