There's a lot to fix here, but these are all common issues so it's good to walk through them and see how missing instrumentation is usually a configuration issue.
The fixes are all in the solution
folder.
Deploy the changes and the app will produce all the expected instrumentation:
docker-compose -f labs/troubleshooting/solution/metrics.yml -f labs/troubleshooting/solution/logging.yml -f labs/troubleshooting/solution/apps.yml up -d
The load-generator containers will keep making HTTP requests so you'll have lots of data to work with, but if that's making your machine work too hard, you can stop the Fortio containers and make manual website calls instead:
docker-compose -f labs/troubleshooting/load.yml stop
Fixes:
Authorization service misconfigured - not producing metrics
Observability__Metrics__On
is incorrect - it should be Observability__Metrics__Enabled
like the other componentsWeb application not found in Prometheus scrape
metrics
network - you may have observability sub-systems in their own networks, and you need to make sure there's connectivity from your applicationFulfilment processor metrics not found
/all-the-metrics
- it should be using just /metrics
Fixes:
Documents service spans not being reported
metrics
to send data to Jaeger, the correct hostname is jaeger
Spans are not being linked to the parent trace
Observability__Trace__HeaderFormat=B3
; the other components are using W3C and the formats are not compatible so the trace can't be built. This setting can be removed, or the value replaced with W3C
.Authorization logs are missing
Authorization logs are still missing
Fulfilment processor instance 2's logs are missing
fulfilment-processor*.json
- the config setting Observability__Logging__LogFilePath=logs/fulfilment-2.json
uses a log file name which doesn't match the pattern.