Skip to content

feat: tag high-volume telemetry events as LogLevel.info (cont.)#27361

Open
MarioJGMsoft wants to merge 3 commits into
microsoft:mainfrom
MarioJGMsoft:marioja/eventTagging
Open

feat: tag high-volume telemetry events as LogLevel.info (cont.)#27361
MarioJGMsoft wants to merge 3 commits into
microsoft:mainfrom
MarioJGMsoft:marioja/eventTagging

Conversation

@MarioJGMsoft
Copy link
Copy Markdown
Contributor

@MarioJGMsoft MarioJGMsoft commented May 20, 2026

Description

This PR is a follow up to #27126; it tags high volume FluidFramework telemetry events as LogLevel.info. The goal is to let clients safely filter out info-tagged events without losing the signal needed to diagnose Fluid issues.

Events were selected by observed telemetry volume and span both generic and performance events. For consumers today, the only observable difference is that tagged events now carry logLevel: "info" on their payload - no filtering or delivery behavior changes were made.

Reviewer Guidance

The review process is outlined on this wiki page.

  • Each taggeed event has a PR comment specifying which event is being marked as info. The authors have been identified via git blame and tagged on the corresponding PR comment - please confirm info is correct for events that you have context on. If it is correct, please resolve the comment to know that I can go forward with the change.
  • If you don't have context on the event, please point me to who could know more about the event.
  • If you see an event in the diff you believe should remain untagged, flag it.
  • With the addition of the LogLevel.info parameter the formatting for various pieces of the code was updated. I highly recommend turning on the hide whitespace changes option when reviewing this PR.

Fixes: AB#52417

1. TreesLatest / TreesLatestForGroup — odsp-driver/fetchSnapshot.ts
 2. SnapshotAuthHeaderObtained — odsp-driver/fetchSnapshot.ts
 3. ObtainSnapshot / ObtainSnapshotForGroup — odsp-driver/odspDocumentStorageManager.ts
 4. NonCacheableBlob — odsp-driver/odspDocumentStorageManager.ts
 5. OpsFetch — odsp-driver/odspDeltaStorageService.ts
 6. CacheOpsRetrieved — odsp-driver/odspDeltaStorageService.ts
 7. JoinSession — odsp-driver/vroom.ts
 8. FirstJoinSessionAttemptDetails — odsp-driver/odspDelayLoadedDeltaStream.ts
 9. ConnectionAttemptInfo — odsp-driver/odspDocumentDeltaConnection.ts
 10. SocketModuleLoaded — odsp-driver/odspDocumentService.ts
 11. ${name}_GetToken — odsp-driver/odspUtils.ts (toInstrumentedOdspTokenFetcher)
 12. Resolve / ResolveWithPendingState — container-loader/loader.ts
 13. WaitOps — container-loader/container.ts
 14. WaitOpProcessing — container-loader/container.ts
 15. dataStoreAttachMessage_sampled — container-runtime/channelCollection.ts
 16. InboundOpsProcessingTime — container-runtime/deltaScheduler.ts
 17. InitializeOrUpdateGCState — container-runtime/gc/garbageCollection.ts
 18. refreshLatestSummary — container-runtime/summary/summarizerNode/summarizerNode.ts
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (606 lines, 14 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

@MarioJGMsoft MarioJGMsoft marked this pull request as ready for review May 20, 2026 18:14
Copilot AI review requested due to automatic review settings May 20, 2026 18:14
@github-actions
Copy link
Copy Markdown
Contributor

Fleet Review — In progress

Running reviewers: correctness, security, api-compatibility, performance, testing

View run

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the effort to reduce telemetry volume impact by explicitly tagging additional high-volume client telemetry and performance events with LogLevel.info, without changing event emission or filtering behavior.

Changes:

  • Add LogLevel.info to selected PerformanceEvent.timedExecAsync calls (marking start/end/cancel perf events as info-level).
  • Add LogLevel.info to selected sendTelemetryEvent calls for high-volume generic events.
  • Update call sites to pass positional optional parameters (e.g., markers, sampleThreshold) where needed to reach the new logLevel argument.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/runtime/container-runtime/src/summary/summarizerNode/summarizerNode.ts Tags summarizer-node perf event(s) as LogLevel.info.
packages/runtime/container-runtime/src/gc/garbageCollection.ts Tags GC initialization/update perf event as LogLevel.info.
packages/runtime/container-runtime/src/deltaScheduler.ts Tags InboundOpsProcessingTime telemetry event as LogLevel.info.
packages/runtime/container-runtime/src/channelCollection.ts Tags dataStoreAttachMessage_sampled telemetry event as LogLevel.info.
packages/loader/container-loader/src/loader.ts Tags Loader.resolve perf event (Resolve*) as LogLevel.info.
packages/loader/container-loader/src/container.ts Tags WaitOps / WaitOpProcessing perf events as LogLevel.info.
packages/drivers/odsp-driver/src/vroom.ts Tags join-session perf event as LogLevel.info.
packages/drivers/odsp-driver/src/odspUtils.ts Tags ODSP token-fetch perf event as LogLevel.info.
packages/drivers/odsp-driver/src/odspDocumentStorageManager.ts Tags snapshot obtain perf event(s) as LogLevel.info.
packages/drivers/odsp-driver/src/odspDocumentService.ts Tags SocketModuleLoaded telemetry event as LogLevel.info.
packages/drivers/odsp-driver/src/odspDocumentDeltaConnection.ts Tags ConnectionAttemptInfo telemetry event as LogLevel.info.
packages/drivers/odsp-driver/src/odspDeltaStorageService.ts Tags delta storage perf event as LogLevel.info.
packages/drivers/odsp-driver/src/odspDelayLoadedDeltaStream.ts Tags first join-session attempt details telemetry as LogLevel.info.
packages/drivers/odsp-driver/src/fetchSnapshot.ts Tags snapshot fetch perf event and auth-header telemetry as LogLevel.info.

Comment thread packages/drivers/odsp-driver/src/odspDocumentStorageManager.ts Outdated
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
).catch((error) => {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sends TreesLatest / TreesLatestForGroup performance events as info @jatgarg

{ eventName: "SnapshotAuthHeaderObtained" },
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the SnashptAuthHeaderObtained event as info @jatgarg

});
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the FirstJoinSessionAttemptDetails event as info @WillieHabi

},
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the OpsFetch event as info @jatgarg

},
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the ConnectionAttemptInfo as info @jatgarg

{ eventName: "SocketModuleLoaded" },
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the SocketModuleLoaded event as info @jatgarg

}
return res.content;
},
undefined, // markers
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the readDataBlob event as info @jatgarg

},
undefined,
undefined,
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the ObtainSnapshot / ObtainSnapshotForGroup event as info @jatgarg

),
{ cancel: "generic" },
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one tags all of the name_GetToken performance events as info @jatgarg


return response.content;
},
undefined, // markers
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the JoinSession event as info @noencke

async () => opsBeforeReturnP,
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the WaitOps event as info @vladsud

async () => this._deltaManager.inbound.waitTillProcessingDone(),
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the WaitOpsProcessing as info @vladsud

},
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the Resolve / ResolveWithPendingState events with info @ChumpChief

},
undefined, // markers
undefined, // sampleThreshold
LogLevel.info,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the InitializeOrUpdateGCState as info @markfields

return { isSummaryTracked, isSummaryNewer };
},
{ start: true, end: true, cancel: "error" },
undefined, // sampleThreshold
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the refreshLatestSummary event as info @agarwal-navin

});
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the dataStoreAttachMessage_sampled as info @agarwal-navin

},
undefined, // error
LogLevel.info,
);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This tags the InboundOpsProcessingTime @agarwal-navin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants