Jaeger is a distributed tracing system, inspired by Google’s Dapper paper and OpenZipkin, originally released as open source by Uber Technologies. Jaeger gathers information about user request flows and performance measurements / indicators. By using the OpenTracing API, an open and vendor neutral API, Jaeger enables users to avoid vendor lock-in when identifying and collecting data for analysis of distributed applications – especially for application performance.
Jaeger enables developers to integrate tracing functionally into their custom codebase for insights into application specific behavior. Frameworks can also use Jaeger to bring tracing functions into their respective framework.
Collecting Application Traces with Jaeger
Using Jaeger to collect traces in a specific codebase is a manual process, with development effort based on the OpenTracing API. Therefore Jaeger can utilize the existing integrations for OpenTracing with many common libraries and programming languages. However, any unique internal libraries and frameworks have to be manually instrumented by the developer(s).
OpenTracing integrations for a wide range of programming language are available, delivered either officially or by the OpenTracing community, including:
Integrating Jaeger Traces into Instana
Instana seamlessly integrates information from Jaeger Spans into infrastructure / service dependency maps, by simply routing Jaeger traffic to the Instana agent. Data provided by Jaeger are also enhanced with automatically collected tracing information of various kinds. Since Instana can correlate AutoTrace™ data with trace data from all tracing feeds, including Jaeger and Zipkin, application stakeholders can get a much fuller picture of their overall application performance, individual requests / traces, and every infrastructure and application component across the entire application.
Ultimately, Instana’s Application Management solution provides automatic APM and Application infrastructure monitoring for dynamic applications with these key capabilities:
- Continuous, automatic discovery of infrastructure changes
- Automatic, no-restart, code instrumentation of programming languages like Java, .NET based ones, Python, PHP and others by Instana AutoTrace™
- Reuse of application traces created using Jaeger / OpenTracing, Zipkin and others
- Automatic failure discovery and thresholds for monitored services
- Visualization of Service dependency maps
- Tracing of user requests across all systems
- Application and service quality monitoring
Comprehensive monitoring requires performance visibility for the physical or virtual host, containers, service instances, and any applications and services dependencies. Instana and Jaeger deliver automatic monitoring for highly dynamic environments, with the option to enrich Instana’s Auto-Tracing technology with application specific tracing or performance information.
Instana’s data-source-agnostic backend combines configuration, performance and health data from Instana AutoTrace™, Jaeger, OpenTracing, Zipkin and many other data collection agents, to make it the quickest and easiest way to monitor supported technologies across the stack to deliver comprehensive application insights. The Instana agent automatically discovers all infrastructure components, deploys the necessary monitoring sensors and begins tracing applications and requests. Any changes in the application or infrastructure are detected in real-time, adjusting dependency maps and visualizations.
Information on the different supported technology sensors and integrations is available in the Instana Application Management Documentation.