-
Notifications
You must be signed in to change notification settings - Fork 298
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
Influence Sampled logic #968
Comments
Hi, this is an interesting proposal. The way the agent determines how to weigh a transaction and the data within it is not tunable at the moment. We do think that it would make sense for us to give you the ability to mark something as important in the SDK if you are able to detect outside of New Relic. In general, the algorithm prioritizes 2 things: outliers (runtime, memory, etc) and errors. It is not able to "learn", and I don't think you want something running inside your application that could. I think it sounds like there are two problems here: Important transactions are not getting enough weight during sampling, and "junk" transactions seem to be getting too much weight.
|
Option 1 I assume, NewRelic use Head Sampling. So I would need to add my Option 2 Write our own sampler samplingProbability := 0.01
if rand.Float64() < samplingProbability || requestToDebug {
segment := txn.StartSegment(name)
defer segment.End()
} We have similar logic and it works most of the time (probably because anomaly detection in SDK), but has same sampling limitations. Option 3 To not feel doing hacks, ask NewRelic community 😄 |
Some are random Penetration testing calls (e.g. Seems those are repeated and running during non-peak hours (e.g. the night). I agree we could fix most of them with:
|
|
Current Distributed Tracing Sampling is based on "magic" (assuming "most common request is most important")
While the business is running on:
Therefore, we want to "teach" SDK what is important to sample.
Summary
Current Sampling logic is not configurable
Therefore developers have to end up with hacks.
It feels wrong paying for Observability platform and still need to have code like:
Desired Behaviour
or
Additional context
Infinite Tracing will figure out which trace data is most important
: https://docs.newrelic.com/docs/distributed-tracing/concepts/how-new-relic-distributed-tracing-works/#tail-basedThe text was updated successfully, but these errors were encountered: