Skip to content

Latest commit

 

History

History
38 lines (24 loc) · 2.66 KB

README.md

File metadata and controls

38 lines (24 loc) · 2.66 KB

Build Status License

Istio adapter for haystack distributed tracing

This is an Istio adapter that forwards the telemetry data to haystack system. It is compatbile with istio version >= 1.0.4

How it works?

Istio's mixer receives the telemtry data from envoy proxy that runs as a sidecar with microservice app. Mixer can be configured to forward this data to various adapters. We have built a new adapter for haystack that runs as an out-of-process grpc server and can receive telemetry data from mixer.

The adapter internally converts the istio's span object into protobuf format and forwards to haystack-agent. The haystack-agent runs as a sidecar with the adapter. You can run as many replicas in order to scale.

We also provide k8s spec that helps you deploy haystack-adapter and haystack-agent in the same pod.

How to deploy adapter?

Following steps are required to run the adapter:

  1. kubectl apply -f haystack-adapter.yaml
  2. kubectl apply -f tracespan.yaml
  3. kubectl apply -f config/haystack.yaml -f operator/haystack-operator.yaml

The first step installs haystack-agent and adapter(grpc server). The second step installs the tracespan template in istio. You can skip this step if this template is already installed. The third step registers the haystack-adapter within istio, it configures the handler, instance object and rule. For more details read this

How to build this library?

make setup - if you are running for the very first time. This does some hacking to setup the right environment

make -C $GOPATH/src/istio.io/istio/mixer/adapter/haystack build - builds the adapter code

make -C $GOPATH/src/istio.io/istio/mixer/adapter/haystack docker deploy - will build the docker image and deploy in kubernetes cluster.

How to run integration tests?

Install docker and docker-compose. Add following entries in /etc/hosts

$(docker-machine ip) mixs kafkasvc

make -C $GOPATH/src/istio.io/istio/mixer/adapter/haystack integration_tests