Haystack Client Java
Haystack client java is an OpenTracing compatible library which is used to capture information about distributed operations and report them to haystack
Opentracing API usage has been documented at https://github.com/opentracing/opentracing-java.
OpenTracing version compatibility
The current OpenTracing version 0.33 has introduced backwards incompatible changes with all previous versions. Please make sure that your dependencies on OpenTracing align to the 0.33 version to avoid runtime issues.
Examples
You can look at our sample projects for how to trace a simple web application
Contributing and Developing
Please see CONTRIBUTING.md
Core Modules
haystack-client-core - library provides an implementation of io.opentracing.Tracer
that sends spans to Haystack
server.
Addon Modules
haystack-client-metrics-micrometer: metrics provider backed by micrometer, to report internal Haystack Client metrics to third-party backends, such as Prometheus
haystack-client-metrics-dropwizard: metrics provider backed by dropwizard-metrics, to report internal Haystack Client metrics to third-party backends, such as Graphite
haystack-client-metrics-api: metrics api consumed by haystack-client-core to report internal Haystack Client metrics. By default its bundled with a NoOp metrics dispatcher, add any of the obove dependencies to push the client metrics.
Importing Dependencies
All artifacts are published to Maven Central. Snapshot artifacts are also published to [Sonatype][sonatype]. Follow these [instructions][sonatype-snapshot-instructions] to add the snapshot repository to your build system.
Please use the latest version: [![Released Version][maven-img]][maven]
In the usual case, you just need to include the following dependency to your project:
<dependency>
<groupId>com.expedia.www</groupId>
<artifactId>haystack-client-java-core</artifactId>
<version>$latestClientVersion</version>
<type>pom</type>
</dependency>
Integrations
In case your apps are already wired in with some kind of instrumentation library other than OpenTracing you could refer to the below links based on your usecase
License
This project is licensed under the Apache License v2.0 - see the LICENSE.txt file for details.
Benchmarks
We have published our benchmarks here