Introducing Java SpecialAgent: Start Tracing Without Writing Any Code
Learn more about the new Java SpecialAgent.
Join the DZone community and get the full member experience.Join For Free
Java SpecialAgent is an extensible OSS Java agent for OpenTracing that enables end-to-end tracing without having to write any code.
With only a single command-line entry for installation, SpecialAgent seamlessly connects to OpenTracing-compliant tracers — such as the Jaeger and LightStep tracers — allowing you to immediately start observing and propagating distributed traces.
What Makes SpecialAgent Different?
SpecialAgent was built by the OpenTracing community with contributions from the LightStep team. It is architected for compatibility, resiliency, and stability (you can read more about the architecture on the OpenTracing blog), and has a number of benefits:
- Automated. By automatically installing plugins, you can achieve end-to-end tracing without having to write any code.
- Extensible. SpecialAgent loads the same instrumentation you would load by hand. Adding new instrumentation plugins to SpecialAgent is easy, and anyone can extend the SpecialAgent to include their own plugins.
- Portable. Unlike proprietary agents, SpecialAgent can send data to any tracing system that supports OpenTracing.
- Robust. Safe and production ready. SpecialAgent can install all OpenTracing Java plugins, and runs on Java versions 1.7 and up.
- Seamless. SpecialAgent is able to do both static and dynamic attach, which means you can attach the agent to already-running programs without stopping.
Why Does This Matter?
Distributed traces capture and propagate critical details about transactions as they cross microservices boundaries.
Once you start aggregating and analyzing groups of traces, you can answer important questions about your system — quickly and with evidence:
- Which service should we roll back?
- Which host is overloaded?
- Which customer is sending bad requests?
- Will this optimization improve performance for my service?
- What services is my service dependent on?
In order to take advantage of these insights, you first have to install tracers and plugins for every service. For large organizations, manual instrumentation can require some work.
This is where Java SpecialAgent comes into play — it makes instrumentation easy.
How Do I Get Started?
Let us know what you think in the comments below!
Published at DZone with permission of Ted Young, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.