This is an Istio adapter that forwards the telemetry data to haystack system. It is compatbile with istio version >= 1.0.4
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.
Following steps are required to run the adapter:
- kubectl apply -f haystack-adapter.yaml
- kubectl apply -f tracespan.yaml
- 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
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.
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