@@ -25,10 +25,7 @@ use amzn_toolkit_telemetry_client::{
25
25
Config ,
26
26
} ;
27
27
use aws_credential_types:: provider:: SharedCredentialsProvider ;
28
- use cognito:: {
29
- CognitoProvider ,
30
- get_cognito_credentials,
31
- } ;
28
+ use cognito:: CognitoProvider ;
32
29
use endpoint:: StaticEndpoint ;
33
30
pub use install_method:: {
34
31
InstallMethod ,
@@ -149,7 +146,7 @@ impl TelemetryThread {
149
146
let ( tx, mut rx) = mpsc:: unbounded_channel ( ) ;
150
147
let handle = tokio:: spawn ( async move {
151
148
while let Some ( event) = rx. recv ( ) . await {
152
- trace ! ( "Sending telemetry event: {:?}" , event) ;
149
+ trace ! ( "TelemetryThread received new telemetry event: {:?}" , event) ;
153
150
telemetry_client. send_event ( event) . await ;
154
151
}
155
152
} ) ;
@@ -319,24 +316,21 @@ impl TelemetryClient {
319
316
&& database. settings . get_bool ( Setting :: TelemetryEnabled ) . unwrap_or ( true ) ;
320
317
321
318
// If telemetry is disabled we do not emit using toolkit_telemetry
322
- let toolkit_telemetry_client = match telemetry_enabled {
323
- true => match get_cognito_credentials ( database, & TelemetryStage :: EXTERNAL_PROD ) . await {
324
- Ok ( credentials) => Some ( ToolkitTelemetryClient :: from_conf (
325
- Config :: builder ( )
326
- . http_client ( crate :: aws_common:: http_client:: client ( ) )
327
- . behavior_version ( BehaviorVersion :: v2025_01_17 ( ) )
328
- . endpoint_resolver ( StaticEndpoint ( TelemetryStage :: EXTERNAL_PROD . endpoint ) )
329
- . app_name ( app_name ( ) )
330
- . region ( TelemetryStage :: EXTERNAL_PROD . region . clone ( ) )
331
- . credentials_provider ( SharedCredentialsProvider :: new ( CognitoProvider :: new ( credentials) ) )
332
- . build ( ) ,
333
- ) ) ,
334
- Err ( err) => {
335
- error ! ( "Failed to acquire cognito credentials: {err}" ) ;
336
- None
337
- } ,
338
- } ,
339
- false => None ,
319
+ let toolkit_telemetry_client = if telemetry_enabled {
320
+ Some ( ToolkitTelemetryClient :: from_conf (
321
+ Config :: builder ( )
322
+ . http_client ( crate :: aws_common:: http_client:: client ( ) )
323
+ . behavior_version ( BehaviorVersion :: v2025_01_17 ( ) )
324
+ . endpoint_resolver ( StaticEndpoint ( TelemetryStage :: EXTERNAL_PROD . endpoint ) )
325
+ . app_name ( app_name ( ) )
326
+ . region ( TelemetryStage :: EXTERNAL_PROD . region . clone ( ) )
327
+ . credentials_provider ( SharedCredentialsProvider :: new ( CognitoProvider :: new (
328
+ TelemetryStage :: EXTERNAL_PROD ,
329
+ ) ) )
330
+ . build ( ) ,
331
+ ) )
332
+ } else {
333
+ None
340
334
} ;
341
335
342
336
fn client_id ( env : & Env , database : & mut Database , telemetry_enabled : bool ) -> Result < Uuid , TelemetryError > {
@@ -400,38 +394,43 @@ impl TelemetryClient {
400
394
{
401
395
Ok ( event) => event,
402
396
Err ( err) => {
403
- error ! ( err =% DisplayErrorContext ( err) , "Failed to send telemetry event" ) ;
397
+ error ! ( err =% DisplayErrorContext ( err) , "Failed to send cw telemetry event" ) ;
404
398
return ;
405
399
} ,
406
400
} ;
407
401
402
+ let event = TelemetryEvent :: ChatAddMessageEvent ( chat_add_message_event) ;
403
+ debug ! (
404
+ ?event,
405
+ ?user_context,
406
+ telemetry_enabled = self . telemetry_enabled,
407
+ "Sending cw telemetry event"
408
+ ) ;
408
409
if let Err ( err) = self
409
410
. codewhisperer_client
410
- . send_telemetry_event (
411
- TelemetryEvent :: ChatAddMessageEvent ( chat_add_message_event) ,
412
- user_context,
413
- self . telemetry_enabled ,
414
- )
411
+ . send_telemetry_event ( event, user_context, self . telemetry_enabled )
415
412
. await
416
413
{
417
- error ! ( err =% DisplayErrorContext ( err) , "Failed to send telemetry event" ) ;
414
+ error ! ( err =% DisplayErrorContext ( err) , "Failed to send cw telemetry event" ) ;
418
415
}
419
416
}
420
417
}
421
418
422
419
async fn send_telemetry_toolkit_metric ( & self , event : Event ) {
423
420
let Some ( toolkit_telemetry_client) = self . toolkit_telemetry_client . clone ( ) else {
421
+ trace ! ( "not sending toolkit metric - client does not exist" ) ;
424
422
return ;
425
423
} ;
426
424
let client_id = self . client_id ;
427
425
let Some ( metric_datum) = event. into_metric_datum ( ) else {
426
+ trace ! ( "not sending toolkit metric - metric datum does not exist" ) ;
428
427
return ;
429
428
} ;
430
429
431
430
let product = AwsProduct :: CodewhispererTerminal ;
432
431
let metric_name = metric_datum. metric_name ( ) . to_owned ( ) ;
433
432
434
- debug ! ( ?product, ?metric_datum, "Posting metrics " ) ;
433
+ debug ! ( ?client_id , ? product, ?metric_datum, "Sending toolkit telemetry event " ) ;
435
434
if let Err ( err) = toolkit_telemetry_client
436
435
. post_metrics ( )
437
436
. aws_product ( product)
@@ -445,7 +444,7 @@ impl TelemetryClient {
445
444
. await
446
445
. map_err ( DisplayErrorContext )
447
446
{
448
- error ! ( %err, ?metric_name, "Failed to post metric" ) ;
447
+ error ! ( %err, ?metric_name, "Failed to post toolkit metric" ) ;
449
448
}
450
449
}
451
450
0 commit comments