A Prove of concept (PoC) of HTTP Service enabling smart correlations between cloud-native data.
This PoC was introduced in KubeConEU 2022 in the talk "Story of Correlation: Integrating Thanos Metrics with Observability Signals" by @kakkoyun and @bwplotka
Slides are available here
Requirements: Go
installed in version 1.17 or higher.
-
From the root repo run
make docker
which will build two images:ping
for demo service we observe andcorrelator
which is our correlator microservice. -
Run Go unit test located in
examples/observability/observability_test.go
. You can do that via your IDE or by runninggo test -v -run "TestCorrelatorWithObservability" ./...
. NOTE this is interactive e2e tests implemented in https://github.com/efficientgo/e2e framework. -
Once started this test should spin up the demo setup that looks as in the diagram below:
-
6 browser tabs should open once setup started (within 10 seconds):
- Thanos UI showing alerts.
- Thanos UI allowing querying metrics.
- Grafana home UI.
- Jaeger UI allowing searching for traces.
- Parca UI allowing searching for profiles.
- Correlator UI allowing to pass Alerts.
-
You can pass firing Alert name from Thanos UI Alert tab (it should be firing after minute or two) to Correlator UI, which should return JSON response with useful links and descriptions. NOTE: We recommend using some JSON prettify Chrome plugin for link formatting. With correct alert name it should look like this:
-
You can cleanly terminate setup by clicking on URL provided in test output on line that starts with
"Waiting for user HTTP request on
. Alternatively copy this URL manually to browser. You should see EMPTY page. From now on the Go test should finish with "passed" status.
Projects are using Apache 2 License if not marked otherwise.