The LogDNA AWS CloudWatch integration relies on AWS Lambda to route your CloudWatch Logs to LogDNA.
Author from scratch
Upload a .ZIP file
index.handler
Node.js 20.x
If this function is being used to stream from gzipped files:
Timeout
to, at least, 10 seconds
.Memory
limit to, at least, 128 MB
.Notes:
Configuration > Asynchronous invocation
.Add CloudWatch Logs
as a trigger with the following configuration:
CloudWatch Log Group
to be sent to LogDNA.Filter Name
.Filter Pattern
option can be used to filter the logs before shipping to LogDNA.Notes:
CloudWatch Log Group
in one trigger.For Execution role, assign a role that has the following policies:
Set LOGDNA_KEY
variable to your LogDNA ingestion key. Optionally, you can use the following environment variables:
LOGDNA_HOSTNAME
: Alternative Host NameLOGDNA_TAGS
: Comma-separated TagsLOGDNA_URL
: Custom Ingestion URLLOG_RAW_EVENT
: Setting line
to Raw event.message
(Default: false):
LOG_RAW_EVENT
to YES
or TRUE
event
-related meta
data from the line
field to the meta
field:
event.type
: messageType
of CloudWatch Log
encoded inside awslogs.data
in base64
event.id
: id
of each CloudWatch Log
encoded inside awslogs.data
in base64
log.group
: LogGroup
where the log is coming fromlog.stream
: LogStream
where the log is coming fromNotes: The following optional environment variables can also be used to tune this Lambda function for specific use cases.
LOGDNA_MAX_REQUEST_TIMEOUT
: Time limit (in milliseconds
) for requests made by this HTTP Client (Default: 30000)LOGDNA_FREE_SOCKET_TIMEOUT
: How long (in milliseconds
) to wait for inactivity before timing out on the free socket (Default: 300000)LOGDNA_MAX_REQUEST_RETRIES
: The maximum number of retries for sending a line when there are network failures (Default: 5)LOGDNA_REQUEST_RETRY_INTERVAL
: How frequently (in milliseconds
) to retry for sending a line when there are network failures (Default: 100)Enabling monitoring means forwarding the metrics and logs about the execution of the CloudWatch Lambda function to CloudWatch
. You can also create and use a separate CloudWatch Lambda function to monitor the performance of this CloudWatch Lambda function.
You can test the configuration and code package using the following test input containing the sample event data:
{
"awslogs": {
"data": "H4sIAAAAAAAAEzWQQW+DMAyF/wrKmaEkJCbhhjbWCzuBtMNUVSmkNBIQRMKqqep/X6Cb5Ivfs58++45G7ZzqdfMza5Sjt6IpTh9lXReHEsXI3ia9BJnQlHHIhMSEBnmw/WGx6xwcp8Z50M9uN2q/aDUGx2vn/5oYufXs2sXM3tjp3QxeLw7lX6hS47lTz6lTO9i1uynfXkOMe5lsp9Fxzyy/9eS3hTsyXYhOGVCaEsBSgsyEYBkGzrDMAIMQlAq+gQIQSjFhBFgqJOUMAog34WAfoFFOOM8kA0Y5SSH+f0SIb67GRaHq/baosn1UmUlHF7tErxvk5wa56b2Z+iRJ0OP4+AWj9ITzSgEAAA=="
}
}
Copyright © LogDNA, released under an MIT license. See the LICENSE file and https://opensource.org/licenses/MIT
Contributions are always welcome. See the contributing guide to learn how you can help.
Happy Logging!