Commit Graph
33 Commits
Author SHA1 Message Date
Nils Andreas Svee a925e60f36 refactor(measurement): introduce Controller for dynamic ICMP probe configuration 2026-10-08 14:15:14 +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 7f557f26d4 style(reflector): remove redundant comment in reflector selector
Eliminate an outdated comment to improve code readability and maintain a clean codebase.
2026-07-24 00:05:41 +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 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 2db63e6159 refactor(reflector_selector): migrate to MetricsSender for event 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 5af5b6597b feat(observability): report reflector selection events and outcomes
Emit metrics detailing why a reflector reselection was triggered and which peers were selected to improve selection process visibility.
2026-04-13 15:28:56 +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 e5ba021a96 feat(observability): Pass metrics sender to rate controller and reflector selector 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 1357a23578 fix(reflector): Remove no-op 'len()' call 2026-02-22 12:13:14 +07:00
Nils Andreas Svee 830e21363a refactor: replace rand crate with fastrand
Replaces the `rand` crate with `fastrand` for improved performance in rate control and reflector selection.
2026-02-22 00:33:57 +07:00
Nils Andreas Svee 99a7928a66 style(reflector): Reorder imports and truncate vector 2026-02-21 22:42:20 +07:00
Nils Andreas Svee 127ed692c3 refactor(reflector): Improve candidate selection loop 2026-02-21 22:42:20 +07:00
Nils Andreas Svee 66a2834192 feat(reflector): Use configurable reselection time 2026-02-21 22:42:20 +07:00
Nils Andreas Svee a427d4078b chore(deps): Update rand and log imports 2026-02-21 00:22:57 +07:00
Nils Andreas Svee 3b9f00cd75 fix: account for rand crate changes 2025-05-08 23:48:38 +07:00
Nils Andreas Svee bb9d1ed4af reflector_selector: Simplify setting sleep time 2022-10-29 22:43:47 +02:00
Nils Andreas Svee cacc5b1a6b Apply Clippy recommendations 2022-10-15 14:58:05 +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 9219ac690a Use a RwLock instead of a Mutex for the peers 2022-09-28 00:43:48 +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