Hypertrace service combines hypertrace-ui, hypertrace-graphql, gateway-service, attribute-service, query-service, entity-service into single service. This is used in Hypertrace standalone deployment to make the deployment compact and use less resource.
Hypertrace Query Architecture |
In Hypertrace service,
- GraphQL service is being used by UI and attribute-service fetches all relevant attributes to the scope of what is being shown.
- The gateway-service provides a single access point that routes queries to corresponding downstream service based on the source of attributes and then does appropriate type conversion of data returned by upstream services.
- The query-service interfaces with Apache Pinot Data Store while entity-service provides CRUD operations for differently identified entities of observed applications.
The Hypertrace service
uses gradlew to compile/install/distribute. Gradle wrapper is already part of the source code. To build Hypertrace Service
, run:
./gradlew clean build dockerBuildImages
To test your image using the docker-compose setup follow the steps:
- Commit you changes to a branch say
hypertrace-service-test
. - Go to hypertrace-service and checkout the above branch in the submodule.
cd hypertrace-service && git checkout hypertrace-service-test && cd ..
- Change tag for
hypertrace-service
from:main
to:test
in docker-compose file like this.
hypertrace-service:
image: hypertrace/hypertrace-service:test
container_name: hypertrace-service
...
- and then run
docker-compose up
to test the setup.