@@ -338,7 +338,6 @@ private async Task RunChangeConsumptionLoopAsync()
338
338
/// </summary>
339
339
private async Task GetTableChangesAsync ( SqlConnection connection , CancellationToken token )
340
340
{
341
- TelemetryInstance . TrackEvent ( TelemetryEventName . GetChangesStart , this . _telemetryProps ) ;
342
341
this . _logger . LogDebugWithThreadId ( "BEGIN GetTableChanges" ) ;
343
342
try
344
343
{
@@ -390,23 +389,25 @@ private async Task GetTableChangesAsync(SqlConnection connection, CancellationTo
390
389
acquireLeasesDurationMs = commandSw . ElapsedMilliseconds ;
391
390
}
392
391
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 ) ;
393
404
}
394
405
395
406
transaction . Commit ( ) ;
396
407
397
408
// Set the rows for processing, now since the leases are acquired.
398
409
this . _rowsToProcess = rows ;
399
410
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 ) ;
410
411
}
411
412
catch ( Exception )
412
413
{
@@ -468,7 +469,6 @@ private async Task ProcessTableChangesAsync()
468
469
{
469
470
var input = new TriggeredFunctionData ( ) { TriggerValue = changes } ;
470
471
471
- TelemetryInstance . TrackEvent ( TelemetryEventName . TriggerFunctionStart , this . _telemetryProps ) ;
472
472
this . _logger . LogDebugWithThreadId ( "Executing triggered function" ) ;
473
473
var stopwatch = Stopwatch . StartNew ( ) ;
474
474
@@ -482,7 +482,7 @@ private async Task ProcessTableChangesAsync()
482
482
if ( result . Succeeded )
483
483
{
484
484
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 ) ;
486
486
// We've successfully fully processed these so set them to be released in the cleanup phase
487
487
this . _rowsToRelease = this . _rowsToProcess ;
488
488
this . _rowsToProcess = new List < IReadOnlyDictionary < string , object > > ( ) ;
@@ -582,20 +582,25 @@ private async Task RenewLeasesAsync(SqlConnection connection, CancellationToken
582
582
{
583
583
using ( SqlCommand renewLeasesCommand = this . BuildRenewLeasesCommand ( connection , transaction ) )
584
584
{
585
- TelemetryInstance . TrackEvent ( TelemetryEventName . RenewLeasesStart , this . _telemetryProps ) ;
586
585
this . _logger . LogDebugWithThreadId ( $ "BEGIN RenewLeases Query={ renewLeasesCommand . CommandText } ") ;
587
586
var stopwatch = Stopwatch . StartNew ( ) ;
588
587
589
- await renewLeasesCommand . ExecuteNonQueryAsync ( token ) ;
588
+ int rowsAffected = await renewLeasesCommand . ExecuteNonQueryAsync ( token ) ;
590
589
591
590
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 )
594
594
{
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
+ }
597
603
598
- TelemetryInstance . TrackEvent ( TelemetryEventName . RenewLeasesEnd , this . _telemetryProps , measures ) ;
599
604
600
605
transaction . Commit ( ) ;
601
606
}
@@ -672,7 +677,6 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
672
677
{
673
678
if ( this . _rowsToRelease . Count > 0 )
674
679
{
675
- TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeasesStart , this . _telemetryProps ) ;
676
680
long newLastSyncVersion = this . RecomputeLastSyncVersion ( ) ;
677
681
bool retrySucceeded = false ;
678
682
@@ -705,7 +709,6 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
705
709
updateLastSyncVersionDurationMs = commandSw . ElapsedMilliseconds ;
706
710
this . _logger . LogDebugWithThreadId ( $ "END UpdateTablesPostInvocation Duration={ updateLastSyncVersionDurationMs } ms") ;
707
711
}
708
-
709
712
transaction . Commit ( ) ;
710
713
711
714
var measures = new Dictionary < TelemetryMeasureName , double >
@@ -715,7 +718,7 @@ private async Task ReleaseLeasesAsync(SqlConnection connection, CancellationToke
715
718
[ TelemetryMeasureName . TransactionDurationMs ] = transactionSw . ElapsedMilliseconds ,
716
719
} ;
717
720
718
- TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeasesEnd , this . _telemetryProps , measures ) ;
721
+ TelemetryInstance . TrackEvent ( TelemetryEventName . ReleaseLeases , this . _telemetryProps , measures ) ;
719
722
retrySucceeded = true ;
720
723
this . _rowsToRelease = new List < IReadOnlyDictionary < string , object > > ( ) ;
721
724
}
0 commit comments