diff --git a/deploy/client/Dockerfile b/deploy/client/Dockerfile index dac92f2..d783b12 100644 --- a/deploy/client/Dockerfile +++ b/deploy/client/Dockerfile @@ -20,8 +20,6 @@ RUN apt-get update \ WORKDIR /app COPY --from=builder /build/target/release/rtr_debug_client /usr/local/bin/rtr_debug_client -COPY deploy/client/entrypoint.sh /usr/local/bin/rtr-debug-client-entrypoint.sh - -RUN chmod +x /usr/local/bin/rtr-debug-client-entrypoint.sh +COPY --chmod=755 deploy/client/entrypoint.sh /usr/local/bin/rtr-debug-client-entrypoint.sh ENTRYPOINT ["/usr/local/bin/rtr-debug-client-entrypoint.sh"] diff --git a/deploy/server/Dockerfile b/deploy/server/Dockerfile index 501d280..0067d7c 100644 --- a/deploy/server/Dockerfile +++ b/deploy/server/Dockerfile @@ -61,6 +61,7 @@ RUN apt-get update \ WORKDIR /app COPY --from=builder /build/target/release/rpki /usr/local/bin/rpki +COPY --chmod=755 deploy/server/entrypoint.sh /usr/local/bin/rpki-rtr-entrypoint.sh RUN mkdir -p /app/data /app/rtr-db /app/certs /app/slurm /app/logs @@ -75,4 +76,4 @@ ENV RPKI_RTR_ENABLE_TLS=false \ EXPOSE 323 324 -CMD ["/usr/local/bin/rpki"] +ENTRYPOINT ["/usr/local/bin/rpki-rtr-entrypoint.sh"] diff --git a/deploy/server/entrypoint.sh b/deploy/server/entrypoint.sh new file mode 100644 index 0000000..a747ea5 --- /dev/null +++ b/deploy/server/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -eu + +mkdir -p /app/logs + +log_name="${HOSTNAME:-rpki-rtr}" +stdout_log="/app/logs/${log_name}.stdout.log" +stderr_log="/app/logs/${log_name}.stderr.log" + +exec /usr/local/bin/rpki "$@" >>"$stdout_log" 2>>"$stderr_log" diff --git a/src/main.rs b/src/main.rs index 117d616..90ee0e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ use std::env; use std::net::SocketAddr; use std::sync::{Arc, RwLock}; -use std::time::Duration; +use std::time::{Duration, Instant}; use anyhow::{Result, anyhow}; use chrono::{FixedOffset, Utc}; @@ -284,13 +284,29 @@ fn init_shared_cache(config: &AppConfig, store: &RtrStore) -> Result { @@ -410,6 +427,13 @@ fn spawn_refresh_task( } } }; + info!( + "RTR source-to-delta timing: phase=refresh_cache_update_complete, ccr_dir={}, payload_count={}, changed={}, elapsed_ms={}", + payload_load_config.ccr_dir, + payload_count, + updated, + source_to_delta_started.elapsed().as_millis() + ); if updated { notifier.notify_cache_updated(); @@ -418,8 +442,10 @@ fn spawn_refresh_task( } Err(err) => { warn!( - "failed to reload CCR/SLURM payloads from {}: {:?}", - payload_load_config.ccr_dir, err + "failed to reload CCR/SLURM payloads from {}: {:?} (source_to_delta_elapsed_ms={})", + payload_load_config.ccr_dir, + err, + source_to_delta_started.elapsed().as_millis() ); } }