Project Structure - open-telemetry/opentelemetry-demo

The project structure of the OpenTelemetry Demo (https://opentelemetry.io/ecosystem/demo/) is a microservice-based distributed system that demonstrates the implementation of OpenTelemetry in a near real-world environment. The project is organized into the following directories:

  • internal/: Contains internal tools and libraries used in the project.
  • internal/tools/go.mod, internal/tools/go.sum, internal/tools/sanitycheck.py, internal/tools/tools.go: Go and Python modules and scripts for internal tools.
  • kubernetes/: Contains Kubernetes configuration files.
  • kubernetes/opentelemetry-demo.yaml: Kubernetes deployment configuration for the OpenTelemetry demo.
  • pb/: Contains Protocol Buffers (protobuf) definition files.
  • pb/demo.proto: The protobuf definition for the demo.
  • src/: Contains source code for the services.
  • src/accountingservice/, src/adservice/, src/cartservice/, src/checkoutservice/, src/currencyservice/, src/emailservice/, src/flagd/, src/frauddetectionservice/, src/frontend/, src/frontendproxy/, src/imageprovider/, src/kafka/, src/loadgenerator/, src/otelcollector/, src/paymentservice/, src/productcatalogservice/, src/quoteservice/, src/recommendationservice/, src/shippingservice/: Directories for each service, containing the source code, Dockerfiles, and configuration files.
  • test/: Contains test code and configuration files.
  • test/tracetesting/: Directory for trace testing.
  • docker-compose.minimal.yml, docker-compose.yml: Docker Compose configuration files.
  • ide-gen-proto.sh, package-lock.json, package.json, renovate.json5: Scripts and configuration files for the project.

The OpenTelemetry Demo uses several key technologies and dependencies, including OpenTelemetry, Docker, Kubernetes, OpenTelemetry Collector, Jaeger, Grafana, Prometheus, OpenSearch, AlibabaCloud LogService, and Elastic.

For more information, refer to the following resources: