mirror of
https://github.com/telemt/telemt.git
synced 2026-06-18 17:08:29 +03:00
98c985091c
Signed-off-by: Alexey <247128645+axkurcom@users.noreply.github.com>
543 lines
20 KiB
Rust
543 lines
20 KiB
Rust
use super::*;
|
|
|
|
impl Stats {
|
|
pub fn increment_me_writer_pick_success_try_total(&self, mode: MeWriterPickMode) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match mode {
|
|
MeWriterPickMode::SortedRr => {
|
|
self.me_writer_pick_sorted_rr_success_try_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
MeWriterPickMode::P2c => {
|
|
self.me_writer_pick_p2c_success_try_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_success_fallback_total(&self, mode: MeWriterPickMode) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match mode {
|
|
MeWriterPickMode::SortedRr => {
|
|
self.me_writer_pick_sorted_rr_success_fallback_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
MeWriterPickMode::P2c => {
|
|
self.me_writer_pick_p2c_success_fallback_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_full_total(&self, mode: MeWriterPickMode) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match mode {
|
|
MeWriterPickMode::SortedRr => {
|
|
self.me_writer_pick_sorted_rr_full_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
MeWriterPickMode::P2c => {
|
|
self.me_writer_pick_p2c_full_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_closed_total(&self, mode: MeWriterPickMode) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match mode {
|
|
MeWriterPickMode::SortedRr => {
|
|
self.me_writer_pick_sorted_rr_closed_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
MeWriterPickMode::P2c => {
|
|
self.me_writer_pick_p2c_closed_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_no_candidate_total(&self, mode: MeWriterPickMode) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match mode {
|
|
MeWriterPickMode::SortedRr => {
|
|
self.me_writer_pick_sorted_rr_no_candidate_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
MeWriterPickMode::P2c => {
|
|
self.me_writer_pick_p2c_no_candidate_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_blocking_fallback_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writer_pick_blocking_fallback_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_writer_pick_mode_switch_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writer_pick_mode_switch_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_socks_kdf_strict_reject(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_socks_kdf_strict_reject
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_socks_kdf_compat_fallback(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_socks_kdf_compat_fallback
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_secure_padding_invalid(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.secure_padding_invalid.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_desync_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.desync_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_desync_full_logged(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.desync_full_logged.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_desync_suppressed(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.desync_suppressed.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn observe_desync_frames_ok(&self, frames_ok: u64) {
|
|
if !self.telemetry_me_allows_normal() {
|
|
return;
|
|
}
|
|
match frames_ok {
|
|
0 => {
|
|
self.desync_frames_bucket_0.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
1..=2 => {
|
|
self.desync_frames_bucket_1_2
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
3..=10 => {
|
|
self.desync_frames_bucket_3_10
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
_ => {
|
|
self.desync_frames_bucket_gt_10
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_pool_swap_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.pool_swap_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_pool_drain_active(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.pool_drain_active.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn decrement_pool_drain_active(&self) {
|
|
if !self.telemetry_me_allows_debug() {
|
|
return;
|
|
}
|
|
let mut current = self.pool_drain_active.load(Ordering::Relaxed);
|
|
loop {
|
|
if current == 0 {
|
|
break;
|
|
}
|
|
match self.pool_drain_active.compare_exchange_weak(
|
|
current,
|
|
current - 1,
|
|
Ordering::Relaxed,
|
|
Ordering::Relaxed,
|
|
) {
|
|
Ok(_) => break,
|
|
Err(actual) => current = actual,
|
|
}
|
|
}
|
|
}
|
|
pub fn increment_pool_force_close_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.pool_force_close_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_pool_stale_pick_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.pool_stale_pick_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_writer_removed_total(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_writer_removed_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_writer_removed_unexpected_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writer_removed_unexpected_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_refill_triggered_total(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_refill_triggered_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_refill_skipped_inflight_total(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_refill_skipped_inflight_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_refill_failed_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_refill_failed_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_writer_restored_same_endpoint_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writer_restored_same_endpoint_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_writer_restored_fallback_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writer_restored_fallback_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_no_writer_failfast_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_no_writer_failfast_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_hybrid_timeout_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_hybrid_timeout_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_async_recovery_trigger_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_async_recovery_trigger_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_inline_recovery_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_inline_recovery_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_ip_reservation_rollback_tcp_limit_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.ip_reservation_rollback_tcp_limit_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_ip_reservation_rollback_quota_limit_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.ip_reservation_rollback_quota_limit_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn add_quota_refund_bytes_total(&self, bytes: u64) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_refund_bytes_total
|
|
.fetch_add(bytes, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_quota_contention_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_contention_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_quota_contention_timeout_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_contention_timeout_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_quota_acquire_cancelled_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_acquire_cancelled_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn add_quota_write_fail_bytes_total(&self, bytes: u64) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_write_fail_bytes_total
|
|
.fetch_add(bytes, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_quota_write_fail_events_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.quota_write_fail_events_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_child_join_timeout_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.me_child_join_timeout_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_child_abort_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.me_child_abort_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn observe_flow_wait_middle_rate_limit_ms(&self, wait_ms: u64) {
|
|
if self.telemetry_core_enabled() {
|
|
self.flow_wait_middle_rate_limit_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
self.flow_wait_middle_rate_limit_ms_total
|
|
.fetch_add(wait_ms, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_flow_wait_middle_rate_limit_cancelled_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.flow_wait_middle_rate_limit_cancelled_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_session_drop_fallback_total(&self) {
|
|
if self.telemetry_core_enabled() {
|
|
self.session_drop_fallback_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_endpoint_quarantine_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_endpoint_quarantine_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_endpoint_quarantine_unexpected_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_endpoint_quarantine_unexpected_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_endpoint_quarantine_draining_suppressed_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_endpoint_quarantine_draining_suppressed_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_kdf_drift_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_kdf_drift_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_kdf_port_only_drift_total(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_kdf_port_only_drift_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_hardswap_pending_reuse_total(&self) {
|
|
if self.telemetry_me_allows_debug() {
|
|
self.me_hardswap_pending_reuse_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_hardswap_pending_ttl_expired_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_hardswap_pending_ttl_expired_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_outage_enter_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_outage_enter_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_outage_exit_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_outage_exit_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_outage_reconnect_attempt_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_outage_reconnect_attempt_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_outage_reconnect_success_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_outage_reconnect_success_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_quarantine_bypass_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_quarantine_bypass_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_shadow_rotate_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_shadow_rotate_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_single_endpoint_shadow_rotate_skipped_quarantine_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_single_endpoint_shadow_rotate_skipped_quarantine_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_mode_switch_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_mode_switch_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_mode_switch_static_to_adaptive_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_mode_switch_static_to_adaptive_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_mode_switch_adaptive_to_static_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_mode_switch_adaptive_to_static_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_cpu_cores_detected_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_cpu_cores_detected_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_cpu_cores_effective_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_cpu_cores_effective_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_global_cap_raw_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_global_cap_raw_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_global_cap_effective_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_global_cap_effective_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_target_writers_total_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_target_writers_total_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_active_cap_configured_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_active_cap_configured_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_active_cap_effective_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_active_cap_effective_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_warm_cap_configured_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_warm_cap_configured_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_floor_warm_cap_effective_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_warm_cap_effective_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_writers_active_current_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writers_active_current_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn set_me_writers_warm_current_gauge(&self, value: u64) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_writers_warm_current_gauge
|
|
.store(value, Ordering::Relaxed);
|
|
}
|
|
}
|
|
|
|
pub fn set_buffer_pool_gauges(&self, pooled: usize, allocated: usize, in_use: usize) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.buffer_pool_pooled_gauge
|
|
.store(pooled as u64, Ordering::Relaxed);
|
|
self.buffer_pool_allocated_gauge
|
|
.store(allocated as u64, Ordering::Relaxed);
|
|
self.buffer_pool_in_use_gauge
|
|
.store(in_use as u64, Ordering::Relaxed);
|
|
}
|
|
}
|
|
|
|
pub fn increment_me_c2me_send_full_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_c2me_send_full_total.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
|
|
pub fn increment_me_c2me_send_high_water_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_c2me_send_high_water_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
|
|
pub fn increment_me_c2me_send_timeout_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_c2me_send_timeout_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_cap_block_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_cap_block_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_swap_idle_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_swap_idle_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
pub fn increment_me_floor_swap_idle_failed_total(&self) {
|
|
if self.telemetry_me_allows_normal() {
|
|
self.me_floor_swap_idle_failed_total
|
|
.fetch_add(1, Ordering::Relaxed);
|
|
}
|
|
}
|
|
}
|