Skip to content(if available)orjump to list(if available)

Show HN: Apitally – A simple, privacy-focused API monitoring and analytics tool

Show HN: Apitally – A simple, privacy-focused API monitoring and analytics tool

21 comments

·February 3, 2025

G’day Hacker News, I’m Simon Gurcke, the sole founder of Apitally (https://apitally.io).

I’m building a simple API monitoring and analytics tool for Python / Node.js apps. It helps users understand API usage and performance, spot issues early and troubleshoot effectively when something goes wrong.

Features include:

- Dashboards: Provide insights into API traffic, errors, performance and consumers.

- Request logging: Opt-in and highly configurable in terms of what data is logged. Users can drill down from aggregated metrics to individual requests (proven to be super helpful when troubleshooting issues).

- Custom alerts: Based on 14 different API metrics with notifications delivered via email, Slack or Microsoft Teams.

- Validation error tracking: Captures metrics about which fields failed validation and why. Works for web frameworks with built-in validation (e.g. FastAPI with pydantic), or that integrate with popular third-party validation libraries (e.g. Zod for Hono).

- Server error tracking: Captures exception details and stack traces for 500 error responses. An integration with the Sentry SDK also captures event IDs, allowing users to click through to the relevant Sentry issue for more context.

I first started developing Apitally to scratch my own itch. While working at a health tech company where I was responsible for API-based software products, I became frustrated with the monitoring tools we had in place - Datadog and the ELK stack. They were too complex for my API-centric use cases, and often a pain to use.

As a result, I focused on making Apitally as simple as possible. This involved not just refining the UX of the dashboard, but also optimizing the developer experience with the open-source SDKs:

- https://github.com/apitally/apitally-py - Python SDK (supports FastAPI, Flask, Django, Litestar, Starlette)

- https://github.com/apitally/apitally-js - Node.js SDK (supports Express, NestJS, Fastify, Koa, Hono)

My other focus was on data privacy, as that is a strict requirement in the healthcare industry. By default, Apitally doesn’t capture any sensitive data - metrics are aggregated on the client side (similar to Prometheus) and sent in the background in regular intervals.

The hardest part has been implementing integrations for various web frameworks and supporting a wide range of versions. I learned a lot about the inner workings of web frameworks in the process. Good test coverage and an extensive test matrix were really important to not break people’s production APIs with buggy middleware.

Apitally’s backend is built in Python and runs on a small Kubernetes cluster on DigitalOcean. It uses PostgreSQL and ClickHouse to store data and NATS JetStream as a message queue. I chose NATS for being lightweight and its exactly-once processing capabilities. I’m also impressed by ClickHouse’s performance given the low hardware specs of my server (4 vCPUs, 8 GB RAM).

Apitally is free to use for small hobby projects (with limitations), and I offer two paid tiers for $39 and $119 (USD) per month. The dashboard has a demo mode, allowing people to explore the product without having to set up their own app first.

Thank you for reading about my bootstrapped indie product. Please let me know your thoughts and questions in the comments.

vanschelven

Given the focus on privacy you might be interested in connecting with Bugsink[1] also (Self-hosted Error Tracking, Sentry API Compatible). Feel free to reach out.

[1] https://www.bugsink.com/

----- disclosure: as implied by "feel free to reach out": I'm Bugsink

itssimon

A bit off-topic, but I'm curious. What are the benefits of Bugsink over Sentry? Sentry can also be self-hosted.

armanckeser

> I’m Klaas, the solo founder and developer of Bugsink. Bugsink started when I tried to self-host Sentry for a colleague and realized it was more trouble than it was worth. I built Bugsink as a drop-in replacement that’s easier to set up and works on affordable hardware. Now, it’s my full-time focus.

In the about page. I do agree Sentry self hosting can be a nightmare

vanschelven

This is the correct answer. The detailed version is this:

https://www.bugsink.com/blog/why-i-gave-up-on-self-hosted-se...

hiatus

Sentry is comprised of many services but it has been running just fine on a t3.xlarge for over a year for my team. _shrug_

ecralx

Happy customer of Apitally for about a year now! Very easy to setup, attractive pricing, great UX and it basically covers all my needs! Overall, very impressive, I'm a great fan of your product, and I'm excited for the future updates !

At my previous company we looked for something quite similar as yours, we ended up testing ScoutAPM but it was too expensive for us. What was interesting in it was the SQL queries traces and the DB monitoring. I think there is plenty of companies scaling up and needing to start working on perf (and optimizing DB queries, especially when you're using an ORM, is one of the first things that you want to monitor). Maybe it's something worth analyzing as a future feature ?

Anyhow, good luck and keep up the good work !

itssimon

Thanks so much for the shout-out and feedback! Definitely true that tracing (likely with OpenTelemetry) would be a very valuable future feature addition - especially for database queries. I actually had that use case come up at work today.

eptcyka

Did you ask the Italians before putting them behind an API?

itssimon

Sì, naturalmente! They approve of my spaghetti code

armanckeser

For a solo dev project this looks great and good luck with it! But am I correct to understand this can't be self-hosted/is not open source? To me "privacy-focused" is pretty much synonymous with open source and self hostable but I am curious if I missed something or if the community thinks otherwise.

itssimon

Thank you! The SDKs are open-source, which I believe is the most important part. Users can verify how the integrations work and exactly what data is collected.

To me, privacy-focused also means to avoid collecting sensitive data in the first place. I'm hoping that mostly negates the need for self-hosting, in the spirit of keeping things simple for users.

That said, I'm definitely considering to support self-hosting in the future as well, and possibly open-sourcing the rest of the codebase.

anandnair

This looks cool. My concern about adding such a middleware to the API routes is the potential performance hit. Assuming this middleware would call your APIs to track metrics, wouldn't it degrade the performance of the existing system by consuming some CPU power?

itssimon

Valid concern that I tried to specifically address in how the SDKs are implemented! The middleware part is actually super lightweight. It only captures relevant metrics from the request and response and stores them in memory. Further processing and sending to Apitally happens asynchronously in the background, in regular intervals. That way the performance impact on request handling is very minimal.

Anecdotally, I noticed zero increase in CPU usage when I added the Apitally SDK to a FastAPI app that handles ~100 req/s. In comparison, adding OpenTelemetry was very noticeable, at least doubling the CPU usage.

itssimon

By the way, I’m planning to add support for more frameworks and languages, hopefully with help from the community.

At the top of my list are Laravel (PHP) and Spring (Java), but I’m keen to hear what other frameworks would be popular here.

arkh

> Laravel (PHP)

You may want to do something compatible with other php frameworks. At least Symfony as it is the base for API platform.

itssimon

Great point, noted! Thanks!

cazzo3

Looks great. Have you considered Go? We’re using Gin at work…

itssimon

Yes, support for Go has been requested a few times and is on the roadmap!

nickittynack

Looks pretty polished for a solo dev nice work. Datadog is pretty pricy these days and this seems to cover 99% of the use cases. Thanks for the free tier

itssimon

Thanks, I appreciate the feedback! Datadog is obviously super powerful, maybe partially warranting the price tag, but most of the time the gazillion features just confuse me to the point that I don't want to use it.

AutistiCoder

ah, makes sense.

fewer features can actually be better because it's simpler.