This is a draft of distributed tracing demo app demonstrating Azure SDKs and OpenTelemetry integration.
- You'll need Azure subscription and resources
- EventHub
- Storage
- ApplicationInsights resource if you're running it with Azure Monitor
- Docker
- Create
.env
file with access keys to resources content:
EVENTHUB_CONNECTION_STRING= <event hub connection string, no entity name here>
EVENTHUB_NAME= <event hub name>
CHECKPOINT_STORAGE_ACCESS_KEY= <storage access key>
CHECKPOINT_STORAGE_ACCOUNT= <storage account name for checkpointing>
CHECKPOINT_CONTAINER_NAME= <storage container name for checkpointin>
CHECKPOINT_STORAGE_CONNECTION_STRING= <Full storage connection string for checkpointing, sorry>
If you're running it with Azure Monitor, please also add
APPINSIGHTS_INSTRUMENTATIONKEY= <your app insights key>
- Run demo with
docker-compose -f docker-compose_applicationinsights.yml up --build
(for AzureMonitor) ordocker-compose_jaeger.yml
(for Jaeger).
-
POST http://localhost:8080/messages?message=hi
: java application, will send message to EventHub -
GET http://localhost:5000/weatherforecast
: .NET app -
POST http://localhost:3000/message
: nodejs application, will send the JSON body of the request to EventHub
TODO