HowFast Application Performance Monitoring (APM) tracks the response time of all the real-world requests made by your users, to give you better insights into your backend performance.

What is HowFast APM?

While HowFast Monitoring allows you to make sure your users can access your site from the internet, and tells you how fast the (public) URLs you listed are, it is hard to know exactly how long you took to serve that real request, with those user-supplied specific parameters, for which users also needed to be authenticated. This is where HowFast APM comes into play: after installing a small and lightweight agent in your codebase ("instrumenting" your app), you get access to:

  • volume statistics: how many times this specific endpoint was called over time
  • response time statistics: how fast did each of your endpoint respond, over time

What you can do with HowFast APM

Getting this real-world and real-time performance data enables you to:

  • understand how fast (or slow) you are: remember you can't improve what you can't measure!
  • understand which endpoints need some attention
  • discover the impact of changes such as deploys or data imports on your performance ("hey after this deploy these endpoints started responding 2x more slowly!")

It is much easier to advocate for allocating resources to performance improvements when you have hard evidence of the slowness of that important endpoint.

How to get started

Currently, HowFast APM is only available for Flask (Python) applications and will also soon be available for ExpressJS (NodeJS) backends. All you have to do is to use your favorite Python package management tool and install howfast-apm[flask]:

pip install howfast-apm[flask]

Then, import the the Flask middleware where you create your Flask app (usually __init__.py) and initialize it. You will need a DSN, that you can create here:

from howfast_apm import HowFastFlaskMiddleware

# Create your Flask app
app = Flask(__name__, ...)

# Instanciate all your other middlewares first

# Setup the APM middleware last, so that it can track the time spent inside other middlewares
HowFastFlaskMiddleware(app, app_id=HOWFAST_APM_DSN)

Please note that the agent will automatically pick up the DSN if the environment variable HOWFAST_APM_DSN is defined, letting you use the middleware like this:

# Install the middleware
HowFastFlaskMiddleware(app)

Within seconds of deploying your updated application, you will start seeing data in HowFast APM:

Detailed data includes, for each endpoint, the number of hits and the min/max/avg of the response time. More features will come in a near future:

  • performance budgets: get notified if response times go beyond 200ms for more than 5% of the requests
  • better analytics, including useful graphs to provide better insights
Oh, look, my commit actually improved the performance of this endpoint!

So far, we have seen that you can easily monitor the response time of your backend in real-time, after adding a small agent to instrument your codebase. And guess what! HowFast APM is free for the first 1000 daily hits, so don't wait and get started with HowFast APM!