/hypertrace-service

Multiple hypertrace services combined together to form a single service.

Primary LanguageJavaOtherNOASSERTION

Hypertrace Service

org.hypertrace.service

CircleCI

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.

How this works?

space-1.jpg
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.

Building locally

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

Testing image

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 ..
  hypertrace-service:
    image: hypertrace/hypertrace-service:test
    container_name: hypertrace-service
    ...
  • and then run docker-compose up to test the setup.

Docker Image Source: