question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Rewritable Tracer not relatable to Integrations

See original GitHub issue

I don’t know if “Rewritable Tracer” the feature is supported formally or not in v1.6.0, but I added the -Dsa.rewrite=xxx jvm option to my demo application and request a servlet, NullPointerException was thrown just like below

java.lang.NullPointerException
	at java.util.Objects.requireNonNull(Objects.java:203)
	at io.opentracing.contrib.specialagent.RewritableTracer.getRulesForCurrentPlugin(RewritableTracer.java:42)
	at io.opentracing.contrib.specialagent.RewritableTracer.buildSpan(RewritableTracer.java:98)
	at io.opentracing.util.GlobalTracer.buildSpan(GlobalTracer.java:194)
	at io.opentracing.contrib.specialagent.rule.servlet.ext.TracingFilterUtil.buildSpan(TracingFilterUtil.java:36)
	at io.opentracing.contrib.web.servlet.filter.TracingFilter.doFilter(TracingFilter.java:183)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)

I checked the code, I guest, AgentRule.getCurrentPluginName() return null in the invocation context (RewritableTracer.java:42). Some plugin intercept the traffic and build spans, just like redis. But most of rule interceptions are just for integrating a 3rd-party instrument, not handling traffic tracing. in that cases, buildSpan is invoked in another thread by the 3rd-party libraries, not by rule interceptions, current plugin name could not be found by AgentRule.getCurrentPluginName().

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:21 (10 by maintainers)

github_iconTop GitHub Comments

1reaction
safriscommented, Apr 6, 2020

Hi @zeitlinger, thank you for the assessment of the options. I think the best option for us here is (3). This choice retains the work that’s been done, and leaves a possibility for further improvements based on realizations we may not have yet. So, in short, I’m going to keep the implementation of Rewritable Tracer as is. Furthermore, I have written up a draft proposal for the port of this implementation to the OTel Auto Instr engine.

0reactions
safriscommented, Apr 16, 2020

Closing this, as there is nothing actionable remaining with this issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Rewritable Tracer · Issue #309 - GitHub
Abstract The Rewritable Tracer allows one to rewrite data in the spans created by Integrations without having to modify the source code.
Read more >
Introduction to the Tracer feature in Satellite - Red Hat
If so, they reboot the server, and if not, they assume everything is good to go and that no reboot or application restarts...
Read more >
Profiler Troubleshooting - Datadog Docs
Missing profiles in the profile search page. If you've configured the profiler and don't see profiles in the profile search page, turn on...
Read more >
Integral mass balances and pulse injection tracer techniques
(For the pulse injection technique, integration time intervals are practically limited to 2 to 4 times the mean flow time constant and thus...
Read more >
Application of tritium (3H) as a tracer in seepage studies ...
Geophysical logging and tracer study form an integral part of Non Destructive Technique (NDT) towards delineation of probable zones of seepage through hydraulic ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found