@@ -338,7 +338,6 @@ private async Task RunChangeConsumptionLoopAsync()
338338 /// </summary>
339339 private async Task GetTableChangesAsync ( SqlConnection connection , CancellationToken token )
340340 {
341- TelemetryInstance . TrackEvent ( TelemetryEventName . GetChangesStart , this . _telemetryProps ) ;
342341 this . _logger . LogDebugWithThreadId ( "BEGIN GetTableChanges" ) ;
343342 try
344343 {
@@ -390,23 +389,25 @@ private async Task GetTableChangesAsync(SqlConnection connection, CancellationTo
390389 acquireLeasesDurationMs = commandSw . ElapsedMilliseconds ;
391390 }
392391 this . _logger . LogDebugWithThreadId ( $ "END AcquireLeases Duration={ acquireLeasesDurationMs } ms") ;
392+
393+ // Only send event if we got changes to reduce the overall number of events sent since we generally
394+ // only care about the times that we had to actually retrieve and process rows
395+ var measures = new Dictionary < TelemetryMeasureName , double >
396+ {
397+ [ TelemetryMeasureName . SetLastSyncVersionDurationMs ] = setLastSyncVersionDurationMs ,
398+ [ TelemetryMeasureName . GetChangesDurationMs ] = getChangesDurationMs ,
399+ [ TelemetryMeasureName . AcquireLeasesDurationMs ] = acquireLeasesDurationMs ,
400+ [ TelemetryMeasureName . TransactionDurationMs ] = transactionSw . ElapsedMilliseconds ,
401+ [ TelemetryMeasureName . BatchCount ] = this . _rowsToProcess . Count ,
402+ } ;
403+ TelemetryInstance . TrackEvent ( TelemetryEventName . GetChanges , this . _telemetryProps , measures ) ;
393404 }
394405
395406 transaction . Commit ( ) ;
396407
397408 // Set the rows for processing, now since the leases are acquired.
398409 this . _rowsToProcess = rows ;
399410 this . _state = State . ProcessingChanges ;
400- var measures = new Dictionary < TelemetryMeasureName , double >
401- {
402- [ TelemetryMeasureName . SetLastSyncVersionDurationMs ] = setLastSyncVersionDurationMs ,
403- [ TelemetryMeasureName . GetChangesDurationMs ] = getChangesDurationMs ,
404- [ TelemetryMeasureName . AcquireLeasesDurationMs ] = acquireLeasesDurationMs ,
405- [ TelemetryMeasureName . TransactionDurationMs ] = transactionSw . ElapsedMilliseconds ,
406- [ TelemetryMeasureName . BatchCount ] = this . _rowsToProcess . Count ,
407- } ;
408-
409- TelemetryInstance . TrackEvent ( TelemetryEventName . GetChangesEnd , this . _telemetryProps , measures ) ;
410411 }
411412 catch ( Exception )
412413 {
@@ -468,7 +469,6 @@ private async Task ProcessTableChangesAsync()
468469 {
469470 var input = new TriggeredFunctionData ( ) { TriggerValue = changes } ;
470471
471- TelemetryInstance . TrackEvent ( TelemetryEventName . TriggerFunctionStart , this . _telemetryProps ) ;
472472 this . _logger . LogDebugWithThreadId ( "Executing triggered function" ) ;
473473 var stopwatch = Stopwatch . StartNew ( ) ;
474474
@@ -482,7 +482,7 @@ private async Task ProcessTableChangesAsync()
482482 if ( result . Succeeded )
483483 {
484484 this . _logger . LogDebugWithThreadId ( $ "Successfully triggered function. Duration={ durationMs } ms") ;
485- TelemetryInstance . TrackEvent ( TelemetryEventName . TriggerFunctionEnd , this . _telemetryProps , measures ) ;
485+ TelemetryInstance . TrackEvent ( TelemetryEventName . TriggerFunction , this . _telemetryProps , measures ) ;
486486 // We've successfully fully processed these so set them to be released in the cleanup phase
487487 this . _rowsToRelease = this . _rowsToProcess ;
488488 this . _rowsToProcess = new List < IReadOnlyDictionary < string , object > > ( ) ;
@@ -582,20 +582,25 @@ private async Task RenewLeasesAsync(SqlConnection connection, CancellationToken
582582 {
583583 using ( SqlCommand renewLeasesCommand = this . BuildRenewLeasesCommand ( connection , transaction ) )
584584 {
585- TelemetryInstance . TrackEvent ( TelemetryEventName . RenewLeasesStart , this . _telemetryProps ) ;
586585 this . _logger . LogDebugWithThreadId ( $ "BEGIN RenewLeases Query={ renewLeasesCommand . CommandText } ") ;
587586 var stopwatch = Stopwatch . StartNew ( ) ;
588587
589- await renewLeasesCommand . ExecuteNonQueryAsync ( token ) ;
588+ int rowsAffected = await renewLeasesCommand . ExecuteNonQueryAsync ( token ) ;
590589
591590 long durationMs = stopwatch . ElapsedMilliseconds ;
592- this . _logger . LogDebugWithThreadId ( $ "END RenewLeases Duration={ durationMs } ms") ;
593- var measures = new Dictionary < TelemetryMeasureName , double >
591+ this . _logger . LogDebugWithThreadId ( $ "END RenewLeases Duration={ durationMs } ms RowsAffected={ rowsAffected } ") ;
592+
593+ if ( rowsAffected > 0 )
594594 {
595- [ TelemetryMeasureName . DurationMs ] = durationMs ,
596- } ;
595+ // Only send an event if we actually updated rows to reduce the overall number of events we send
596+ var measures = new Dictionary < TelemetryMeasureName , double >
597+ {
598+ [ TelemetryMeasureName . DurationMs ] = durationMs ,
599+ } ;
600+
601+ TelemetryInstance . TrackEvent ( TelemetryEventName . RenewLeases , this . _telemetryProps , measures ) ;
602+ }
597603
598- TelemetryInstance . TrackEvent ( TelemetryEventName . RenewLeasesEnd , this . _telemetryProps , measures ) ;
599604
600605 transaction . Commit ( ) ;
601606 }
@@ -672,7 +677,6 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
672677 {
673678 if ( this . _rowsToRelease . Count > 0 )
674679 {
675- TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeasesStart , this . _telemetryProps ) ;
676680 long newLastSyncVersion = this . RecomputeLastSyncVersion ( ) ;
677681 bool retrySucceeded = false ;
678682
@@ -705,7 +709,6 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
705709 updateLastSyncVersionDurationMs = commandSw . ElapsedMilliseconds ;
706710 this . _logger . LogDebugWithThreadId ( $ "END UpdateTablesPostInvocation Duration={ updateLastSyncVersionDurationMs } ms") ;
707711 }
708-
709712 transaction . Commit ( ) ;
710713
711714 var measures = new Dictionary < TelemetryMeasureName , double >
@@ -715,7 +718,7 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
715718 [ TelemetryMeasureName . TransactionDurationMs ] = transactionSw . ElapsedMilliseconds ,
716719 } ;
717720
718- TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeasesEnd , this . _telemetryProps , measures ) ;
721+ TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeases , this . _telemetryProps , measures ) ;
719722 retrySucceeded = true ;
720723 this . _rowsToRelease = new List < IReadOnlyDictionary < string , object > > ( ) ;
721724 }
0 commit comments