Add Apitally to Utils section
Apitally is an API monitoring, analytics, and request logging tool for Flask with a focus on simplicity and data privacy.
Why it's awesome:
- Offers simple and intuitive dashboards with insights into API traffic, errors, performance, consumers and more
- Super easy set up by just adding 2 lines of code to a Flask project
- Aggregates metrics on client side for data privacy, and request logging is fully configurable (and optional)
Very happy to see another project from Down Under. Could you elaborate re. the "focus on data privacy"?
As far as I understand, this is "all your data belongs to us" (albeit by design and due to the necessity).
Thanks! 🦘
Apitally is designed to avoid collecting sensitive data by default. The SDK aggregates data client-side and only sends metrics (like request counts and binned response times) to Apitally – no headers, payloads, or full URLs are transmitted unless the user explicitly opts in with request logging.
If request logging is enabled, users must configure exactly what to include, giving them full control. This makes it suitable even for environments with strict privacy requirements, like healthcare.
High on my todo list is to add detailed information about data privacy to the docs. Appreciate it's a bit blurry currently.
A fundamentally tricky problem: log insufficiently and the product loses its value, too much and you'll get this:
self.add_request(
timestamp=timestamp,
request=request,
request_body=request_body,
status_code=status_code,
response_time=response_time,
response_headers=response_headers,
response_body=response_body,
Perhaps some lightweight filtering of SECRET_KEY, X-Auth-Key and other usual suspects?
🐨
Yes, there are various default masking rules in place, and users can configure additional custom masking and exclusion logic.
Some relevant links to the docs: https://docs.apitally.io/frameworks/flask#configure-request-logging (See advanced example) https://docs.apitally.io/reference/python (Default masking rules at the bottom)
You can review the code for it here: https://github.com/apitally/apitally-py/blob/main/apitally/client/request_logging.py