Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Apitally – REST API monitoring made easy (apitally.io)
3 points by itssimon 65 days ago | hide | past | favorite | 4 comments
Hey Hackers!

I’d like to introduce you to Apitally, a simple API monitoring tool I’ve been solo-building over the past 9 months.

It all began with scratching my own itch as I’m technically responsible for maintaining a few API products at work. But it seems that other people find it useful too, enough even to pay money for it! (yay)

Apitally provides insights into API traffic, errors, response times and payload sizes, for the whole API and individual endpoints. It also monitors API uptime & availability, alerting users when their API is down.

The big monitoring platforms (think Datadog etc.) can be a bit overwhelming & expensive, particularly for simpler use cases. So Apitally’s key differentiators are simplicity & affordability, with the goal to make it as easy as possible for users to start monitoring their APIs.

Apitally works by integrating directly with web frameworks through middleware, which captures request & response metadata (never anything sensitive!) and asynchronously ships it to Apitally’s servers in 1 minute intervals.

The Python and Node.js client libraries currently support FastAPI, Flask, Django, Starlette, Express, Fastify, Nest.js and Koa.

On the server side Apitally leverages NATS JetStream as a message queue, ClickHouse for OLAP, is built in Python using FastAPI and runs on a Kubernetes cluster on DigitalOcean.

I’m looking forward to the direct & honest feedback this community is known for! :-)




I like how simple it is, but I didn't like the threading.lock usage in your client because of overhead and bottlenecks.[0] Maybe it's not a problem, but my API doesn't use threading so locking isn't necessary. I prefer to instrument my own API with a Python timing decorator, or similar. I also want to instrument my WakaQ background tasks so having a decorator or context manager would be useful there.

[0] https://stackoverflow.com/a/30115176/1290627

I like your pricing, simplicity, and ease of setup (minus being able to instrument my WakaQ tasks). I'll probably try it out!


Thanks for your feedback!

Being able to instrument background tasks is a great idea that I would find useful for my own projects as well. I'll consider adding that to the roadmap!

The threading.Lock usage is a bit of a precaution that might not always be necessary. However, in cases where it's not necessary, the lock will always be uncontended and then be trivial to acquire. I'll think about whether that's worth optimizing.


Congrats on building this! I would be interested to use this in a server-less setting. I’ll give it a shot, I might have to figure out how to queue stuff so I can deliver metrics asynchronously.


Thanks! Let me know if I can be of any help.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: