A streaming job that enriches the incoming spans with identified entities like Endpoint, Service, Backend, etc.
We have different enrichers in the pipeline and all those enrichers are executed as a DAG. The list of enrichers Hypertrace uses is as follows:
SpanTypeAttributeEnricherApiStatusEnricherEndpointEnricherTransactionNameEnricherApiBoundaryTypeAttributeEnricherErrorsAndExceptionsEnricherBackendEntityEnricherHttpAttributeEnricherDefaultServiceEntityEnricherUserAgentSpanEnricher
![]() |
|---|
| Hypertrace Ingestion Pipeline |
trace-enrichers are being used to enrich spans/traces with entity information. hypertrace-trace-enricher service talks to entity-service which fetches entity information from Mongo as required.
For example, Let's say we got span which has http method related attribute method: /api/v1/user?name. So, in this case, if we already have Endpoint entity which refers to /api/v1/user, we fetch the id of that entity and add it to span. Now, span will have one more attribute like this method:/api/v1/user?name, api_id:1234.
hypertrace-trace-enricher uses gradlew to compile/install/distribute. Gradle wrapper is already part of the source code. To build hypertrace-trace-enricher, 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 hypertrace-trace-enricher from :main to :test in docker-compose file like this.
hypertrace-trace-enricher:
image: hypertrace/hypertrace-trace-enricher:test
container_name: hypertrace-trace-enricher
...and then run docker-compose up to test the setup.
