Converts the incoming spans from jaeger or any other format to a raw span format which is understood by the rest of the Hypertrace platform.
Hypertrace Ingestion Pipeline |
Different tracers can have different span formats and as we support tracers like zipkin and jaeger the spans coming via hypertrace-oc-collector
to kafka can have different fields in them. span-normalizer
reads spans from kafka and adds more first class fields to span object like http url, http method, http status code, grpc method, grpc status message etc. so that platform downstream can access the values from the span. We call this normalized span raw-span
which will be further processed by raw-spans-grouper.
You can find first class fields here.
The Span normalizer uses gradlew to compile/install/distribute. Gradle wrapper is already part of the source code. To build Span normalizer, run:
./gradlew dockerBuildImages
Run ./gradlew test
to execute unit tests.
You can test the image you built after modification by running docker-compose or helm setup.
Change the tag for span-normalizer
from :main
to :test
in docker-compose file like this.
span-normalizer:
image: hypertrace/span-normalizer:test
container_name: span-normalizer
...
and then run docker-compose up
to test the setup.