Lightstep from ServiceNow Logo





Lightstep from ServiceNow Logo
< all blogs

Introducing Java SpecialAgent: Start Tracing without Writing Any Code

We’re excited to announce Java SpecialAgent!

It’s 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 tracesdistributed traces.

What Makes Java 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 blogblog, and has a number of benefits:

  1. Automated. By automatically installing plugins, you can achieve end-to-end tracing without having to write any code.

  2. 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.

  3. Portable. Unlike proprietary agents, SpecialAgent can send data to any tracing system that supports OpenTracingOpenTracing.

  4. Robust. Safe and production ready. SpecialAgent can install all OpenTracing Java pluginsJava plugins, and runs on Java versions 1.7 and up.

  5. 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 questionsanswer 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?

You can get started with Java SpecialAgent on GithubGithub, or Play with LightstepPlay with Lightstep with no signup needed.

How Do I Get Java SpecialAgent for Python/Ruby/My Favorite Language?

We’re partnering with the OSS community to build a version of SpecialAgent for all commonly used frameworks. We’ll be announcing support for other languages and frameworks on TwitterTwitter.

Interested in joining our team? See our open positions herehere.

May 14, 2019
2 min read

Share this article

About the author

Ted Young

Tracing in Angular: How to get started

Forrest Knight | Sep 30, 2019

Angular is a very opinionated front end framework that utilizes Typescript. In this article, we add traces in two approaches. The first being more of a drop in, the second a more directed and opinionated approach.

Learn moreLearn more

OpenTracing vs OpenTelemetry: Building a Bridge with OpenTelemetry

Carlos Alberto Cortez | Jun 26, 2019

One of the main priorities for the merger is straightforward backwards compatibility with both OpenTracing and OpenCensus, via software bridges. In this post, we’ll discuss the OpenTracing to OpenTelemetry bridge.

Learn moreLearn more

Best Practices for Instrumenting Applications with OpenTracing

Alex Masluk | Jan 30, 2019

The biggest risk in the process of getting started with distributed tracing is only doing partial instrumentation. This article discusses how instrumentation is vital to get started with distributed tracing successfully.

Learn moreLearn more

Lightstep sounds like a lovely idea

Monitoring and observability for the world’s most reliable systems