All Projects → ExpediaGroup → pitchfork

ExpediaGroup / pitchfork

Licence: Apache-2.0 License
Convert tracing data between Zipkin and Haystack formats

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to pitchfork

gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (+135%)
Mutual labels:  tracing, zipkin, distributed-tracing
Opencensus Java
A stats collection and distributed tracing framework
Stars: ✭ 640 (+1500%)
Mutual labels:  tracing, zipkin, distributed-tracing
Zipkin Go Opentracing
OpenTracing Bridge for Zipkin Go
Stars: ✭ 472 (+1080%)
Mutual labels:  tracing, zipkin, distributed-tracing
Zipkin Go
Zipkin tracer library for go
Stars: ✭ 435 (+987.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
Zipkin
Zipkin is a distributed tracing system
Stars: ✭ 14,969 (+37322.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
Zipkin Js
Zipkin instrumentation for Node.js and browsers
Stars: ✭ 489 (+1122.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
dropwizard-zipkin
Dropwizard Zipkin Bundle
Stars: ✭ 48 (+20%)
Mutual labels:  tracing, zipkin, distributed-tracing
Brave Opentracing
Bridge between OpenTracing and Brave
Stars: ✭ 64 (+60%)
Mutual labels:  tracing, zipkin, distributed-tracing
Brave
Java distributed tracing implementation compatible with Zipkin backend services.
Stars: ✭ 2,117 (+5192.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
Spring Cloud Sleuth
Distributed tracing for spring cloud
Stars: ✭ 1,531 (+3727.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
haystack-docker
Repository with docker-compose files to start Haystack components in sandbox
Stars: ✭ 17 (-57.5%)
Mutual labels:  haystack, zipkin, distributed-tracing
Opencensus Node
A stats collection and distributed tracing framework
Stars: ✭ 249 (+522.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
easeagent
An agent component for the Java system
Stars: ✭ 437 (+992.5%)
Mutual labels:  tracing, zipkin, distributed-tracing
thundra-agent-python
Thundra Lambda Python Agent
Stars: ✭ 36 (-10%)
Mutual labels:  tracing, distributed-tracing
envoy-proxy-demos
Set of Envoy Proxy feature demos (Envoy v2 API supported)
Stars: ✭ 63 (+57.5%)
Mutual labels:  tracing, zipkin
go-distsys
Distributed Systems programming examples in the Go programming language.
Stars: ✭ 101 (+152.5%)
Mutual labels:  tracing, zipkin
smallrye-opentracing
An MicroProfile-OpenTracing implementation
Stars: ✭ 17 (-57.5%)
Mutual labels:  tracing, distributed-tracing
uptrace
Open source APM: OpenTelemetry traces, metrics, and logs
Stars: ✭ 1,187 (+2867.5%)
Mutual labels:  tracing, distributed-tracing
go-sensor
🚀 Go Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 90 (+125%)
Mutual labels:  tracing, distributed-tracing
kong-plugin-zipkin
A Kong plugin for propogating zipkin spans and reporting spans to a zipkin server - this plugin has been moved into https://github.com/Kong/kong, please open issues and PRs in that repo
Stars: ✭ 60 (+50%)
Mutual labels:  tracing, zipkin

Pitchfork

Build Status Release License GitHub site Docker Pulls

Pitchfork

Pitchfork lifts Zipkin tracing data into Haystack.

You can find more detailed documentation at expediagroup.github.io/pitchfork.

Overview

Haystack is an Expedia backed project to facilitate detection and remediation of problems with enterprise-level web services and websites. Much like Zipkin, its primary goal is to provide an easy to use UI to analyse distributed tracing data, but it offers other features like trend analysis or adaptive alerting.

Zipkin is the de facto standard for distributed tracing. We understand that migrating to a new system can be difficult and you may want to go back. Pitchfork can help you with this.

How to build and run Pitchfork

Build

To build Pitchfork you need to have Java 15+ and Docker installed. Maven is optional as you can use the Maven Wrapper.

To compile and run unit tests (Linux or Mac):

./mvnw clean verify

or (Windows):

./mvnw.cmd clean verify

To package:

./mvnw clean install

To build a Docker image named expediagroup/pitchfork:

docker build -t expediagroup/pitchfork .

Alternatively we also provide a makefile that you can use to run the tests or build a docker image for Pitchfork:

make test

or

make build

Running Pitchfork

The preferred way to run Pitchfork is via Docker.

docker run -p 9411:9411 expediagroup/pitchfork:latest

You can override the default properties with environment variables (macro case or screaming upper case), for example:

docker run -p 9411:9411 -e PITCHFORK_FORWARDERS_LOGGING_ENABLED=true expediagroup/pitchfork:latest

You can also run it as a normal Java application:

java -jar pitchfork.jar

Or as a Spring Boot application:

mvn spring-boot:run

You can find more info on how to configure Pitchfork in our documentation page, including how to install it using alternative methods like Helm.

Architecture

Pitchfork acts as a collector and forwarder of tracing data. If you are currently using Zipkin you don't need to do code changes to your service. You can simply change your exporter to use a new endpoint and report the traces to Pitchfork instead of Zipkin. Pitchfork accepts Zipkin spans in json v1 and v2, thrift and protobuf. You can also configure this application to consume Zipkin spans from a Kafka broker.

Pitchfork can be configured to forward incoming spans to: a Zipkin collector; Haystack (using Kafka or Kinesis as a message bus); a logger that just prints the traces as they are received.

[ Service A ] ------                               ------> [ Haystack / Kafka ]
                     \                            /
                      ------> [ Pitchfork ] ------
                     /                            \
[ Service B ] ------                               ------> [ Zipkin ]

These different forwarders can be enabled/disabled separately. Please see the application.yml file for a list of the different configurations available for each, or refer to the table above with the list of properties you can configure.

Use Cases

Contributing

Please refer to our CONTRIBUTING file.

References

License

This project is licensed under the Apache License v2.0 - see the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].