microsoft / FluidFramework

Library for building distributed, real-time collaborative web applications
https://fluidframework.com
MIT License
4.73k stars 532 forks source link

Instrument whether Summary includes partial batch chunks #22500

Open markfields opened 1 month ago

markfields commented 1 month ago

Description

~Based on the fact that inbound batches are always processed synchronously, we don't believe the RemoteMessageProcessor will ever have a partial batch in-flight when Summary happens. But maybe there are cases I'm not thinking of.~

^ That was wrong - the leading chunks are sent not as part of the batch, but individually (i.e. a bunch of single-message "batches"). So this codepath is certainly hit at scale. And worth instrumenting IMO.

This change adds a stat to Summarizer's telemetryContext indicating how many chunks were added - or remains undefined if none.

After 2.4 ships we can look for this in the logs to find out if this ever happens at scale.

msfluid-bot commented 1 month ago
@fluid-example/bundle-size-tests: +677 Bytes
Metric NameBaseline SizeCompare SizeSize Diff
aqueduct.js 460.26 KB 460.4 KB +143 Bytes
azureClient.js 558.25 KB 558.4 KB +157 Bytes
connectionState.js 680 Bytes 680 Bytes No change
containerRuntime.js 261.02 KB 261.14 KB +122 Bytes
fluidFramework.js 401.41 KB 401.42 KB +14 Bytes
loader.js 134.24 KB 134.25 KB +14 Bytes
map.js 42.43 KB 42.44 KB +7 Bytes
matrix.js 146.58 KB 146.58 KB +7 Bytes
odspClient.js 525.54 KB 525.69 KB +157 Bytes
odspDriver.js 97.85 KB 97.87 KB +21 Bytes
odspPrefetchSnapshot.js 42.81 KB 42.82 KB +14 Bytes
sharedString.js 163.3 KB 163.31 KB +7 Bytes
sharedTree.js 391.87 KB 391.88 KB +7 Bytes
Total Size 3.3 MB 3.3 MB +677 Bytes

Baseline commit: 9e74c7cf115cebc51f888bd0e9019cded2f641e6

Generated by :no_entry_sign: dangerJS against 40c6fe37d61839d1641266390e920e829ee2314d