A Heroku HTTPS log drain that stores logs in CloudWatch Logs.
Build and install:
$ go install
Run:
$ heroku-cloudwatch-drain
We have a cloudwatch-drain, look in the ENV for the credentials, add this to your app and change the variables accordingly:
heroku drains:add https://[USER]:[PASS]@centra-cloudwatch-drain.herokuapp.com/[name-of-log-group] -a [app-you-want-to-drain]
See all available configuration flags:
$ heroku-cloudwatch-drain -h
The AWS configuration is picked up from the environment. For a full list of environment variables and other ways to configure the AWS region, credentials, etc., see the SDK Configuration page.
Set the HONEYBADGER_API_KEY
environment variable to report panics and errors to Honeybadger.
If you've deployed heroku-cloudwatch-drain to Heroku, see Honeybadger's Heroku specific instructions for more detailed information.
Set the NEW_RELIC_LICENSE_KEY
environment variable to enable the New Relic integration. Optionally, you can set the NEW_RELIC_APP_NAME
to customize the app name on New Relic.
Logs should be sent to this application, with the log group name as the URL
path. For example, if the heroku-cloudwatch-drain is available at
https://drain.example.com/
, and you wish to collect logs under the log group
name my-app
, the log drain URL should be https://drain.example.com/my-app
.
HTTP Basic Auth is supported and can be configured via CLI flags.
Both the CloudWatch Logs log group and log streams are created automatically as requests come in. A new and unique log stream is created for each process.
The IAM policy containing the minimum required permissions to run this is:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:PutRetentionPolicy"
],
"Resource": [
"*"
]
}
]
}
The govendor tool is used for managing
the vendor
directory.
Run tests:
$ govendor test +local