Skip to content

Commit 10e5a38

Browse files
authored
Fix metrics and traces for DocsSync (#2205)
1 parent 49ca5aa commit 10e5a38

File tree

1 file changed

+20
-26
lines changed

1 file changed

+20
-26
lines changed

src/services/Elastic.Documentation.Assembler/Deploying/Synchronization/AwsS3SyncApplyStrategy.cs

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,38 +94,28 @@ public async Task Apply(SyncPlan plan, Cancel ctx = default)
9494
var addCount = plan.AddRequests.Count;
9595
var updateCount = plan.UpdateRequests.Count;
9696
var deleteCount = plan.DeleteRequests.Count;
97+
var skipCount = plan.SkipRequests.Count;
9798
var totalFiles = addCount + updateCount + deleteCount;
9899

99100
// Add aggregate metrics to span
100101
_ = applyActivity?.SetTag("docs.sync.files.added", addCount);
101102
_ = applyActivity?.SetTag("docs.sync.files.updated", updateCount);
102103
_ = applyActivity?.SetTag("docs.sync.files.deleted", deleteCount);
104+
_ = applyActivity?.SetTag("docs.sync.files.skipped", skipCount);
103105
_ = applyActivity?.SetTag("docs.sync.files.total", totalFiles);
104106

105-
// Record deployment-level metrics
107+
// Record deployment-level metrics (always emit, even if 0)
106108
FilesPerDeploymentHistogram.Record(totalFiles);
107109

108-
if (addCount > 0)
109-
{
110-
FilesPerDeploymentHistogram.Record(addCount,
111-
[new("operation", "add")]);
112-
}
113-
114-
if (updateCount > 0)
115-
{
116-
FilesPerDeploymentHistogram.Record(updateCount,
117-
[new("operation", "update")]);
118-
}
119-
120-
if (deleteCount > 0)
121-
{
122-
FilesPerDeploymentHistogram.Record(deleteCount,
123-
[new("operation", "delete")]);
124-
}
110+
// Always record per-operation counts (even if 0) so metrics show consistent data
111+
FilesPerDeploymentHistogram.Record(addCount, [new("operation", "add")]);
112+
FilesPerDeploymentHistogram.Record(updateCount, [new("operation", "update")]);
113+
FilesPerDeploymentHistogram.Record(deleteCount, [new("operation", "delete")]);
114+
FilesPerDeploymentHistogram.Record(skipCount, [new("operation", "skip")]);
125115

126116
_logger.LogInformation(
127-
"Deployment sync: {TotalFiles} files ({AddCount} added, {UpdateCount} updated, {DeleteCount} deleted) in {Environment}",
128-
totalFiles, addCount, updateCount, deleteCount, context.Environment.Name);
117+
"Deployment sync: {TotalFiles} files ({AddCount} added, {UpdateCount} updated, {DeleteCount} deleted, {SkipCount} skipped) in {Environment}",
118+
totalFiles, addCount, updateCount, deleteCount, skipCount, context.Environment.Name);
129119

130120
await Upload(plan, ctx);
131121
await Delete(plan, ctx);
@@ -138,11 +128,13 @@ public async Task Apply(SyncPlan plan, Cancel ctx = default)
138128
private async Task Upload(SyncPlan plan, Cancel ctx)
139129
{
140130
var uploadRequests = plan.AddRequests.Cast<UploadRequest>().Concat(plan.UpdateRequests).ToList();
131+
132+
// Always create activity span (even if 0 files) for consistent tracing
133+
using var uploadActivity = ApplyStrategyActivitySource.StartActivity("upload files", ActivityKind.Client);
134+
_ = uploadActivity?.SetTag("docs.sync.upload.count", uploadRequests.Count);
135+
141136
if (uploadRequests.Count > 0)
142137
{
143-
using var uploadActivity = ApplyStrategyActivitySource.StartActivity("upload files", ActivityKind.Client);
144-
_ = uploadActivity?.SetTag("docs.sync.upload.count", uploadRequests.Count);
145-
146138
var addCount = plan.AddRequests.Count;
147139
var updateCount = plan.UpdateRequests.Count;
148140

@@ -216,11 +208,13 @@ private async Task Delete(SyncPlan plan, Cancel ctx)
216208
{
217209
var deleteCount = 0;
218210
var deleteRequests = plan.DeleteRequests.ToList();
211+
212+
// Always create activity span (even if 0 files) for consistent tracing
213+
using var deleteActivity = ApplyStrategyActivitySource.StartActivity("delete files", ActivityKind.Client);
214+
_ = deleteActivity?.SetTag("docs.sync.delete.count", deleteRequests.Count);
215+
219216
if (deleteRequests.Count > 0)
220217
{
221-
using var deleteActivity = ApplyStrategyActivitySource.StartActivity("delete files", ActivityKind.Client);
222-
_ = deleteActivity?.SetTag("docs.sync.delete.count", deleteRequests.Count);
223-
224218
_logger.LogInformation("Starting to delete {Count} files from S3 bucket {BucketName}", deleteRequests.Count, bucketName);
225219

226220
// Emit file-level metrics (low cardinality) and logs for each file

0 commit comments

Comments
 (0)