https://github.com/expediadotcom/haystack-client-java
Haystack bindings for OpenTracing API
https://github.com/expediadotcom/haystack-client-java
distributed-tracing java microservices monitoring opentracing
Last synced: about 1 year ago
JSON representation
Haystack bindings for OpenTracing API
- Host: GitHub
- URL: https://github.com/expediadotcom/haystack-client-java
- Owner: ExpediaDotCom
- License: apache-2.0
- Created: 2017-09-15T20:24:35.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-11-02T21:53:16.000Z (over 2 years ago)
- Last Synced: 2025-03-25T18:45:07.725Z (about 1 year ago)
- Topics: distributed-tracing, java, microservices, monitoring, opentracing
- Language: Java
- Size: 1.02 MB
- Stars: 9
- Watchers: 17
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://travis-ci.org/ExpediaDotCom/haystack-client-java)
[](https://codecov.io/gh/ExpediaDotCom/haystack-client-java)
[](https://github.com/ExpediaDotCom/haystack/blob/master/LICENSE)
# Haystack Client Java
Haystack client java is an [OpenTracing](https://github.com/opentracing/opentracing-java) compatible library which is used to capture information about distributed operations and report them to [haystack](https://expediadotcom.github.io/haystack)
Opentracing API usage has been documented at [https://github.com/opentracing/opentracing-java](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
* [SpringBoot Example](https://github.com/ExpediaDotCom/opentracing-spring-haystack-example)
* [Dropwizard Example](https://github.com/ExpediaDotCom/haystack-dropwizard-example)
## Contributing and Developing
Please see [CONTRIBUTING.md](CONTRIBUTING.md)
## Core Modules
[haystack-client-core](./core) - library provides an implementation of `io.opentracing.Tracer` that sends spans to `Haystack` server.
## Addon Modules
[haystack-client-metrics-micrometer](./metrics/micrometer): metrics provider backed by [micrometer](https://micrometer.io/), to report internal Haystack Client metrics to third-party backends, such as Prometheus
[haystack-client-metrics-dropwizard](./metrics/dropwizard-metrics): metrics provider backed by [dropwizard-metrics](https://metrics.dropwizard.io/4.0.0/), to report internal Haystack Client metrics to third-party backends, such as Graphite
[haystack-client-metrics-api](./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:
```xml
com.expedia.www
haystack-client-java-core
$latestClientVersion
pom
```
## 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
* [Opencensus](https://github.com/ExpediaDotCom/haystack-opencensus-exporter-java)
* [Brave-Zipkin](https://github.com/HotelsDotCom/pitchfork)
## 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](benchmark/README.md)