Nils Andreas Svee
4ac2f88707
refactor(measurement): remove legacy pinger and migrate production to
2026-10-08 01:41:27 +07:00
Nils Andreas Svee
7e0f434251
refactor: replace legacy Config with Settings
...
Remove legacy src/config.rs and migrate all application consumers to
the nested Settings model. Baseliner, metrics, pingers, ratecontroller,
reflector selector, and main now use Settings. Derived min rates become
methods on NetworkSettings rather than stored legacy fields.
MeasurementType and ObservabilityProtocol move into the settings module.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
c1bcb22b23
refactor(baseliner): Replace shared Mutex state with thread-safe control snapshots
...
Eliminate lock contention between the baseliner, ratecontroller, and selector by moving to a message-passing architecture using immutable snapshots of reflector state. This improves data consistency and simplifies cross-thread communication.
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
51377f947f
refactor(baseliner): extract reflector statistics logic and add unit tests
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
50f0dcb4dd
perf(baseliner): bound the reselection channel to prevent memory buildup
...
Change the reselection channel from unbounded to a size of 1 and use non-blocking sends to avoid unnecessary queuing of reselection triggers.
2026-07-17 11:39:07 +07:00
Nils Andreas Svee
4aaf8fa100
chore: add SPDX license identifiers and copyright headers to source files
...
Apply the MPL-2.0 license to all source files and include the full license text to ensure legal compliance and proper attribution.
2026-04-23 12:39:52 +07:00
Nils Andreas Svee
3322e82b6c
refactor: replace std::sync::mpsc with flume for improved channel performance
...
Migrate internal message passing to flume to leverage better performance and additional features like eventual fairness and selection.
2026-04-22 22:39:06 +07:00
Nils Andreas Svee
ea19c6d68b
style: remove unused synchronization imports
...
Eliminate unused Arc, Mutex, and RwLock imports to clean up codebase and reduce compiler warnings.
2026-04-22 22:26:44 +07:00
Nils Andreas Svee
a81d208c0d
style: refine logging verbosity and improve diagnostic messages
...
Demote baseline telemetry to debug level, add context to rate controller warnings, and remove redundant string conversions in reflector selection logs.
2026-04-22 22:09:26 +07:00
Nils Andreas Svee
d0e3394f03
refactor: add ArcMutex/ArcRwLock type aliases
...
Replace repeated Arc> and Arc> with concise type aliases for readability.
2026-04-18 19:04:35 +02:00
Nils Andreas Svee
bda1a44b6e
feat(threads): Add graceful shutdown checks to worker loops
2026-04-14 02:03:53 +07:00
Nils Andreas Svee
f8976a78a2
feat(metrics): support arbitrary event tags and enhance monitoring coverage
...
Enable key-value metadata for events to track dry-run status and introduce new monitoring events for rate controller failure states.
2026-04-14 01:45:07 +07:00
Nils Andreas Svee
e9e233d98a
refactor(baseliner): migrate to MetricsSender for metric dispatch
2026-04-13 18:57:50 +07:00
Nils Andreas Svee
530a715bdf
fix(observability): refresh metric timestamps on each loop iteration
...
Move clock initialization inside processing loops to ensure exported metrics reflect the current time rather than a stale timestamp.
2026-04-13 16:32:30 +07:00
Nils Andreas Svee
757a715a54
chore: cleanup unused imports
2026-04-13 15:29:04 +07:00
Nils Andreas Svee
da3487e506
feat(observability): make metrics collection optional and granular
...
Wrap metrics senders in Option and conditionally initialize the monitoring thread to support granular configuration and reduced overhead.
2026-04-13 15:22:15 +07:00
Nils Andreas Svee
671e3f2671
refactor: standardize channel naming with tx and rx suffixes
...
Rename internal channel senders and receivers to follow standard Rust conventions for improved code consistency and readability.
2026-04-13 15:07:00 +07:00
Nils Andreas Svee
2c1e7c0483
feat(observability): Export baseline statistics and events
2026-04-13 15:01:46 +07:00
Nils Andreas Svee
c116dd3e74
refactor(sync): Replace unwrap with anyhow-based locking
2026-02-22 16:57:11 +07:00
Nils Andreas Svee
d4ad24ce4a
feat(util): Introduce Mutex/RwLock error handling traits
2026-02-22 16:57:02 +07:00
Nils Andreas Svee
fa20dd4137
fix(baseliner): correct up_ewma to be taken from up time
2025-06-13 12:17:46 +07:00
Nils Andreas Svee
d8c6b4422b
chore: remove unnecessary 'mut' in baseliner loop
2025-05-08 23:49:42 +07:00
Nils Andreas Svee
5c0a6c304f
ratecontroller: use durations instead of manually handling time
2022-11-10 13:54:26 +01:00
Nils Andreas Svee
befccc0d6f
move util functions into respective modules
2022-10-19 21:23:52 +02:00
Nils Andreas Svee
890b3f8c19
Drop pub(crate) and use pub everywhere for now
2022-10-04 16:25:42 +02:00
Nils Andreas Svee
214ffef6f3
Use proper error handling instead of lurking panics everywhere
2022-10-04 16:20:24 +02:00
Nils Andreas Svee
e3b7b7e9ba
Implement missing features, some cleanup
2022-09-28 00:25:35 +02:00
Nils Andreas Svee
b147006a69
partly working implementation
2022-09-17 14:39:27 +02:00