DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. Data
  4. Integrating Jaeger and Zipkin Tracers Into Instana

Integrating Jaeger and Zipkin Tracers Into Instana

With the release of Instana’s Jaeger Tracing integration, you can have all Jaeger traced applications send their data to Instana instead of the Jaeger backend.

Fabian Lange user avatar by
Fabian Lange
·
Dec. 14, 18 · Tutorial
Like (1)
Save
Tweet
Share
19.74K Views

Join the DZone community and get the full member experience.

Join For Free

Performance observability is necessary for production applications, and we at Instana believe in giving you visibility into whatever application stack you are running. Our fully automatic, zero-configuration tracing and metric gathering allows customers to deploy us into large heterogeneous environments and immediately see what is going on.

But manual tracing also has valuable use cases. For example, if the developer wants specific operational data collected for each transaction through the code, they might choose to manually implement this using open-source tracers.

Since both manual and automatic have valuable use cases, we wanted to make it super easy to leverage any manual tracing based on Jaeger, an open source implementation of OpenTracing developed at Uber, or Zipkin, which was originally developed at Twitter, and turn that into operational information and feedback to the DevOps organization.

For both frameworks, developers typically add tracing instructions to the code at development time. Both are inspired by Google Dapper and while Zipkin has its own API for adding tracing to an application, Jaeger utilizes OpenTracing. To then collect the trace information in production, organizations need to set up and maintain additional infrastructure for collection and processing of these traces. Additionally, to get performance information from those collected traces, rules and dashboards must be constructed by hand and maintained over time as the services evolve. These are non-trivial exercises.

Many popular open source libraries come with pre-built Zipkin or OpenTracing instrumentation, which can make tracing a complex application easier.

To avoid the maintenance of additional tracing infrastructure and provide a comprehensive view on all monitoring data, we are happy to announce our Jaeger and Zipkin integrations today!

Announcing Instana's Jaeger Integration

With the release of Instana’s Jaeger Tracing integration, you can have all Jaeger traced applications send their data to Instana instead of the Jaeger backend and enjoy the informative visualizations and automated alerting, as well as the single pane of glass experience in Instana.

It’s very easy to migrate any application from Jaeger to Instana. Let’s look at the Hot R.O.D. sample application distributed with Jaeger to demonstrate the effort needed.

If you follow the instructions on their GitHub page, you will get traces into the Jaeger UI, which looks like this:

Now, to send the data to Instana instead (on-prem or saas), just point it at any running Instana agent. The tracing data will now automatically flow to the Instana backend via the agent which will take care of compression, transmission, and authentication for you:

docker run \
    --rm \
    -p:8080-8083:8080-8083 \
    jaegertracing/example-hotrod:1.6 \
    all \
    --jaeger-agent.host-port=http://instana-agent:42699/com.instana.plugin.jaeger.trace

Without any additional changes or configuration, Instana will automatically analyze and display the Jaeger tracing data like this:

Features like Instana’s Service and Endpoint grouping, as well as its powerful Trace and Call Analytics immediately and automatically work in the same way that any trace discovered and collected by Instana Auto-Trace works.

Announcing Instana’s Zipkin Integration

With Instana’s Zipkin Integration, you can configure your Zipkin compatible tracers to send the data to Instana instead of the Zipkin Collector to get them integrated into the Instana monitoring experience.

The following example is the Zipkin Spring WebMVC example using Brave, which can be found on GitHub:

https://github.com/openzipkin/brave-webmvc-example

When sending to Zipkin, the traces look like this:

Simply changing the reporting host to the Instana Agent (http://instana-agent:42699/api/v2/spans) is enough to record them in Instana.

And all calls are automatically aggregated on our service Dashboard

Additional Benefits of Using Instana with OpenTracing, Jaeger, or Zipkin

By sending your OpenTracing, Jaeger, or Zipkin generated data to Instana instead of any other backend you will reap the following benefits (to name a few):

  • Correlation and dependency mapping between traces, services, and infrastructure — a key enabler of automatic root cause analysis
  • Machine learning with automatic anomaly detection — to identify issues as they occur without manually setting any thresholds
  • Automatic service endpoint detection and analysis — service endpoints are automatically analyzed to show and alert on poor performance and errors
  • Trace and call analysis functionality — easily analyze entire dataset to identify optimization opportunities.
  • Backend storage and processing,fully managed by Instana — no need to waste time deploying, configuring, and managing the backend monitoring system

We expect as the OpenTracing community evolves and matures there will be a number of applications, libraries, and plugins developed which interact natively with the Jaeger and Zipkin compatible clients. This will enable our customers to leverage these predefined traces and spans with no extra effort required.

If you’re exploring the possibility of using open-source tracing tools for your distributed tracing needs, then I suggest you read the latest research by Bernd Harzog, which exposes the true cost of using “free” open-source tracing software.

Open source application Data (computing)

Published at DZone with permission of Fabian Lange, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Key Considerations When Implementing Virtual Kubernetes Clusters
  • How to Create a Real-Time Scalable Streaming App Using Apache NiFi, Apache Pulsar, and Apache Flink SQL
  • Distributed SQL: An Alternative to Database Sharding
  • The Future of Cloud Engineering Evolves

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: