Monitoring: trace history, trace search, and x:Trace over the stored traces (MON-10 to MON-17, MON-32)

A lossy collector subscriber keeps each inbound SMTP session that reached
MAIL FROM and each delivery attempt, info level and above and never raw
I/O, at most 1,000 events with strings cut at 4 KiB, and writes it when
the span closes as an x:Trace under the telemetry key class, scheduling
its indexing. The index task builds a document of event types, queue ids
and keywords when indexTelemetry is on. x:Trace/get derives timestamp,
from, to and size; /query filters by opening event, text, queueId and
time; /set destroys only. The data purge honours holdTracesFor. The shared
tracing and webhook suites run.
This commit is contained in:
2026-09-19 08:31:04 -07:00
parent 9f7035588f
commit fc2d4f237f
13 changed files with 686 additions and 9 deletions
-4
View File
@@ -7,9 +7,7 @@
#[cfg(feature = "pending-rebuild")] // inbuxa: pending-rebuild, see docs/spec/features/
pub mod alerts;
pub mod metrics;
#[cfg(feature = "pending-rebuild")] // inbuxa: pending-rebuild, see docs/spec/features/
pub mod tracing;
#[cfg(feature = "pending-rebuild")] // inbuxa: pending-rebuild, see docs/spec/features/
pub mod webhooks;
use crate::utils::server::TestServerBuilder;
@@ -61,9 +59,7 @@ pub async fn telemetry_tests() {
#[cfg(feature = "pending-rebuild")]
alerts::test(&test).await;
metrics::test(&test).await;
#[cfg(feature = "pending-rebuild")]
tracing::test(&test).await;
#[cfg(feature = "pending-rebuild")]
webhooks::test(&test).await;
if test.is_reset() {