Recursive Sorting fix and many logging/tracing enhancements #33
21
src/video.rs
21
src/video.rs
@@ -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));
|
||||
}
|
||||
|
||||
@@ -282,6 +299,8 @@ impl Handler<GeneratePlaylistMessage> for PlaylistGenerator {
|
||||
debug!("ffmpeg output: {:?}", res);
|
||||
}
|
||||
|
||||
span.set_status(Status::Ok);
|
||||
|
||||
ffmpeg_result
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user