Provides a ring buffer storage for your Heroku logs.
This is very much a work in progress project. There are many tasks remaining. The list below is merely a brain dump of ideas on where to take this project.
- Configurable Backend Datastores
- Memory
- Redis
- S3 Bucket
- Multi Drain Capable
- Log Drain Endpoint
- Basic Endpoint (No Auth)
- Heroku Drain Token Auth
- List Endpoint
- Basic Endpoint (No Auth)
- Authentication
- Live Tail Streaming
- Healthcheck Endpoint
- Ensures backend is functional
- Welcome Success URL Endpoint
- Guided steps to drain from another app to this collector
- Authenticated, perhaps heroku-bouncer style to allow only app collaborators access to guided setup
- CLI Binary
- Dumps
n
items from ring buffer - Dumps
n
items from ring buffer then live tail
- Dumps
Click the button
There are several environment variables that you can tweak to customize your experience
Name | Default | Description |
---|---|---|
BUFFER_SIZE |
1500 |
Optional, controls the size of the ring buffer in log lines. |
LISTEN |
0.0.0.0 |
Optional, controls which interface to listen on. |
PORT |
N/A | Required, controls which port to listen on, eg 5000. |
DATASTORE |
memory |
Optional, controls which backend to utilize. Available options are memory or redis . |
The memory
store will keep the logs buffered in memory. If the application
restarts or crashes in anyway all the store logs are lost.
There is no additional configuration required for the memory
datastore.
The redis
datastore will utilize redis to store the logs. The persistance of
the data in that redis datastore is completly up to the owner of that redis
server.
The simplest way to to wire up a redis datastore is to use Heroku Redis or any 3rd Party Redis Add-on.
In order to utlize the memory
datastore two additional environment variables
that can be customized.
Name | Default | Description |
---|---|---|
REDIS_URL |
N/A | Required, controls which redis to connect to. Automatically set when using a Heroku Redis. |
REDIS_POOL_SIZE |
4 |
Optional, controls the number of available redis pooled connections. |