@@ -37,7 +37,6 @@ use tracing::{debug, error, info, trace, warn};
37
37
38
38
use futures:: FutureExt ;
39
39
use serde:: { Deserialize , Serialize } ;
40
- use tokio:: sync:: Mutex as TokioMutex ;
41
40
use tokio:: task:: { JoinError , JoinHandle } ;
42
41
use tokio:: time:: sleep;
43
42
@@ -100,7 +99,10 @@ struct TelemetryCachedClient {
100
99
last_used : Instant ,
101
100
}
102
101
103
- type TelemetryClientKey = ( String , String , String ) ; // (service, env, version)
102
+ type ServiceString = String ;
103
+ type EnvString = String ;
104
+ type VersionString = String ;
105
+ type TelemetryClientKey = ( ServiceString , EnvString , VersionString ) ;
104
106
105
107
/// The `SidecarServer` struct represents a server that handles sidecar operations.
106
108
///
@@ -116,7 +118,7 @@ pub struct SidecarServer {
116
118
/// A `Mutex` guarded `HashMap` that keeps a count of each session.
117
119
session_counter : Arc < Mutex < HashMap < String , u32 > > > ,
118
120
/// A `Mutex` guarded `HashMap` that stores the active telemetry clients.
119
- telemetry_clients : Arc < TokioMutex < HashMap < TelemetryClientKey , TelemetryCachedClient > > > ,
121
+ telemetry_clients : Arc < Mutex < HashMap < TelemetryClientKey , TelemetryCachedClient > > > ,
120
122
/// A `Mutex` guarded optional `ManualFutureCompleter` for telemetry configuration.
121
123
pub self_telemetry_config :
122
124
Arc < Mutex < Option < ManualFutureCompleter < ddtelemetry:: config:: Config > > > > ,
@@ -135,15 +137,15 @@ pub struct SidecarServer {
135
137
136
138
impl Default for SidecarServer {
137
139
fn default ( ) -> Self {
138
- let telemetry_clients: Arc < TokioMutex < HashMap < TelemetryClientKey , TelemetryCachedClient > > > =
140
+ let telemetry_clients: Arc < Mutex < HashMap < TelemetryClientKey , TelemetryCachedClient > > > =
139
141
Arc :: new ( Default :: default ( ) ) ;
140
142
141
143
// Persist telemetry clients for 30 minutes
142
144
let clients = telemetry_clients. clone ( ) ;
143
145
tokio:: spawn ( async move {
144
146
loop {
145
147
sleep ( Duration :: from_secs ( 60 ) ) . await ;
146
- let mut lock = clients. lock ( ) . await ;
148
+ let mut lock = clients. lock_or_panic ( ) ;
147
149
lock. retain ( |_, c| c. last_used . elapsed ( ) < Duration :: from_secs ( 1800 ) ) ;
148
150
}
149
151
} ) ;
0 commit comments