[REVIEW TO PROCESS] Add Counted Macro #99
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Moved and refined from pull request: open-telemetry/opentelemetry-rust#1972
Changes
I am developing a macros crate designed to streamline the generation of observability-related code across various types of metrics and logging functionalities. The initial focus of this crate is on implementing a basic counter, but our goal is to support a wide range of observability features
The crate leverages Rust's powerful attribute macros to simplify the configuration and integration process. By using these attribute macros, developers can avoid repetitive boilerplate code and configure observability tools with maximum flexibility. This approach ensures that the observability code remains concise, readable, and maintainable, allowing developers to focus more on their core application logic.
Key benefits of this macros crate include:
Current output result of macro:
Design:
Hi @cijothomas ,
Regarding the performance issue in the generation of KeyValue that you mentioned, the continuous creation is currently mitigated by using static variables. Another way to mitigate it could be an enabled attribute that prevents the generation of this code, but it would not be at runtime.
Any improvements you see that could be introduced or features to inaugurate this crate, which would contain the other possible macros, let me know and as soon as everything is ready, I will start with the documentation, testing, and other phases.
UPDATE:
Using enabled attribute to false:
Output:
Merge requirement checklist
CHANGELOG.md
files updated for non-trivial, user-facing changes