Options for measuring production application performance in Django

When I first started encountering performance issues in my Django projects that weren’t obvious during development, I quickly came across Opbeat. Opbeat was an APM product that was easy to set up with a simple and understandable interface, and it was surprisingly inexpensive.

Soon after, Opbeat was bought by Elastic and they eventually sunset it in favour of their own Elastic APM. I do not find Elastic APM to be nearly as compelling as Opbeat. It seems to assume prerequisite knowledge about Elastic products, and feels like it is very bolted on to the rest of the Elastic stack. To be honest, I need some convincing from someone more experienced than me that this is an area I should invest time upskilling in. A lot of people talk about things like Prometheus, which I understand may not even be directly related to performance monitoring?

I also looked into New Relic. I remember the pricing structure being a little confusing. However, it looks like recently they have simplified it.

What are other people using for solutions for this problem?

This is a conflict of interest, but I maintain the Scout APM python integration: https://scoutapm.com/ . It works with Django 1.8 to 3.0, and Python 2.7 to 3.8. There’s a free tier on Heroku.

Yes the Opbeat story is sad. Sitll Elastic APM seems to be well developed.

Prometheus can be great, as can any metric solution. Often a lot of hand-rolling metrics though.

I have really good experience with New Relic though you are right that the pricing is complex (and it’s quite expensive).

Talking about this topic, do you know about tool similar to New Relic but with the possibility to run it on premise? Currently I work on project where cloud solution is not desired and I very much miss the power of New Relic.

Elastic APM can be run on-prem.

1 Like