-
Notifications
You must be signed in to change notification settings - Fork 166
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
Untraced endpoints in Rack-based instrumentations #548
Comments
Yes, the untraced_endpoints feature is something we support, however I would encourage you to consider using your tracing infrastructure to filter out health check traces (e.g. otel-collector) or see if you are able to configure the health check system emit traces flags that disable sampling. untraced_endpoints is not as feature rich as the collector and may also result in crucial missing data. A few use cases I can think of are where you see that your orchestrator has taken a container out of service for failing to respond to health checks or a burst of health check requests from a bad actor. If your app uses health checks to test or ping other services like DB pool health, redis connections etc... those spans won't be visible to you and it many be critical in debugging what is happening. |
Thanks for your two-fold response. Re: health checks, I totally agree. Traditionally we've silenced them because the signal/noise ratio was very low, but thanks to OTEL we'll be able to provide much richer information and we're definitely going to push teams to instrument properly. Thanks for the feedback, having "official word" on this will be helpful for us. All that said, going back to Running Notice the relevant part is this:
Full example:
In this scenario, if we want to silence
We're making these scenarios work by using
Would it make sense to add this to the base Rack instrumentation, so it takes into account that |
Sorry about the lengthy comment above. Going forward I don't know if you guys would prefer more straight-to-the-point code snippets or fully functional executable examples. |
I see what you mean! It does look like this is something I would have expected to work when using this feature. Thanks for sharing the possible solution/workaround as well and I would absolutely welcome any help in addressing issues like this. Would you be amenable to opening a PR to handle this scenario? |
Sure! I'll see how the CLA process works and I'll get to it next week. |
@robbkidd Are you planning on working on this? Or did you assign yourself here to participate in the conversation? |
It's mostly the second (I'm participating) and willingness towards the first (working on it). I currently plop my face as an assignee on issues and PRs here so that they appear associated with me on the GitHub project board I add them to for aggregating all the things I'm keeping tabs on across several dozen GitHub repos. I can see how assigning myself is not clearly communicating my intent. |
I finally managed to work on this and I think the scope of this issue is wider than I anticipated. Long story short, in the example above mapping endpoints with Even the instrumentation tests for the untrace feature rely on The problem is related to what we encountered in #411. In that case we decided to "fix" it in our wrapper around the Sinatra instrumentation, but now I think this is a Rack concern. Do you people think this merits opening an issue about the value of |
👋 This issue has been marked as stale because it has been open with no activity. You can: comment on the issue or remove the stale label to hold stale off for a while, add the |
Hi! In order to silence the instrumentation of some endpoints in our applications we're doing something similar to this minimal example. This is Sinatra, but we're doing the same with Grape and Rails/ActionPack, all of them using the Rack instrumentation under the hood.
We haven't seen this documented, but we assumed we could do it, and it certainly works for this example... But then we ran into some problems with more complex applications.
So, before going into maybe unnecessary details, is this something supported or it's a hack taking advantage of knowing that it's all Rack under all the web framework instrumentations?
The text was updated successfully, but these errors were encountered: