moon-change-point

Production-oriented MoonBit change-point detection, streaming windows, multivariate monitoring, replay, SLO and alert routing

change-point
anomaly-detection
time-series
cusum
moon add Zy789kl/moon-change-point@0.3.0
Download zip
Author
Version
0.3.0
License
Apache-2.0
Last updated
1 hour ago
Downloads
6
README

#moon-change-point

moon-change-point is a MoonBit library for online and offline statistical change-point detection in production telemetry and time-series pipelines. It targets WASM, WASM-GC, JavaScript, and native builds through the standard MoonBit toolchain.

#Project positioning

The library provides composable detection primitives for mean shifts, variance changes, spikes, trends, distribution drift, and multivariate changes. It also includes the surrounding data-quality, streaming, evaluation, replay, and alerting utilities needed to move from a detector score to an operational signal.

#Core capabilities

  • Online detection: CUSUM, Page-Hinkley, simplified Bayesian online detection, EWMA, Robust-Z, IQR, trend, variance, seasonal, rank, and distribution detectors.
  • Streaming pipelines: bounded windows, time aggregation, watermark-based late-data handling, multi-metric monitoring, suppression, ensembles, and multi-scale evidence.
  • Offline analysis: binary segmentation, dynamic programming, split inspection, change-point metrics, tolerance-aware evaluation, and piecewise-constant error.
  • Multivariate monitoring: vector statistics, projection detection, Mahalanobis distance, covariance/correlation analysis, and correlated-change scoring.
  • Operational utilities: data-quality contracts, threshold calibration, bootstrap estimates, deterministic signal generation, replay comparison, explanations, SLO tracking, incident clustering, alert routing, rollout guardrails, and canary plans.
  • Integration outputs: stable JSON Lines, CSV, Prometheus, Markdown, and summary JSON exports for logs, notebooks, CI artifacts, and dashboards.

#Quick start

Add the package to a MoonBit module:

moon add Zy789kl/moon-change-point

Use a detector through the public package API:

///|
import {
"Zy789kl/moon-change-point" @cp,
}

///|
fn main {
let detector = @cp.Cusum::new(target_mean=0.0, control_limit=5.0, drift=0.5)
let result = detector.update_result(2.0, index=1)
println(result.summary())
}

DetectionResult exposes changed, score, confidence, direction, index, and evidence, so callers can choose their own storage and alerting policy.

#CLI

The repository includes a small reproducible command-line program:

moon run cmd/main

It generates a fixed 512-sample mean-and-variance-shift scenario and prints a Markdown benchmark table for CUSUM, Robust-Z, and projection ensemble detection. The library API remains the primary integration surface for applications.

#Architecture

The root package is organized by responsibility:

  • types.mbt, stats.mbt, and window.mbt define public results, stable online statistics, and bounded windows.
  • cusum.mbt, page_hinkley.mbt, bayesian.mbt, adaptive_detectors.mbt, and advanced_detectors.mbt implement online detectors.
  • pipeline.mbt, stream_engine.mbt, time_windows.mbt, events.mbt, and alert_routing.mbt compose detectors into streaming workflows.
  • offline_analysis.mbt, segment_quality.mbt, features.mbt, and rank_tests.mbt provide historical analysis and feature-level evidence.
  • multivariate.mbt, matrix.mbt, and correlation.mbt cover vector and cross-series monitoring.
  • quality.mbt, calibration.mbt, sampling.mbt, replay.mbt, explainability.mbt, and reporting.mbt support validation, reproducibility, and integration.
  • production_*.mbt provides production-facing contracts, preprocessing, forecasting, monitoring, incident lifecycle, SLOs, rollout guardrails, canary control, and telemetry export.
  • cmd/main is a runnable benchmark entry point; it does not add a second library abstraction.

#Benchmark

The benchmark uses a deterministic 512-sample scenario with change point 256, baseline 10.0, mean shift 2.0, pre-change noise 0.15, post-change noise 0.7, and seed 20260818.

detectordetectionsfirst detectionprecisionrecallF1
CUSUM772580.01298701298701298810.025641025641025647
Robust-Z112570.0909090909090909110.16666666666666669
Projection ensemble1257111

The complete table, checksums, reproduction command, and local wall-clock measurements are in BENCHMARK.md.

#Tests

The repository contains boundary, regression, integration, and long-stream tests for the public API:

moon fmt --check moon check --deny-warn --target all moon build --target all moon test --deny-warn --target all

The current test suite passes 425 tests. moon info regenerates the tracked public interface files so API changes are visible in review.

#CI

GitHub Actions installs the latest stable MoonBit toolchain and runs format, warning-free checks, all-target builds, generated-interface checks, and tests on Ubuntu, macOS, and Windows. The reproducible benchmark workflow runs manually or for version tags.

#License

Apache-2.0. See LICENSE.

The published package is available as Zy789kl/moon-change-point, and the source repository is github.com/Zy789kl/moon-change-point.

#
AdaptiveBaseline

pub struct AdaptiveBaseline {
moments : OnlineMoments
value : Double
learning_rate : Double
initialized : Bool
}

A slowly adapting baseline for streams whose normal level changes over time.

#
AdaptiveBaseline::new

fn AdaptiveBaseline::new(learning_rate? : Double) -> AdaptiveBaseline

#
AdaptiveBaseline::sample_count

fn AdaptiveBaseline::sample_count(self : AdaptiveBaseline) -> Int

#
AdaptiveBaseline::summary

#
AdaptiveBaseline::update

fn AdaptiveBaseline::update(self : AdaptiveBaseline, observation : Double) -> Double

#
AdaptiveBaseline::value

fn AdaptiveBaseline::value(self : AdaptiveBaseline) -> Double

#
AdaptiveThreshold

pub struct AdaptiveThreshold {
threshold : Double
rate : Double
minimum : Double
maximum : Double
count : Int
}

#
AdaptiveThreshold::count

fn AdaptiveThreshold::count(self : AdaptiveThreshold) -> Int

#
AdaptiveThreshold::new

fn AdaptiveThreshold::new(initial? : Double, rate? : Double, minimum? : Double, maximum? : Double) -> AdaptiveThreshold

#
AdaptiveThreshold::observe

fn AdaptiveThreshold::observe(self : AdaptiveThreshold, score : Double, positive : Bool) -> Double

#
AdaptiveThreshold::value

fn AdaptiveThreshold::value(self : AdaptiveThreshold) -> Double

#
AggregationKind

pub(all) enum AggregationKind {
MeanAggregate
SumAggregate
MinimumAggregate
MaximumAggregate
StandardDeviationAggregate
}

Aggregation choices for a fixed streaming window.

#
AlertBudget

pub struct AlertBudget {
capacity : Double
refill : Double
tokens : Double
suppressed : Int
}

#
AlertBudget::allow

fn AlertBudget::allow(self : AlertBudget) -> Bool

#
AlertBudget::new

fn AlertBudget::new(capacity? : Int, refill? : Double) -> AlertBudget

#
AlertBudget::suppressed

fn AlertBudget::suppressed(self : AlertBudget) -> Int

#
AlertBudget::tick

fn AlertBudget::tick(self : AlertBudget) -> Unit

#
AlertEvent

pub struct AlertEvent {
metric : String
point : ChangePoint
suppressed : Bool
ordinal : Int
}

A named alert emitted by a multi-series pipeline.

#
AlertEvent::new

fn AlertEvent::new(metric : String, point : ChangePoint, suppressed? : Bool, ordinal? : Int) -> AlertEvent

Constructs an alert event.

#
AlertPolicy

pub struct AlertPolicy {
minimum_score : Double
minimum_confidence : Double
minimum_gap : Int
recovery_points : Int
quiet_points : Int
healthy_points : Int
}

Controls deduplication, minimum severity, and recovery for one metric.

#
AlertPolicy::accept

fn AlertPolicy::accept(self : AlertPolicy, result : DetectionResult) -> Bool

#
AlertPolicy::minimum_score

fn AlertPolicy::minimum_score(self : AlertPolicy) -> Double

#
AlertPolicy::new

fn AlertPolicy::new(minimum_score? : Double, minimum_confidence? : Double, minimum_gap? : Int, recovery_points? : Int) -> AlertPolicy

#
AlertPolicy::reset

fn AlertPolicy::reset(self : AlertPolicy) -> Unit

#
AlertSeverity

pub(all) enum AlertSeverity {
Informational
Warning
Critical
}

The severity used by alerting integrations.

#
Ar1Forecaster

pub struct Ar1Forecaster {
mean : Double
covariance : Double
variance : Double
previous : Double
count : Int
forgetting : Double
}

#
Ar1Forecaster::new

fn Ar1Forecaster::new(forgetting? : Double) -> Ar1Forecaster

#
Ar1Forecaster::update

fn Ar1Forecaster::update(self : Ar1Forecaster, value : Double) -> ForecastPoint

#
Bayesian

pub struct Bayesian {
hazard_rate : Double
run_length_probs : Array[Double]
mu_t : Array[Double]
kappa_t : Array[Double]
alpha_t : Array[Double]
beta_t : Array[Double]
mu0 : Double
kappa0 : Double
alpha0 : Double
beta0 : Double
max_run_length : Int
}

Bayesian implements a simplified Bayesian Online Change Point Detection using a Normal-Gamma conjugate prior.

#
Bayesian::new

fn Bayesian::new(hazard_rate? : Double, mu0? : Double, kappa0? : Double, alpha0? : Double, beta0? : Double, max_run_length? : Int) -> Bayesian

Creates a new Bayesian Online Change Point Detector.

#
Bayesian::update

fn Bayesian::update(self : Bayesian, value : Double) -> Double

Updates the detector and returns the probability of a change point at the current step.

#
Bayesian::update_result

fn Bayesian::update_result(self : Bayesian, value : Double, index? : Int) -> DetectionResult

Rich result form of the Bayesian update.

#
BenchmarkResult

pub struct BenchmarkResult {
name : String
samples : Int
passes : Int
detections : Int
first_detection : Int
checksum : Double
truth_count : Int
metrics : ChangePointMetrics
}

Results of a deterministic detector benchmark.

#
BenchmarkResult::empty

fn BenchmarkResult::empty(name : String) -> BenchmarkResult

#
BenchmarkResult::summary

fn BenchmarkResult::summary(self : BenchmarkResult) -> String

#
BootstrapEstimate

pub struct BootstrapEstimate {
mean : Double
lower : Double
upper : Double
standard_error : Double
replicates : Int
}

#
ChangeDirection

pub(all) enum ChangeDirection {
Increase
Decrease
VarianceIncrease
VarianceDecrease
DistributionShift
Unknown
}

The direction of a distributional change.

#
ChangePoint

pub struct ChangePoint {
timestamp : Int64
index : Int
score : Double
confidence : Double
severity : AlertSeverity
direction : ChangeDirection
detector : String
baseline : Double
observed : Double
}

A detected change with enough context for a downstream alert or dashboard.

#
ChangePoint::from_result

fn ChangePoint::from_result(point : SignalPoint, result : DetectionResult, detector : String, baseline : Double) -> ChangePoint

Creates a change point from an online result.

#
ChangePoint::summary

fn ChangePoint::summary(self : ChangePoint) -> String

Returns a stable log line for a change point.

#
ChangePointMetrics

pub struct ChangePointMetrics {
true_positives : Int
false_positives : Int
false_negatives : Int
precision : Double
recall : Double
f1 : Double
mean_detection_delay : Double
}

Quality metrics for a set of predicted change indices.

#
ChangePointMetrics::empty

#
ConsecutiveRule

pub struct ConsecutiveRule {
required : Int
hits : Int
misses : Int
}

A debouncer that requires several consecutive positive observations.

#
ConsecutiveRule::hits

fn ConsecutiveRule::hits(self : ConsecutiveRule) -> Int

#
ConsecutiveRule::new

fn ConsecutiveRule::new(required? : Int) -> ConsecutiveRule

#
ConsecutiveRule::push

fn ConsecutiveRule::push(self : ConsecutiveRule, positive : Bool) -> Bool

#
Cusum

pub struct Cusum {
target_mean : Double
control_limit : Double
drift : Double
g_positive : Double
g_negative : Double
t : Int
}

Cusum implements the Cumulative Sum algorithm for detecting shifts in the mean.

#
Cusum::new

fn Cusum::new(target_mean? : Double, control_limit? : Double, drift? : Double) -> Cusum

Creates a new CUSUM detector.

#
Cusum::reset

fn Cusum::reset(self : Cusum) -> Unit

Resets the internal accumulators.

#
Cusum::update

fn Cusum::update(self : Cusum, value : Double) -> Bool

Updates the CUSUM detector with a new value and returns true if a change is detected.

#
Cusum::update_result

fn Cusum::update_result(self : Cusum, value : Double, index? : Int) -> DetectionResult

Rich result form of update, retaining the direction and evidence.

#
DataQualityGate

pub struct DataQualityGate {
minimum_ratio : Double
reject_non_monotonic : Bool
reject_dimension_mismatch : Bool
}

#
DataQualityGate::accept

fn DataQualityGate::accept(self : DataQualityGate, report : QualityReport) -> Bool

#
DataQualityGate::new

fn DataQualityGate::new(minimum_ratio? : Double, reject_non_monotonic? : Bool, reject_dimension_mismatch? : Bool) -> DataQualityGate

#
DetectionExplanation

pub struct DetectionExplanation {
result : DetectionResult
baseline : Double
observed : Double
deviation : Double
relative_change : Double
contributions : Array[EvidenceContribution]
recommendation : String
}

#
DetectionExplanation::empty

fn DetectionExplanation::empty(index? : Int) -> DetectionExplanation

#
DetectionResult

pub struct DetectionResult {
changed : Bool
score : Double
confidence : Double
direction : ChangeDirection
index : Int
evidence : Double
}

A normalized result returned by online and offline detectors.

#
DetectionResult::new

fn DetectionResult::new(changed : Bool, score : Double, confidence : Double, direction : ChangeDirection, index : Int, evidence? : Double) -> DetectionResult

Builds a result while keeping confidence and evidence in a safe range.

#
DetectionResult::quiet

fn DetectionResult::quiet(index? : Int) -> DetectionResult

Returns a result that represents an ordinary observation.

#
DetectionResult::summary

fn DetectionResult::summary(self : DetectionResult) -> String

Produces a compact representation suitable for logs.

#
Detector

pub struct Detector {
detector : DetectorType
suppression_count : Int
suppression_limit : Int
}

Detector wraps a specific algorithm and supports multi-metric alert suppression.

#
Detector::new

fn Detector::new(detector : DetectorType, suppression_limit? : Int) -> Detector

Creates a new multi-metric detector wrapper.

#
Detector::update

fn Detector::update(self : Detector, value : Double) -> Bool

Updates the detector and handles alert suppression. Returns true if an unsuppressed alert is triggered.

#
Detector::update_result

fn Detector::update_result(self : Detector, value : Double, index? : Int) -> DetectionResult

Rich result form of the detector wrapper. Suppression is applied to the change flag only.

#
DetectorSpec

pub struct DetectorSpec {
name : String
family : String
online : Bool
multivariate : Bool
robust : Bool
default_threshold : Double
description : String
}

Public algorithm metadata for dashboards and configuration UIs.

#
DetectorSpec::new

fn DetectorSpec::new(name : String, family : String, online : Bool, multivariate : Bool, robust : Bool, default_threshold : Double, description : String) -> DetectorSpec

#
DetectorSpec::summary

fn DetectorSpec::summary(self : DetectorSpec) -> String

#
DetectorType

pub(all) enum DetectorType {
CusumDetector(Cusum)
PageHinkleyDetector(PageHinkley)
BayesianDetector(Bayesian)
}

DetectorType represents the type of change point detector to use.

#
DeterministicRng

pub struct DeterministicRng {
state : Int64
}

A deterministic pseudo-random source used by benchmarks and reproducible tests.

#
DeterministicRng::new

fn DeterministicRng::new(seed? : Int64) -> DeterministicRng

#
DeterministicRng::next

fn DeterministicRng::next(self : DeterministicRng) -> Int64

#
DeterministicRng::normalish

fn DeterministicRng::normalish(self : DeterministicRng, amplitude? : Double) -> Double

#
DeterministicRng::symmetric

fn DeterministicRng::symmetric(self : DeterministicRng) -> Double

#
DeterministicRng::unit

fn DeterministicRng::unit(self : DeterministicRng) -> Double

#
DistributionShiftDetector

pub struct DistributionShiftDetector {
reference : DoubleWindow
current : DoubleWindow
threshold : Double
index : Int
}

Compares adjacent windows and emits a distribution-shift result.

#
DistributionShiftDetector::new

fn DistributionShiftDetector::new(window_size? : Int, threshold? : Double) -> DistributionShiftDetector

#
DistributionShiftDetector::update

#
DoubleWindow

pub struct DoubleWindow {
capacity : Int
values : Array[Double]
start : Int
length : Int
}

A bounded ring buffer for numeric streaming windows.

#
DoubleWindow::capacity

fn DoubleWindow::capacity(self : DoubleWindow) -> Int

#
DoubleWindow::clear

fn DoubleWindow::clear(self : DoubleWindow) -> Unit

#
DoubleWindow::first

fn DoubleWindow::first(self : DoubleWindow) -> Double?

#
DoubleWindow::get

fn DoubleWindow::get(self : DoubleWindow, index : Int) -> Double?

#
DoubleWindow::is_empty

fn DoubleWindow::is_empty(self : DoubleWindow) -> Bool

#
DoubleWindow::is_full

fn DoubleWindow::is_full(self : DoubleWindow) -> Bool

#
DoubleWindow::last

fn DoubleWindow::last(self : DoubleWindow) -> Double?

#
DoubleWindow::length

fn DoubleWindow::length(self : DoubleWindow) -> Int

#
DoubleWindow::mean

fn DoubleWindow::mean(self : DoubleWindow) -> Double

#
DoubleWindow::median

fn DoubleWindow::median(self : DoubleWindow) -> Double

#
DoubleWindow::new

fn DoubleWindow::new(capacity : Int) -> DoubleWindow

Creates a fixed-capacity window. Non-positive capacities are normalized to one.

#
DoubleWindow::push

fn DoubleWindow::push(self : DoubleWindow, value : Double) -> Double?

Adds a value and returns the value evicted from a full window, if any.

#
DoubleWindow::quantile

fn DoubleWindow::quantile(self : DoubleWindow, probability : Double) -> Double

#
DoubleWindow::slope

fn DoubleWindow::slope(self : DoubleWindow) -> Double

#
DoubleWindow::snapshot

fn DoubleWindow::snapshot(self : DoubleWindow) -> StatsSummary

#
DoubleWindow::standard_deviation

fn DoubleWindow::standard_deviation(self : DoubleWindow) -> Double

#
DoubleWindow::sum

fn DoubleWindow::sum(self : DoubleWindow) -> Double

#
DoubleWindow::to_array

fn DoubleWindow::to_array(self : DoubleWindow) -> Array[Double]

#
DoubleWindow::variance

fn DoubleWindow::variance(self : DoubleWindow) -> Double

#
DualSidedDetector

pub struct DualSidedDetector {
positive : Cusum
negative : Cusum
index : Int
}

#
DualSidedDetector::new

fn DualSidedDetector::new(target? : Double, limit? : Double, drift? : Double) -> DualSidedDetector

#
DualSidedDetector::update

fn DualSidedDetector::update(self : DualSidedDetector, value : Double) -> DetectionResult

#
EnsembleResult

pub struct EnsembleResult {
result : DetectionResult
votes : Int
detector_count : Int
agreement : Double
}

#
EventHistory

pub struct EventHistory {
capacity : Int
events : Array[AlertEvent]
total : Int
}

#
EventHistory::critical_count

fn EventHistory::critical_count(self : EventHistory) -> Int

#
EventHistory::events

fn EventHistory::events(self : EventHistory) -> Array[AlertEvent]

#
EventHistory::latest

fn EventHistory::latest(self : EventHistory) -> AlertEvent?

#
EventHistory::length

fn EventHistory::length(self : EventHistory) -> Int

#
EventHistory::new

fn EventHistory::new(capacity? : Int) -> EventHistory

#
EventHistory::push

fn EventHistory::push(self : EventHistory, event : AlertEvent) -> Unit

#
EventHistory::total

fn EventHistory::total(self : EventHistory) -> Int

#
EventHistory::unsuppressed_count

fn EventHistory::unsuppressed_count(self : EventHistory) -> Int

#
EvidenceContribution

pub struct EvidenceContribution {
name : String
value : Double
weight : Double
contribution : Double
}

Structured evidence for explaining why a detector emitted an alert.

#
EvidenceContribution::new

fn EvidenceContribution::new(name : String, value : Double, weight? : Double) -> EvidenceContribution

#
EwmaDetector

pub struct EwmaDetector {
baseline : Double
variance : Double
alpha : Double
threshold : Double
warmup : Int
count : Int
index : Int
initialized : Bool
}

EWMA residual detector. It is useful for low-latency monitoring of a service metric.

#
EwmaDetector::baseline

fn EwmaDetector::baseline(self : EwmaDetector) -> Double

#
EwmaDetector::new

fn EwmaDetector::new(alpha? : Double, threshold? : Double, warmup? : Int, initial_mean? : Double, initial_variance? : Double) -> EwmaDetector

#
EwmaDetector::reset

fn EwmaDetector::reset(self : EwmaDetector) -> Unit

#
EwmaDetector::scale

fn EwmaDetector::scale(self : EwmaDetector) -> Double

#
EwmaDetector::update

fn EwmaDetector::update(self : EwmaDetector, value : Double) -> DetectionResult

#
FeatureExtractor

pub struct FeatureExtractor {
left : DoubleWindow
right : DoubleWindow
threshold : Double
index : Int
}

#
FeatureExtractor::new

fn FeatureExtractor::new(window_size? : Int, threshold? : Double) -> FeatureExtractor

#
FeatureExtractor::update

fn FeatureExtractor::update(self : FeatureExtractor, value : Double) -> DetectionResult

#
ForecastPoint

pub struct ForecastPoint {
prediction : Double
lower : Double
upper : Double
residual : Double
}

#
ForecastPoint::new

fn ForecastPoint::new(prediction : Double, residual : Double, uncertainty? : Double) -> ForecastPoint

#
Histogram

pub struct Histogram {
minimum : Double
maximum : Double
bins : Int
counts : Array[Int]
total : Int
}

A fixed-edge histogram for monitoring changes in value distribution.

#
Histogram::bins

fn Histogram::bins(self : Histogram) -> Int

#
Histogram::counts

fn Histogram::counts(self : Histogram) -> Array[Int]

#
Histogram::new

fn Histogram::new(minimum : Double, maximum : Double, bins : Int) -> Histogram

#
Histogram::probabilities

fn Histogram::probabilities(self : Histogram) -> Array[Double]

#
Histogram::push

fn Histogram::push(self : Histogram, value : Double) -> Unit

#
Histogram::reset

fn Histogram::reset(self : Histogram) -> Unit

#
Histogram::total

fn Histogram::total(self : Histogram) -> Int

#
HoltForecaster

pub struct HoltForecaster {
level : Double
trend : Double
alpha : Double
beta : Double
count : Int
}

#
HoltForecaster::new

fn HoltForecaster::new(alpha? : Double, beta? : Double) -> HoltForecaster

#
HoltForecaster::update

fn HoltForecaster::update(self : HoltForecaster, value : Double, horizon? : Int) -> ForecastPoint

#
HysteresisRule

pub struct HysteresisRule {
enter_threshold : Double
exit_threshold : Double
active : Bool
}

Hysteresis prevents alert flapping around a single threshold.

#
HysteresisRule::active

fn HysteresisRule::active(self : HysteresisRule) -> Bool

#
HysteresisRule::new

fn HysteresisRule::new(enter_threshold? : Double, exit_threshold? : Double) -> HysteresisRule

#
HysteresisRule::push

fn HysteresisRule::push(self : HysteresisRule, score : Double) -> Bool

#
Incident

pub struct Incident {
metric : String
first_timestamp : Int64
last_timestamp : Int64
alerts : Int
critical : Int
maximum_score : Double
direction : ChangeDirection
}

Groups nearby alert events into incidents for operators.

#
Incident::add

fn Incident::add(self : Incident, event : AlertEvent) -> Unit

#
Incident::duration

fn Incident::duration(self : Incident) -> Int64

#
Incident::empty

fn Incident::empty(metric : String) -> Incident

#
Incident::is_critical

fn Incident::is_critical(self : Incident) -> Bool

#
Incident::summary

fn Incident::summary(self : Incident) -> String

#
IqrSpikeDetector

pub struct IqrSpikeDetector {
window : DoubleWindow
multiplier : Double
warmup : Int
index : Int
}

A lightweight detector for isolated spikes using a rolling interquartile fence.

#
IqrSpikeDetector::new

fn IqrSpikeDetector::new(window_size? : Int, multiplier? : Double) -> IqrSpikeDetector

#
IqrSpikeDetector::update

fn IqrSpikeDetector::update(self : IqrSpikeDetector, value : Double) -> DetectionResult

#
LateDataPolicy

pub(all) enum LateDataPolicy {
Drop
KeepForCorrection
ReplaceSameTimestamp
}

The policy applied when a timestamp is older than the accepted watermark.

#
LinearForecaster

pub struct LinearForecaster {
window : DoubleWindow
horizon : Int
uncertainty_multiplier : Double
}

#
LinearForecaster::fit

fn LinearForecaster::fit(self : LinearForecaster, value : Double) -> ForecastPoint

#
LinearForecaster::new

fn LinearForecaster::new(window_size? : Int, horizon? : Int, uncertainty_multiplier? : Double) -> LinearForecaster

#
MahalanobisDetector

pub struct MahalanobisDetector {
stats : OnlineVectorStats
threshold : Double
warmup : Int
index : Int
}

Diagonal Mahalanobis detector. It remains usable when a full covariance matrix is unavailable.

#
MahalanobisDetector::count

fn MahalanobisDetector::count(self : MahalanobisDetector) -> Int

#
MahalanobisDetector::dimension

fn MahalanobisDetector::dimension(self : MahalanobisDetector) -> Int

#
MahalanobisDetector::new

fn MahalanobisDetector::new(dimension : Int, threshold? : Double, warmup? : Int) -> MahalanobisDetector

#
MahalanobisDetector::update

fn MahalanobisDetector::update(self : MahalanobisDetector, values : Array[Double]) -> DetectionResult

#
MeanVarianceDetector

pub struct MeanVarianceDetector {
baseline : DoubleWindow
current : DoubleWindow
mean_threshold : Double
variance_threshold : Double
index : Int
}

#
MeanVarianceDetector::new

fn MeanVarianceDetector::new(window_size? : Int, mean_threshold? : Double, variance_threshold? : Double) -> MeanVarianceDetector

#
MeanVarianceDetector::update

fn MeanVarianceDetector::update(self : MeanVarianceDetector, value : Double) -> DetectionResult

#
MetricPipeline

pub struct MetricPipeline {
name : String
detector : PipelineDetector
policy : AlertPolicy
index : Int
ordinal : Int
baseline : Double
}

One named metric with a detector and an alert policy.

#
MetricPipeline::index

fn MetricPipeline::index(self : MetricPipeline) -> Int

#
MetricPipeline::new

fn MetricPipeline::new(name : String, detector : PipelineDetector, policy? : AlertPolicy, baseline? : Double) -> MetricPipeline

#
MetricPipeline::process

fn MetricPipeline::process(self : MetricPipeline, timestamp : Int64, value : Double) -> AlertEvent?

#
MetricPipeline::reset

fn MetricPipeline::reset(self : MetricPipeline) -> Unit

#
MissingValueStrategy

pub(all) enum MissingValueStrategy {
DropValue
ImputeLast
ImputeMean
ImputeZero
MarkUnknown
}

Strategy used when an input value is not usable.

#
MultiMetricMonitor

pub struct MultiMetricMonitor {
pipelines : Array[MetricPipeline]
processed : Int
emitted : Int
suppressed : Int
}

A deterministic multi-metric monitor. It is intentionally array-backed for WASM portability.

#
MultiMetricMonitor::emitted_count

fn MultiMetricMonitor::emitted_count(self : MultiMetricMonitor) -> Int

#
MultiMetricMonitor::metric_count

fn MultiMetricMonitor::metric_count(self : MultiMetricMonitor) -> Int

#
MultiMetricMonitor::new

#
MultiMetricMonitor::process

fn MultiMetricMonitor::process(self : MultiMetricMonitor, metric_index : Int, timestamp : Int64, value : Double) -> AlertEvent?

#
MultiMetricMonitor::process_batch

fn MultiMetricMonitor::process_batch(self : MultiMetricMonitor, metric_index : Int, points : Array[SignalPoint]) -> Array[AlertEvent]

#
MultiMetricMonitor::processed_count

fn MultiMetricMonitor::processed_count(self : MultiMetricMonitor) -> Int

#
MultiMetricMonitor::suppressed_count

fn MultiMetricMonitor::suppressed_count(self : MultiMetricMonitor) -> Int

#
MultiScaleDetector

pub struct MultiScaleDetector {
short : RobustZDetector
medium : RobustZDetector
long : TrendShiftDetector
minimum_consensus : Double
index : Int
}

#
MultiScaleDetector::new

fn MultiScaleDetector::new(short? : Int, medium? : Int, long? : Int, minimum_consensus? : Double) -> MultiScaleDetector

#
MultiScaleDetector::update

fn MultiScaleDetector::update(self : MultiScaleDetector, value : Double) -> DetectionResult

#
MultivariateEnsemble

pub struct MultivariateEnsemble {
detectors : Array[ProjectionDetector]
quorum : Int
index : Int
}

An ensemble that combines several multivariate views with a quorum rule.

#
MultivariateEnsemble::detector_count

fn MultivariateEnsemble::detector_count(self : MultivariateEnsemble) -> Int

#
MultivariateEnsemble::new

fn MultivariateEnsemble::new(detectors : Array[ProjectionDetector], quorum? : Int) -> MultivariateEnsemble

#
MultivariateEnsemble::update

fn MultivariateEnsemble::update(self : MultivariateEnsemble, values : Array[Double]) -> DetectionResult

#
OfflineChange

pub struct OfflineChange {
index : Int
score : Double
left_mean : Double
right_mean : Double
left_variance : Double
right_variance : Double
direction : ChangeDirection
}

A candidate change point returned by offline analysis.

#
OnlineEnsemble

pub struct OnlineEnsemble {
detectors : Array[PipelineDetector]
quorum : Int
index : Int
}

#
OnlineEnsemble::count

fn OnlineEnsemble::count(self : OnlineEnsemble) -> Int

#
OnlineEnsemble::new

fn OnlineEnsemble::new(detectors : Array[PipelineDetector], quorum? : Int) -> OnlineEnsemble

#
OnlineEnsemble::update

fn OnlineEnsemble::update(self : OnlineEnsemble, value : Double) -> EnsembleResult

#
OnlineMoments

pub struct OnlineMoments {
count : Int
mean : Double
m2 : Double
minimum : Double
maximum : Double
}

Numerically stable online moments using Welford's recurrence.

#
OnlineMoments::count

fn OnlineMoments::count(self : OnlineMoments) -> Int

#
OnlineMoments::maximum

fn OnlineMoments::maximum(self : OnlineMoments) -> Double

#
OnlineMoments::mean

fn OnlineMoments::mean(self : OnlineMoments) -> Double

#
OnlineMoments::merge

fn OnlineMoments::merge(self : OnlineMoments, other : OnlineMoments) -> Unit

#
OnlineMoments::minimum

fn OnlineMoments::minimum(self : OnlineMoments) -> Double

#
OnlineMoments::new

Creates an empty accumulator.

#
OnlineMoments::population_variance

fn OnlineMoments::population_variance(self : OnlineMoments) -> Double

#
OnlineMoments::push

fn OnlineMoments::push(self : OnlineMoments, value : Double) -> Unit

Adds one observation.

#
OnlineMoments::standard_deviation

fn OnlineMoments::standard_deviation(self : OnlineMoments) -> Double

#
OnlineMoments::summary

fn OnlineMoments::summary(self : OnlineMoments, median? : Double) -> StatsSummary

#
OnlineMoments::variance

fn OnlineMoments::variance(self : OnlineMoments) -> Double

#
OnlineMoments::with_prior

fn OnlineMoments::with_prior(mean : Double, variance : Double, weight : Int) -> OnlineMoments

Creates an accumulator with a prior mean and effective sample size.

#
OnlineVectorStats

pub struct OnlineVectorStats {
dimension : Int
count : Int
means : Array[Double]
m2 : Array[Double]
minima : Array[Double]
maxima : Array[Double]
}

Per-dimension Welford statistics for a vector stream.

#
OnlineVectorStats::count

fn OnlineVectorStats::count(self : OnlineVectorStats) -> Int

#
OnlineVectorStats::dimension

fn OnlineVectorStats::dimension(self : OnlineVectorStats) -> Int

#
OnlineVectorStats::maximums

fn OnlineVectorStats::maximums(self : OnlineVectorStats) -> Array[Double]

#
OnlineVectorStats::means

fn OnlineVectorStats::means(self : OnlineVectorStats) -> Array[Double]

#
OnlineVectorStats::minimums

fn OnlineVectorStats::minimums(self : OnlineVectorStats) -> Array[Double]

#
OnlineVectorStats::new

fn OnlineVectorStats::new(dimension : Int) -> OnlineVectorStats

#
OnlineVectorStats::push

fn OnlineVectorStats::push(self : OnlineVectorStats, values : Array[Double]) -> Bool

#
OnlineVectorStats::standard_deviations

fn OnlineVectorStats::standard_deviations(self : OnlineVectorStats) -> Array[Double]

#
OnlineVectorStats::standardized

fn OnlineVectorStats::standardized(self : OnlineVectorStats, values : Array[Double]) -> Array[Double]

#
OnlineVectorStats::variances

fn OnlineVectorStats::variances(self : OnlineVectorStats) -> Array[Double]

#
OrderedPoint

pub struct OrderedPoint {
point : SignalPoint
late : Bool
arrival_order : Int
}

A timestamped sample that has passed through a reorder buffer.

#
PageHinkley

pub struct PageHinkley {
target_mean : Double
control_limit : Double
delta : Double
alpha : Double
sum : Double
min_sum : Double
n : Int
}

PageHinkley implements the Page-Hinkley test for online change point detection.

#
PageHinkley::new

fn PageHinkley::new(target_mean? : Double, control_limit? : Double, delta? : Double, alpha? : Double) -> PageHinkley

Creates a new Page-Hinkley detector.

#
PageHinkley::reset

fn PageHinkley::reset(self : PageHinkley) -> Unit

Resets the internal accumulators.

#
PageHinkley::update

fn PageHinkley::update(self : PageHinkley, value : Double) -> Bool

Updates the Page-Hinkley detector with a new value and returns true if a change is detected.

#
PageHinkley::update_result

fn PageHinkley::update_result(self : PageHinkley, value : Double, index? : Int) -> DetectionResult

Rich result form of update, retaining direction and cumulative evidence.

#
PersistenceDetector

pub struct PersistenceDetector {
detector : EwmaDetector
rule : ConsecutiveRule
index : Int
}

#
PersistenceDetector::new

fn PersistenceDetector::new(warmup? : Int, persistence? : Int) -> PersistenceDetector

#
PersistenceDetector::update

fn PersistenceDetector::update(self : PersistenceDetector, value : Double) -> DetectionResult

#
PipelineDetector

pub(all) enum PipelineDetector {
LegacyDetector(Detector)
Ewma(EwmaDetector)
RobustZ(RobustZDetector)
VarianceShift(VarianceShiftDetector)
TrendShift(TrendShiftDetector)
IqrSpike(IqrSpikeDetector)
}

A detector that can be selected for a production metric pipeline.

#
PipelineDetector::update

fn PipelineDetector::update(self : PipelineDetector, value : Double, index : Int) -> DetectionResult

#
ProductionAdaptiveBaselineDetector

pub struct ProductionAdaptiveBaselineDetector {
window : DoubleWindow
learning_rate : Double
threshold : Double
warmup : Int
baseline : Double
index : Int
initialized : Bool
}

Baseline-relative detector for services whose normal level changes gradually.

#
ProductionAdaptiveBaselineDetector::baseline

#
ProductionAdaptiveBaselineDetector::index

#
ProductionAdaptiveBaselineDetector::new

fn ProductionAdaptiveBaselineDetector::new(window_size? : Int, learning_rate? : Double, threshold? : Double, warmup? : Int) -> ProductionAdaptiveBaselineDetector

#
ProductionAdaptiveBaselineDetector::reset

#
ProductionAdaptiveBaselineDetector::update

#
ProductionAlertConfig

pub struct ProductionAlertConfig {
minimum_score : Double
minimum_confidence : Double
minimum_gap : Int64
recovery_points : Int
action : RecoveryAction
severity : AlertSeverity
budget_per_window : Int
budget_window : Int64
}

Alert and recovery settings for a monitored metric.

#
ProductionAlertConfig::action

#
ProductionAlertConfig::budget_per_window

fn ProductionAlertConfig::budget_per_window(self : ProductionAlertConfig) -> Int

#
ProductionAlertConfig::budget_window

fn ProductionAlertConfig::budget_window(self : ProductionAlertConfig) -> Int64

#
ProductionAlertConfig::minimum_confidence

fn ProductionAlertConfig::minimum_confidence(self : ProductionAlertConfig) -> Double

#
ProductionAlertConfig::minimum_gap

fn ProductionAlertConfig::minimum_gap(self : ProductionAlertConfig) -> Int64

#
ProductionAlertConfig::minimum_score

fn ProductionAlertConfig::minimum_score(self : ProductionAlertConfig) -> Double

#
ProductionAlertConfig::new

fn ProductionAlertConfig::new(minimum_score? : Double, minimum_confidence? : Double, minimum_gap? : Int64, recovery_points? : Int, action? : RecoveryAction, severity? : AlertSeverity, budget_per_window? : Int, budget_window? : Int64) -> ProductionAlertConfig

#
ProductionAlertConfig::recovery_points

fn ProductionAlertConfig::recovery_points(self : ProductionAlertConfig) -> Int

#
ProductionAlertConfig::severity

#
ProductionAlertEnvelope

pub struct ProductionAlertEnvelope {
fingerprint : String
event : AlertEvent
delivery_attempts : Int
delivered : Bool
deduplicated : Int
}

Stable alert envelope used for deduplication and delivery retries.

#
ProductionAlertEnvelope::attempt

#
ProductionAlertEnvelope::deduplicated

fn ProductionAlertEnvelope::deduplicated(self : ProductionAlertEnvelope) -> Int

#
ProductionAlertEnvelope::delivered

fn ProductionAlertEnvelope::delivered(self : ProductionAlertEnvelope) -> Bool

#
ProductionAlertEnvelope::delivery_attempts

fn ProductionAlertEnvelope::delivery_attempts(self : ProductionAlertEnvelope) -> Int

#
ProductionAlertEnvelope::event

#
ProductionAlertEnvelope::fingerprint

fn ProductionAlertEnvelope::fingerprint(self : ProductionAlertEnvelope) -> String

#
ProductionAlertEnvelope::mark_delivered

fn ProductionAlertEnvelope::mark_delivered(self : ProductionAlertEnvelope) -> Unit

#
ProductionAlertEnvelope::mark_duplicate

fn ProductionAlertEnvelope::mark_duplicate(self : ProductionAlertEnvelope) -> Unit

#
ProductionAlertEnvelope::new

fn ProductionAlertEnvelope::new(fingerprint : String, event : AlertEvent) -> ProductionAlertEnvelope

#
ProductionBackpressurePolicy

pub(all) enum ProductionBackpressurePolicy {
DropNewestSample
DropOldestSample
RejectProducer
}

Policy used when an in-memory stream queue reaches capacity.

#
ProductionBaselineStrategy

pub(all) enum ProductionBaselineStrategy {
FixedBaseline
RollingMedian
RollingMean
ExponentiallyWeighted
SeasonalBaseline
}

Strategy used to establish a detector baseline.

#
ProductionBatchResult

pub struct ProductionBatchResult {
batch_id : String
input_count : Int
accepted_count : Int
rejected_count : Int
event_count : Int
alert_count : Int
checksum : Double
duration_ticks : Int64
}

Summary of a bounded batch processing run.

#
ProductionBatchResult::accepted_count

fn ProductionBatchResult::accepted_count(self : ProductionBatchResult) -> Int

#
ProductionBatchResult::alert_count

fn ProductionBatchResult::alert_count(self : ProductionBatchResult) -> Int

#
ProductionBatchResult::checksum

fn ProductionBatchResult::checksum(self : ProductionBatchResult) -> Double

#
ProductionBatchResult::duration_ticks

fn ProductionBatchResult::duration_ticks(self : ProductionBatchResult) -> Int64

#
ProductionBatchResult::event_count

fn ProductionBatchResult::event_count(self : ProductionBatchResult) -> Int

#
ProductionBatchResult::input_count

fn ProductionBatchResult::input_count(self : ProductionBatchResult) -> Int

#
ProductionBatchResult::rejected_count

fn ProductionBatchResult::rejected_count(self : ProductionBatchResult) -> Int

#
ProductionBatchResult::summary

fn ProductionBatchResult::summary(self : ProductionBatchResult) -> String

#
ProductionBatchResult::throughput

fn ProductionBatchResult::throughput(self : ProductionBatchResult) -> Double

#
ProductionBucket

pub struct ProductionBucket {
start_timestamp : Int64
end_timestamp : Int64
samples : Array[ProductionSample]
}

Fixed-size aggregation by event-time interval.

#
ProductionBucket::count

fn ProductionBucket::count(self : ProductionBucket) -> Int

#
ProductionBucket::end

fn ProductionBucket::end(self : ProductionBucket) -> Int64

#
ProductionBucket::mean

fn ProductionBucket::mean(self : ProductionBucket) -> Double

#
ProductionBucket::new

fn ProductionBucket::new(start_timestamp : Int64, size : Int64) -> ProductionBucket

#
ProductionBucket::push

fn ProductionBucket::push(self : ProductionBucket, sample : ProductionSample) -> Bool

#
ProductionBucket::start

fn ProductionBucket::start(self : ProductionBucket) -> Int64

#
ProductionBucket::sum

fn ProductionBucket::sum(self : ProductionBucket) -> Double

#
ProductionBucket::summary

#
ProductionBucket::to_points

#
ProductionBucketizer

pub struct ProductionBucketizer {
interval : Int64
origin : Int64
current : ProductionBucket?
flushed : Int
dropped : Int
}

Event-time bucketizer that flushes complete intervals in order.

#
ProductionBucketizer::dropped

fn ProductionBucketizer::dropped(self : ProductionBucketizer) -> Int

#
ProductionBucketizer::flush

#
ProductionBucketizer::flushed

fn ProductionBucketizer::flushed(self : ProductionBucketizer) -> Int

#
ProductionBucketizer::interval

fn ProductionBucketizer::interval(self : ProductionBucketizer) -> Int64

#
ProductionBucketizer::new

fn ProductionBucketizer::new(interval? : Int64, origin? : Int64) -> ProductionBucketizer

#
ProductionBucketizer::push

#
ProductionCalibrationBin

pub struct ProductionCalibrationBin {
lower : Double
upper : Double
count : Int
positives : Int
mean_score : Double
observed_rate : Double
}

A reliability bin used to audit score calibration.

#
ProductionCalibrationBin::count

#
ProductionCalibrationBin::lower

#
ProductionCalibrationBin::mean_score

fn ProductionCalibrationBin::mean_score(self : ProductionCalibrationBin) -> Double

#
ProductionCalibrationBin::observed_rate

fn ProductionCalibrationBin::observed_rate(self : ProductionCalibrationBin) -> Double

#
ProductionCalibrationBin::positives

#
ProductionCalibrationBin::upper

#
ProductionCalibrationMode

pub(all) enum ProductionCalibrationMode {
IdentityCalibration
HistogramCalibration
PriorWeightedCalibration
}

Online score calibration mode for deployment-specific alert rates.

#
ProductionCanaryTracker

pub struct ProductionCanaryTracker {
plan : ProductionRolloutPlan
guardrail : ProductionGuardrailController
observations : Int
healthy_observations : Int
blocked_observations : Int
last_decision : ProductionGuardrailDecision?
}

Bounded canary tracker that joins guard decisions with rollout stages.

#
ProductionCanaryTracker::blocked_observations

fn ProductionCanaryTracker::blocked_observations(self : ProductionCanaryTracker) -> Int

#
ProductionCanaryTracker::guardrail

#
ProductionCanaryTracker::health

#
ProductionCanaryTracker::healthy_observations

fn ProductionCanaryTracker::healthy_observations(self : ProductionCanaryTracker) -> Int

#
ProductionCanaryTracker::last_decision

#
ProductionCanaryTracker::observations

fn ProductionCanaryTracker::observations(self : ProductionCanaryTracker) -> Int

#
ProductionCanaryTracker::observe

#
ProductionCanaryTracker::plan

#
ProductionCanaryTracker::reset

#
ProductionCanaryTracker::try_promote

fn ProductionCanaryTracker::try_promote(self : ProductionCanaryTracker, timestamp : Int64) -> Bool

#
ProductionCatalogSummary

pub struct ProductionCatalogSummary {
names : Array[String]
means : Array[Double]
variances : Array[Double]
counts : Array[Int]
quality : Array[Double]
}

A matrix of rolling metric summaries for health dashboards.

#
ProductionCatalogSummary::counts

#
ProductionCatalogSummary::markdown

fn ProductionCatalogSummary::markdown(self : ProductionCatalogSummary) -> String

#
ProductionCatalogSummary::means

#
ProductionCatalogSummary::names

#
ProductionCatalogSummary::quality

#
ProductionCatalogSummary::variances

#
ProductionConfidenceInterval

pub struct ProductionConfidenceInterval {
estimate : Double
lower : Double
upper : Double
confidence : Double
samples : Int
test_kind : ProductionStatTestKind
}

Confidence interval for a production effect estimate.

#
ProductionConfidenceInterval::confidence

#
ProductionConfidenceInterval::contains

fn ProductionConfidenceInterval::contains(self : ProductionConfidenceInterval, value : Double) -> Bool

#
ProductionConfidenceInterval::estimate

#
ProductionConfidenceInterval::lower

#
ProductionConfidenceInterval::samples

#
ProductionConfidenceInterval::summary

#
ProductionConfidenceInterval::test_kind

#
ProductionConfidenceInterval::upper

#
ProductionConfidenceInterval::width

#
ProductionConfigIssue

pub struct ProductionConfigIssue {
field : String
message : String
fatal : Bool
}

A single issue found while validating production configuration.

#
ProductionConfigIssue::fatal

#
ProductionConfigIssue::field

fn ProductionConfigIssue::field(self : ProductionConfigIssue) -> String

#
ProductionConfigIssue::message

fn ProductionConfigIssue::message(self : ProductionConfigIssue) -> String

#
ProductionConfigIssue::new

fn ProductionConfigIssue::new(field : String, message : String, fatal? : Bool) -> ProductionConfigIssue

#
ProductionConfigIssue::summary

fn ProductionConfigIssue::summary(self : ProductionConfigIssue) -> String

#
ProductionConfusionMatrix

pub struct ProductionConfusionMatrix {
true_positive : Int
false_positive : Int
true_negative : Int
false_negative : Int
}

Confusion counts for a thresholded change-point decision stream.

#
ProductionConfusionMatrix::balanced_accuracy

fn ProductionConfusionMatrix::balanced_accuracy(self : ProductionConfusionMatrix) -> Double

#
ProductionConfusionMatrix::empty

#
ProductionConfusionMatrix::f1

#
ProductionConfusionMatrix::false_negative

fn ProductionConfusionMatrix::false_negative(self : ProductionConfusionMatrix) -> Int

#
ProductionConfusionMatrix::false_positive

fn ProductionConfusionMatrix::false_positive(self : ProductionConfusionMatrix) -> Int

#
ProductionConfusionMatrix::false_positive_rate

fn ProductionConfusionMatrix::false_positive_rate(self : ProductionConfusionMatrix) -> Double

#
ProductionConfusionMatrix::from_scores

fn ProductionConfusionMatrix::from_scores(scores : Array[Double], labels : Array[Bool], threshold : Double) -> ProductionConfusionMatrix

#
ProductionConfusionMatrix::precision

#
ProductionConfusionMatrix::recall

#
ProductionConfusionMatrix::specificity

fn ProductionConfusionMatrix::specificity(self : ProductionConfusionMatrix) -> Double

#
ProductionConfusionMatrix::summary

#
ProductionConfusionMatrix::support

#
ProductionConfusionMatrix::true_negative

fn ProductionConfusionMatrix::true_negative(self : ProductionConfusionMatrix) -> Int

#
ProductionConfusionMatrix::true_positive

fn ProductionConfusionMatrix::true_positive(self : ProductionConfusionMatrix) -> Int

#
ProductionContractFieldKind

pub(all) enum ProductionContractFieldKind {
Numeric
Timestamp
Sequence
Label
Boolean
}

Runtime data types accepted by a production change-point pipeline.

#
ProductionContractReport

pub struct ProductionContractReport {
metric : String
checked : Int
accepted : Int
rejected : Int
missing : Int
warnings : Int
violations : Array[ProductionContractViolation]
distinct_labels : Array[String]
first_timestamp : Int64
last_timestamp : Int64
has_timestamp : Bool
monotonic : Bool
}

Result of validating one metric stream.

#
ProductionContractReport::acceptance_rate

fn ProductionContractReport::acceptance_rate(self : ProductionContractReport) -> Double

#
ProductionContractReport::accepted

#
ProductionContractReport::checked

#
ProductionContractReport::distinct_count

fn ProductionContractReport::distinct_count(self : ProductionContractReport) -> Int

#
ProductionContractReport::first_timestamp

fn ProductionContractReport::first_timestamp(self : ProductionContractReport) -> Int64

#
ProductionContractReport::is_valid

#
ProductionContractReport::last_timestamp

fn ProductionContractReport::last_timestamp(self : ProductionContractReport) -> Int64

#
ProductionContractReport::metric

#
ProductionContractReport::missing

#
ProductionContractReport::monotonic

#
ProductionContractReport::new

#
ProductionContractReport::rejected

#
ProductionContractReport::summary

#
ProductionContractReport::violations

#
ProductionContractReport::warnings

#
ProductionContractRule

pub struct ProductionContractRule {
name : String
field_kind : ProductionContractFieldKind
required : Bool
allow_missing : Bool
minimum : Double
maximum : Double
has_minimum : Bool
has_maximum : Bool
minimum_samples : Int
maximum_gap : Int64
monotonic_timestamps : Bool
maximum_label_length : Int
maximum_distinct_values : Int
severity : ProductionContractSeverity
}

Declarative validation rules for a metric stream.

#
ProductionContractRule::allow_missing

fn ProductionContractRule::allow_missing(self : ProductionContractRule) -> Bool

#
ProductionContractRule::field_kind

#
ProductionContractRule::has_maximum

fn ProductionContractRule::has_maximum(self : ProductionContractRule) -> Bool

#
ProductionContractRule::has_minimum

fn ProductionContractRule::has_minimum(self : ProductionContractRule) -> Bool

#
ProductionContractRule::maximum

fn ProductionContractRule::maximum(self : ProductionContractRule) -> Double

#
ProductionContractRule::maximum_distinct_values

fn ProductionContractRule::maximum_distinct_values(self : ProductionContractRule) -> Int

#
ProductionContractRule::maximum_gap

fn ProductionContractRule::maximum_gap(self : ProductionContractRule) -> Int64

#
ProductionContractRule::maximum_label_length

fn ProductionContractRule::maximum_label_length(self : ProductionContractRule) -> Int

#
ProductionContractRule::minimum

fn ProductionContractRule::minimum(self : ProductionContractRule) -> Double

#
ProductionContractRule::minimum_samples

fn ProductionContractRule::minimum_samples(self : ProductionContractRule) -> Int

#
ProductionContractRule::monotonic_timestamps

fn ProductionContractRule::monotonic_timestamps(self : ProductionContractRule) -> Bool

#
ProductionContractRule::name

#
ProductionContractRule::new

fn ProductionContractRule::new(name : String, field_kind? : ProductionContractFieldKind, required? : Bool, allow_missing? : Bool, minimum? : Double, maximum? : Double, has_minimum? : Bool, has_maximum? : Bool, minimum_samples? : Int, maximum_gap? : Int64, monotonic_timestamps? : Bool, maximum_label_length? : Int, maximum_distinct_values? : Int, severity? : ProductionContractSeverity) -> ProductionContractRule

#
ProductionContractRule::required

fn ProductionContractRule::required(self : ProductionContractRule) -> Bool

#
ProductionContractRule::severity

#
ProductionContractSeverity

pub(all) enum ProductionContractSeverity {
ContractError
ContractWarning
}

Validation severity used by a data contract.

#
ProductionContractSummary

pub struct ProductionContractSummary {
contract_count : Int
report_count : Int
valid_count : Int
rejected_count : Int
warning_count : Int
total_samples : Int
total_violations : Int
}

A compact contract snapshot suitable for health endpoints.

#
ProductionContractSummary::contract_count

fn ProductionContractSummary::contract_count(self : ProductionContractSummary) -> Int

#
ProductionContractSummary::health_score

fn ProductionContractSummary::health_score(self : ProductionContractSummary) -> Double

#
ProductionContractSummary::rejected_count

fn ProductionContractSummary::rejected_count(self : ProductionContractSummary) -> Int

#
ProductionContractSummary::report_count

#
ProductionContractSummary::total_samples

fn ProductionContractSummary::total_samples(self : ProductionContractSummary) -> Int

#
ProductionContractSummary::total_violations

fn ProductionContractSummary::total_violations(self : ProductionContractSummary) -> Int

#
ProductionContractSummary::valid_count

#
ProductionContractSummary::warning_count

fn ProductionContractSummary::warning_count(self : ProductionContractSummary) -> Int

#
ProductionContractValidator

pub struct ProductionContractValidator {
rules : Array[ProductionContractRule]
reports : Array[ProductionContractReport]
total_batches : Int
total_samples : Int
total_violations : Int
}

Runtime validator for metric contracts. Rules stay in memory so a service can validate every batch without rebuilding schema state.

#
ProductionContractValidator::clear_reports

#
ProductionContractValidator::filter_numeric_batch

fn ProductionContractValidator::filter_numeric_batch(self : ProductionContractValidator, metric : String, timestamps : Array[Int64], values : Array[Double]) -> (Array[Int64], Array[Double], ProductionContractReport)

Validate a batch and return only the samples accepted by the contract.

#
ProductionContractValidator::latest_report

#
ProductionContractValidator::new

#
ProductionContractValidator::register

#
ProductionContractValidator::remove

fn ProductionContractValidator::remove(self : ProductionContractValidator, name : String) -> Bool

#
ProductionContractValidator::reports

#
ProductionContractValidator::rule_count

#
ProductionContractValidator::rules

#
ProductionContractValidator::summary

#
ProductionContractValidator::total_batches

#
ProductionContractValidator::total_samples

#
ProductionContractValidator::total_violations

fn ProductionContractValidator::total_violations(self : ProductionContractValidator) -> Int

#
ProductionContractValidator::validate_label_batch

fn ProductionContractValidator::validate_label_batch(self : ProductionContractValidator, metric : String, timestamps : Array[Int64], labels : Array[String]) -> ProductionContractReport

Validate categorical labels while tracking bounded cardinality.

#
ProductionContractValidator::validate_numeric_batch

fn ProductionContractValidator::validate_numeric_batch(self : ProductionContractValidator, metric : String, timestamps : Array[Int64], values : Array[Double]) -> ProductionContractReport

Validate numeric samples and event-time ordering for one metric batch.

#
ProductionContractViolation

pub struct ProductionContractViolation {
code : ProductionContractViolationCode
severity : ProductionContractSeverity
metric : String
rule : String
index : Int
value : Double
has_value : Bool
message : String
}

One contract violation retained for audit and diagnostics.

#
ProductionContractViolation::has_value

#
ProductionContractViolation::index

#
ProductionContractViolation::message

#
ProductionContractViolation::metric

#
ProductionContractViolation::new

fn ProductionContractViolation::new(code : ProductionContractViolationCode, severity : ProductionContractSeverity, metric : String, rule : String, index? : Int, value? : Double, has_value? : Bool, message? : String) -> ProductionContractViolation

#
ProductionContractViolation::rule

#
ProductionContractViolation::severity

#
ProductionContractViolation::summary

#
ProductionContractViolation::value

#
ProductionContractViolationCode

pub(all) enum ProductionContractViolationCode {
MissingMetric
MissingValue
NonFiniteValue
ValueBelowMinimum
ValueAboveMaximum
TimestampOutOfOrder
TimestampTooOld
DuplicateSequence
EmptyLabel
LabelTooLong
InvalidBoolean
InsufficientSamples
ExcessiveGap
CardinalityExceeded
SchemaMismatch
}

Machine-readable reason for rejecting or downgrading an observation.

#
ProductionCurvePoint

pub struct ProductionCurvePoint {
threshold : Double
precision : Double
recall : Double
f1 : Double
false_positive_rate : Double
support : Int
}

A point on a threshold evaluation curve.

#
ProductionCurvePoint::f1

#
ProductionCurvePoint::false_positive_rate

fn ProductionCurvePoint::false_positive_rate(self : ProductionCurvePoint) -> Double

#
ProductionCurvePoint::from_matrix

fn ProductionCurvePoint::from_matrix(threshold : Double, matrix : ProductionConfusionMatrix) -> ProductionCurvePoint

#
ProductionCurvePoint::precision

fn ProductionCurvePoint::precision(self : ProductionCurvePoint) -> Double

#
ProductionCurvePoint::recall

fn ProductionCurvePoint::recall(self : ProductionCurvePoint) -> Double

#
ProductionCurvePoint::support

fn ProductionCurvePoint::support(self : ProductionCurvePoint) -> Int

#
ProductionCurvePoint::threshold

fn ProductionCurvePoint::threshold(self : ProductionCurvePoint) -> Double

#
ProductionDashboardPoint

pub struct ProductionDashboardPoint {
timestamp : Int64
value : Double
baseline : Double
score : Double
changed : Bool
state : ProductionHealthState
}

A time-series point prepared for dashboard rendering.

#
ProductionDashboardPoint::baseline

fn ProductionDashboardPoint::baseline(self : ProductionDashboardPoint) -> Double

#
ProductionDashboardPoint::changed

#
ProductionDashboardPoint::new

fn ProductionDashboardPoint::new(timestamp : Int64, value : Double, baseline : Double, result : DetectionResult, state : ProductionHealthState) -> ProductionDashboardPoint

#
ProductionDashboardPoint::score

#
ProductionDashboardPoint::state

#
ProductionDashboardPoint::timestamp

fn ProductionDashboardPoint::timestamp(self : ProductionDashboardPoint) -> Int64

#
ProductionDashboardPoint::value

#
ProductionDashboardSeries

pub struct ProductionDashboardSeries {
name : String
points : Array[ProductionDashboardPoint]
dropped : Int
}

#
ProductionDashboardSeries::changed_count

fn ProductionDashboardSeries::changed_count(self : ProductionDashboardSeries) -> Int

#
ProductionDashboardSeries::dropped

#
ProductionDashboardSeries::latest

#
ProductionDashboardSeries::length

#
ProductionDashboardSeries::name

#
ProductionDashboardSeries::new

fn ProductionDashboardSeries::new(name : String, capacity? : Int) -> ProductionDashboardSeries

#
ProductionDashboardSeries::points

#
ProductionDashboardSeries::push

fn ProductionDashboardSeries::push(self : ProductionDashboardSeries, point : ProductionDashboardPoint, capacity? : Int) -> Unit

#
ProductionDeliveryChannel

pub(all) enum ProductionDeliveryChannel {
ConsoleChannel
LogChannel
TicketChannel
PagerChannel
WebhookChannel
DashboardChannel
}

Delivery destination for an operational alert.

#
ProductionDeliveryDecision

pub struct ProductionDeliveryDecision {
rule : String
channel : ProductionDeliveryChannel
allowed : Bool
reason : String
fingerprint : String
}

The result of evaluating one event against a delivery rule.

#
ProductionDeliveryDecision::allowed

#
ProductionDeliveryDecision::channel

#
ProductionDeliveryDecision::fingerprint

fn ProductionDeliveryDecision::fingerprint(self : ProductionDeliveryDecision) -> String

#
ProductionDeliveryDecision::reason

#
ProductionDeliveryDecision::rule

#
ProductionDeliveryDecision::summary

#
ProductionDeliveryRule

pub struct ProductionDeliveryRule {
name : String
channel : ProductionDeliveryChannel
minimum_severity : AlertSeverity
include_suppressed : Bool
minimum_score : Double
cooldown : Int64
}

A rule deciding whether an event should reach one delivery channel.

#
ProductionDeliveryRule::channel

#
ProductionDeliveryRule::cooldown

fn ProductionDeliveryRule::cooldown(self : ProductionDeliveryRule) -> Int64

#
ProductionDeliveryRule::include_suppressed

fn ProductionDeliveryRule::include_suppressed(self : ProductionDeliveryRule) -> Bool

#
ProductionDeliveryRule::matches

fn ProductionDeliveryRule::matches(self : ProductionDeliveryRule, event : AlertEvent) -> Bool

#
ProductionDeliveryRule::minimum_score

fn ProductionDeliveryRule::minimum_score(self : ProductionDeliveryRule) -> Double

#
ProductionDeliveryRule::minimum_severity

#
ProductionDeliveryRule::name

#
ProductionDeliveryRule::new

fn ProductionDeliveryRule::new(name : String, channel : ProductionDeliveryChannel, minimum_severity? : AlertSeverity, include_suppressed? : Bool, minimum_score? : Double, cooldown? : Int64) -> ProductionDeliveryRule

#
ProductionDetectionConfig

pub struct ProductionDetectionConfig {
detector_name : String
threshold : Double
confidence : Double
warmup_points : Int
minimum_segment : Int
maximum_score : Double
direction_filter : ChangeDirection?
}

Detection settings shared by online monitor instances.

#
ProductionDetectionConfig::accepts

#
ProductionDetectionConfig::confidence

fn ProductionDetectionConfig::confidence(self : ProductionDetectionConfig) -> Double

#
ProductionDetectionConfig::detector_name

fn ProductionDetectionConfig::detector_name(self : ProductionDetectionConfig) -> String

#
ProductionDetectionConfig::direction_filter

#
ProductionDetectionConfig::maximum_score

fn ProductionDetectionConfig::maximum_score(self : ProductionDetectionConfig) -> Double

#
ProductionDetectionConfig::minimum_segment

fn ProductionDetectionConfig::minimum_segment(self : ProductionDetectionConfig) -> Int

#
ProductionDetectionConfig::new

fn ProductionDetectionConfig::new(detector_name? : String, threshold? : Double, confidence? : Double, warmup_points? : Int, minimum_segment? : Int, maximum_score? : Double, direction_filter? : ChangeDirection?) -> ProductionDetectionConfig

#
ProductionDetectionConfig::threshold

#
ProductionDetectionConfig::warmup_points

fn ProductionDetectionConfig::warmup_points(self : ProductionDetectionConfig) -> Int

#
ProductionDetectorKind

pub(all) enum ProductionDetectorKind {
CusumStackDetector
RobustZStackDetector
EwmaStackDetector
VarianceStackDetector
TrendStackDetector
SeasonalStackDetector
DistributionStackDetector
}

Detector selection for the production stack.

#
ProductionDetectorStack

pub struct ProductionDetectorStack {
kinds : Array[ProductionDetectorKind]
detectors : Array[PipelineDetector]
weights : Array[Double]
minimum_votes : Int
index : Int
}

An array-backed ensemble that keeps detector order stable across targets.

#
ProductionDetectorStack::index

#
ProductionDetectorStack::length

#
ProductionDetectorStack::new

fn ProductionDetectorStack::new(kinds : Array[ProductionDetectorKind], detectors : Array[PipelineDetector], weights? : Array[Double], minimum_votes? : Int) -> ProductionDetectorStack

#
ProductionDetectorStack::reset

#
ProductionDetectorStack::update

#
ProductionDetectorVote

pub struct ProductionDetectorVote {
kind : ProductionDetectorKind
result : DetectionResult
weight : Double
accepted : Bool
}

One weighted vote from a detector stack.

#
ProductionDetectorVote::accepted

fn ProductionDetectorVote::accepted(self : ProductionDetectorVote) -> Bool

#
ProductionDetectorVote::kind

#
ProductionDetectorVote::result

#
ProductionDetectorVote::weight

fn ProductionDetectorVote::weight(self : ProductionDetectorVote) -> Double

#
ProductionDriftReport

pub struct ProductionDriftReport {
baseline_count : Int
current_count : Int
mean_shift : Double
variance_ratio : Double
ks_distance : Double
energy_distance : Double
drift_score : Double
drifted : Bool
}

A summary of baseline/current distribution drift.

#
ProductionDriftReport::baseline_count

fn ProductionDriftReport::baseline_count(self : ProductionDriftReport) -> Int

#
ProductionDriftReport::current_count

fn ProductionDriftReport::current_count(self : ProductionDriftReport) -> Int

#
ProductionDriftReport::drift_score

fn ProductionDriftReport::drift_score(self : ProductionDriftReport) -> Double

#
ProductionDriftReport::drifted

fn ProductionDriftReport::drifted(self : ProductionDriftReport) -> Bool

#
ProductionDriftReport::energy_distance

fn ProductionDriftReport::energy_distance(self : ProductionDriftReport) -> Double

#
ProductionDriftReport::from_values

fn ProductionDriftReport::from_values(baseline : Array[Double], current : Array[Double], threshold? : Double) -> ProductionDriftReport

#
ProductionDriftReport::ks_distance

fn ProductionDriftReport::ks_distance(self : ProductionDriftReport) -> Double

#
ProductionDriftReport::mean_shift

fn ProductionDriftReport::mean_shift(self : ProductionDriftReport) -> Double

#
ProductionDriftReport::summary

fn ProductionDriftReport::summary(self : ProductionDriftReport) -> String

#
ProductionDriftReport::variance_ratio

fn ProductionDriftReport::variance_ratio(self : ProductionDriftReport) -> Double

#
ProductionEscalationPolicy

pub struct ProductionEscalationPolicy {
steps : Array[ProductionEscalationStep]
delivered : Int
}

#
ProductionEscalationPolicy::add

#
ProductionEscalationPolicy::delivered

#
ProductionEscalationPolicy::due

#
ProductionEscalationPolicy::mark_delivered

fn ProductionEscalationPolicy::mark_delivered(self : ProductionEscalationPolicy) -> Unit

#
ProductionEscalationPolicy::steps

#
ProductionEscalationPolicy::summary

#
ProductionEscalationStep

pub struct ProductionEscalationStep {
channel : String
delay : Int64
minimum_severity : AlertSeverity
}

One escalation destination and the delay before it is eligible.

#
ProductionEscalationStep::channel

#
ProductionEscalationStep::delay

#
ProductionEscalationStep::eligible

fn ProductionEscalationStep::eligible(self : ProductionEscalationStep, incident : ProductionIncident, now : Int64) -> Bool

#
ProductionEscalationStep::minimum_severity

#
ProductionEscalationStep::new

fn ProductionEscalationStep::new(channel : String, delay : Int64, minimum_severity? : AlertSeverity) -> ProductionEscalationStep

#
ProductionEventBudget

pub struct ProductionEventBudget {
capacity : Int
interval : Int64
window_start : Int64?
used : Int
denied : Int
}

A finite alert budget measured over a rolling event-time interval.

#
ProductionEventBudget::allow

fn ProductionEventBudget::allow(self : ProductionEventBudget, timestamp : Int64) -> Bool

#
ProductionEventBudget::denied

#
ProductionEventBudget::new

fn ProductionEventBudget::new(capacity? : Int, interval? : Int64) -> ProductionEventBudget

#
ProductionEventBudget::remaining

fn ProductionEventBudget::remaining(self : ProductionEventBudget) -> Int

#
ProductionEventBudget::used

#
ProductionExportBatch

pub struct ProductionExportBatch {
records : Array[ProductionExportRecord]
capacity : Int
accepted : Int
rejected : Int
duplicate : Int
}

Bounded in-memory batch used to make exports deterministic.

#
ProductionExportBatch::accepted

fn ProductionExportBatch::accepted(self : ProductionExportBatch) -> Int

#
ProductionExportBatch::add

#
ProductionExportBatch::add_many

#
ProductionExportBatch::capacity

fn ProductionExportBatch::capacity(self : ProductionExportBatch) -> Int

#
ProductionExportBatch::clear

#
ProductionExportBatch::count

#
ProductionExportBatch::duplicate

fn ProductionExportBatch::duplicate(self : ProductionExportBatch) -> Int

#
ProductionExportBatch::new

fn ProductionExportBatch::new(capacity? : Int) -> ProductionExportBatch

#
ProductionExportBatch::ordered

Return records ordered by event time without mutating the input batch.

#
ProductionExportBatch::records

#
ProductionExportBatch::rejected

fn ProductionExportBatch::rejected(self : ProductionExportBatch) -> Int

#
ProductionExportField

pub(all) enum ProductionExportField {
ExportTimestamp
ExportMetric
ExportValue
ExportBaseline
ExportScore
ExportHealth
ExportState
ExportSource
}

Fields that can be selected in a telemetry export.

#
ProductionExportFormat

pub(all) enum ProductionExportFormat {
ExportJsonLines
ExportCsv
ExportPrometheus
ExportMarkdown
ExportSummaryJson
}

Wire formats supported by the production telemetry exporter.

#
ProductionExportOptions

pub struct ProductionExportOptions {
format : ProductionExportFormat
delimiter : String
include_header : Bool
include_metadata : Bool
pretty : Bool
max_records : Int
metric_prefix : String
metric_namespace : String
line_ending : String
}

Export settings shared by all serializers.

#
ProductionExportOptions::delimiter

fn ProductionExportOptions::delimiter(self : ProductionExportOptions) -> String

#
ProductionExportOptions::format

#
ProductionExportOptions::include_header

fn ProductionExportOptions::include_header(self : ProductionExportOptions) -> Bool

#
ProductionExportOptions::include_metadata

fn ProductionExportOptions::include_metadata(self : ProductionExportOptions) -> Bool

#
ProductionExportOptions::line_ending

fn ProductionExportOptions::line_ending(self : ProductionExportOptions) -> String

#
ProductionExportOptions::max_records

fn ProductionExportOptions::max_records(self : ProductionExportOptions) -> Int

#
ProductionExportOptions::metric_namespace

fn ProductionExportOptions::metric_namespace(self : ProductionExportOptions) -> String

#
ProductionExportOptions::metric_prefix

fn ProductionExportOptions::metric_prefix(self : ProductionExportOptions) -> String

#
ProductionExportOptions::new

fn ProductionExportOptions::new(format? : ProductionExportFormat, delimiter? : String, include_header? : Bool, include_metadata? : Bool, pretty? : Bool, max_records? : Int, metric_prefix? : String, metric_namespace? : String, line_ending? : String) -> ProductionExportOptions

#
ProductionExportOptions::pretty

#
ProductionExportOptions::with_format

#
ProductionExportRecord

pub struct ProductionExportRecord {
timestamp : Int64
metric : String
value : Double
baseline : Double
score : Double
health : Double
state : String
source : String
}

One normalized telemetry row emitted by a monitor or replay.

#
ProductionExportRecord::as_key

fn ProductionExportRecord::as_key(self : ProductionExportRecord) -> String

#
ProductionExportRecord::baseline

fn ProductionExportRecord::baseline(self : ProductionExportRecord) -> Double

#
ProductionExportRecord::field

#
ProductionExportRecord::health

fn ProductionExportRecord::health(self : ProductionExportRecord) -> Double

#
ProductionExportRecord::is_finite

fn ProductionExportRecord::is_finite(self : ProductionExportRecord) -> Bool

#
ProductionExportRecord::metric

fn ProductionExportRecord::metric(self : ProductionExportRecord) -> String

#
ProductionExportRecord::new

fn ProductionExportRecord::new(timestamp : Int64, metric : String, value : Double, baseline? : Double, score? : Double, health? : Double, state? : String, source? : String) -> ProductionExportRecord

#
ProductionExportRecord::score

#
ProductionExportRecord::source

fn ProductionExportRecord::source(self : ProductionExportRecord) -> String

#
ProductionExportRecord::state

#
ProductionExportRecord::timestamp

fn ProductionExportRecord::timestamp(self : ProductionExportRecord) -> Int64

#
ProductionExportRecord::value

#
ProductionExportRecord::with_state

fn ProductionExportRecord::with_state(self : ProductionExportRecord, state : String) -> ProductionExportRecord

#
ProductionExportStats

pub struct ProductionExportStats {
batches : Int
records : Int
bytes : Int
failures : Int
truncated : Int
}

Exporter counters are kept separately from the batch so operators can monitor serialization failures across multiple flushes.

#
ProductionExportStats::batches

fn ProductionExportStats::batches(self : ProductionExportStats) -> Int

#
ProductionExportStats::bytes

#
ProductionExportStats::failures

fn ProductionExportStats::failures(self : ProductionExportStats) -> Int

#
ProductionExportStats::new

#
ProductionExportStats::records

fn ProductionExportStats::records(self : ProductionExportStats) -> Int

#
ProductionExportStats::success_rate

fn ProductionExportStats::success_rate(self : ProductionExportStats) -> Double

#
ProductionExportStats::summary

fn ProductionExportStats::summary(self : ProductionExportStats) -> String

#
ProductionExportStats::truncated

fn ProductionExportStats::truncated(self : ProductionExportStats) -> Int

#
ProductionFeature

pub struct ProductionFeature {
name : String
kind : ProductionFeatureKind
value : Double
valid : Bool
sample_count : Int
source_window : Int
}

One named feature value with quality and provenance metadata.

#
ProductionFeature::kind

#
ProductionFeature::name

fn ProductionFeature::name(self : ProductionFeature) -> String

#
ProductionFeature::new

fn ProductionFeature::new(kind : ProductionFeatureKind, value : Double, sample_count : Int, source_window : Int) -> ProductionFeature

#
ProductionFeature::sample_count

fn ProductionFeature::sample_count(self : ProductionFeature) -> Int

#
ProductionFeature::source_window

fn ProductionFeature::source_window(self : ProductionFeature) -> Int

#
ProductionFeature::valid

fn ProductionFeature::valid(self : ProductionFeature) -> Bool

#
ProductionFeature::value

fn ProductionFeature::value(self : ProductionFeature) -> Double

#
ProductionFeatureConfig

pub struct ProductionFeatureConfig {
window_size : Int
seasonal_period : Int
include_distribution : Bool
include_autocorrelation : Bool
outlier_threshold : Double
}

Configuration for an explainable feature extraction pass.

#
ProductionFeatureConfig::include_autocorrelation

fn ProductionFeatureConfig::include_autocorrelation(self : ProductionFeatureConfig) -> Bool

#
ProductionFeatureConfig::include_distribution

fn ProductionFeatureConfig::include_distribution(self : ProductionFeatureConfig) -> Bool

#
ProductionFeatureConfig::new

fn ProductionFeatureConfig::new(window_size? : Int, seasonal_period? : Int, include_distribution? : Bool, include_autocorrelation? : Bool, outlier_threshold? : Double) -> ProductionFeatureConfig

#
ProductionFeatureConfig::outlier_threshold

fn ProductionFeatureConfig::outlier_threshold(self : ProductionFeatureConfig) -> Double

#
ProductionFeatureConfig::seasonal_period

fn ProductionFeatureConfig::seasonal_period(self : ProductionFeatureConfig) -> Int

#
ProductionFeatureConfig::window_size

fn ProductionFeatureConfig::window_size(self : ProductionFeatureConfig) -> Int

#
ProductionFeatureKind

pub(all) enum ProductionFeatureKind {
LevelFeature
SpreadFeature
TrendFeature
VolatilityFeature
SkewFeature
KurtosisFeature
AutocorrelationFeature
DifferenceFeature
QuantileFeature
DistributionEntropyFeature
MissingRatioFeature
OutlierRatioFeature
SeasonalStrengthFeature
}

Feature family exposed by the production feature pipeline.

#
ProductionFeaturePipeline

pub struct ProductionFeaturePipeline {
config : ProductionFeatureConfig
windows : Array[ProductionTimeWindow]
extracted : Int
invalid : Int
}

Feature pipeline used before a model or detector call.

#
ProductionFeaturePipeline::config

#
ProductionFeaturePipeline::extract

#
ProductionFeaturePipeline::extract_batch

#
ProductionFeaturePipeline::extract_from_window

#
ProductionFeaturePipeline::extracted

#
ProductionFeaturePipeline::feature_names

fn ProductionFeaturePipeline::feature_names(self : ProductionFeaturePipeline) -> Array[String]

#
ProductionFeaturePipeline::invalid

#
ProductionFeaturePipeline::new

#
ProductionFeatureScaler

pub struct ProductionFeatureScaler {
centers : Array[Double]
scales : Array[Double]
fitted : Bool
}

Robust location and scale parameters learned from feature vectors.

#
ProductionFeatureScaler::centers

#
ProductionFeatureScaler::dimension

#
ProductionFeatureScaler::fit

#
ProductionFeatureScaler::inverse

fn ProductionFeatureScaler::inverse(self : ProductionFeatureScaler, values : Array[Double]) -> Array[Double]

#
ProductionFeatureScaler::is_fitted

fn ProductionFeatureScaler::is_fitted(self : ProductionFeatureScaler) -> Bool

#
ProductionFeatureScaler::new

#
ProductionFeatureScaler::scales

#
ProductionFeatureScaler::transform

#
ProductionFeatureVector

pub struct ProductionFeatureVector {
features : Array[ProductionFeature]
values : Array[Double]
valid_count : Int
missing_count : Int
}

A fixed-order feature vector suitable for a model or report.

#
ProductionFeatureVector::distance

#
ProductionFeatureVector::features

#
ProductionFeatureVector::get

#
ProductionFeatureVector::missing_count

fn ProductionFeatureVector::missing_count(self : ProductionFeatureVector) -> Int

#
ProductionFeatureVector::new

#
ProductionFeatureVector::summary

fn ProductionFeatureVector::summary(self : ProductionFeatureVector) -> String

#
ProductionFeatureVector::valid_count

fn ProductionFeatureVector::valid_count(self : ProductionFeatureVector) -> Int

#
ProductionFeatureVector::valid_ratio

fn ProductionFeatureVector::valid_ratio(self : ProductionFeatureVector) -> Double

#
ProductionFeatureVector::values

#
ProductionFillPolicy

pub(all) enum ProductionFillPolicy {
ForwardFill
ZeroFill
LinearInterpolate
SkipEmpty
}

Policy for values in empty resampling buckets.

#
ProductionForecastInterval

pub struct ProductionForecastInterval {
timestamp : Int64
prediction : Double
lower : Double
upper : Double
confidence : Double
horizon : Int
model : ProductionForecastKind
}

Forecast interval with explicit coverage and residual diagnostics.

#
ProductionForecastInterval::confidence

#
ProductionForecastInterval::horizon

#
ProductionForecastInterval::lower

#
ProductionForecastInterval::new

fn ProductionForecastInterval::new(timestamp : Int64, prediction : Double, uncertainty : Double, confidence? : Double, horizon? : Int, model? : ProductionForecastKind) -> ProductionForecastInterval

#
ProductionForecastInterval::prediction

#
ProductionForecastInterval::timestamp

#
ProductionForecastInterval::upper

#
ProductionForecastInterval::width

#
ProductionForecastKind

pub(all) enum ProductionForecastKind {
LastValueForecast
MeanForecast
HoltForecast
SeasonalNaiveForecast
HoltWintersForecast
}

Forecast family supported by the production model wrapper.

#
ProductionForecastScore

pub struct ProductionForecastScore {
model : ProductionForecastKind
mae : Double
rmse : Double
bias : Double
coverage : Double
}

Compares several deterministic forecast families on a holdout suffix.

#
ProductionForecastScore::bias

#
ProductionForecastScore::coverage

fn ProductionForecastScore::coverage(self : ProductionForecastScore) -> Double

#
ProductionForecastScore::mae

#
ProductionForecastScore::model

#
ProductionForecastScore::rmse

#
ProductionForecaster

pub struct ProductionForecaster {
kind : ProductionForecastKind
period : Int
horizon : Int
window : DoubleWindow
holt : HoltForecaster
seasonal : ProductionHoltWinters
residuals : ProductionQuantileState
count : Int
missing : Int
}

A model-agnostic production forecaster with a rolling residual envelope.

#
ProductionForecaster::count

#
ProductionForecaster::forecast

fn ProductionForecaster::forecast(self : ProductionForecaster, start_timestamp : Int64, step : Int64, horizon? : Int, confidence? : Double) -> Array[ProductionForecastInterval]

#
ProductionForecaster::kind

#
ProductionForecaster::missing

fn ProductionForecaster::missing(self : ProductionForecaster) -> Int

#
ProductionForecaster::new

fn ProductionForecaster::new(kind? : ProductionForecastKind, window_size? : Int, period? : Int, horizon? : Int) -> ProductionForecaster

#
ProductionForecaster::predict

fn ProductionForecaster::predict(self : ProductionForecaster) -> Double

#
ProductionForecaster::uncertainty

fn ProductionForecaster::uncertainty(self : ProductionForecaster, confidence? : Double) -> Double

#
ProductionForecaster::update

#
ProductionGuardrailAction

pub(all) enum ProductionGuardrailAction {
GuardrailAllow
GuardrailObserve
GuardrailWarn
GuardrailBlock
GuardrailRollback
}

Action selected by a production rollout guard.

#
ProductionGuardrailController

pub struct ProductionGuardrailController {
rules : Array[ProductionGuardrailRule]
history : Array[ProductionGuardrailDecision]
failure_streak : Int
recovery_streak : Int
sequence : Int64
blocked : Bool
paused : Bool
last_timestamp : Int64
evaluated : Int
triggered : Int
}

Stateful canary and rollout gate.

#
ProductionGuardrailController::clear_history

#
ProductionGuardrailController::evaluate

Evaluate one signal and update the controller state.

#
ProductionGuardrailController::evaluate_batch

Evaluate aligned observations and return one decision per signal.

#
ProductionGuardrailController::evaluated

#
ProductionGuardrailController::failure_streak

#
ProductionGuardrailController::history

#
ProductionGuardrailController::is_blocked

#
ProductionGuardrailController::is_paused

#
ProductionGuardrailController::latest

#
ProductionGuardrailController::new

#
ProductionGuardrailController::pause

#
ProductionGuardrailController::recovery_streak

#
ProductionGuardrailController::register

#
ProductionGuardrailController::remove

fn ProductionGuardrailController::remove(self : ProductionGuardrailController, name : String) -> Bool

#
ProductionGuardrailController::resume_guardrail

#
ProductionGuardrailController::rule_count

#
ProductionGuardrailController::rules

#
ProductionGuardrailController::summary

#
ProductionGuardrailController::triggered

#
ProductionGuardrailController::unblock

#
ProductionGuardrailDecision

pub struct ProductionGuardrailDecision {
action : ProductionGuardrailAction
rule_name : String
metric : ProductionGuardrailMetricKind
value : Double
threshold : Double
score : Double
triggered : Bool
failure_streak : Int
recovery_streak : Int
sequence : Int64
reason : String
}

Decision emitted by a guard after evaluating an observation.

#
ProductionGuardrailDecision::action

#
ProductionGuardrailDecision::failure_streak

#
ProductionGuardrailDecision::metric

#
ProductionGuardrailDecision::reason

#
ProductionGuardrailDecision::recovery_streak

fn ProductionGuardrailDecision::recovery_streak(self : ProductionGuardrailDecision) -> Int

#
ProductionGuardrailDecision::rule_name

#
ProductionGuardrailDecision::score

#
ProductionGuardrailDecision::sequence

#
ProductionGuardrailDecision::summary

#
ProductionGuardrailDecision::threshold

#
ProductionGuardrailDecision::triggered

#
ProductionGuardrailDecision::value

#
ProductionGuardrailDirection

pub(all) enum ProductionGuardrailDirection {
GuardrailAbove
GuardrailBelow
GuardrailOutside
}

Direction of an operational threshold.

#
ProductionGuardrailMetricKind

pub(all) enum ProductionGuardrailMetricKind {
GuardrailErrorRate
GuardrailFalsePositiveRate
GuardrailDetectionDelay
GuardrailDataQuality
GuardrailThroughput
GuardrailLatency
GuardrailCoverage
GuardrailDriftScore
}

Operational signal monitored during a canary rollout.

#
ProductionGuardrailObservation

pub struct ProductionGuardrailObservation {
timestamp : Int64
metric : ProductionGuardrailMetricKind
value : Double
baseline : Double
sample_count : Int
confidence : Double
source : String
}

Observed value supplied to a rollout guard.

#
ProductionGuardrailObservation::baseline

#
ProductionGuardrailObservation::confidence

#
ProductionGuardrailObservation::is_finite

#
ProductionGuardrailObservation::new

fn ProductionGuardrailObservation::new(timestamp : Int64, metric : ProductionGuardrailMetricKind, value : Double, sample_count? : Int, baseline? : Double, confidence? : Double, source? : String) -> ProductionGuardrailObservation

#
ProductionGuardrailObservation::relative_change

#
ProductionGuardrailObservation::sample_count

#
ProductionGuardrailObservation::source

#
ProductionGuardrailObservation::timestamp

#
ProductionGuardrailObservation::value

#
ProductionGuardrailRule

pub struct ProductionGuardrailRule {
name : String
metric : ProductionGuardrailMetricKind
direction : ProductionGuardrailDirection
warning_threshold : Double
blocking_threshold : Double
rollback_threshold : Double
minimum_samples : Int
window_size : Int
consecutive_failures : Int
recovery_samples : Int
weight : Double
enabled : Bool
}

A single rollout policy for one service-level signal.

#
ProductionGuardrailRule::blocking_threshold

fn ProductionGuardrailRule::blocking_threshold(self : ProductionGuardrailRule) -> Double

#
ProductionGuardrailRule::consecutive_failures

fn ProductionGuardrailRule::consecutive_failures(self : ProductionGuardrailRule) -> Int

#
ProductionGuardrailRule::direction

#
ProductionGuardrailRule::enabled

#
ProductionGuardrailRule::metric

#
ProductionGuardrailRule::minimum_samples

fn ProductionGuardrailRule::minimum_samples(self : ProductionGuardrailRule) -> Int

#
ProductionGuardrailRule::name

#
ProductionGuardrailRule::new

fn ProductionGuardrailRule::new(name : String, metric? : ProductionGuardrailMetricKind, direction? : ProductionGuardrailDirection, warning_threshold? : Double, blocking_threshold? : Double, rollback_threshold? : Double, minimum_samples? : Int, window_size? : Int, consecutive_failures? : Int, recovery_samples? : Int, weight? : Double, enabled? : Bool) -> ProductionGuardrailRule

#
ProductionGuardrailRule::recovery_samples

fn ProductionGuardrailRule::recovery_samples(self : ProductionGuardrailRule) -> Int

#
ProductionGuardrailRule::rollback_threshold

fn ProductionGuardrailRule::rollback_threshold(self : ProductionGuardrailRule) -> Double

#
ProductionGuardrailRule::warning_threshold

fn ProductionGuardrailRule::warning_threshold(self : ProductionGuardrailRule) -> Double

#
ProductionGuardrailRule::weight

#
ProductionGuardrailRule::window_size

fn ProductionGuardrailRule::window_size(self : ProductionGuardrailRule) -> Int

#
ProductionGuardrailRule::with_enabled

fn ProductionGuardrailRule::with_enabled(self : ProductionGuardrailRule, enabled : Bool) -> ProductionGuardrailRule

#
ProductionGuardrailSummary

pub struct ProductionGuardrailSummary {
evaluated : Int
triggered : Int
blocked : Bool
paused : Bool
failure_streak : Int
recovery_streak : Int
risk_score : Double
}

Compact rollout health summary.

#
ProductionGuardrailSummary::blocked

#
ProductionGuardrailSummary::evaluated

#
ProductionGuardrailSummary::failure_streak

fn ProductionGuardrailSummary::failure_streak(self : ProductionGuardrailSummary) -> Int

#
ProductionGuardrailSummary::paused

#
ProductionGuardrailSummary::recovery_streak

fn ProductionGuardrailSummary::recovery_streak(self : ProductionGuardrailSummary) -> Int

#
ProductionGuardrailSummary::risk_score

#
ProductionGuardrailSummary::triggered

#
ProductionHealthState

pub(all) enum ProductionHealthState {
ColdStart
Healthy
DegradedQuality
AlertingState
RecoveringState
DisabledState
}

Lifecycle state of an online production monitor.

#
ProductionHoltWinters

pub struct ProductionHoltWinters {
period : Int
alpha : Double
beta : Double
gamma : Double
levels : Array[Double]
level : Double
trend : Double
count : Int
index : Int
initialized : Bool
residuals : ProductionResidualScale
}

Additive Holt-Winters state for periodic production telemetry.

#
ProductionHoltWinters::count

#
ProductionHoltWinters::level

fn ProductionHoltWinters::level(self : ProductionHoltWinters) -> Double

#
ProductionHoltWinters::new

fn ProductionHoltWinters::new(period? : Int, alpha? : Double, beta? : Double, gamma? : Double) -> ProductionHoltWinters

#
ProductionHoltWinters::period

#
ProductionHoltWinters::predict

fn ProductionHoltWinters::predict(self : ProductionHoltWinters, horizon? : Int) -> Double

#
ProductionHoltWinters::predict_interval

fn ProductionHoltWinters::predict_interval(self : ProductionHoltWinters, timestamp : Int64, horizon? : Int, confidence? : Double) -> ProductionForecastInterval

#
ProductionHoltWinters::seasonals

fn ProductionHoltWinters::seasonals(self : ProductionHoltWinters) -> Array[Double]

#
ProductionHoltWinters::trend

fn ProductionHoltWinters::trend(self : ProductionHoltWinters) -> Double

#
ProductionHoltWinters::update

fn ProductionHoltWinters::update(self : ProductionHoltWinters, value : Double) -> ForecastPoint

#
ProductionIncident

pub struct ProductionIncident {
id : Int
metric : String
first_timestamp : Int64
last_timestamp : Int64
alert_count : Int
max_score : Double
severity : AlertSeverity
state : ProductionIncidentState
acknowledged : Bool
snooze_until : Int64?
escalation_level : Int
recovery_observations : Int
}

A grouped set of related monitor events for one metric.

#
ProductionIncident::absorb

#
ProductionIncident::acknowledge

fn ProductionIncident::acknowledge(self : ProductionIncident) -> Unit

#
ProductionIncident::acknowledged

fn ProductionIncident::acknowledged(self : ProductionIncident) -> Bool

#
ProductionIncident::alert_count

fn ProductionIncident::alert_count(self : ProductionIncident) -> Int

#
ProductionIncident::duration

fn ProductionIncident::duration(self : ProductionIncident) -> Int64

#
ProductionIncident::escalate

fn ProductionIncident::escalate(self : ProductionIncident) -> Int

#
ProductionIncident::escalation_level

fn ProductionIncident::escalation_level(self : ProductionIncident) -> Int

#
ProductionIncident::first_timestamp

fn ProductionIncident::first_timestamp(self : ProductionIncident) -> Int64

#
ProductionIncident::id

#
ProductionIncident::is_open

fn ProductionIncident::is_open(self : ProductionIncident) -> Bool

#
ProductionIncident::last_timestamp

fn ProductionIncident::last_timestamp(self : ProductionIncident) -> Int64

#
ProductionIncident::max_score

fn ProductionIncident::max_score(self : ProductionIncident) -> Double

#
ProductionIncident::metric

fn ProductionIncident::metric(self : ProductionIncident) -> String

#
ProductionIncident::new

#
ProductionIncident::observe_recovery

fn ProductionIncident::observe_recovery(self : ProductionIncident) -> Unit

#
ProductionIncident::recovery_observations

fn ProductionIncident::recovery_observations(self : ProductionIncident) -> Int

#
ProductionIncident::reopen

fn ProductionIncident::reopen(self : ProductionIncident) -> Unit

#
ProductionIncident::resolve

fn ProductionIncident::resolve(self : ProductionIncident) -> Unit

#
ProductionIncident::severity

#
ProductionIncident::snooze

fn ProductionIncident::snooze(self : ProductionIncident, until : Int64) -> Unit

#
ProductionIncident::state

#
ProductionIncident::summary

fn ProductionIncident::summary(self : ProductionIncident) -> String

#
ProductionIncidentManager

pub struct ProductionIncidentManager {
policy : ProductionIncidentPolicy
incidents : Array[ProductionIncident]
next_id : Int
ingested : Int
grouped : Int
resolved : Int
}

Incident manager used by streaming and batch integrations.

#
ProductionIncidentManager::escalate_due

#
ProductionIncidentManager::grouped

#
ProductionIncidentManager::incident_count

fn ProductionIncidentManager::incident_count(self : ProductionIncidentManager) -> Int

#
ProductionIncidentManager::incidents

#
ProductionIncidentManager::ingest

#
ProductionIncidentManager::ingested

#
ProductionIncidentManager::new

#
ProductionIncidentManager::observe_healthy

fn ProductionIncidentManager::observe_healthy(self : ProductionIncidentManager, metric : String, timestamp : Int64) -> Array[ProductionIncident]

#
ProductionIncidentManager::open_incidents

#
ProductionIncidentManager::policy

#
ProductionIncidentManager::reset

#
ProductionIncidentManager::resolved

#
ProductionIncidentPolicy

pub struct ProductionIncidentPolicy {
grouping_gap : Int64
recovery_points : Int
escalation_after : Int
retention : Int
}

Controls incident grouping, recovery and retention.

#
ProductionIncidentPolicy::escalation_after

fn ProductionIncidentPolicy::escalation_after(self : ProductionIncidentPolicy) -> Int

#
ProductionIncidentPolicy::grouping_gap

fn ProductionIncidentPolicy::grouping_gap(self : ProductionIncidentPolicy) -> Int64

#
ProductionIncidentPolicy::new

fn ProductionIncidentPolicy::new(grouping_gap? : Int64, recovery_points? : Int, escalation_after? : Int, retention? : Int) -> ProductionIncidentPolicy

#
ProductionIncidentPolicy::recovery_points

fn ProductionIncidentPolicy::recovery_points(self : ProductionIncidentPolicy) -> Int

#
ProductionIncidentPolicy::retention

#
ProductionIncidentState

pub(all) enum ProductionIncidentState {
OpenIncident
AcknowledgedIncident
SnoozedIncident
ResolvedIncident
ReopenedIncident
}

Lifecycle of a grouped production incident.

#
ProductionMaintenanceWindow

pub struct ProductionMaintenanceWindow {
name : String
start : Int64
end : Int64
reason : String
}

A maintenance interval during which alert delivery is intentionally muted.

#
ProductionMaintenanceWindow::contains

fn ProductionMaintenanceWindow::contains(self : ProductionMaintenanceWindow, timestamp : Int64) -> Bool

#
ProductionMaintenanceWindow::duration

#
ProductionMaintenanceWindow::end

#
ProductionMaintenanceWindow::name

#
ProductionMaintenanceWindow::new

fn ProductionMaintenanceWindow::new(name : String, start : Int64, end : Int64, reason? : String) -> ProductionMaintenanceWindow

#
ProductionMaintenanceWindow::reason

#
ProductionMaintenanceWindow::start

#
ProductionMetricCatalog

pub struct ProductionMetricCatalog {
series : Array[ProductionMetricSeries]
ingested : Int
rejected : Int
}

A deterministic collection of named series for multimetric monitoring.

#
ProductionMetricCatalog::find

#
ProductionMetricCatalog::ingest

fn ProductionMetricCatalog::ingest(self : ProductionMetricCatalog, name : String, sample : ProductionSample) -> Bool

#
ProductionMetricCatalog::ingest_point

fn ProductionMetricCatalog::ingest_point(self : ProductionMetricCatalog, name : String, point : SignalPoint) -> Bool

#
ProductionMetricCatalog::ingested

#
ProductionMetricCatalog::metric_count

fn ProductionMetricCatalog::metric_count(self : ProductionMetricCatalog) -> Int

#
ProductionMetricCatalog::names

#
ProductionMetricCatalog::new

#
ProductionMetricCatalog::register

#
ProductionMetricCatalog::rejected

#
ProductionMetricCatalog::relations

fn ProductionMetricCatalog::relations(self : ProductionMetricCatalog, correlation_threshold? : Double) -> Array[ProductionMetricRelation]

#
ProductionMetricCatalog::series

#
ProductionMetricCatalog::summary

#
ProductionMetricFrame

pub struct ProductionMetricFrame {
timestamp : Int64
names : Array[String]
values : Array[Double]
valid : Array[Bool]
}

A synchronized row across several metric series.

#
ProductionMetricFrame::dimension

fn ProductionMetricFrame::dimension(self : ProductionMetricFrame) -> Int

#
ProductionMetricFrame::is_complete

fn ProductionMetricFrame::is_complete(self : ProductionMetricFrame) -> Bool

#
ProductionMetricFrame::names

#
ProductionMetricFrame::new

fn ProductionMetricFrame::new(timestamp : Int64, names : Array[String], values : Array[Double]) -> ProductionMetricFrame

#
ProductionMetricFrame::timestamp

fn ProductionMetricFrame::timestamp(self : ProductionMetricFrame) -> Int64

#
ProductionMetricFrame::valid_count

fn ProductionMetricFrame::valid_count(self : ProductionMetricFrame) -> Int

#
ProductionMetricFrame::values

fn ProductionMetricFrame::values(self : ProductionMetricFrame) -> Array[Double]

#
ProductionMetricRelation

pub struct ProductionMetricRelation {
left : String
right : String
correlation : Double
distance : Double
related : Bool
}

Cross-series relation used to prioritize correlated incidents.

#
ProductionMetricRelation::correlation

fn ProductionMetricRelation::correlation(self : ProductionMetricRelation) -> Double

#
ProductionMetricRelation::distance

fn ProductionMetricRelation::distance(self : ProductionMetricRelation) -> Double

#
ProductionMetricRelation::left

#
ProductionMetricRelation::related

#
ProductionMetricRelation::right

#
ProductionMetricSeries

pub struct ProductionMetricSeries {
name : String
unit : String
window : ProductionTimeWindow
updates : Int
invalid : Int
}

A named metric series with bounded event-time retention.

#
ProductionMetricSeries::change_score

fn ProductionMetricSeries::change_score(self : ProductionMetricSeries, split : Int) -> Double

#
ProductionMetricSeries::correlation

fn ProductionMetricSeries::correlation(self : ProductionMetricSeries, other : ProductionMetricSeries) -> Double

#
ProductionMetricSeries::invalid

#
ProductionMetricSeries::latest

#
ProductionMetricSeries::name

#
ProductionMetricSeries::new

fn ProductionMetricSeries::new(name : String, unit? : String, capacity? : Int) -> ProductionMetricSeries

#
ProductionMetricSeries::push

#
ProductionMetricSeries::push_point

fn ProductionMetricSeries::push_point(self : ProductionMetricSeries, point : SignalPoint) -> Bool

#
ProductionMetricSeries::summary

#
ProductionMetricSeries::unit

#
ProductionMetricSeries::updates

#
ProductionMetricSeries::values

#
ProductionMetricSeries::window

#
ProductionMonitor

pub struct ProductionMonitor {
config : ProductionMonitorConfig
detector : PipelineDetector
baseline_window : DoubleWindow
recent_window : ProductionTimeWindow
events : Array[ProductionMonitorEvent]
state : ProductionHealthState
processed : Int
valid : Int
invalid : Int
changes : Int
emitted : Int
suppressed : Int
recovery_count : Int
consecutive_healthy : Int
consecutive_alerts : Int
ordinal : Int
latest_score : Double
latest_baseline : Double
latest_value : Double
last_timestamp : Int64
last_value : Double?
}

Stateful online monitor joining data quality, baselines, detection, and alert policy.

#
ProductionMonitor::changes

fn ProductionMonitor::changes(self : ProductionMonitor) -> Int

#
ProductionMonitor::checkpoint

#
ProductionMonitor::config

#
ProductionMonitor::emitted

fn ProductionMonitor::emitted(self : ProductionMonitor) -> Int

#
ProductionMonitor::event_count

fn ProductionMonitor::event_count(self : ProductionMonitor) -> Int

#
ProductionMonitor::events

#
ProductionMonitor::invalid

fn ProductionMonitor::invalid(self : ProductionMonitor) -> Int

#
ProductionMonitor::latest_baseline

fn ProductionMonitor::latest_baseline(self : ProductionMonitor) -> Double

#
ProductionMonitor::latest_score

fn ProductionMonitor::latest_score(self : ProductionMonitor) -> Double

#
ProductionMonitor::latest_value

fn ProductionMonitor::latest_value(self : ProductionMonitor) -> Double

#
ProductionMonitor::new

#
ProductionMonitor::processed

fn ProductionMonitor::processed(self : ProductionMonitor) -> Int

#
ProductionMonitor::recent_summary

#
ProductionMonitor::recent_values

fn ProductionMonitor::recent_values(self : ProductionMonitor) -> Array[Double]

#
ProductionMonitor::recovery_count

fn ProductionMonitor::recovery_count(self : ProductionMonitor) -> Int

#
ProductionMonitor::reset

fn ProductionMonitor::reset(self : ProductionMonitor) -> Unit

#
ProductionMonitor::snapshot

#
ProductionMonitor::state

#
ProductionMonitor::suppressed

fn ProductionMonitor::suppressed(self : ProductionMonitor) -> Int

#
ProductionMonitor::update

#
ProductionMonitor::update_batch

#
ProductionMonitor::update_point

#
ProductionMonitor::valid

fn ProductionMonitor::valid(self : ProductionMonitor) -> Int

#
ProductionMonitorCheckpoint

pub struct ProductionMonitorCheckpoint {
config_fingerprint : String
processed : Int
valid : Int
invalid : Int
changes : Int
emitted : Int
suppressed : Int
recovery_count : Int
last_timestamp : Int64
baseline : Double
latest_value : Double
latest_score : Double
state : ProductionHealthState
baseline_values : Array[Double]
recent_values : Array[Double]
}

Checkpoint data that can be persisted by an embedding service.

#
ProductionMonitorCheckpoint::baseline

#
ProductionMonitorCheckpoint::changes

#
ProductionMonitorCheckpoint::fingerprint

#
ProductionMonitorCheckpoint::invalid

#
ProductionMonitorCheckpoint::latest_value

fn ProductionMonitorCheckpoint::latest_value(self : ProductionMonitorCheckpoint) -> Double

#
ProductionMonitorCheckpoint::processed

#
ProductionMonitorCheckpoint::recent_values

#
ProductionMonitorCheckpoint::state

#
ProductionMonitorCheckpoint::valid

#
ProductionMonitorConfig

pub struct ProductionMonitorConfig {
name : String
mode : ProductionMonitorMode
missing_values : MissingValueStrategy
baseline : ProductionBaselineStrategy
fixed_baseline : Double
detection : ProductionDetectionConfig
window : ProductionWindowConfig
alerts : ProductionAlertConfig
dimensions : Int
version : Int
}

Complete configuration for one production monitor.

#
ProductionMonitorConfig::alerts

#
ProductionMonitorConfig::baseline

#
ProductionMonitorConfig::detection

#
ProductionMonitorConfig::dimensions

fn ProductionMonitorConfig::dimensions(self : ProductionMonitorConfig) -> Int

#
ProductionMonitorConfig::fingerprint

fn ProductionMonitorConfig::fingerprint(self : ProductionMonitorConfig) -> String

A compact configuration fingerprint for cache keys and deployment audits.

#
ProductionMonitorConfig::fixed_baseline

fn ProductionMonitorConfig::fixed_baseline(self : ProductionMonitorConfig) -> Double

#
ProductionMonitorConfig::is_actionable

fn ProductionMonitorConfig::is_actionable(self : ProductionMonitorConfig, result : DetectionResult) -> Bool

Determines whether a result is actionable for the configured mode.

#
ProductionMonitorConfig::is_valid

#
ProductionMonitorConfig::missing_values

#
ProductionMonitorConfig::mode

#
ProductionMonitorConfig::name

#
ProductionMonitorConfig::new

fn ProductionMonitorConfig::new(name? : String, mode? : ProductionMonitorMode, missing_values? : MissingValueStrategy, baseline? : ProductionBaselineStrategy, fixed_baseline? : Double, detection? : ProductionDetectionConfig, window? : ProductionWindowConfig, alerts? : ProductionAlertConfig, dimensions? : Int, version? : Int) -> ProductionMonitorConfig

#
ProductionMonitorConfig::next_version

Returns a copy with a bumped configuration version.

#
ProductionMonitorConfig::summary

fn ProductionMonitorConfig::summary(self : ProductionMonitorConfig) -> String

#
ProductionMonitorConfig::validate

Validates a complete configuration without throwing, suitable for CI and startup checks.

#
ProductionMonitorConfig::version

#
ProductionMonitorConfig::window

#
ProductionMonitorEvent

pub struct ProductionMonitorEvent {
metric : String
timestamp : Int64
sequence : Int
kind : ProductionMonitorEventKind
state : ProductionHealthState
result : DetectionResult
baseline : Double
value : Double
message : String
ordinal : Int
}

A durable audit record for each significant state transition.

#
ProductionMonitorEvent::baseline

fn ProductionMonitorEvent::baseline(self : ProductionMonitorEvent) -> Double

#
ProductionMonitorEvent::kind

#
ProductionMonitorEvent::message

fn ProductionMonitorEvent::message(self : ProductionMonitorEvent) -> String

#
ProductionMonitorEvent::metric

fn ProductionMonitorEvent::metric(self : ProductionMonitorEvent) -> String

#
ProductionMonitorEvent::ordinal

#
ProductionMonitorEvent::result

#
ProductionMonitorEvent::sequence

#
ProductionMonitorEvent::state

#
ProductionMonitorEvent::summary

fn ProductionMonitorEvent::summary(self : ProductionMonitorEvent) -> String

#
ProductionMonitorEvent::timestamp

fn ProductionMonitorEvent::timestamp(self : ProductionMonitorEvent) -> Int64

#
ProductionMonitorEvent::value

#
ProductionMonitorEventKind

pub(all) enum ProductionMonitorEventKind {
Observation
InvalidInput
WarmupObservation
ChangeDetected
AlertEmitted
AlertSuppressed
RecoveryStarted
RecoveryCompleted
QualityDegraded
}

Reason carried by an audit event emitted from a monitor.

#
ProductionMonitorMode

pub(all) enum ProductionMonitorMode {
ObserveOnly
Alerting
Backfill
Replay
}

Operating mode for a production monitor.

#
ProductionMonitorSnapshot

pub struct ProductionMonitorSnapshot {
name : String
state : ProductionHealthState
processed : Int
valid : Int
invalid : Int
warmup_remaining : Int
changes : Int
emitted : Int
suppressed : Int
recovery_count : Int
latest_score : Double
baseline : Double
latest_value : Double
quality_ratio : Double
last_timestamp : Int64
}

A compact operational snapshot suitable for a dashboard or heartbeat endpoint.

#
ProductionMonitorSnapshot::baseline

#
ProductionMonitorSnapshot::changes

#
ProductionMonitorSnapshot::emitted

#
ProductionMonitorSnapshot::invalid

#
ProductionMonitorSnapshot::is_healthy

#
ProductionMonitorSnapshot::last_timestamp

fn ProductionMonitorSnapshot::last_timestamp(self : ProductionMonitorSnapshot) -> Int64

#
ProductionMonitorSnapshot::latest_score

fn ProductionMonitorSnapshot::latest_score(self : ProductionMonitorSnapshot) -> Double

#
ProductionMonitorSnapshot::latest_value

fn ProductionMonitorSnapshot::latest_value(self : ProductionMonitorSnapshot) -> Double

#
ProductionMonitorSnapshot::name

#
ProductionMonitorSnapshot::processed

#
ProductionMonitorSnapshot::quality_ratio

fn ProductionMonitorSnapshot::quality_ratio(self : ProductionMonitorSnapshot) -> Double

#
ProductionMonitorSnapshot::recovery_count

fn ProductionMonitorSnapshot::recovery_count(self : ProductionMonitorSnapshot) -> Int

#
ProductionMonitorSnapshot::state

#
ProductionMonitorSnapshot::summary

#
ProductionMonitorSnapshot::suppressed

#
ProductionMonitorSnapshot::valid

#
ProductionMonitorSnapshot::warmup_remaining

fn ProductionMonitorSnapshot::warmup_remaining(self : ProductionMonitorSnapshot) -> Int

#
ProductionOnlineCalibrator

pub struct ProductionOnlineCalibrator {
bins : Array[ProductionScoreBin]
mode : ProductionCalibrationMode
observations : Int
positive : Int
negative : Int
}

Bounded online calibrator with deployment-safe priors.

#
ProductionOnlineCalibrator::bin_count

#
ProductionOnlineCalibrator::bins

#
ProductionOnlineCalibrator::calibrate

fn ProductionOnlineCalibrator::calibrate(self : ProductionOnlineCalibrator, score : Double) -> Double

#
ProductionOnlineCalibrator::negative

#
ProductionOnlineCalibrator::new

#
ProductionOnlineCalibrator::observations

#
ProductionOnlineCalibrator::positive

#
ProductionOnlineCalibrator::reliability_error

fn ProductionOnlineCalibrator::reliability_error(self : ProductionOnlineCalibrator) -> Double

#
ProductionOnlineCalibrator::reset

#
ProductionOnlineCalibrator::update

fn ProductionOnlineCalibrator::update(self : ProductionOnlineCalibrator, score : Double, changed : Bool, weight? : Double) -> Unit

#
ProductionPolicyEngine

pub struct ProductionPolicyEngine {
rules : Array[ProductionDeliveryRule]
schedule : ProductionSuppressionSchedule
budget : ProductionEventBudget
recent : Array[ProductionAlertEnvelope]
evaluated : Int
delivered : Int
suppressed : Int
duplicates : Int
}

Policy engine combining maintenance, budgets, cooldowns and deduplication.

#
ProductionPolicyEngine::add_maintenance

fn ProductionPolicyEngine::add_maintenance(self : ProductionPolicyEngine, window : ProductionMaintenanceWindow) -> Bool

#
ProductionPolicyEngine::add_rule

#
ProductionPolicyEngine::delivered

fn ProductionPolicyEngine::delivered(self : ProductionPolicyEngine) -> Int

#
ProductionPolicyEngine::duplicates

fn ProductionPolicyEngine::duplicates(self : ProductionPolicyEngine) -> Int

#
ProductionPolicyEngine::evaluate

#
ProductionPolicyEngine::evaluated

fn ProductionPolicyEngine::evaluated(self : ProductionPolicyEngine) -> Int

#
ProductionPolicyEngine::new

#
ProductionPolicyEngine::reset

#
ProductionPolicyEngine::rules

#
ProductionPolicyEngine::suppressed

fn ProductionPolicyEngine::suppressed(self : ProductionPolicyEngine) -> Int

#
ProductionPreprocessingReport

pub struct ProductionPreprocessingReport {
input_count : Int
output_count : Int
invalid_input : Int
invalid_output : Int
clipped : Int
imputed : Int
transformed : Int
finite : Bool
}

Diagnostics from one preprocessing pass.

#
ProductionPreprocessingReport::clipped

#
ProductionPreprocessingReport::empty

#
ProductionPreprocessingReport::finite

#
ProductionPreprocessingReport::imputed

#
ProductionPreprocessingReport::input_count

#
ProductionPreprocessingReport::invalid_input

#
ProductionPreprocessingReport::invalid_output

#
ProductionPreprocessingReport::output_count

#
ProductionPreprocessingReport::quality

#
ProductionPreprocessingReport::summary

#
ProductionPreprocessingReport::transformed

#
ProductionPreprocessor

pub struct ProductionPreprocessor {
specs : Array[ProductionTransformSpec]
missing : MissingValueStrategy
batches : Int
values : Int
failed : Int
}

A transform chain that can be reused across batches.

#
ProductionPreprocessor::add

#
ProductionPreprocessor::batches

#
ProductionPreprocessor::clear

#
ProductionPreprocessor::failed

#
ProductionPreprocessor::new

#
ProductionPreprocessor::specs

#
ProductionPreprocessor::transform

fn ProductionPreprocessor::transform(self : ProductionPreprocessor, values : Array[Double]) -> (Array[Double], ProductionPreprocessingReport)

#
ProductionPreprocessor::transform_batches

fn ProductionPreprocessor::transform_batches(self : ProductionPreprocessor, batches : Array[Array[Double]]) -> Array[Array[Double]]

#
ProductionPreprocessor::transform_points

#
ProductionPreprocessor::values

#
ProductionQuantileState

pub struct ProductionQuantileState {
capacity : Int
residuals : Array[Double]
cursor : Int
}

Robust quantile state for models with non-Gaussian residuals.

#
ProductionQuantileState::absolute_quantile

fn ProductionQuantileState::absolute_quantile(self : ProductionQuantileState, probability : Double) -> Double

#
ProductionQuantileState::count

#
ProductionQuantileState::middle_spread

fn ProductionQuantileState::middle_spread(self : ProductionQuantileState) -> Double

#
ProductionQuantileState::new

#
ProductionQuantileState::push

fn ProductionQuantileState::push(self : ProductionQuantileState, residual : Double) -> Unit

#
ProductionQuantileState::quantile

fn ProductionQuantileState::quantile(self : ProductionQuantileState, probability : Double) -> Double

#
ProductionQueryResult

pub struct ProductionQueryResult {
metric : String
window : ProductionQueryWindow
function : ProductionWindowFunction
value : Double
count : Int
quality : Double
}

#
ProductionQueryResult::count

#
ProductionQueryResult::function

#
ProductionQueryResult::metric

fn ProductionQueryResult::metric(self : ProductionQueryResult) -> String

#
ProductionQueryResult::quality

fn ProductionQueryResult::quality(self : ProductionQueryResult) -> Double

#
ProductionQueryResult::summary

fn ProductionQueryResult::summary(self : ProductionQueryResult) -> String

#
ProductionQueryResult::value

fn ProductionQueryResult::value(self : ProductionQueryResult) -> Double

#
ProductionQueryResult::window

#
ProductionQueryWindow

pub struct ProductionQueryWindow {
start : Int64
end : Int64
}

#
ProductionQueryWindow::contains

fn ProductionQueryWindow::contains(self : ProductionQueryWindow, timestamp : Int64) -> Bool

#
ProductionQueryWindow::duration

fn ProductionQueryWindow::duration(self : ProductionQueryWindow) -> Int64

#
ProductionQueryWindow::end

#
ProductionQueryWindow::new

fn ProductionQueryWindow::new(start : Int64, end : Int64) -> ProductionQueryWindow

#
ProductionQueryWindow::start

fn ProductionQueryWindow::start(self : ProductionQueryWindow) -> Int64

#
ProductionRateSummary

pub struct ProductionRateSummary {
samples : Int
resets : Int
invalid : Int
mean_rate : Double
maximum_rate : Double
latest_rate : Double
}

A rolling rate and change summary used for counter-based metrics.

#
ProductionRateSummary::from_points

#
ProductionRateSummary::invalid

fn ProductionRateSummary::invalid(self : ProductionRateSummary) -> Int

#
ProductionRateSummary::latest_rate

fn ProductionRateSummary::latest_rate(self : ProductionRateSummary) -> Double

#
ProductionRateSummary::maximum_rate

fn ProductionRateSummary::maximum_rate(self : ProductionRateSummary) -> Double

#
ProductionRateSummary::mean_rate

fn ProductionRateSummary::mean_rate(self : ProductionRateSummary) -> Double

#
ProductionRateSummary::resets

#
ProductionRateSummary::samples

fn ProductionRateSummary::samples(self : ProductionRateSummary) -> Int

#
ProductionRateTracker

pub struct ProductionRateTracker {
previous_timestamp : Int64?
previous_value : Double?
resets : Int
invalid : Int
}

Tracks rates and counter resets for monotonic telemetry.

#
ProductionRateTracker::invalid

fn ProductionRateTracker::invalid(self : ProductionRateTracker) -> Int

#
ProductionRateTracker::new

#
ProductionRateTracker::push

fn ProductionRateTracker::push(self : ProductionRateTracker, timestamp : Int64, value : Double) -> Double?

#
ProductionRateTracker::resets

#
ProductionReadinessCheck

pub struct ProductionReadinessCheck {
name : String
passed : Bool
critical : Bool
value : Double
expected : Double
message : String
}

Result of one startup or liveness check.

#
ProductionReadinessCheck::critical

#
ProductionReadinessCheck::expected

fn ProductionReadinessCheck::expected(self : ProductionReadinessCheck) -> Double

#
ProductionReadinessCheck::message

#
ProductionReadinessCheck::name

#
ProductionReadinessCheck::new

fn ProductionReadinessCheck::new(name : String, passed : Bool, expected : Double, value : Double, message? : String, critical? : Bool) -> ProductionReadinessCheck

#
ProductionReadinessCheck::passed

#
ProductionReadinessCheck::summary

#
ProductionReadinessCheck::value

#
ProductionReadinessReport

pub struct ProductionReadinessReport {
checks : Array[ProductionReadinessCheck]
passed : Bool
critical_failures : Int
warnings : Int
status : ProductionServiceStatus
}

Aggregate startup and liveness status.

#
ProductionReadinessReport::checks

#
ProductionReadinessReport::critical_failures

fn ProductionReadinessReport::critical_failures(self : ProductionReadinessReport) -> Int

#
ProductionReadinessReport::from_checks

#
ProductionReadinessReport::markdown

#
ProductionReadinessReport::passed

#
ProductionReadinessReport::status

#
ProductionReadinessReport::summary

#
ProductionReadinessReport::warnings

#
ProductionReplayConfig

pub struct ProductionReplayConfig {
mode : ProductionReplayMode
start_timestamp : Int64
step : Int64
maximum_points : Int
compare_tolerance : Double
include_quiet : Bool
}

Replay options for deterministic regression and incident investigation.

#
ProductionReplayConfig::compare_tolerance

fn ProductionReplayConfig::compare_tolerance(self : ProductionReplayConfig) -> Double

#
ProductionReplayConfig::include_quiet

fn ProductionReplayConfig::include_quiet(self : ProductionReplayConfig) -> Bool

#
ProductionReplayConfig::maximum_points

fn ProductionReplayConfig::maximum_points(self : ProductionReplayConfig) -> Int

#
ProductionReplayConfig::mode

#
ProductionReplayConfig::new

fn ProductionReplayConfig::new(mode? : ProductionReplayMode, start_timestamp? : Int64, step? : Int64, maximum_points? : Int, compare_tolerance? : Double, include_quiet? : Bool) -> ProductionReplayConfig

#
ProductionReplayConfig::start_timestamp

fn ProductionReplayConfig::start_timestamp(self : ProductionReplayConfig) -> Int64

#
ProductionReplayConfig::step

#
ProductionReplayDifference

pub struct ProductionReplayDifference {
points_delta : Int
changes_delta : Int
emitted_delta : Int
checksum_delta : Double
score_delta : Double
equivalent : Bool
}

Difference between two deterministic replay results.

#
ProductionReplayDifference::changes_delta

#
ProductionReplayDifference::checksum_delta

fn ProductionReplayDifference::checksum_delta(self : ProductionReplayDifference) -> Double

#
ProductionReplayDifference::emitted_delta

#
ProductionReplayDifference::equivalent

#
ProductionReplayDifference::from_summaries

#
ProductionReplayDifference::points_delta

#
ProductionReplayDifference::score_delta

fn ProductionReplayDifference::score_delta(self : ProductionReplayDifference) -> Double

#
ProductionReplayDifference::summary

#
ProductionReplayMode

pub(all) enum ProductionReplayMode {
StatefulReplay
ShadowReplay
CompareReplay
}

Replay mode controls whether detector state is allowed to mutate.

#
ProductionReplayObservation

pub struct ProductionReplayObservation {
index : Int
timestamp : Int64
value : Double
baseline : Double
result : DetectionResult
state : ProductionHealthState
emitted : Bool
}

One normalized replay output row.

#
ProductionReplayObservation::baseline

#
ProductionReplayObservation::emitted

#
ProductionReplayObservation::index

#
ProductionReplayObservation::result

#
ProductionReplayObservation::state

#
ProductionReplayObservation::summary

#
ProductionReplayObservation::timestamp

#
ProductionReplayObservation::value

#
ProductionReplayRunner

pub struct ProductionReplayRunner {
config : ProductionReplayConfig
observations : Array[ProductionReplayObservation]
skipped : Int
}

Runs a configured monitor over a reproducible input signal.

#
ProductionReplayRunner::config

#
ProductionReplayRunner::new

#
ProductionReplayRunner::observations

#
ProductionReplayRunner::reset

#
ProductionReplayRunner::run

#
ProductionReplayRunner::skipped

#
ProductionReplaySummary

pub struct ProductionReplaySummary {
points : Int
valid : Int
invalid : Int
changes : Int
emitted : Int
suppressed : Int
checksum : Double
first_change : Int
mean_score : Double
maximum_score : Double
final_state : ProductionHealthState
}

Aggregate replay statistics and a deterministic checksum.

#
ProductionReplaySummary::changes

#
ProductionReplaySummary::checksum

fn ProductionReplaySummary::checksum(self : ProductionReplaySummary) -> Double

#
ProductionReplaySummary::emitted

#
ProductionReplaySummary::final_state

#
ProductionReplaySummary::first_change

fn ProductionReplaySummary::first_change(self : ProductionReplaySummary) -> Int

#
ProductionReplaySummary::invalid

#
ProductionReplaySummary::maximum_score

fn ProductionReplaySummary::maximum_score(self : ProductionReplaySummary) -> Double

#
ProductionReplaySummary::mean_score

fn ProductionReplaySummary::mean_score(self : ProductionReplaySummary) -> Double

#
ProductionReplaySummary::points

#
ProductionReplaySummary::summary

fn ProductionReplaySummary::summary(self : ProductionReplaySummary) -> String

#
ProductionReplaySummary::suppressed

fn ProductionReplaySummary::suppressed(self : ProductionReplaySummary) -> Int

#
ProductionReplaySummary::valid

#
ProductionReportFormat

pub(all) enum ProductionReportFormat {
CsvReport
MarkdownReport
LineReport
}

Report formats supported by the operational reporting helpers.

#
ProductionReportOptions

pub struct ProductionReportOptions {
format : ProductionReportFormat
include_events : Bool
include_features : Bool
maximum_rows : Int
decimals : Int
}

Options controlling report size and precision.

#
ProductionReportOptions::decimals

#
ProductionReportOptions::format

#
ProductionReportOptions::include_events

fn ProductionReportOptions::include_events(self : ProductionReportOptions) -> Bool

#
ProductionReportOptions::include_features

fn ProductionReportOptions::include_features(self : ProductionReportOptions) -> Bool

#
ProductionReportOptions::maximum_rows

fn ProductionReportOptions::maximum_rows(self : ProductionReportOptions) -> Int

#
ProductionReportOptions::new

fn ProductionReportOptions::new(format? : ProductionReportFormat, include_events? : Bool, include_features? : Bool, maximum_rows? : Int, decimals? : Int) -> ProductionReportOptions

#
ProductionResampler

pub struct ProductionResampler {
step : Int64
policy : ProductionFillPolicy
origin : Int64?
last : ProductionSample?
pending_empty : Int
produced : Int
}

Converts irregular event-time samples into a regular grid.

#
ProductionResampler::flush

#
ProductionResampler::new

fn ProductionResampler::new(step? : Int64, policy? : ProductionFillPolicy) -> ProductionResampler

#
ProductionResampler::pending_empty

fn ProductionResampler::pending_empty(self : ProductionResampler) -> Int

#
ProductionResampler::produced

fn ProductionResampler::produced(self : ProductionResampler) -> Int

#
ProductionResampler::push

#
ProductionResampler::step

fn ProductionResampler::step(self : ProductionResampler) -> Int64

#
ProductionResidualScale

pub struct ProductionResidualScale {
alpha : Double
center : Double
deviation : Double
count : Int
missing : Int
}

An exponentially weighted residual scale used to construct robust intervals.

#
ProductionResidualScale::center

#
ProductionResidualScale::count

#
ProductionResidualScale::deviation

fn ProductionResidualScale::deviation(self : ProductionResidualScale) -> Double

#
ProductionResidualScale::missing

#
ProductionResidualScale::new

#
ProductionResidualScale::uncertainty

fn ProductionResidualScale::uncertainty(self : ProductionResidualScale, confidence? : Double) -> Double

#
ProductionResidualScale::update

fn ProductionResidualScale::update(self : ProductionResidualScale, residual : Double) -> Double

#
ProductionRolloutPlan

pub struct ProductionRolloutPlan {
name : String
stages : Array[ProductionRolloutStage]
active_stage : Int
started_at : Int64
completed : Bool
aborted : Bool
}

Ordered rollout plan used by deployment orchestration.

#
ProductionRolloutPlan::abort

#
ProductionRolloutPlan::active_stage

fn ProductionRolloutPlan::active_stage(self : ProductionRolloutPlan) -> Int

#
ProductionRolloutPlan::add_stage

#
ProductionRolloutPlan::current_stage

#
ProductionRolloutPlan::describe

fn ProductionRolloutPlan::describe(self : ProductionRolloutPlan) -> String

Stable text representation for deployment audit logs.

#
ProductionRolloutPlan::is_aborted

fn ProductionRolloutPlan::is_aborted(self : ProductionRolloutPlan) -> Bool

#
ProductionRolloutPlan::is_completed

fn ProductionRolloutPlan::is_completed(self : ProductionRolloutPlan) -> Bool

#
ProductionRolloutPlan::name

fn ProductionRolloutPlan::name(self : ProductionRolloutPlan) -> String

#
ProductionRolloutPlan::new

#
ProductionRolloutPlan::promote

fn ProductionRolloutPlan::promote(self : ProductionRolloutPlan, timestamp : Int64, health : Double) -> Bool

#
ProductionRolloutPlan::stage_count

fn ProductionRolloutPlan::stage_count(self : ProductionRolloutPlan) -> Int

#
ProductionRolloutPlan::stages

#
ProductionRolloutPlan::start

fn ProductionRolloutPlan::start(self : ProductionRolloutPlan, timestamp : Int64) -> Bool

#
ProductionRolloutPlan::started_at

fn ProductionRolloutPlan::started_at(self : ProductionRolloutPlan) -> Int64

#
ProductionRolloutPlan::validate

fn ProductionRolloutPlan::validate(self : ProductionRolloutPlan) -> Array[String]

Validate a plan before it is handed to a deployment service.

#
ProductionRolloutStage

pub struct ProductionRolloutStage {
name : String
exposure : Double
minimum_duration : Int64
maximum_duration : Int64
required_health : Double
automatic_promotion : Bool
}

A named canary stage with an explicit exposure range.

#
ProductionRolloutStage::automatic_promotion

fn ProductionRolloutStage::automatic_promotion(self : ProductionRolloutStage) -> Bool

#
ProductionRolloutStage::exposure

fn ProductionRolloutStage::exposure(self : ProductionRolloutStage) -> Double

#
ProductionRolloutStage::maximum_duration

fn ProductionRolloutStage::maximum_duration(self : ProductionRolloutStage) -> Int64

#
ProductionRolloutStage::minimum_duration

fn ProductionRolloutStage::minimum_duration(self : ProductionRolloutStage) -> Int64

#
ProductionRolloutStage::name

#
ProductionRolloutStage::new

fn ProductionRolloutStage::new(name : String, exposure? : Double, minimum_duration? : Int64, maximum_duration? : Int64, required_health? : Double, automatic_promotion? : Bool) -> ProductionRolloutStage

#
ProductionRolloutStage::required_health

fn ProductionRolloutStage::required_health(self : ProductionRolloutStage) -> Double

#
ProductionSample

pub struct ProductionSample {
timestamp : Int64
value : Double
sequence : Int
imputed : Bool
late : Bool
}

A validated sample entering a production analytics pipeline.

#
ProductionSample::imputed

fn ProductionSample::imputed(self : ProductionSample) -> Bool

#
ProductionSample::late

fn ProductionSample::late(self : ProductionSample) -> Bool

#
ProductionSample::new

fn ProductionSample::new(timestamp : Int64, value : Double, sequence? : Int, imputed? : Bool, late? : Bool) -> ProductionSample

#
ProductionSample::sequence

fn ProductionSample::sequence(self : ProductionSample) -> Int

#
ProductionSample::timestamp

fn ProductionSample::timestamp(self : ProductionSample) -> Int64

#
ProductionSample::value

fn ProductionSample::value(self : ProductionSample) -> Double

#
ProductionSampleQueue

pub struct ProductionSampleQueue {
capacity : Int
policy : ProductionBackpressurePolicy
samples : Array[ProductionSample]
accepted : Int
dropped : Int
rejected : Int
}

Bounded queue with explicit loss accounting.

#
ProductionSampleQueue::accepted

fn ProductionSampleQueue::accepted(self : ProductionSampleQueue) -> Int

#
ProductionSampleQueue::capacity

fn ProductionSampleQueue::capacity(self : ProductionSampleQueue) -> Int

#
ProductionSampleQueue::clear

#
ProductionSampleQueue::drain

#
ProductionSampleQueue::dropped

fn ProductionSampleQueue::dropped(self : ProductionSampleQueue) -> Int

#
ProductionSampleQueue::length

#
ProductionSampleQueue::new

#
ProductionSampleQueue::peek

#
ProductionSampleQueue::policy

#
ProductionSampleQueue::pop

#
ProductionSampleQueue::push

#
ProductionSampleQueue::rejected

fn ProductionSampleQueue::rejected(self : ProductionSampleQueue) -> Int

#
ProductionScoreBin

pub struct ProductionScoreBin {
lower : Double
upper : Double
total : Double
positives : Double
prior_positive : Double
prior_negative : Double
}

A bin of online score-to-outcome evidence.

#
ProductionScoreBin::add

fn ProductionScoreBin::add(self : ProductionScoreBin, positive : Bool, weight : Double) -> Unit

#
ProductionScoreBin::contains

fn ProductionScoreBin::contains(self : ProductionScoreBin, score : Double) -> Bool

#
ProductionScoreBin::mean_score

fn ProductionScoreBin::mean_score(self : ProductionScoreBin) -> Double

#
ProductionScoreBin::new

fn ProductionScoreBin::new(lower : Double, upper : Double, prior_positive? : Double, prior_negative? : Double) -> ProductionScoreBin

#
ProductionScoreBin::positives

fn ProductionScoreBin::positives(self : ProductionScoreBin) -> Double

#
ProductionScoreBin::rate

fn ProductionScoreBin::rate(self : ProductionScoreBin) -> Double

#
ProductionScoreBin::summary

fn ProductionScoreBin::summary(self : ProductionScoreBin) -> String

#
ProductionScoreBin::total

fn ProductionScoreBin::total(self : ProductionScoreBin) -> Double

#
ProductionSeriesQuery

pub struct ProductionSeriesQuery {
metric : String
window : ProductionQueryWindow
function : ProductionWindowFunction
minimum_quality : Double
}

#
ProductionSeriesQuery::execute

#
ProductionSeriesQuery::function

#
ProductionSeriesQuery::metric

fn ProductionSeriesQuery::metric(self : ProductionSeriesQuery) -> String

#
ProductionSeriesQuery::minimum_quality

fn ProductionSeriesQuery::minimum_quality(self : ProductionSeriesQuery) -> Double

#
ProductionSeriesQuery::new

fn ProductionSeriesQuery::new(metric : String, window : ProductionQueryWindow, function? : ProductionWindowFunction, minimum_quality? : Double) -> ProductionSeriesQuery

#
ProductionSeriesQuery::window

#
ProductionServiceHeartbeat

pub struct ProductionServiceHeartbeat {
service : String
timestamp : Int64
status : ProductionServiceStatus
monitor_count : Int
fleet_score : Double
processed : Int
alerts : Int
incidents : Int
p95_latency : Double
}

Heartbeat record for a service exposing monitor health.

#
ProductionServiceHeartbeat::alerts

#
ProductionServiceHeartbeat::fleet_score

fn ProductionServiceHeartbeat::fleet_score(self : ProductionServiceHeartbeat) -> Double

#
ProductionServiceHeartbeat::incidents

#
ProductionServiceHeartbeat::monitor_count

#
ProductionServiceHeartbeat::new

fn ProductionServiceHeartbeat::new(service : String, timestamp : Int64, snapshots : Array[ProductionMonitorSnapshot], incidents : Int, p95_latency? : Double) -> ProductionServiceHeartbeat

#
ProductionServiceHeartbeat::p95_latency

fn ProductionServiceHeartbeat::p95_latency(self : ProductionServiceHeartbeat) -> Double

#
ProductionServiceHeartbeat::processed

#
ProductionServiceHeartbeat::service

#
ProductionServiceHeartbeat::status

#
ProductionServiceHeartbeat::summary

#
ProductionServiceHeartbeat::timestamp

#
ProductionServiceRegistry

pub struct ProductionServiceRegistry {
service : String
monitors : Array[ProductionMonitor]
heartbeats : Int
status : ProductionServiceStatus
}

A registry for coordinated monitor heartbeats.

#
ProductionServiceRegistry::heartbeat

fn ProductionServiceRegistry::heartbeat(self : ProductionServiceRegistry, timestamp : Int64, incidents : Int, p95_latency? : Double) -> ProductionServiceHeartbeat

#
ProductionServiceRegistry::heartbeats

#
ProductionServiceRegistry::monitor_count

fn ProductionServiceRegistry::monitor_count(self : ProductionServiceRegistry) -> Int

#
ProductionServiceRegistry::names

#
ProductionServiceRegistry::new

#
ProductionServiceRegistry::process

#
ProductionServiceRegistry::process_all

#
ProductionServiceRegistry::register

#
ProductionServiceRegistry::snapshots

#
ProductionServiceRegistry::status

#
ProductionServiceStatus

pub(all) enum ProductionServiceStatus {
StartingService
ReadyService
DegradedService
DrainingService
FailedService
}

Lifecycle status of an embedding service.

#
ProductionSloObjective

pub struct ProductionSloObjective {
name : String
target : Double
window : Int64
burn_limit : Double
kind : ProductionSloWindowKind
}

Objective for one service-level indicator.

#
ProductionSloObjective::burn_limit

fn ProductionSloObjective::burn_limit(self : ProductionSloObjective) -> Double

#
ProductionSloObjective::error_budget

fn ProductionSloObjective::error_budget(self : ProductionSloObjective) -> Double

#
ProductionSloObjective::kind

#
ProductionSloObjective::name

#
ProductionSloObjective::new

fn ProductionSloObjective::new(name : String, target? : Double, window? : Int64, burn_limit? : Double, kind? : ProductionSloWindowKind) -> ProductionSloObjective

#
ProductionSloObjective::summary

fn ProductionSloObjective::summary(self : ProductionSloObjective) -> String

#
ProductionSloObjective::target

fn ProductionSloObjective::target(self : ProductionSloObjective) -> Double

#
ProductionSloObjective::window

#
ProductionSloReport

pub struct ProductionSloReport {
objective : ProductionSloObjective
total : Int
good : Int
bad : Int
compliance : Double
burn_rate : Double
remaining_budget : Double
breached : Bool
}

Current burn and compliance state for one SLO.

#
ProductionSloReport::bad

#
ProductionSloReport::breached

fn ProductionSloReport::breached(self : ProductionSloReport) -> Bool

#
ProductionSloReport::burn_rate

fn ProductionSloReport::burn_rate(self : ProductionSloReport) -> Double

#
ProductionSloReport::compliance

fn ProductionSloReport::compliance(self : ProductionSloReport) -> Double

#
ProductionSloReport::good

#
ProductionSloReport::objective

#
ProductionSloReport::remaining_budget

fn ProductionSloReport::remaining_budget(self : ProductionSloReport) -> Double

#
ProductionSloReport::summary

fn ProductionSloReport::summary(self : ProductionSloReport) -> String

#
ProductionSloReport::total

fn ProductionSloReport::total(self : ProductionSloReport) -> Int

#
ProductionSloTracker

pub struct ProductionSloTracker {
objective : ProductionSloObjective
total : Int
good : Int
bad : Int
window_start : Int64?
}

Mutable SLO tracker fed by accepted/rejected monitor outcomes.

#
ProductionSloTracker::bad

#
ProductionSloTracker::good

#
ProductionSloTracker::new

#
ProductionSloTracker::objective

#
ProductionSloTracker::observe

fn ProductionSloTracker::observe(self : ProductionSloTracker, timestamp : Int64, good : Bool) -> Unit

#
ProductionSloTracker::observe_event

fn ProductionSloTracker::observe_event(self : ProductionSloTracker, timestamp : Int64, event : ProductionMonitorEvent) -> Unit

#
ProductionSloTracker::report

#
ProductionSloTracker::reset

fn ProductionSloTracker::reset(self : ProductionSloTracker) -> Unit

#
ProductionSloTracker::total

#
ProductionSloWindowKind

pub(all) enum ProductionSloWindowKind {
ShortSloWindow
LongSloWindow
RollingSloWindow
}

SLO window kind for operational change detection services.

#
ProductionStackResult

pub struct ProductionStackResult {
result : DetectionResult
votes : Array[ProductionDetectorVote]
agreement : Double
strongest : ProductionDetectorKind
}

Result of a weighted, explainable ensemble pass.

#
ProductionStackResult::agreement

fn ProductionStackResult::agreement(self : ProductionStackResult) -> Double

#
ProductionStackResult::result

#
ProductionStackResult::strongest

#
ProductionStackResult::summary

fn ProductionStackResult::summary(self : ProductionStackResult) -> String

#
ProductionStackResult::votes

#
ProductionStatTestKind

pub(all) enum ProductionStatTestKind {
MeanDifferenceTest
MedianDifferenceTest
PermutationShiftTest
BootstrapIntervalTest
CorrelationTest
VarianceRatioTest
}

Statistical test kind used in an evidence report.

#
ProductionStatTestResult

pub struct ProductionStatTestResult {
kind : ProductionStatTestKind
statistic : Double
p_value : Double
effect : Double
interval : ProductionConfidenceInterval
significant : Bool
}

Test result with a bounded score and actionable interpretation.

#
ProductionStatTestResult::effect

#
ProductionStatTestResult::interval

#
ProductionStatTestResult::kind

#
ProductionStatTestResult::p_value

#
ProductionStatTestResult::significant

fn ProductionStatTestResult::significant(self : ProductionStatTestResult) -> Bool

#
ProductionStatTestResult::statistic

fn ProductionStatTestResult::statistic(self : ProductionStatTestResult) -> Double

#
ProductionStatTestResult::summary

#
ProductionStreamMetrics

pub struct ProductionStreamMetrics {
enqueued : Int
processed : Int
emitted : Int
rejected : Int
aggregates : Int
flushes : Int
last_timestamp : Int64
}

Counters emitted by an online stream processor.

#
ProductionStreamMetrics::aggregates

fn ProductionStreamMetrics::aggregates(self : ProductionStreamMetrics) -> Int

#
ProductionStreamMetrics::emitted

#
ProductionStreamMetrics::enqueued

#
ProductionStreamMetrics::flushes

#
ProductionStreamMetrics::last_timestamp

fn ProductionStreamMetrics::last_timestamp(self : ProductionStreamMetrics) -> Int64

#
ProductionStreamMetrics::new

#
ProductionStreamMetrics::processed

#
ProductionStreamMetrics::rejected

#
ProductionStreamMetrics::summary

fn ProductionStreamMetrics::summary(self : ProductionStreamMetrics) -> String

#
ProductionStreamMetrics::throughput

fn ProductionStreamMetrics::throughput(self : ProductionStreamMetrics, elapsed : Int64) -> Double

#
ProductionStreamProcessor

pub struct ProductionStreamProcessor {
queue : ProductionSampleQueue
bucketizer : ProductionBucketizer
monitor : ProductionMonitor
status : ProductionStreamStatus
metrics : ProductionStreamMetrics
started_at : Int64?
}

Backpressure-aware processor joining queue, event-time bucketization and monitor state.

#
ProductionStreamProcessor::continue_processing

fn ProductionStreamProcessor::continue_processing(self : ProductionStreamProcessor) -> Unit

#
ProductionStreamProcessor::drain

#
ProductionStreamProcessor::elapsed

fn ProductionStreamProcessor::elapsed(self : ProductionStreamProcessor, now : Int64) -> Int64

#
ProductionStreamProcessor::enqueue

#
ProductionStreamProcessor::flush

#
ProductionStreamProcessor::metrics

#
ProductionStreamProcessor::monitor

#
ProductionStreamProcessor::new

fn ProductionStreamProcessor::new(monitor : ProductionMonitor, queue_capacity? : Int, queue_policy? : ProductionBackpressurePolicy, bucket_interval? : Int64) -> ProductionStreamProcessor

#
ProductionStreamProcessor::pause

#
ProductionStreamProcessor::queue_length

#
ProductionStreamProcessor::restart

fn ProductionStreamProcessor::restart(self : ProductionStreamProcessor, timestamp : Int64) -> Unit

#
ProductionStreamProcessor::start

fn ProductionStreamProcessor::start(self : ProductionStreamProcessor, timestamp : Int64) -> Unit

#
ProductionStreamProcessor::status

#
ProductionStreamStatus

pub(all) enum ProductionStreamStatus {
StartingStream
RunningStream
PausedStream
DrainingStream
StoppedStream
}

Runtime state of a stream processor.

#
ProductionSuppressionSchedule

pub struct ProductionSuppressionSchedule {
windows : Array[ProductionMaintenanceWindow]
suppressed : Int
}

A suppression schedule composed of non-overlapping maintenance windows.

#
ProductionSuppressionSchedule::active

#
ProductionSuppressionSchedule::add

#
ProductionSuppressionSchedule::allow

fn ProductionSuppressionSchedule::allow(self : ProductionSuppressionSchedule, timestamp : Int64) -> Bool

#
ProductionSuppressionSchedule::new

#
ProductionSuppressionSchedule::suppressed

#
ProductionSuppressionSchedule::windows

#
ProductionTelemetryCounters

pub struct ProductionTelemetryCounters {
samples_received : Int
samples_rejected : Int
samples_imputed : Int
late_samples : Int
detector_updates : Int
alerts_emitted : Int
alerts_suppressed : Int
incidents_opened : Int
incidents_resolved : Int
report_exports : Int
}

Counter set for monitoring ingestion and alert delivery itself.

#
ProductionTelemetryCounters::alerts_emitted

#
ProductionTelemetryCounters::alerts_suppressed

fn ProductionTelemetryCounters::alerts_suppressed(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::detector_updates

fn ProductionTelemetryCounters::detector_updates(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::incidents_opened

fn ProductionTelemetryCounters::incidents_opened(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::incidents_resolved

fn ProductionTelemetryCounters::incidents_resolved(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::late_samples

#
ProductionTelemetryCounters::new

#
ProductionTelemetryCounters::observe_export

fn ProductionTelemetryCounters::observe_export(self : ProductionTelemetryCounters) -> Unit

#
ProductionTelemetryCounters::observe_incident

fn ProductionTelemetryCounters::observe_incident(self : ProductionTelemetryCounters, opened : Bool, resolved : Bool) -> Unit

#
ProductionTelemetryCounters::observe_result

fn ProductionTelemetryCounters::observe_result(self : ProductionTelemetryCounters, result : DetectionResult, emitted : Bool) -> Unit

#
ProductionTelemetryCounters::observe_sample

fn ProductionTelemetryCounters::observe_sample(self : ProductionTelemetryCounters, sample : ProductionSample, accepted : Bool) -> Unit

#
ProductionTelemetryCounters::report_exports

#
ProductionTelemetryCounters::samples_imputed

fn ProductionTelemetryCounters::samples_imputed(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::samples_received

fn ProductionTelemetryCounters::samples_received(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::samples_rejected

fn ProductionTelemetryCounters::samples_rejected(self : ProductionTelemetryCounters) -> Int

#
ProductionTelemetryCounters::summary

#
ProductionTelemetryExporter

pub struct ProductionTelemetryExporter {
options : ProductionExportOptions
stats : ProductionExportStats
}

#
ProductionTelemetryExporter::export_batch

#
ProductionTelemetryExporter::export_csv

#
ProductionTelemetryExporter::export_json_lines

fn ProductionTelemetryExporter::export_json_lines(self : ProductionTelemetryExporter, records : Array[ProductionExportRecord]) -> String

#
ProductionTelemetryExporter::export_markdown

#
ProductionTelemetryExporter::export_prometheus

fn ProductionTelemetryExporter::export_prometheus(self : ProductionTelemetryExporter, records : Array[ProductionExportRecord]) -> String

#
ProductionTelemetryExporter::export_summary

#
ProductionTelemetryExporter::new

#
ProductionTelemetryExporter::options

#
ProductionTelemetryExporter::reset_stats

#
ProductionTelemetryExporter::stats

#
ProductionThresholdController

pub struct ProductionThresholdController {
scores : DoubleWindow
target_alert_rate : Double
minimum_threshold : Double
maximum_threshold : Double
hysteresis : Double
threshold : Double
updates : Int
}

Adaptive threshold controller based on a recent score window and hysteresis.

#
ProductionThresholdController::new

fn ProductionThresholdController::new(window_size? : Int, target_alert_rate? : Double, minimum_threshold? : Double, maximum_threshold? : Double, hysteresis? : Double) -> ProductionThresholdController

#
ProductionThresholdController::push

fn ProductionThresholdController::push(self : ProductionThresholdController, score : Double) -> Double

#
ProductionThresholdController::reset

#
ProductionThresholdController::summary

#
ProductionThresholdController::threshold

#
ProductionThresholdController::updates

#
ProductionThresholdCost

pub struct ProductionThresholdCost {
false_positive : Double
false_negative : Double
alert_volume : Double
}

Cost weights used to select an operating threshold.

#
ProductionThresholdCost::alert_volume

fn ProductionThresholdCost::alert_volume(self : ProductionThresholdCost) -> Double

#
ProductionThresholdCost::false_negative

fn ProductionThresholdCost::false_negative(self : ProductionThresholdCost) -> Double

#
ProductionThresholdCost::false_positive

fn ProductionThresholdCost::false_positive(self : ProductionThresholdCost) -> Double

#
ProductionThresholdCost::new

fn ProductionThresholdCost::new(false_positive? : Double, false_negative? : Double, alert_volume? : Double) -> ProductionThresholdCost

#
ProductionThresholdCost::score

#
ProductionThresholdSelection

pub struct ProductionThresholdSelection {
threshold : Double
matrix : ProductionConfusionMatrix
objective : Double
strategy : String
}

Result of threshold selection on labeled historical data.

#
ProductionThresholdSelection::matrix

#
ProductionThresholdSelection::objective

#
ProductionThresholdSelection::strategy

#
ProductionThresholdSelection::threshold

#
ProductionTimeWindow

pub struct ProductionTimeWindow {
capacity : Int
values : Array[ProductionSample]
start_index : Int
length : Int
dropped : Int
}

A bounded time-ordered window with explicit retention accounting.

#
ProductionTimeWindow::capacity

fn ProductionTimeWindow::capacity(self : ProductionTimeWindow) -> Int

#
ProductionTimeWindow::clear

fn ProductionTimeWindow::clear(self : ProductionTimeWindow) -> Unit

#
ProductionTimeWindow::dropped

fn ProductionTimeWindow::dropped(self : ProductionTimeWindow) -> Int

#
ProductionTimeWindow::first

#
ProductionTimeWindow::get

#
ProductionTimeWindow::is_empty

fn ProductionTimeWindow::is_empty(self : ProductionTimeWindow) -> Bool

#
ProductionTimeWindow::is_full

fn ProductionTimeWindow::is_full(self : ProductionTimeWindow) -> Bool

#
ProductionTimeWindow::last

#
ProductionTimeWindow::length

fn ProductionTimeWindow::length(self : ProductionTimeWindow) -> Int

#
ProductionTimeWindow::new

fn ProductionTimeWindow::new(capacity? : Int) -> ProductionTimeWindow

#
ProductionTimeWindow::outlier_count

fn ProductionTimeWindow::outlier_count(self : ProductionTimeWindow, z_limit? : Double) -> Int

#
ProductionTimeWindow::push

#
ProductionTimeWindow::rolling_change

fn ProductionTimeWindow::rolling_change(self : ProductionTimeWindow, split : Int) -> Double

#
ProductionTimeWindow::summary

#
ProductionTimeWindow::timestamps

fn ProductionTimeWindow::timestamps(self : ProductionTimeWindow) -> Array[Int64]

#
ProductionTimeWindow::to_array

#
ProductionTimeWindow::values

fn ProductionTimeWindow::values(self : ProductionTimeWindow) -> Array[Double]

#
ProductionTransformKind

pub(all) enum ProductionTransformKind {
IdentityTransform
ClipTransform
DifferenceTransform
Log1pTransform
SqrtTransform
ZScoreTransform
RobustZTransform
DetrendTransform
SmoothTransform
WinsorizeTransform
SeasonalRemoveTransform
RateTransform
}

Transformation kinds available in the preprocessing chain.

#
ProductionTransformSpec

pub struct ProductionTransformSpec {
kind : ProductionTransformKind
parameter_a : Double
parameter_b : Double
integer_parameter : Int
}

One configured preprocessing operation.

#
ProductionTransformSpec::integer_parameter

fn ProductionTransformSpec::integer_parameter(self : ProductionTransformSpec) -> Int

#
ProductionTransformSpec::kind

#
ProductionTransformSpec::new

fn ProductionTransformSpec::new(kind : ProductionTransformKind, parameter_a? : Double, parameter_b? : Double, integer_parameter? : Int) -> ProductionTransformSpec

#
ProductionTransformSpec::parameter_a

fn ProductionTransformSpec::parameter_a(self : ProductionTransformSpec) -> Double

#
ProductionTransformSpec::parameter_b

fn ProductionTransformSpec::parameter_b(self : ProductionTransformSpec) -> Double

#
ProductionTransformSpec::summary

fn ProductionTransformSpec::summary(self : ProductionTransformSpec) -> String

#
ProductionWindowConfig

pub struct ProductionWindowConfig {
reorder_capacity : Int
allowed_lateness : Int64
aggregate_size : Int
retention_points : Int
maximum_gap : Int64?
deduplicate_timestamps : Bool
}

Event-time and memory settings for an operational stream.

#
ProductionWindowConfig::aggregate_size

fn ProductionWindowConfig::aggregate_size(self : ProductionWindowConfig) -> Int

#
ProductionWindowConfig::allowed_lateness

fn ProductionWindowConfig::allowed_lateness(self : ProductionWindowConfig) -> Int64

#
ProductionWindowConfig::deduplicate_timestamps

fn ProductionWindowConfig::deduplicate_timestamps(self : ProductionWindowConfig) -> Bool

#
ProductionWindowConfig::maximum_gap

fn ProductionWindowConfig::maximum_gap(self : ProductionWindowConfig) -> Int64?

#
ProductionWindowConfig::new

fn ProductionWindowConfig::new(reorder_capacity? : Int, allowed_lateness? : Int64, aggregate_size? : Int, retention_points? : Int, maximum_gap? : Int64?, deduplicate_timestamps? : Bool) -> ProductionWindowConfig

#
ProductionWindowConfig::reorder_capacity

fn ProductionWindowConfig::reorder_capacity(self : ProductionWindowConfig) -> Int

#
ProductionWindowConfig::retention_points

fn ProductionWindowConfig::retention_points(self : ProductionWindowConfig) -> Int

#
ProductionWindowFunction

pub(all) enum ProductionWindowFunction {
QueryMean
QuerySum
QueryMinimum
QueryMaximum
QueryMedian
QueryP95
QueryCount
QueryRate
QueryChange
}

Aggregation function for a production query window.

#
ProductionWindowSummary

pub struct ProductionWindowSummary {
start_timestamp : Int64
end_timestamp : Int64
count : Int
valid_count : Int
imputed_count : Int
late_count : Int
sum : Double
mean : Double
variance : Double
minimum : Double
maximum : Double
median : Double
first : Double
last : Double
}

Aggregation statistics for a bounded event-time window.

#
ProductionWindowSummary::count

#
ProductionWindowSummary::empty

#
ProductionWindowSummary::end

#
ProductionWindowSummary::first

#
ProductionWindowSummary::has_imputation

fn ProductionWindowSummary::has_imputation(self : ProductionWindowSummary) -> Bool

#
ProductionWindowSummary::imputed_count

fn ProductionWindowSummary::imputed_count(self : ProductionWindowSummary) -> Int

#
ProductionWindowSummary::last

#
ProductionWindowSummary::late_count

fn ProductionWindowSummary::late_count(self : ProductionWindowSummary) -> Int

#
ProductionWindowSummary::maximum

fn ProductionWindowSummary::maximum(self : ProductionWindowSummary) -> Double

#
ProductionWindowSummary::mean

#
ProductionWindowSummary::median

#
ProductionWindowSummary::minimum

fn ProductionWindowSummary::minimum(self : ProductionWindowSummary) -> Double

#
ProductionWindowSummary::quality_ratio

fn ProductionWindowSummary::quality_ratio(self : ProductionWindowSummary) -> Double

#
ProductionWindowSummary::range

#
ProductionWindowSummary::slope

#
ProductionWindowSummary::start

#
ProductionWindowSummary::sum

#
ProductionWindowSummary::valid_count

fn ProductionWindowSummary::valid_count(self : ProductionWindowSummary) -> Int

#
ProductionWindowSummary::variance

fn ProductionWindowSummary::variance(self : ProductionWindowSummary) -> Double

#
ProjectionDetector

pub struct ProjectionDetector {
weights : Array[Double]
baseline : Double
variance : Double
alpha : Double
threshold : Double
count : Int
index : Int
}

Tracks a weighted projection of a vector and detects changes in both projection and energy.

#
ProjectionDetector::dimension

fn ProjectionDetector::dimension(self : ProjectionDetector) -> Int

#
ProjectionDetector::new

fn ProjectionDetector::new(weights : Array[Double], alpha? : Double, threshold? : Double) -> ProjectionDetector

#
ProjectionDetector::update

fn ProjectionDetector::update(self : ProjectionDetector, values : Array[Double]) -> DetectionResult

#
QualityIssue

pub(all) enum QualityIssue {
MissingValue
NonFiniteValue
OutOfRange
NonMonotonicTimestamp
ExcessiveGap
DimensionMismatch
}

#
QualityReport

pub struct QualityReport {
count : Int
valid : Int
missing : Int
non_finite : Int
out_of_range : Int
non_monotonic : Int
excessive_gaps : Int
issues : Array[QualityIssue]
}

#
QualityReport::empty

#
QualityReport::is_healthy

fn QualityReport::is_healthy(self : QualityReport) -> Bool

#
QualityReport::valid_ratio

fn QualityReport::valid_ratio(self : QualityReport) -> Double

#
RankShiftDetector

pub struct RankShiftDetector {
left : DoubleWindow
right : DoubleWindow
threshold : Double
index : Int
}

#
RankShiftDetector::new

fn RankShiftDetector::new(window_size? : Int, threshold? : Double) -> RankShiftDetector

#
RankShiftDetector::update

fn RankShiftDetector::update(self : RankShiftDetector, value : Double) -> DetectionResult

#
RecoveryAction

pub(all) enum RecoveryAction {
KeepOpen
AutoResolve
RequireAcknowledgement
Escalate
}

Action taken after a detector has reached a stable state.

#
RecoveryPlan

pub struct RecoveryPlan {
severity : AlertSeverity
immediate_action : String
verification_window : Int
cooldown : Int
escalation_score : Double
}

Recovery guidance and cooldown state for alert consumers.

#
RecoveryPlan::for_result

fn RecoveryPlan::for_result(result : DetectionResult) -> RecoveryPlan

#
RecoveryTracker

pub struct RecoveryTracker {
plan : RecoveryPlan
attempts : Int
acknowledged : Bool
recovered : Bool
}

#
RecoveryTracker::acknowledge

fn RecoveryTracker::acknowledge(self : RecoveryTracker) -> Unit

#
RecoveryTracker::attempt

fn RecoveryTracker::attempt(self : RecoveryTracker) -> Int

#
RecoveryTracker::attempts

fn RecoveryTracker::attempts(self : RecoveryTracker) -> Int

#
RecoveryTracker::is_closed

fn RecoveryTracker::is_closed(self : RecoveryTracker) -> Bool

#
RecoveryTracker::mark_recovered

fn RecoveryTracker::mark_recovered(self : RecoveryTracker) -> Unit

#
RecoveryTracker::new

#
ReorderBuffer

pub struct ReorderBuffer {
capacity : Int
policy : LateDataPolicy
pending : Array[OrderedPoint]
watermark : Int64
arrival_order : Int
dropped : Int
late_count : Int
}

A small bounded reorder buffer for streams with late data.

#
ReorderBuffer::dropped_count

fn ReorderBuffer::dropped_count(self : ReorderBuffer) -> Int

#
ReorderBuffer::flush

Flushes every pending item at the end of a stream.

#
ReorderBuffer::late_count

fn ReorderBuffer::late_count(self : ReorderBuffer) -> Int

#
ReorderBuffer::new

fn ReorderBuffer::new(capacity? : Int, policy? : LateDataPolicy) -> ReorderBuffer

#
ReorderBuffer::peek

Returns a copy of the buffered points without changing the buffer.

#
ReorderBuffer::pending_count

fn ReorderBuffer::pending_count(self : ReorderBuffer) -> Int

#
ReorderBuffer::push

Inserts a point. Returned points are safe to process in timestamp order.

#
ReorderBuffer::watermark

fn ReorderBuffer::watermark(self : ReorderBuffer) -> Int64

#
ReplayComparator

pub struct ReplayComparator {
score_tolerance : Double
confidence_tolerance : Double
compared : Int
mismatches : Int
}

#
ReplayComparator::compare

fn ReplayComparator::compare(self : ReplayComparator, expected : DetectionResult, actual : DetectionResult) -> Bool

#
ReplayComparator::compared

fn ReplayComparator::compared(self : ReplayComparator) -> Int

#
ReplayComparator::mismatches

fn ReplayComparator::mismatches(self : ReplayComparator) -> Int

#
ReplayComparator::new

fn ReplayComparator::new(score_tolerance? : Double, confidence_tolerance? : Double) -> ReplayComparator

#
ReplayRecord

pub struct ReplayRecord {
point : SignalPoint
result : DetectionResult
elapsed : Int64
}

Deterministic replay utilities for incident investigation and regression tests.

#
ReplayRecord::new

fn ReplayRecord::new(point : SignalPoint, result : DetectionResult, elapsed : Int64) -> ReplayRecord

#
ReplaySummary

pub struct ReplaySummary {
total : Int
changed : Int
first_change : Int
last_change : Int
mean_score : Double
max_score : Double
elapsed : Int64
}

#
ReplaySummary::empty

#
ReservoirSample

pub struct ReservoirSample {
capacity : Int
values : Array[Double]
seen : Int
rng : DeterministicRng
}

#
ReservoirSample::new

fn ReservoirSample::new(capacity : Int, seed? : Int64) -> ReservoirSample

#
ReservoirSample::push

fn ReservoirSample::push(self : ReservoirSample, value : Double) -> Unit

#
ReservoirSample::seen

fn ReservoirSample::seen(self : ReservoirSample) -> Int

#
ReservoirSample::values

fn ReservoirSample::values(self : ReservoirSample) -> Array[Double]

#
RobustZDetector

pub struct RobustZDetector {
window : DoubleWindow
threshold : Double
warmup : Int
index : Int
}

A robust detector based on the rolling median and MAD.

#
RobustZDetector::new

fn RobustZDetector::new(window_size? : Int, threshold? : Double) -> RobustZDetector

#
RobustZDetector::reset

fn RobustZDetector::reset(self : RobustZDetector) -> Unit

#
RobustZDetector::update

fn RobustZDetector::update(self : RobustZDetector, value : Double) -> DetectionResult

#
RoutingBudget

pub struct RoutingBudget {
capacity : Int
used : Int
}

#
RoutingBudget::allow

fn RoutingBudget::allow(self : RoutingBudget, decision : RoutingDecision) -> Bool

#
RoutingBudget::new

fn RoutingBudget::new(capacity? : Int) -> RoutingBudget

#
RoutingBudget::remaining

fn RoutingBudget::remaining(self : RoutingBudget) -> Int

#
RoutingBudget::used

fn RoutingBudget::used(self : RoutingBudget) -> Int

#
RoutingDecision

pub struct RoutingDecision {
metric : String
channel : String
priority : Int
acknowledged : Bool
reason : String
}

Converts alert severity into deterministic notification channels.

#
RoutingDecision::acknowledge

fn RoutingDecision::acknowledge(self : RoutingDecision) -> Unit

#
RoutingDecision::is_page

fn RoutingDecision::is_page(self : RoutingDecision) -> Bool

#
RoutingDecision::new

fn RoutingDecision::new(metric : String, channel : String, priority : Int, reason : String) -> RoutingDecision

#
RoutingDecision::summary

fn RoutingDecision::summary(self : RoutingDecision) -> String

#
ScaleEvidence

pub struct ScaleEvidence {
short_score : Double
medium_score : Double
long_score : Double
consensus : Double
changed : Bool
}

Evidence at multiple temporal scales.

#
ScaleEvidence::empty

#
ScoreCalibrator

pub struct ScoreCalibrator {
observations : Array[ScoreObservation]
max_observations : Int
positive_weight : Double
negative_weight : Double
}

#
ScoreCalibrator::best

fn ScoreCalibrator::best(self : ScoreCalibrator, candidates : Array[Double]) -> ThresholdReport

#
ScoreCalibrator::count

fn ScoreCalibrator::count(self : ScoreCalibrator) -> Int

#
ScoreCalibrator::negative_weight

fn ScoreCalibrator::negative_weight(self : ScoreCalibrator) -> Double

#
ScoreCalibrator::new

fn ScoreCalibrator::new(max_observations? : Int) -> ScoreCalibrator

#
ScoreCalibrator::positive_weight

fn ScoreCalibrator::positive_weight(self : ScoreCalibrator) -> Double

#
ScoreCalibrator::push

fn ScoreCalibrator::push(self : ScoreCalibrator, score : Double, changed : Bool, weight? : Double) -> Unit

#
ScoreCalibrator::report

fn ScoreCalibrator::report(self : ScoreCalibrator, threshold : Double) -> ThresholdReport

#
ScoreObservation

pub struct ScoreObservation {
score : Double
changed : Bool
weight : Double
}

Stores labeled detector scores for threshold selection.

#
ScoreObservation::new

fn ScoreObservation::new(score : Double, changed : Bool, weight? : Double) -> ScoreObservation

#
SeasonalAnomalyDetector

pub struct SeasonalAnomalyDetector {
profile : SeasonalProfile
threshold : Double
index : Int
}

#
SeasonalAnomalyDetector::new

fn SeasonalAnomalyDetector::new(period : Int, threshold? : Double, alpha? : Double) -> SeasonalAnomalyDetector

#
SeasonalAnomalyDetector::update

#
SeasonalProfile

pub struct SeasonalProfile {
period : Int
levels : Array[Double]
counts : Array[Int]
alpha : Double
index : Int
}

A lightweight seasonal profile updated online with exponential forgetting.

#
SeasonalProfile::baseline

fn SeasonalProfile::baseline(self : SeasonalProfile, index : Int) -> Double

#
SeasonalProfile::count

fn SeasonalProfile::count(self : SeasonalProfile, index : Int) -> Int

#
SeasonalProfile::levels

fn SeasonalProfile::levels(self : SeasonalProfile) -> Array[Double]

#
SeasonalProfile::new

fn SeasonalProfile::new(period : Int, alpha? : Double) -> SeasonalProfile

#
SeasonalProfile::period

fn SeasonalProfile::period(self : SeasonalProfile) -> Int

#
SeasonalProfile::update

fn SeasonalProfile::update(self : SeasonalProfile, value : Double) -> Double

#
SegmentQuality

pub struct SegmentQuality {
count : Int
mean : Double
deviation : Double
stability : Double
completeness : Double
score : Double
}

Segment-level diagnostics used to decide whether a change is actionable.

#
SegmentQuality::empty

#
SegmentRange

pub struct SegmentRange {
start : Int
end : Int
}

A half-open segment used by dynamic programming and binary segmentation.

#
SegmentRange::length

fn SegmentRange::length(self : SegmentRange) -> Int

#
SegmentRange::new

fn SegmentRange::new(start : Int, end : Int) -> SegmentRange

#
SignalPattern

pub(all) enum SignalPattern {
Stable
MeanShift
VarianceShift
Trend
Spike
MeanAndVarianceShift
}

#
SignalPoint

pub struct SignalPoint {
timestamp : Int64
value : Double
sequence : Int
}

A point in a time series. Timestamps are integer ticks supplied by the caller.

#
SignalPoint::new

fn SignalPoint::new(timestamp : Int64, value : Double, sequence? : Int) -> SignalPoint

Creates a signal point.

#
SignalScenario

pub struct SignalScenario {
name : String
length : Int
change_at : Int
baseline : Double
shift : Double
noise : Double
post_noise : Double
trend : Double
pattern : SignalPattern
seed : Int64
}

A scenario definition shared by tests, examples, and benchmarks.

#
SignalScenario::mean_and_variance

fn SignalScenario::mean_and_variance(length? : Int, change_at? : Int, baseline? : Double, shift? : Double, noise? : Double, post_noise? : Double, seed? : Int64) -> SignalScenario

#
SignalScenario::mean_shift

fn SignalScenario::mean_shift(length? : Int, change_at? : Int, baseline? : Double, shift? : Double, noise? : Double, seed? : Int64) -> SignalScenario

#
SignalScenario::spike

fn SignalScenario::spike(length? : Int, spike_at? : Int, baseline? : Double, spike? : Double, noise? : Double, seed? : Int64) -> SignalScenario

#
SignalScenario::stable

fn SignalScenario::stable(length? : Int, baseline? : Double, noise? : Double, seed? : Int64) -> SignalScenario

#
SignalScenario::trend

fn SignalScenario::trend(length? : Int, change_at? : Int, baseline? : Double, trend? : Double, noise? : Double, seed? : Int64) -> SignalScenario

#
SignalScenario::variance_shift

fn SignalScenario::variance_shift(length? : Int, change_at? : Int, baseline? : Double, noise? : Double, post_noise? : Double, seed? : Int64) -> SignalScenario

#
SloReport

pub struct SloReport {
window : SloWindow
target : Double
budget : Double
burn : Double
breached : Bool
recommendation : String
}

#
SloReport::availability

fn SloReport::availability(self : SloReport) -> Double

#
SloReport::breached

fn SloReport::breached(self : SloReport) -> Bool

#
SloReport::budget

fn SloReport::budget(self : SloReport) -> Double

#
SloReport::burn

fn SloReport::burn(self : SloReport) -> Double

#
SloReport::summary

fn SloReport::summary(self : SloReport) -> String

#
SloTracker

pub struct SloTracker {
window : SloWindow
target : Double
burn_limit : Double
periods : Int
}

#
SloTracker::close_period

fn SloTracker::close_period(self : SloTracker) -> SloReport

#
SloTracker::new

fn SloTracker::new(target? : Double, burn_limit? : Double) -> SloTracker

#
SloTracker::observe

fn SloTracker::observe(self : SloTracker, result : DetectionResult) -> Unit

#
SloTracker::periods

fn SloTracker::periods(self : SloTracker) -> Int

#
SloTracker::window

fn SloTracker::window(self : SloTracker) -> SloWindow

#
SloWindow

pub struct SloWindow {
total : Int
bad : Int
changed : Int
severe : Int
}

Service-level indicators derived from change-point evidence.

#
SloWindow::availability

fn SloWindow::availability(self : SloWindow) -> Double

#
SloWindow::bad

fn SloWindow::bad(self : SloWindow) -> Int

#
SloWindow::change_rate

fn SloWindow::change_rate(self : SloWindow) -> Double

#
SloWindow::changed

fn SloWindow::changed(self : SloWindow) -> Int

#
SloWindow::new

fn SloWindow::new() -> SloWindow

#
SloWindow::observe

fn SloWindow::observe(self : SloWindow, result : DetectionResult) -> Unit

#
SloWindow::severe

fn SloWindow::severe(self : SloWindow) -> Int

#
SloWindow::total

fn SloWindow::total(self : SloWindow) -> Int

#
SquareMatrix

pub struct SquareMatrix {
size : Int
data : Array[Double]
}

Small dense matrix type used for low-dimensional covariance diagnostics.

#
SquareMatrix::add

#
SquareMatrix::determinant

fn SquareMatrix::determinant(self : SquareMatrix) -> Double

#
SquareMatrix::diagonal

fn SquareMatrix::diagonal(self : SquareMatrix) -> Array[Double]

#
SquareMatrix::get

fn SquareMatrix::get(self : SquareMatrix, row : Int, column : Int) -> Double

#
SquareMatrix::identity

fn SquareMatrix::identity(size : Int) -> SquareMatrix

#
SquareMatrix::multiply

fn SquareMatrix::multiply(self : SquareMatrix, other : SquareMatrix) -> SquareMatrix

#
SquareMatrix::new

fn SquareMatrix::new(size : Int, fill? : Double) -> SquareMatrix

#
SquareMatrix::quadratic_form

fn SquareMatrix::quadratic_form(self : SquareMatrix, vector : Array[Double]) -> Double

#
SquareMatrix::regularize

fn SquareMatrix::regularize(self : SquareMatrix, diagonal : Double) -> Unit

#
SquareMatrix::scale

fn SquareMatrix::scale(self : SquareMatrix, factor : Double) -> SquareMatrix

#
SquareMatrix::set

fn SquareMatrix::set(self : SquareMatrix, row : Int, column : Int, value : Double) -> Unit

#
SquareMatrix::size

fn SquareMatrix::size(self : SquareMatrix) -> Int

#
SquareMatrix::transpose

fn SquareMatrix::transpose(self : SquareMatrix) -> SquareMatrix

#
StatsSummary

pub struct StatsSummary {
count : Int
mean : Double
variance : Double
standard_deviation : Double
minimum : Double
maximum : Double
median : Double
first : Double
last : Double
}

A compact summary of a numeric sample.

#
StatsSummary::empty

fn StatsSummary::empty() -> StatsSummary

Creates an empty summary.

#
StepChangeDetector

pub struct StepChangeDetector {
reference : DoubleWindow
current : DoubleWindow
threshold : Double
index : Int
}

Detects a persistent step change by comparing a reference and a current block.

#
StepChangeDetector::new

fn StepChangeDetector::new(window_size? : Int, threshold? : Double) -> StepChangeDetector

#
StepChangeDetector::update

fn StepChangeDetector::update(self : StepChangeDetector, value : Double) -> DetectionResult

#
StreamEngine

pub struct StreamEngine {
reorder : ReorderBuffer
tracker : WatermarkTracker
aggregator : WindowAggregator
pipeline : MetricPipeline
processed : Int
aggregates : Int
alerts : Int
}

End-to-end stream state: reorder, aggregate, and detect.

#
StreamEngine::aggregate_count

fn StreamEngine::aggregate_count(self : StreamEngine) -> Int

#
StreamEngine::alert_count

fn StreamEngine::alert_count(self : StreamEngine) -> Int

#
StreamEngine::flush

#
StreamEngine::new

fn StreamEngine::new(metric : String, detector : PipelineDetector, window_size? : Int, lateness? : Int) -> StreamEngine

#
StreamEngine::process_point

fn StreamEngine::process_point(self : StreamEngine, point : SignalPoint) -> Array[AlertEvent]

#
StreamEngine::processed

fn StreamEngine::processed(self : StreamEngine) -> Int

#
ThresholdPoint

pub struct ThresholdPoint {
index : Int
threshold : Double
score : Double
accepted : Bool
}

Threshold schedules used when a service changes its noise profile over time.

#
ThresholdPoint::new

fn ThresholdPoint::new(index : Int, score : Double, threshold : Double) -> ThresholdPoint

#
ThresholdReport

pub struct ThresholdReport {
threshold : Double
true_positives : Int
false_positives : Int
true_negatives : Int
false_negatives : Int
precision : Double
recall : Double
f1 : Double
expected_cost : Double
}

#
ThresholdReport::empty

fn ThresholdReport::empty(threshold : Double) -> ThresholdReport

#
TimeWindow

pub struct TimeWindow {
start : Int64
end : Int64
ordinal : Int
}

Time-window planning utilities for batch and streaming consumers.

#
TimeWindow::contains

fn TimeWindow::contains(self : TimeWindow, timestamp : Int64) -> Bool

#
TimeWindow::duration

fn TimeWindow::duration(self : TimeWindow) -> Int64

#
TimeWindow::is_empty

fn TimeWindow::is_empty(self : TimeWindow) -> Bool

#
TimeWindow::new

fn TimeWindow::new(start : Int64, end : Int64, ordinal : Int) -> TimeWindow

#
TrendShiftDetector

pub struct TrendShiftDetector {
window : DoubleWindow
slope_threshold : Double
persistence : Int
consecutive : Int
index : Int
}

Detects a sustained slope rather than a one-point spike.

#
TrendShiftDetector::new

fn TrendShiftDetector::new(window_size? : Int, slope_threshold? : Double, persistence? : Int) -> TrendShiftDetector

#
TrendShiftDetector::reset

fn TrendShiftDetector::reset(self : TrendShiftDetector) -> Unit

#
TrendShiftDetector::update

fn TrendShiftDetector::update(self : TrendShiftDetector, value : Double) -> DetectionResult

#
VarianceShiftDetector

pub struct VarianceShiftDetector {
short_window : DoubleWindow
long_window : DoubleWindow
threshold : Double
warmup : Int
index : Int
}

Detects variance changes by comparing short and long rolling windows.

#
VarianceShiftDetector::new

fn VarianceShiftDetector::new(short_window? : Int, long_window? : Int, threshold? : Double) -> VarianceShiftDetector

#
VarianceShiftDetector::reset

#
VarianceShiftDetector::update

fn VarianceShiftDetector::update(self : VarianceShiftDetector, value : Double) -> DetectionResult

#
VectorPoint

pub struct VectorPoint {
timestamp : Int64
values : Array[Double]
sequence : Int
}

A validated vector observation for multivariate streams.

#
VectorPoint::dimension

fn VectorPoint::dimension(self : VectorPoint) -> Int

#
VectorPoint::is_valid

fn VectorPoint::is_valid(self : VectorPoint) -> Bool

#
VectorPoint::new

fn VectorPoint::new(timestamp : Int64, values : Array[Double], sequence? : Int) -> VectorPoint

#
VoteRule

pub struct VoteRule {
required : Int
window : Array[Bool]
size : Int
}

#
VoteRule::new

fn VoteRule::new(size? : Int, required? : Int) -> VoteRule

#
VoteRule::push

fn VoteRule::push(self : VoteRule, positive : Bool) -> Bool

#
VoteRule::votes

fn VoteRule::votes(self : VoteRule) -> Int

#
WatermarkTracker

pub struct WatermarkTracker {
allowed_lateness : Int64
maximum_seen : Int64
accepted : Int
dropped : Int
}

#
WatermarkTracker::accepted

fn WatermarkTracker::accepted(self : WatermarkTracker) -> Int

#
WatermarkTracker::dropped

fn WatermarkTracker::dropped(self : WatermarkTracker) -> Int

#
WatermarkTracker::new

fn WatermarkTracker::new(allowed_lateness? : Int64) -> WatermarkTracker

#
WatermarkTracker::observe

fn WatermarkTracker::observe(self : WatermarkTracker, timestamp : Int64) -> Bool

#
WatermarkTracker::watermark

fn WatermarkTracker::watermark(self : WatermarkTracker) -> Int64

#
WindowAggregate

pub struct WindowAggregate {
start_timestamp : Int64
end_timestamp : Int64
count : Int
value : Double
summary : StatsSummary
}

#
WindowAggregator

pub struct WindowAggregator {
size : Int
kind : AggregationKind
window : DoubleWindow
start_timestamp : Int64
end_timestamp : Int64
count : Int
}

#
WindowAggregator::flush

#
WindowAggregator::new

fn WindowAggregator::new(size : Int, kind? : AggregationKind) -> WindowAggregator

#
WindowAggregator::push

#
WindowDiagnostic

pub struct WindowDiagnostic {
before : StatsSummary
after : StatsSummary
mean_shift : Double
variance_ratio : Double
distribution_shift : Double
severity : AlertSeverity
actionable : Bool
}

Diagnostic comparison between two adjacent windows.

#
WindowDiagnostic::empty

#
WindowFeatures

pub struct WindowFeatures {
count : Int
mean : Double
standard_deviation : Double
median : Double
mad : Double
minimum : Double
maximum : Double
range : Double
slope : Double
autocorrelation : Double
change_rate : Double
}

Features extracted from a bounded window for dashboards and model input.

#
WindowFeatures::empty

#
absolute

fn absolute(value : Double) -> Double

Returns the absolute value without exposing math implementation details.

#
absolute_change

fn absolute_change(baseline : Double, observed : Double) -> Double

#
actionable_diagnostics

fn actionable_diagnostics(diagnostics : Array[WindowDiagnostic]) -> Int

#
adaptive_threshold

fn adaptive_threshold(scores : Array[Double], false_positive_rate? : Double) -> Double

#
alerts_markdown

fn alerts_markdown(alerts : Array[AlertEvent]) -> String

#
align_by_timestamp

fn align_by_timestamp(left : Array[SignalPoint], right : Array[SignalPoint]) -> (Array[Double], Array[Double])

#
array_maximum

fn array_maximum(values : Array[Double]) -> Double

#
array_minimum

fn array_minimum(values : Array[Double]) -> Double

#
autocorrelation

fn autocorrelation(values : Array[Double], lag : Int) -> Double

#
average_pairwise_correlation

fn average_pairwise_correlation(series : Array[Array[Double]]) -> Double

#
baseline_strategy_name

fn baseline_strategy_name(strategy : ProductionBaselineStrategy) -> String

#
benchmark_cusum

fn benchmark_cusum(scenario : SignalScenario, rounds? : Int) -> BenchmarkResult

#
benchmark_ensemble

fn benchmark_ensemble(scenario : SignalScenario, rounds? : Int) -> BenchmarkResult

#
benchmark_markdown

fn benchmark_markdown(results : Array[BenchmarkResult]) -> String

#
benchmark_robust_z

fn benchmark_robust_z(scenario : SignalScenario, rounds? : Int) -> BenchmarkResult

#
benchmark_suite

fn benchmark_suite(rounds? : Int) -> Array[BenchmarkResult]

Runs the standard acceptance benchmark suite on a fixed synthetic scenario.

#
best_boundary

fn best_boundary(values : Array[Double], minimum_segment? : Int) -> Int

#
best_f1_threshold

fn best_f1_threshold(scores : Array[Double], labels : Array[Bool], candidates : Array[Double]) -> ThresholdPoint

#
best_lag

fn best_lag(left : Array[Double], right : Array[Double], maximum_lag : Int) -> Int

#
best_threshold

fn best_threshold(observations : Array[ScoreObservation], candidates : Array[Double], false_positive_cost? : Double, false_negative_cost? : Double) -> ThresholdReport

#
binary_segmentation

fn binary_segmentation(values : Array[Double], threshold? : Double, min_segment? : Int, max_changes? : Int) -> Array[OfflineChange]

Greedy binary segmentation for a small number of interpretable changes.

#
bootstrap_change_score

fn bootstrap_change_score(left : Array[Double], right : Array[Double], replicates? : Int, seed? : Int64) -> BootstrapEstimate

#
bootstrap_mean

fn bootstrap_mean(values : Array[Double], replicates? : Int, seed? : Int64) -> BootstrapEstimate

#
boundary_quality

fn boundary_quality(values : Array[Double], boundary : Int, minimum_segment? : Int) -> Double

#
bucket_timestamp

fn bucket_timestamp(timestamp : Int64, origin : Int64, width : Int64) -> Int64

#
burn_rate

fn burn_rate(window : SloWindow, target : Double) -> Double

#
calibration_bins

fn calibration_bins(observations : Array[ScoreObservation], bins? : Int) -> Array[Double]

#
catalog_markdown

fn catalog_markdown() -> String

#
change_direction_from_values

fn change_direction_from_values(baseline : Double, observed : Double) -> ChangeDirection

#
change_point_csv

fn change_point_csv(point : ChangePoint) -> String

#
change_point_csv_header

fn change_point_csv_header() -> String

#
changes_csv

fn changes_csv(points : Array[ChangePoint]) -> String

#
clamp_probability

fn clamp_probability(value : Double) -> Double

Clamps a probability-like number to the closed unit interval.

#
clip

fn clip(values : Array[Double], lower : Double, upper : Double) -> Array[Double]

#
clip_values

fn clip_values(values : Array[Double], minimum : Double, maximum : Double) -> Array[Double]

#
cluster_incidents

fn cluster_incidents(events : Array[AlertEvent], maximum_gap : Int64) -> Array[Incident]

#
combine_scores

fn combine_scores(scores : Array[Double], weights : Array[Double]) -> Double

#
compare_segment_quality

fn compare_segment_quality(left : Array[Double], right : Array[Double]) -> Double

#
consensus_score

fn consensus_score(results : Array[DetectionResult]) -> Double

#
contiguous_ranges

fn contiguous_ranges(points : Array[SignalPoint], maximum_gap : Int64) -> Array[SegmentRange]

#
cooldown_schedule

fn cooldown_schedule(plan : RecoveryPlan, attempts : Int) -> Array[Int]

#
correlated_change_score

fn correlated_change_score(before : Array[Array[Double]], after : Array[Array[Double]]) -> Double

#
correlation

fn correlation(left : Array[Double], right : Array[Double]) -> Double

#
correlation_alert

fn correlation_alert(before : Array[Array[Double]], after : Array[Array[Double]], threshold? : Double) -> DetectionResult

#
correlation_matrix

fn correlation_matrix(series : Array[Array[Double]]) -> SquareMatrix

#
cosine_similarity

fn cosine_similarity(left : Array[Double], right : Array[Double]) -> Double

#
covariance

fn covariance(left : Array[Double], right : Array[Double]) -> Double

#
covariance_matrix

fn covariance_matrix(series : Array[Array[Double]]) -> SquareMatrix

#
critical_incident_count

fn critical_incident_count(incidents : Array[Incident]) -> Int

#
cumulative_sum

fn cumulative_sum(values : Array[Double], initial? : Double) -> Array[Double]

#
cumulative_total

fn cumulative_total(values : Array[Double]) -> Array[Double]

#
deduplicate_events

fn deduplicate_events(events : Array[AlertEvent], minimum_gap : Int64) -> Array[AlertEvent]

#
deseasonalize

fn deseasonalize(values : Array[Double], period : Int) -> Array[Double]

#
detection_csv

fn detection_csv(result : DetectionResult) -> String

Converts a detection result to a stable CSV row.

#
detection_csv_header

fn detection_csv_header() -> String

#
detector_catalog

fn detector_catalog() -> Array[DetectorSpec]

#
detector_names

fn detector_names() -> Array[String]

#
detector_reliability

fn detector_reliability(results : Array[DetectionResult]) -> Double

#
diagnose_series

fn diagnose_series(values : Array[Double], split : Int, minimum_segment? : Int) -> WindowDiagnostic

#
diagnose_windows

fn diagnose_windows(before_values : Array[Double], after_values : Array[Double], shift_threshold? : Double, distribution_threshold? : Double) -> WindowDiagnostic

#
diagnostic_direction

fn diagnostic_direction(diagnostic : WindowDiagnostic) -> ChangeDirection

#
diagnostic_label

fn diagnostic_label(diagnostic : WindowDiagnostic) -> String

#
diagnostic_markdown

fn diagnostic_markdown(diagnostic : WindowDiagnostic) -> String

#
diagnostic_score

fn diagnostic_score(diagnostic : WindowDiagnostic) -> Double

#
diagnostics_batch

fn diagnostics_batch(values : Array[Double], splits : Array[Int]) -> Array[WindowDiagnostic]

#
diagonal_mahalanobis

fn diagonal_mahalanobis(vector : Array[Double], means : Array[Double], variances : Array[Double]) -> Double

#
difference

fn difference(values : Array[Double], lag? : Int) -> Array[Double]

#
direction_name

fn direction_name(direction : ChangeDirection) -> String

Returns a human-readable direction label.

#
distribution_change_score

fn distribution_change_score(left : Array[Double], right : Array[Double]) -> Double

#
distribution_overlap

fn distribution_overlap(left : Array[Double], right : Array[Double], bins? : Int) -> Double

#
downsample_mean

fn downsample_mean(values : Array[Double], factor : Int) -> Array[Double]

#
energy_distance

fn energy_distance(left : Array[Double], right : Array[Double]) -> Double

#
error_budget

fn error_budget(availability : Double, target : Double) -> Double

#
euclidean_distance

fn euclidean_distance(left : Array[Double], right : Array[Double]) -> Double

#
evaluate_change_points

fn evaluate_change_points(predicted : Array[Int], truth : Array[Int], tolerance? : Int) -> ChangePointMetrics

Matches a prediction to at most one truth within a tolerance window.

#
evaluate_slo

fn evaluate_slo(window : SloWindow, target? : Double, burn_limit? : Double) -> SloReport

#
evaluate_threshold

fn evaluate_threshold(observations : Array[ScoreObservation], threshold : Double, false_positive_cost? : Double, false_negative_cost? : Double) -> ThresholdReport

#
event_rate

fn event_rate(events : Array[AlertEvent], start : Int64, end : Int64) -> Double

#
evidence_strength

fn evidence_strength(score : Double, confidence : Double, deviation : Double) -> Double

#
expected_alert_cost

fn expected_alert_cost(false_positive_rate : Double, false_negative_rate : Double, false_positive_cost? : Double, false_negative_cost? : Double) -> Double

#
explain_batch

fn explain_batch(results : Array[DetectionResult], baseline : Double, values : Array[Double], detector : String) -> Array[DetectionExplanation]

#
explanation_alerts

fn explanation_alerts(explanations : Array[DetectionExplanation]) -> Int

#
explanation_csv

fn explanation_csv(explanation : DetectionExplanation) -> String

#
explanation_csv_header

fn explanation_csv_header() -> String

#
explanation_markdown

fn explanation_markdown(explanation : DetectionExplanation) -> String

#
explanation_strength

fn explanation_strength(explanation : DetectionExplanation) -> Double

#
exponential_smooth

fn exponential_smooth(values : Array[Double], alpha? : Double) -> Array[Double]

#
extract_features

fn extract_features(values : Array[Double]) -> WindowFeatures

#
feature_change_score

fn feature_change_score(left : Array[Double], right : Array[Double]) -> Double

#
feature_distance

fn feature_distance(left : WindowFeatures, right : WindowFeatures) -> Double

#
feature_names

fn feature_names() -> Array[String]

#
find_detector

fn find_detector(name : String) -> DetectorSpec?

#
first_difference

fn first_difference(values : Array[Double]) -> Array[Double]

#
forecast_mae

fn forecast_mae(actual : Array[Double], predicted : Array[Double]) -> Double

#
forecast_mape

fn forecast_mape(actual : Array[Double], predicted : Array[Double]) -> Double

#
forecast_rmse

fn forecast_rmse(actual : Array[Double], predicted : Array[Double]) -> Double

#
forward_fill

fn forward_fill(values : Array[Double], fallback? : Double) -> Array[Double]

#
generate_signal

fn generate_signal(scenario : SignalScenario) -> Array[Double]

Generates a deterministic signal and its known change indices.

#
hampel_filter

fn hampel_filter(values : Array[Double], window_size? : Int, threshold? : Double) -> Array[Double]

#
highest_priority

fn highest_priority(decisions : Array[RoutingDecision]) -> Int

#
histogram_distance

fn histogram_distance(left : Histogram, right : Histogram) -> Double

#
histogram_hellinger

fn histogram_hellinger(left : Histogram, right : Histogram) -> Double

#
incident_alert_count

fn incident_alert_count(incidents : Array[Incident]) -> Int

#
incident_rate

fn incident_rate(incidents : Array[Incident], start : Int64, end : Int64) -> Double

#
incidents_markdown

fn incidents_markdown(incidents : Array[Incident]) -> String

#
inspect_split

fn inspect_split(values : Array[Double], split : Int, min_segment? : Int) -> OfflineChange?

Returns a change record for a split, or None when the split is outside the valid range.

#
interpolate_missing

fn interpolate_missing(values : Array[Double]) -> Array[Double]

Linearly interpolates invalid observations while retaining valid endpoints.

#
interpolate_points

fn interpolate_points(points : Array[SignalPoint], step : Int64) -> Array[SignalPoint]

#
interquartile_range

fn interquartile_range(values : Array[Double]) -> Double

#
is_finite

fn is_finite(value : Double) -> Bool

Returns whether a value is finite enough for detector state.

#
ks_statistic

fn ks_statistic(left : Array[Double], right : Array[Double]) -> Double

Kolmogorov-Smirnov distance between two samples.

#
lag_points

fn lag_points(points : Array[SignalPoint], lag : Int64) -> Array[SignalPoint]

#
lag_values

fn lag_values(values : Array[Double], lag : Int) -> Array[Double]

#
lagged_correlation

fn lagged_correlation(left : Array[Double], right : Array[Double], lag : Int) -> Double

#
linear_slope

fn linear_slope(values : Array[Double]) -> Double

#
locate_time_window

fn locate_time_window(windows : Array[TimeWindow], timestamp : Int64) -> Int

#
make_explanation

fn make_explanation(result : DetectionResult, baseline : Double, observed : Double, detector : String) -> DetectionExplanation

#
make_time_windows

fn make_time_windows(start : Int64, end : Int64, width : Int64, step? : Int64) -> Array[TimeWindow]

#
mann_whitney_u

fn mann_whitney_u(left : Array[Double], right : Array[Double]) -> Double

#
mask_every

fn mask_every(values : Array[Double], period : Int, offset? : Int) -> Array[Double]

Applies deterministic missingness without changing the length of the sample.

#
mean

fn mean(values : Array[Double]) -> Double

#
mean_absolute_difference

fn mean_absolute_difference(values : Array[Double]) -> Double

#
mean_shift_score

fn mean_shift_score(values : Array[Double], split : Int, min_segment? : Int) -> Double

Standardized mean difference between two adjacent segments.

#
median

fn median(values : Array[Double]) -> Double

#
median_absolute_deviation

fn median_absolute_deviation(values : Array[Double]) -> Double

#
merge_nearby_changes

fn merge_nearby_changes(changes : Array[OfflineChange], minimum_distance : Int) -> Array[OfflineChange]

Removes candidates closer than minimum_distance, preserving the highest score.

#
metrics_markdown

fn metrics_markdown(metrics : ChangePointMetrics) -> String

#
missing_value_strategy_name

fn missing_value_strategy_name(strategy : MissingValueStrategy) -> String

#
moving_average

fn moving_average(values : Array[Double], window_size : Int) -> Array[Double]

#
moving_median

fn moving_median(values : Array[Double], window_size : Int) -> Array[Double]

#
normalize_minmax

fn normalize_minmax(values : Array[Double]) -> Array[Double]

#
normalize_range

fn normalize_range(values : Array[Double], minimum? : Double, maximum? : Double) -> Array[Double]

#
normalize_scores

fn normalize_scores(scores : Array[Double]) -> Array[Double]

#
normalize_zscore

fn normalize_zscore(values : Array[Double]) -> Array[Double]

#
online_detector_count

fn online_detector_count() -> Int

#
optimal_changepoints

fn optimal_changepoints(values : Array[Double], penalty? : Double, min_segment? : Int, max_changes? : Int) -> Array[Int]

Penalized dynamic programming for minimum-description-length style segmentation.

#
outlier_mask

fn outlier_mask(values : Array[Double], threshold? : Double) -> Array[Bool]

#
page_count

fn page_count(decisions : Array[RoutingDecision]) -> Int

#
percentile

fn percentile(values : Array[Double], percent : Double) -> Double

#
piecewise_constant_error

fn piecewise_constant_error(values : Array[Double], changes : Array[Int]) -> Double

Computes a reconstruction error when each segment is represented by its mean.

#
production_autocorrelation_profile

fn production_autocorrelation_profile(values : Array[Double], maximum_lag? : Int) -> Array[Double]

#
production_backpressure_policy_name

fn production_backpressure_policy_name(policy : ProductionBackpressurePolicy) -> String

#
production_bootstrap_difference

fn production_bootstrap_difference(left : Array[Double], right : Array[Double], replicates? : Int, confidence? : Double, seed? : Int64) -> ProductionConfidenceInterval

#
production_bootstrap_interval

fn production_bootstrap_interval(values : Array[Double], replicates? : Int, confidence? : Double, seed? : Int64) -> ProductionConfidenceInterval

#
production_brier_score

fn production_brier_score(probabilities : Array[Double], labels : Array[Bool]) -> Double

Brier score for probabilistic change likelihoods.

#
production_calibrate_result

fn production_calibrate_result(calibrator : ProductionOnlineCalibrator, result : DetectionResult) -> DetectionResult

Converts a detector score into a calibrated detection result.

#
production_calibration_bins

fn production_calibration_bins(probabilities : Array[Double], labels : Array[Bool], bins? : Int) -> Array[ProductionCalibrationBin]

#
production_calibration_markdown

fn production_calibration_markdown(bins : Array[ProductionCalibrationBin]) -> String

#
production_calibration_mode_name

fn production_calibration_mode_name(mode : ProductionCalibrationMode) -> String

#
production_center_scale

fn production_center_scale(values : Array[Double]) -> Array[Double]

#
production_checkpoint_csv

fn production_checkpoint_csv(checkpoint : ProductionMonitorCheckpoint) -> String

#
production_clip_percentiles

fn production_clip_percentiles(values : Array[Double], lower? : Double, upper? : Double) -> Array[Double]

#
production_config_issues_summary

fn production_config_issues_summary(issues : Array[ProductionConfigIssue]) -> String

#
production_config_lines

fn production_config_lines(config : ProductionMonitorConfig) -> Array[String]

A stable line-oriented representation used in deployment logs.

#
production_contract_checksum

fn production_contract_checksum(rule : ProductionContractRule) -> String

Stable, order-sensitive checksum for a contract definition.

#
production_contract_distinct_labels

fn production_contract_distinct_labels(labels : Array[String]) -> Int

#
production_contract_field_kind_name

fn production_contract_field_kind_name(kind : ProductionContractFieldKind) -> String

#
production_contract_largest_gap

fn production_contract_largest_gap(timestamps : Array[Int64]) -> Int64

Returns the largest time gap in a timestamp series.

#
production_contract_report_json

fn production_contract_report_json(report : ProductionContractReport) -> String

#
production_contract_severity_name

fn production_contract_severity_name(severity : ProductionContractSeverity) -> String

#
production_contract_summary_markdown

fn production_contract_summary_markdown(summary : ProductionContractSummary) -> String

#
production_contract_violation_code_name

fn production_contract_violation_code_name(code : ProductionContractViolationCode) -> String

#
production_control_limits

fn production_control_limits(baseline : Array[Double], sigma_multiplier? : Double) -> (Double, Double)

#
production_dashboard_csv

fn production_dashboard_csv(series : ProductionDashboardSeries) -> String

#
production_dashboard_series

fn production_dashboard_series(name : String, events : Array[ProductionMonitorEvent], maximum_rows? : Int) -> ProductionDashboardSeries

Produces a bounded dashboard-friendly time series from monitor events.

#
production_decisions_markdown

fn production_decisions_markdown(decisions : Array[ProductionDeliveryDecision]) -> String

#
production_delivery_channel_name

fn production_delivery_channel_name(channel : ProductionDeliveryChannel) -> String

#
production_detector_kind_name

fn production_detector_kind_name(kind : ProductionDetectorKind) -> String

#
production_drift_markdown

fn production_drift_markdown(report : ProductionDriftReport) -> String

#
production_effect_size

fn production_effect_size(left : Array[Double], right : Array[Double]) -> Double

#
production_export_checksum

fn production_export_checksum(payload : String) -> String

#
production_export_field_name

fn production_export_field_name(field : ProductionExportField) -> String

#
production_export_format_name

fn production_export_format_name(format : ProductionExportFormat) -> String

#
production_export_group_by_metric

fn production_export_group_by_metric(records : Array[ProductionExportRecord]) -> Array[String]

#
production_export_manifest

fn production_export_manifest(options : ProductionExportOptions) -> String

Produce a manifest describing the selected export schema.

#
production_export_merge_batches

fn production_export_merge_batches(left : ProductionExportBatch, right : ProductionExportBatch) -> ProductionExportBatch

#
production_export_metric_count

fn production_export_metric_count(records : Array[ProductionExportRecord], metric : String) -> Int

#
production_export_metric_mean

fn production_export_metric_mean(records : Array[ProductionExportRecord], metric : String) -> Double

#
production_export_normalize_metric_name

fn production_export_normalize_metric_name(metric : String) -> String

#
production_export_record_csv

fn production_export_record_csv(record : ProductionExportRecord, delimiter? : String) -> String

#
production_export_record_json

fn production_export_record_json(record : ProductionExportRecord, pretty? : Bool) -> String

#
production_export_record_markdown

fn production_export_record_markdown(record : ProductionExportRecord) -> String

#
production_export_record_prometheus

fn production_export_record_prometheus(record : ProductionExportRecord, options : ProductionExportOptions) -> String

#
production_export_validate_metric_name

fn production_export_validate_metric_name(metric : String) -> Bool

#
production_feature_contributions

fn production_feature_contributions(vector : ProductionFeatureVector, weights : Array[Double]) -> Array[EvidenceContribution]

Builds a compact feature-to-score summary used for explanations.

#
production_feature_kind_name

fn production_feature_kind_name(kind : ProductionFeatureKind) -> String

#
production_features_csv

fn production_features_csv(vector : ProductionFeatureVector) -> String

#
production_features_csv_header

fn production_features_csv_header() -> String

#
production_fleet_health_label

fn production_fleet_health_label(score : Double) -> String

#
production_fleet_health_score

fn production_fleet_health_score(snapshots : Array[ProductionMonitorSnapshot]) -> Double

Aggregates multiple monitor snapshots into a fleet health score.

#
production_forecast_kind_name

fn production_forecast_kind_name(kind : ProductionForecastKind) -> String

#
production_forecast_score

fn production_forecast_score(actual : Array[Double], predictions : Array[ProductionForecastInterval]) -> ProductionForecastScore

#
production_forecast_scores_markdown

fn production_forecast_scores_markdown(scores : Array[ProductionForecastScore]) -> String

#
production_frame_change_score

fn production_frame_change_score(before : ProductionMetricFrame, after : ProductionMetricFrame) -> Double

Computes vector-level changes over synchronized frames.

#
production_guardrail_action_is_failure

fn production_guardrail_action_is_failure(action : ProductionGuardrailAction) -> Bool

#
production_guardrail_action_is_terminal

fn production_guardrail_action_is_terminal(action : ProductionGuardrailAction) -> Bool

#
production_guardrail_action_name

fn production_guardrail_action_name(action : ProductionGuardrailAction) -> String

#
production_guardrail_decisions_json

fn production_guardrail_decisions_json(decisions : Array[ProductionGuardrailDecision]) -> String

#
production_guardrail_direction_name

fn production_guardrail_direction_name(direction : ProductionGuardrailDirection) -> String

#
production_guardrail_health_from_actions

fn production_guardrail_health_from_actions(actions : Array[ProductionGuardrailAction]) -> Double

#
production_guardrail_metric_name

fn production_guardrail_metric_name(metric : ProductionGuardrailMetricKind) -> String

#
production_health_state_name

fn production_health_state_name(state : ProductionHealthState) -> String

#
production_impute_values

fn production_impute_values(values : Array[Double], strategy : MissingValueStrategy) -> Array[Double]

Returns a copy with invalid values replaced according to a production policy.

#
production_incident_rate_markdown

fn production_incident_rate_markdown(incidents : Array[ProductionIncident], start : Int64, end : Int64) -> String

#
production_incident_state_name

fn production_incident_state_name(state : ProductionIncidentState) -> String

#
production_incidents_markdown

fn production_incidents_markdown(incidents : Array[ProductionIncident]) -> String

#
production_join_series

fn production_join_series(series : Array[ProductionMetricSeries], tolerance : Int64) -> Array[ProductionMetricFrame]

Builds frames by joining series at the nearest timestamp within a tolerance.

#
production_log_loss

fn production_log_loss(probabilities : Array[Double], labels : Array[Bool]) -> Double

Numerically stable binary log loss.

#
production_mean_difference

fn production_mean_difference(left : Array[Double], right : Array[Double]) -> Double

#
production_mean_shift_test

fn production_mean_shift_test(left : Array[Double], right : Array[Double], alpha? : Double, replicates? : Int) -> ProductionStatTestResult

Runs a mean-shift evidence test with a bootstrap interval and permutation p-value.

#
production_median_difference

fn production_median_difference(left : Array[Double], right : Array[Double]) -> Double

#
production_median_shift_test

fn production_median_shift_test(left : Array[Double], right : Array[Double], alpha? : Double, replicates? : Int) -> ProductionStatTestResult

Runs a median-shift evidence test for heavy-tailed telemetry.

#
production_mode_name

fn production_mode_name(mode : ProductionMonitorMode) -> String

Returns the enum value as a stable configuration token.

#
production_monitor_event_name

fn production_monitor_event_name(kind : ProductionMonitorEventKind) -> String

#
production_monitor_events_csv

fn production_monitor_events_csv(events : Array[ProductionMonitorEvent]) -> String

#
production_monitor_events_csv_header

fn production_monitor_events_csv_header() -> String

#
production_monitor_signal

fn production_monitor_signal(monitor : ProductionMonitor, points : Array[SignalPoint]) -> ProductionMonitorSnapshot

Runs a monitor over a sorted signal and returns its final snapshot.

#
production_normalize_range

fn production_normalize_range(values : Array[Double], lower? : Double, upper? : Double) -> Array[Double]

#
production_observations_csv

fn production_observations_csv(observations : Array[ProductionReplayObservation]) -> String

#
production_observations_csv_header

fn production_observations_csv_header() -> String

#
production_out_of_control_count

fn production_out_of_control_count(values : Array[Double], lower : Double, upper : Double) -> Int

#
production_percent_changes

fn production_percent_changes(values : Array[Double]) -> Array[Double]

Computes a bounded rolling percentage change series.

#
production_permutation_shift_score

fn production_permutation_shift_score(left : Array[Double], right : Array[Double], permutations? : Int, seed? : Int64) -> Double

#
production_precision_recall_curve

fn production_precision_recall_curve(scores : Array[Double], labels : Array[Bool], steps? : Int) -> Array[ProductionCurvePoint]

#
production_quantile_profile

fn production_quantile_profile(values : Array[Double], probabilities? : Array[Double]) -> Array[Double]

#
production_query_results_markdown

fn production_query_results_markdown(results : Array[ProductionQueryResult]) -> String

#
production_query_rollup

fn production_query_rollup(series : ProductionMetricSeries, start : Int64, end : Int64, step : Int64, function? : ProductionWindowFunction) -> Array[ProductionQueryResult]

#
production_replay_mode_name

fn production_replay_mode_name(mode : ProductionReplayMode) -> String

#
production_report_format_name

fn production_report_format_name(format : ProductionReportFormat) -> String

#
production_residuals_from_trend

fn production_residuals_from_trend(values : Array[Double]) -> Array[Double]

#
production_roc_curve

fn production_roc_curve(scores : Array[Double], labels : Array[Bool], steps? : Int) -> Array[ProductionCurvePoint]

#
production_rolling_ranges

fn production_rolling_ranges(values : Array[Double], width? : Int) -> Array[Double]

Calculates a rolling range without exposing mutable window state.

#
production_rolling_volatility

fn production_rolling_volatility(values : Array[Double], width? : Int) -> Array[Double]

Computes rolling volatility using a population standard deviation.

#
production_run_batch

fn production_run_batch(batch_id : String, monitor : ProductionMonitor, samples : Array[ProductionSample]) -> ProductionBatchResult

#
production_sample_quality

fn production_sample_quality(samples : Array[ProductionSample]) -> (Int, Int, Int)

Counts samples by late-data and imputation flags for quality dashboards.

#
production_scenario_points

fn production_scenario_points(scenario : SignalScenario, start_timestamp? : Int64, step? : Int64) -> Array[SignalPoint]

Creates sorted points from a deterministic scenario for benchmark harnesses.

#
production_select_cost_threshold

fn production_select_cost_threshold(scores : Array[Double], labels : Array[Bool], cost? : ProductionThresholdCost, steps? : Int) -> ProductionThresholdSelection

#
production_select_f1_threshold

fn production_select_f1_threshold(scores : Array[Double], labels : Array[Bool], steps? : Int) -> ProductionThresholdSelection

#
production_service_status_name

fn production_service_status_name(status : ProductionServiceStatus) -> String

#
production_slo_reports_markdown

fn production_slo_reports_markdown(reports : Array[ProductionSloReport]) -> String

#
production_slo_window_name

fn production_slo_window_name(kind : ProductionSloWindowKind) -> String

#
production_smoothed_values

fn production_smoothed_values(values : Array[Double], width? : Int) -> Array[Double]

#
production_snapshot_csv

fn production_snapshot_csv(snapshot : ProductionMonitorSnapshot) -> String

#
production_snapshots_csv

fn production_snapshots_csv(snapshots : Array[ProductionMonitorSnapshot]) -> String

#
production_snapshots_csv_header

fn production_snapshots_csv_header() -> String

Exports monitor snapshots as a stable CSV schema.

#
production_startup_report

fn production_startup_report(config : ProductionMonitorConfig, initial_values : Array[Double]) -> ProductionReadinessReport

#
production_stat_test_kind_name

fn production_stat_test_kind_name(kind : ProductionStatTestKind) -> String

#
production_stream_metrics_markdown

fn production_stream_metrics_markdown(metrics : ProductionStreamMetrics, elapsed : Int64) -> String

#
production_stream_process_points

fn production_stream_process_points(processor : ProductionStreamProcessor, points : Array[SignalPoint]) -> Array[ProductionMonitorEvent]

#
production_stream_status_name

fn production_stream_status_name(status : ProductionStreamStatus) -> String

#
production_threshold_grid

fn production_threshold_grid(scores : Array[Double], steps? : Int) -> Array[Double]

#
production_top_changes

fn production_top_changes(values : Array[Double], maximum? : Int) -> Array[Int]

Returns the largest absolute changes in a numeric series.

#
production_transform_kind_name

fn production_transform_kind_name(kind : ProductionTransformKind) -> String

#
production_transform_values

fn production_transform_values(values : Array[Double], specs : Array[ProductionTransformSpec], missing? : MissingValueStrategy) -> Array[Double]

#
production_validate_monotonic_timestamps

fn production_validate_monotonic_timestamps(timestamps : Array[Int64]) -> Bool

Returns whether a timestamp series is non-decreasing.

#
production_values_checksum

fn production_values_checksum(values : Array[Double]) -> Double

Computes a stable hash-like checksum over a numeric output series.

#
production_variance_ratio

fn production_variance_ratio(left : Array[Double], right : Array[Double]) -> Double

#
production_window_feature_distance

fn production_window_feature_distance(left : Array[Double], right : Array[Double], config? : ProductionFeatureConfig) -> Double

Computes a robustly scaled distance between two production windows.

#
production_window_function_name

fn production_window_function_name(kind : ProductionWindowFunction) -> String

#
quality_gate

fn quality_gate(values : Array[Double], minimum_score? : Double) -> Bool

#
quality_score

fn quality_score(report : QualityReport) -> Double

#
quantile

fn quantile(values : Array[Double], probability : Double) -> Double

#
quantile_shift_score

fn quantile_shift_score(left : Array[Double], right : Array[Double]) -> Double

#
rank_biserial_effect

fn rank_biserial_effect(left : Array[Double], right : Array[Double]) -> Double

#
ranks

fn ranks(values : Array[Double]) -> Array[Double]

fn recommended_detector(multivariate : Bool, offline : Bool, robust : Bool) -> String

#
recovery_action_name

fn recovery_action_name(action : RecoveryAction) -> String

#
recovery_message

fn recovery_message(plan : RecoveryPlan) -> String

#
recovery_priority

fn recovery_priority(result : DetectionResult) -> Int

#
recovery_report

fn recovery_report(plans : Array[RecoveryPlan]) -> String

#
relative_change

fn relative_change(baseline : Double, observed : Double) -> Double

#
remove_invalid

fn remove_invalid(values : Array[Double]) -> Array[Double]

#
reorder_periodic

fn reorder_periodic(points : Array[SignalPoint], period : Int) -> Array[SignalPoint]

Reorders every period-th point to model a small late-data burst.

#
replace_invalid

fn replace_invalid(values : Array[Double], replacement? : Double) -> Array[Double]

#
replay_changed_indices

fn replay_changed_indices(records : Array[ReplayRecord]) -> Array[Int]

#
replay_checksum

fn replay_checksum(records : Array[ReplayRecord]) -> Double

#
replay_latency_percentile

fn replay_latency_percentile(records : Array[ReplayRecord], probability : Double) -> Int64

#
replay_summary_markdown

fn replay_summary_markdown(summary : ReplaySummary) -> String

#
replay_values

fn replay_values(records : Array[ReplayRecord]) -> Array[Double]

#
replay_window

fn replay_window(records : Array[ReplayRecord], start : Int, end : Int) -> Array[ReplayRecord]

#
resample_linear

fn resample_linear(points : Array[SignalPoint], step : Int64) -> Array[SignalPoint]

#
results_csv

fn results_csv(results : Array[DetectionResult]) -> String

#
robust_detector_count

fn robust_detector_count() -> Int

#
robust_scale

fn robust_scale(values : Array[Double]) -> Double

#
robust_z_score

fn robust_z_score(value : Double, center : Double, scale : Double) -> Double

#
robust_z_scores

fn robust_z_scores(values : Array[Double]) -> Array[Double]

#
rolling_correlation

fn rolling_correlation(left : Array[Double], right : Array[Double], window_size : Int) -> Array[Double]

#
rolling_mean

fn rolling_mean(values : Array[Double], window_size : Int) -> Array[Double]

#
rolling_origins

fn rolling_origins(length : Int, train_size : Int, horizon : Int, step? : Int) -> Array[SegmentRange]

#
rolling_quantile

fn rolling_quantile(values : Array[Double], window_size : Int, probability : Double) -> Array[Double]

#
rolling_slope

fn rolling_slope(values : Array[Double], window_size : Int) -> Array[Double]

#
rolling_standard_deviation

fn rolling_standard_deviation(values : Array[Double], window_size : Int) -> Array[Double]

#
route_alert

fn route_alert(alert : AlertEvent) -> RoutingDecision

#
route_alerts

fn route_alerts(alerts : Array[AlertEvent]) -> Array[RoutingDecision]

#
routing_summary

fn routing_summary(decisions : Array[RoutingDecision]) -> String

#
runs_test_score

fn runs_test_score(values : Array[Double]) -> Double

#
safe_correlation

fn safe_correlation(left : Array[Double], right : Array[Double]) -> Double

Cross-series relationship helpers for multivariate monitoring.

#
scale_profile

fn scale_profile(values : Array[Double], sizes : Array[Int]) -> Array[ScaleEvidence]

#
scenario_truth

fn scenario_truth(scenario : SignalScenario) -> Array[Int]

#
score_f1

fn score_f1(scores : Array[Double], labels : Array[Bool], threshold : Double) -> Double

#
score_margin

fn score_margin(score : Double, threshold : Double) -> Double

#
score_precision

fn score_precision(scores : Array[Double], labels : Array[Bool], threshold : Double) -> Double

#
score_recall

fn score_recall(scores : Array[Double], labels : Array[Bool], threshold : Double) -> Double

#
score_to_confidence

fn score_to_confidence(score : Double, threshold : Double) -> Double

#
seasonal_naive_forecast

fn seasonal_naive_forecast(values : Array[Double], period : Int, horizon : Int) -> Array[Double]

#
seasonal_strength

fn seasonal_strength(values : Array[Double], period : Int) -> Double

#
second_difference

fn second_difference(values : Array[Double]) -> Array[Double]

#
segment_means

fn segment_means(values : Array[Double], boundaries : Array[Int]) -> Array[Double]

#
segment_profile

fn segment_profile(values : Array[Double], boundaries : Array[Int]) -> Array[StatsSummary]

#
segment_quality

fn segment_quality(values : Array[Double]) -> SegmentQuality

#
segment_variances

fn segment_variances(values : Array[Double], boundaries : Array[Int]) -> Array[Double]

#
severity_from_score

fn severity_from_score(score : Double) -> AlertSeverity

Converts a score into a stable three-level severity.

#
severity_name

fn severity_name(severity : AlertSeverity) -> String

Returns a human-readable severity label.

#
should_escalate

fn should_escalate(plan : RecoveryPlan, score : Double) -> Bool

#
sigmoid_score

fn sigmoid_score(value : Double) -> Double

#
sign

fn sign(value : Double) -> Int

Returns the sign of a number.

#
sign_change_rate

fn sign_change_rate(values : Array[Double]) -> Double

#
signal_checksum

fn signal_checksum(values : Array[Double]) -> Double

Returns a deterministic checksum useful for detecting accidental benchmark dead-code elimination.

#
slope_confidence

fn slope_confidence(values : Array[Double]) -> Double

#
sorted_copy

fn sorted_copy(values : Array[Double]) -> Array[Double]

Returns a sorted copy using insertion sort. It is stable and allocation-bounded for small windows.

#
spearman_correlation

fn spearman_correlation(left : Array[Double], right : Array[Double]) -> Double

#
split_train_test

fn split_train_test(values : Array[Double], train_fraction? : Double) -> (Array[Double], Array[Double])

#
standard_deviation

fn standard_deviation(values : Array[Double]) -> Double

#
stratified_counts

fn stratified_counts(values : Array[Double], bins : Int) -> Array[Int]

#
strongest_contribution

fn strongest_contribution(explanation : DetectionExplanation) -> EvidenceContribution?

#
sum

fn sum(values : Array[Double]) -> Double

#
summarize_replay

fn summarize_replay(records : Array[ReplayRecord]) -> ReplaySummary

#
summary_markdown

fn summary_markdown(summary : StatsSummary) -> String

#
tail_confidence

fn tail_confidence(score : Double, scale? : Double) -> Double

#
threshold_for_false_positive

fn threshold_for_false_positive(scores : Array[Double], target_rate : Double) -> Double

#
threshold_from_mad

fn threshold_from_mad(scores : Array[Double], multiplier? : Double) -> Double

#
threshold_from_mean

fn threshold_from_mean(scores : Array[Double], standard_deviations? : Double) -> Double

#
threshold_from_quantile

fn threshold_from_quantile(scores : Array[Double], false_positive_rate : Double) -> Double

#
threshold_grid

fn threshold_grid(minimum : Double, maximum : Double, steps : Int) -> Array[Double]

#
threshold_points

fn threshold_points(scores : Array[Double], threshold : Double) -> Array[ThresholdPoint]

#
time_window_csv

fn time_window_csv(windows : Array[TimeWindow], counts : Array[Int]) -> String

#
timestamped_signal

fn timestamped_signal(values : Array[Double], start? : Int64, step? : Int64) -> Array[SignalPoint]

Converts a signal to timestamped points.

#
trimmed_mean

fn trimmed_mean(values : Array[Double], trim_fraction : Double) -> Double

#
validate_points

fn validate_points(points : Array[SignalPoint], maximum_gap? : Int64?) -> QualityReport

#
validate_values

fn validate_values(values : Array[Double], lower? : Double?, upper? : Double?) -> QualityReport

#
variance

fn variance(values : Array[Double]) -> Double

#
vector_dot

fn vector_dot(left : Array[Double], right : Array[Double]) -> Double

#
vector_norm

fn vector_norm(values : Array[Double]) -> Double

Computes the Euclidean norm of a vector.

#
weighted_consensus

fn weighted_consensus(results : Array[DetectionResult], weights : Array[Double], quorum : Double) -> DetectionResult

#
weighted_mean

fn weighted_mean(values : Array[Double], weights : Array[Double]) -> Double

#
window_change_scores

fn window_change_scores(values : Array[Double], min_segment? : Int) -> Array[Double]

Scans every valid split and returns a score for each index.

#
window_counts

fn window_counts(points : Array[SignalPoint], windows : Array[TimeWindow]) -> Array[Int]

#
window_means

fn window_means(points : Array[SignalPoint], windows : Array[TimeWindow]) -> Array[Double]

#
window_summaries

fn window_summaries(points : Array[SignalPoint], windows : Array[TimeWindow]) -> Array[StatsSummary]

#
winsorize

fn winsorize(values : Array[Double], lower_probability? : Double, upper_probability? : Double) -> Array[Double]

#
winsorize_robust

fn winsorize_robust(values : Array[Double], lower_probability : Double, upper_probability : Double) -> Array[Double]

Robust preprocessing helpers for production telemetry.