Skip to content

Extension layer of AWS Lambda to monitor each Lambda runtime environment with Mackerel

License

Notifications You must be signed in to change notification settings

mackerelio-labs/mackerel-lambda-extension-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mackerel-lambda-extension-agent

!! This is an experimental project. Please be careful when using in production. !!

mackerel-lambda-extension is a extension layer of AWS Lambda to monitor each Lambda runtime environment with Mackerel.

Each Lambda runtime environment is individually registered as a host on Mackerel, and the metrics derived from Lambda Telemetry API are posted.

Usage

Registration

You can download the Lamdba layer zip file on Release page.

Add mackerel-lambda-extension-agent.zip file as a layer to the Lambda function you wish to monitor.

If you want to build it yourself, use the following command:

cd /path/to/mackerel-lambda-extension-agent
make build-extension

Settings

Specify the environment variables for the target Lambda function.

Either EXT_MACKEREL_API_KEY or EXT_MACKEREL_API_KEY_SSM must be specified.

Name Description
EXT_MACKEREL_API_KEY Mackerel API key. Read and write permission is required
EXT_MACKEREL_API_KEY_SSM Name of SSM parameter store where Mackerel API key is stored with encryption
EXT_MACKEREL_ROLE_FULL_NAMES Service and role to which hosts belong. The format is <service>:<role>,...,<service>:<role>.
EXT_LOG_LEVEL Select a log level from the following options: DEBUG, INFO, WARNING, ERROR. Default is WARNING

Example: Configuration by Terraform

locals {
   extension_file = "./mackerel-lambda-extension-agent.zip"
}

resource "aws_lambda_layer_version" "agent" {
  filename         = local.extension_file
  layer_name       = "mackerel-lambda-extension-agent"
  source_code_hash = filebase64sha256(local.extension_file)
}

resource "aws_lambda_function" "this" {
  function_name = "sample-function"

  ...

  layers = [aws_lambda_layer_version.agent.arn]

  environment {
    variables = {
      EXT_MACKEREL_API_KEY         = var.mackerel_api_key
      EXT_MACKEREL_ROLE_FULL_NAMES = "lambda:sample-function"
      EXT_LOG_LEVEL                = "DEBUG"
    }
  }
}

License

The source code is licensed MIT.

About

Extension layer of AWS Lambda to monitor each Lambda runtime environment with Mackerel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •