Skip to content

This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.

License

Notifications You must be signed in to change notification settings

merlinn-co/opentelemetry-demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTel logo OpenTelemetry Demo

Slack Version Commits Downloads License Integration Tests

Welcome to the OpenTelemetry Astronomy Shop Demo

This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.

Our goals are threefold:

  • Provide a realistic example of a distributed system that can be used to demonstrate OpenTelemetry instrumentation and observability.
  • Build a base for vendors, tooling authors, and others to extend and demonstrate their OpenTelemetry integrations.
  • Create a living example for OpenTelemetry contributors to use for testing new versions of the API, SDK, and other components or enhancements.

We've already made huge progress, and development is ongoing. We hope to represent the full feature set of OpenTelemetry across its languages in the future.

If you'd like to help (which we would love), check out our contributing guidance.

If you'd like to extend this demo or maintain a fork of it, read our fork guidance.

Quick start

You can be up and running with the demo in a few minutes. Check out the docs for your preferred deployment method:

Documentation

For detailed documentation, see Demo Documentation. If you're curious about a specific feature, the docs landing page can point you in the right direction.

Demos featuring the Astronomy Shop

We welcome any vendor to fork the project to demonstrate their services and adding a link below. The community is committed to maintaining the project and keeping it up to date for you.

AlibabaCloud LogService Elastic New Relic
AppDynamics Google Cloud OpenSearch
Aspecto Grafana Labs Sentry
Axiom Guance ServiceNow Cloud Observability
Axoflow Helios Splunk
Azure Data Explorer Honeycomb.io Sumo Logic
Coralogix Instana TelemetryHub
Dash0 Kloudfuse Teletrace
Datadog Liatrio Tracetest
Dynatrace Logz.io Uptrace

Contributing

To get involved with the project see our CONTRIBUTING documentation. Our SIG Calls are every other Monday at 8:30 AM PST and anyone is welcome.

Project leadership

Maintainers (@open-telemetry/demo-maintainers):

Approvers (@open-telemetry/demo-approvers):

Emeritus:

Thanks to all the people who have contributed

contributors

Custom fork instructions (Merlinn)

This is a fork of the original opentelemetry-demo. It contains the following modifications:

  • Contains otel-col changes for exporting logs to loki and/or Coralogix.
  • Uses alertmanager to fire alerts based on Prometheus. Alert manager is configured
  • Contains some UI changes

Usage (TL;DR)

  1. Clone this fork
  2. Run make start.

That's it. Now all the microservices should be up. It's an e-commerce app so you can navigate to http://localhost:8080/ and play with the UI.

Export logs to Coralogix

In order to export logs to Coralogix, you need to change the root .env file.

Go to the root .env and modify the following vars:

  • CORALOGIX_DOMAIN. For example: eu2.coralogix.com
  • CORALOGIX_PRIVATE_KEY. This should be your "Send Your Data" key. Go to Data Flow -> API Keys -> Send Your Data to generate a new key.

CORALOGIX_APP_NAME and CORALOGIX_SUBSYS_NAME can stay the same.

For more information, see this official blog post: https://coralogix.com/blog/configure-otel-demo-send-telemetry-data-coralogix/

Configure Grafana <-> Opsgenie

If you want to send your Grafana alerts to Opsgenie to trigger incidents, you need to change the opsgenie.yaml file.

Go to opsgenie.yaml and change apiKey field. This should be a Opsgenie API key.

To generate an API key, go to your Opsgenie dashboard. Click Settings and go to Integrations. In the integrations screen, click "Add integration". Search for "API" and select it. Afterwards, click "Enable integration". That's it. Now you should see your newly created API key.

For more information, checout our docs: https://docs.merlinn.co/Integrations/Opsgenie

Configure Alert Manager <-> Slack messages

In order to connect alertmanager to Slack, you can generate a webhook url and insert it into alertmanager-config.yaml.

Sync fork with upstream

In order to sync the fork, follow these steps:

  1. In your local folder, checkout upstream/main:
git checkout upstream/main
  1. Pull the latest changes:
git pull upstream main
  1. Rebase our main into the local upstream branch and solve conflicts (make sure to do git rebase --continue in between conflicts.)
git rebase main
  1. Checkout our local main:
git checkout main
  1. Rebase local upstream into main
git rebase upstream/main
  1. Solve all the conflicts (similar to step 3, with git rebase --continue).

About

This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 35.4%
  • Go 14.4%
  • C# 7.5%
  • Java 6.9%
  • Python 6.6%
  • Dockerfile 6.2%
  • Other 23.0%