-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should we use bit fields to flag data point properties? #309
Comments
Initial results on DotNet for Summary kind.
Benchmark results
EncodeSumFlag uses...
Bit flags are set as boolean flags...
EncodeSumField uses...
Setting Fields...
|
Adding a
|
In practice, the payload size would only increase if the field is set. If the field is left unset in most points, the payload size would not increase substantially, right? |
You are correct. I confirmed with benchmarks as well. |
A few questions...
|
|
Proposal for new flags... FLAG_NON_NEGATIVE_VALUESFLAG_NON_NEGATIVE_VALUES to help designate a histogram to be non-negative (so to remain compatible with OpenMetrics histograms).
For backward compatibility, as new code sets population_[count/sum] exclusively, the deprecated count and sum to be unset and expected to default to 0. Older code should thus treat this histogram as benign (aka, no data, etc). This statement needs to be validated FLAG_NO_RECORDED_VALUEFor backward compatibility, older code will not know to check the flag so it cannot distinguish between no-recorded-value vs recorded value but with 0 data points. For older code, we rely on the deprecated count and sum to be unset and thus default to 0. Older code should thus treat this histogram as benign (aka, no data, etc). This statement needs to be validated. |
Note PR #310 included both of these. We are interested in FLAG_NO_RECORDED_VALUE. |
We need to flag a few properties in OTLP protocol. Currently, we have a bool for monotonic.
Should we use a 32-bit word (as a bit flag) now to allow future growth?
Concerns:
The text was updated successfully, but these errors were encountered: