Please check this Stackoverflow answer
To run all of haystack and its components, it is suggested to change the default in docker settings from 2GiB
to 6GiB
docker-compose -f docker-compose.yml \
-f traces/docker-compose.yml \
-f trends/docker-compose.yml \
-f service-graph/docker-compose.yml \
-f adaptive-alerting/docker-compose.yml \
-f agent/docker-compose.yml \
-f example/traces/docker-compose.yml up
The command above starts haystack components, and two sample web applications with the haystack-agent. It may take a minute or two for the containers to come up and connect with each other.
Haystack's UI will be available at http://localhost:8080
Haystack's agent will be available on host port 35000 (i.e., localhost: 35000).
Sample application has a 'frontend' and 'backend'. The 'frontend' app will be available at http://localhost:9090/hello. Sending a request to frontend will cause a call to the backend before fulfilling this request.
Send some sample requests to the 'frontend' application by running
run.sh
One can then see the traces, trends and a service-graph showing the relationship between the two applications in the UI.
docker-compose -f docker-compose.yml \
-f traces/docker-compose.yml \
-f trends/docker-compose.yml \
-f service-graph/docker-compose.yml \
-f adaptive-alerting/docker-compose.yml \
-f agent/docker-compose.yml \
-f example/blobs/docker-compose.yml up
The command above starts haystack components, and two sample web applications with the haystack-agent. It may take a minute or two for the containers to come up and connect with each other.
Haystack's UI will be available at http://localhost:8080
Haystack's agent will be available in port 35000 in the host (i.e., localhost: 35000).
Sample Application has a 'client' and a 'server'. The client interacts with the server listening on port 9090
. The client app will be available at http://localhost:9091/displayMessage
. Sending a request to client will cause a call to the server before fulfilling this request.
Call the client using the link given above and then you will be able to see the traces, trends and a service-graph showing the relationship between the two applications in the UI.
Alternatively, you can also send some sample requests to the 'server' application by running
run.sh
docker-compose -f docker-compose.yml \
-f zipkin/docker-compose.yml \
-f trends/docker-compose.yml \
-f adaptive-alerting/docker-compose.yml \
-f service-graph/docker-compose.yml up
The command above starts Pitchfork to proxy data to Zipkin and Haystack.
Give a minute or two for the containers to come up and connect with each other. Once the stack is up, one can use the sample application @ https://github.com/openzipkin/brave-webmvc-example and send some sample data to see traces (from Zipkin), trends and service-graph in haystack-ui @ http://localhost:8080
Note the two commands above combine a series of docker-compose.yml
files.
- Haystack needs at least one trace provider (
traces/docker-compose.yml
orzipkin/docker-compose.yml
) and one trends provider (trends/docker-compose.yml
) - One can remove
adaptive-alerting/docker-compose.yml
andservice-graph/docker-compose.yml
if those components are not required - One can remove
examples/traces/docker-compose.yml
orexamples/blobs/docker-compose.yml
and just haveagent/docker-compose.yml
to start your application integrated with haystack to send data - If one is using Zipkin instrument app, use
zipkin/docker-compose.yml
to send data to the stack and use trends, service-graph and adaptive-alerting as needed - Starting the stack with only the base docker-compose.yml will start core services like kafka, cassandra and elastic-search along with haystack-ui with mock backend
docker-compose -f docker-compose.yml up
- Model Service that fetches anomaly detection model for a specific metric has been replaced with a mocked (using wiremock) to allow the stack to use a default model. Default detection model us EWMA
- Model Service is being refactored to allow better model selection and we will be releasing it in the next month or two
- Alert-Notification service that dispatches alerts to either email or slack is commented in docker-compose file for local testing. You can uncomment it and provide slack_token or smtp credentials via environment.