Skip to content

Add Apitally to Utils section #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

itssimon
Copy link

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)

@savchenko
Copy link

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).

@itssimon
Copy link
Author

itssimon commented May 28, 2025

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.

@savchenko
Copy link

savchenko commented May 28, 2025

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?

🐨

@itssimon
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants