SquirrelDB is a scalable and highly available timeseries database (TSDB) compatible with Prometheus remote storage. Timeseries are stored in Cassandra to provide scalability and availability.
SquirrelDB allows both availability and scalability:
Check out examples/squirreldb-ha for a highly available setup.
You can run SquirrelDB easily with Cassandra, Prometheus, Grafana and Node Exporter using the provided docker-compose:
docker compose up -d
Then go to the Grafana dashboard at http://localhost:3000/d/83ceCuenk/, and log in with the user "admin" and the password "password". You may need to wait a few minutes to see the graphs, because Cassandra starts slowly.
Cassandra must be running before starting SquirrelDB. If you don't have Cassandra, you can run it with Docker:
# The network is needed only if you run SquirrelDB with Docker.
docker network create squirreldb
docker run -d --name squirreldb-cassandra -p 127.0.0.1:9042:9042 \
--net squirreldb -e MAX_HEAP_SIZE=128M -e HEAP_NEWSIZE=24M cassandra
You can run SquirrelDB as a binary using the latest Github release for your platform at https://github.com/bleemeo/squirreldb/releases.
You can use docker to run SquirrelDB:
docker run -d --name squirreldb -p 127.0.0.1:9201:9201 \
--net squirreldb -e SQUIRRELDB_CASSANDRA_ADDRESSES=squirreldb-cassandra:9042 \
bleemeo/squirreldb
The file squirreldb.conf contains all available configuration options. This file must be placed in the same directory as the SquirrelDB binary.
All configuration options can be overriden by environment variables. The environment variable is
- Prefixed by SQUIRRELDB_
- All letters are converted to uppercase
- Each yaml indentation is converted to an underscore
For example, cassandra.addresses becomes SQUIRRELDB_CASSANDRA_ADDRESSES.
See CONTRIBUTING.md.
$ claude mcp add squirreldb \
-- python -m otcore.mcp_server <graph>