AthenaHero is a lightweight Flask application for monitoring and mantaining your AWS Athena usage.
AthenaHero is heavily inspired by PGHero, a performance dashboard for Postgres.
AthenaHero is available as a Docker image, and an example setup is present in the docker-compose.yml file at the root of this project.
Before running, you must set these three env vars on the host:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGION
In case you are using AWS session tokens, you must also set the AWS_SESSION_TOKEN var on the host.
And then simply run:
docker-compose up athenahero
AthenaHero will be available on http://localhost:5000 on the host machine.
AthenaHero supports basic HTTP authentication. Before starting the server, set the env vars:
ATHENAHERO_USERNAMEATHENAHERO_PASSWORD
And the browser will require authentication.
Set the env var ATHENAHERO_SQLALCHEMY_DATABASE_URI=potsgresql://user:pass@host:5432/db to your own postgres installation.
AthenaHero polls AWS from time to time and fetches all Athena query metadata for the last 30 days.
The IAM credentials setup using env vars must have permissions for listing and reading Athena query history data.
Athenahero does not use any API calls that cost you money, and using Athenahero should not impact your AWS Billing (except by reducing it by giving you valuable insight! :) ).
- In the current AthenaHero version, Cost is just measured as 5.00 USD for TB read, independent of which AWS Region AthenaHero is querying. This pricing heuristic is only valid for some regions, such as
us-east-1andus-west-2. This will be fixed on a future version.
