We employ a novel Graph Retrieval Augmented Generation (RAG) technique that summarize microservice logs and retain hierarchical relationship of API invocations. We developed a custom storage plugin that runs alongside Jaeger. Our Graph RAG method achieves the highest performance at 69.33%, showing an increase of 38.66% after additional hops tuning. It outperforms Naive RAG by a whopping 61.90%.
Neo4j, GPT, and Graph RAG is here. It is exposed as a gRPC server. Jaeger backend will forward its spans here.
A clone of Jaeger UI project. We extended the UI to allow a Q&A interface to assist developers in debugging their microservice faults.
Evaluation scripts done here,
Scrap experiments exporting JSON from Jaeger and summarizing the logs.
Jaeger binary to run in Ubuntu.
- Add your OpenAI API key as
OPENAI_API_KEY
env variable. - Run
jaeger-storage/run.sh
. - Open Neo4j browser in http://localhost:7474/browser/, execute the
jaeger-storage/migrations/constraint.cql
. (one time operation) - Execute
SPAN_STORAGE_TYPE=grpc ./jaeger-1.62.0-linux-amd64/jaeger-collector --grpc-storage.server=localhost:54321 \
& OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 ./jaeger-1.62.0-linux-amd64/example-hotrod all
- Run
npm ci
andnpm start
injaeger-ui
. - Browse to http://localhost:5173 to open Jaeger UI dashboard.