I keep reading articles analyzing Monitoring and Observability, or having lots and lots of text regarding how the latter is the extension of the first, or how they are complementary, or how tracing is the next step in APM (Application Performance Monitoring/Management), or any other random opinion on the subject. I honestly can't see anything left after you remove the marketing hype and fluff.

I appreciate monitoring and alerting with a combination of Prometheus and Grafana (or any equivalent stack), and how you can track and visualize metrics collected from application logs, or how the logs themselves can be indexed/labeled for retrospective analysis, and how one can integrate threshold/prediction alerting in that regard.

But at the end of the day, "tracing" sounds like simply adding additional labels (host/container name, service/endpoint, timestamp), and APMs look like a metadata store for service exceptions, RESTful requests/transactions and call stacks, or something high level like that.

Am I a confused dinosaur, or am I missing something? Is there anything more to the above?

OK the above was overly dramatic, but the question remains: How can we do something more than monitoring in a shared application where the only thing we can analyze are application logs? How can we track a transaction through various application levels in a non-distributed, non-containerized deployment (if at all)?


Tracing is usually more than just adding labels. Tracing is a feature of an APM solution that lets you follow a request from its entry point into the system through the entire system. With the APM solutions that I've used, this often involved instrumenting the runtime environment to understand down to individual method calls and the result and performance of each method through the system. You may also be able to instrument your database to understand queries associated with the request.

You don't need microservices to implement tracing or infrastructure monitoring. Depending on the These can be implemented in a monolithic application just as well. APM tools will usually let you combine log monitoring, infrastructure monitoring, tracing, and sometimes other capabilities to tie infrastructure-related events to particular requests and the log messages generated during those events.

Since the question mentions Prometheus and Grafana, something to look at could be OpenTracing. There are language bindings for a handful of different languages that allow you to incorporate tracing data. The amount of effort to add tracing depends on the language(s) your application is using. The commercial offerings like New Relic and Datadog are also options.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.