Replies: 5 comments 7 replies
-
Hi @akoken and thanks for using FusionCache!
Thank you Abdurrahman, and I really mean it.
I'm glad it's being of help, thanks for using it!
First thing: I'm no expert in OpenTelemetry but I would like to point out the work done by @JoeShook some time ago via third-party FusionCache plugins you can find linked in the repo's homepage: Maybe they can be of some help? I don't know if they are (or can be in some way) used with OpenTelemetry. Anyway, some time has passed since when those plugins have been created, and today OpenTelemetry has reached v1.0 (like FusionCache will, in a very short amount of time 😬). Now, if you can help me jumpstart my OpenTelemetry knowledge a little bit, I may add native support to FusionCache for that, officially, and right on time for the big v1.0 release. Ideally I would need an existing sample of how a .NET library can integrate with OpenTelemetry to emit data: if you can point me to it I can do the rest with the specific knowledge of FusionCache. What do you think? Thanks! |
Beta Was this translation helpful? Give feedback.
-
Hi @jodydonetti, Thank you for your quick response! Your dedication to FusionCache is truly appreciated. Regarding the existing plugins by @JoeShook, I must admit that I didn't thoroughly investigate the source code and assumed they were more focused on metrics rather than tracing. There is a contribution guide here. While investigating, I came across the StackExchangeRedis instrumentation, which could serve as a good starting point. However, I noticed that using the Considering the potential impact on performance, it would be advisable to make this feature opt-in. Consumers can then evaluate the tradeoff and decide whether to enable it based on their specific requirements. Once again, thank you for considering this enhancement. I'm excited about the possibilities it holds for further improving the observability of FusionCache. If there's anything I can do to assist or provide more information, please let me know. Thanks! |
Beta Was this translation helpful? Give feedback.
-
Nice to see someone interested in OTEL here.
As you can see I did publish a package,
JoeShook.ZiggyCreatures.FusionCache.Metrics.OpenTelemetry
<https://www.nuget.org/packages/JoeShook.ZiggyCreatures.FusionCache.Metrics.OpenTelemetry/1.0.4-alph003>
I focused on Metrics because a group I work with needed metrics with a
first class cache. I have always wanted OTEL to be the implementation but
at the time OTEL in metrics was not ready. While the OpenTelemetry package
is labeled as alpha it really isn't rocket science. It is unit tested to
the same level as the other packages.
I think even without any work done at the FushionCache code base you will
still get great value from OTEL. The package I created would correlate to
any OTEL tracing that exists already. Meaning if you enabled OTEL in a
DotNet app and add my package you can trace a slow counter back to its
source. Of course there might be some places in FusionChache where you
would want to call StartActivity. I have a example built a while back here:
ZiggyCreatures.FusionCache.Metrics/examples/openTelemetry at main ·
JoeShook/ZiggyCreatures.FusionCache.Metrics · GitHub
<https://github.com/JoeShook/ZiggyCreatures.FusionCache.Metrics/tree/main/examples/openTelemetry>
I am a bit rusty on this and not putting a lot of time into this response.
But here are some more thoughts and comments...
- Generally I try to avoid adding ActivitySources until I look at a real
example app with traces. I find there is a tone of trace data already.
And if for example Redis is a backing store then I would be looking to use
the StackeExchange.Redis
<https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis>
contrib
package. But again you might want to propogate tags.
- Tags: I have a core set of semantics in
Plugins.Metrics.Core.SemanticConventions
<https://github.com/JoeShook/ZiggyCreatures.FusionCache.Metrics/blob/main/src/FusionCache.Plugins.Metrics.Core/SemanticConventions.cs#L15>
class describing the metadata such as Tags. I think if we were to add
extra tracing to FusionCache we should leverage this common semantics
package. It is the same technique you will find inside the DotNet OTEL SDK.
- After chatting with the OTEL Slack group, the next steps of my
OpenTelementry package would be to pick it up and put it in the
opentelemetry-dotnet-contrib
<https://github.com/open-telemetry/opentelemetry-dotnet-contrib> repo.
-
Sorry, I can't get too deep on this at the moment. But I wanted to let
everyone know I am thinking about it a little now, and could get sucked
back in. :)
…On Mon, Jul 10, 2023 at 4:37 AM Jody Donetti ***@***.***> wrote:
Awesome, thanks for the heads up!
Will look into it soon and let you know.
—
Reply to this email directly, view it on GitHub
<#153 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AALR4SIPWHFXNSZ6S2IXY23XPPSOJANCNFSM6AAAAAA2C3YKHI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
Hi @akoken , I just release v0.25.0 which contains full observability support. All 3 signals are included:
I also added some official documentation. Hope this helps, and please mark this as the answer if you feel like it. |
Beta Was this translation helpful? Give feedback.
-
Hello, @jodydonetti!
First and foremost, I wanted to express my gratitude for the fantastic library you've created. Our microservices have been benefiting immensely from FusionCache, and we couldn't be happier with its performance.
I wanted to discuss a potential enhancement that could further amplify the observability of our systems. As you may be aware, "Tracing" is a vital aspect of system observability, and we currently rely on OpenTelemetry and Jaeger for distributed tracing. In light of this, I was wondering if you would consider adding FusionCache instrumentation for OpenTelemetry. Having such a feature would be truly remarkable and greatly enhance our ability to monitor and analyze the performance of FusionCache within our ecosystem.
Once again, thank you for your hard work and for creating such a valuable tool. We truly appreciate your dedication to the community.
Thanks
Alp
Beta Was this translation helpful? Give feedback.
All reactions