Application Performance Monitoring (APM)

What is APM?

APM is a popular category within the realm of software monitoring and observability.

APM typically refers to the practice of instrumenting APIs within a backend application, and getting visibility of the golden signals (and more) associated with these APIs.

What are Golden Signals?

As defined in the SRE book by Google, the four golden signals within monitoring are latency, traffic, errors, and saturation.
So, given an API, the golden signals are:
(a) Traffic — the throughput or hit count on the API per unit time
(b) Errors — Error count and distribution on the API
(c) Latency — the time it’s taking for the API to be completed
(d) Saturation — the extent to which the API is fully utilized

Setting up APM

There are multiple ways in which a team can set up visibility for their application. You could leverage a commercial tool like Datadog, NewRelic, or an open-source tool like Prometheus+Grafana, or Signoz.

The primary difference between choosing the open source tooling or commercial tooling will be as follows:

- Time to Value: Using a commercial agent could mean a few minutes/hours of setup to get all your services instrumented. The commercial tools have deeply engrained agents within the system, providing out-of-the-box service-level and API-level dashboards.

Open Source tools require more instrumentation and sometimes also require manually adding code

- Cost of running: The cost of commercial tools varies but often ends up costing 1-10% of the cloud cost (aggregate cost of all observability tools).

In comparison, the direct cost associated with an Open Source tool will be minuscule (the cost of infrastructure) to manage the tool but there will be additional costs like (a) maintenance/scaling of the related infrastructure, (b) internal knowledge within a team on how to set up, (c) time spent by engineers on it.

Depending on scale, team capability, and time urgency, decisions can be taken here.

Doctor Droid is a complimentary solution to an APM. Our platform helps teams to monitor critical business and operational KPIs in real-time, helping improve business monitoring.

Made with ❤️ in Bangalore & San Francisco 🏢