aws-cloudwatch-proxy-wasm

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2022 License: MIT

README ¶

AWS CloudWatch Proxy-Wasm

🚧 Experimental Project 🚧

AWS CloudWatch Proxy-Wasm (ACPW) sends the request metric to Amazon CloudWatch Metrics using Wasm module.

Usage (local)

1. Get AWS credential

ACPW sends metrics to CloudWatch Metrics. In order to do that, you need to get access key ID and secret access key. The following policy is minimal one to work this project.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*"
        }
    ]
}
2. Install TinyGo

https://tinygo.org/getting-started/install/

3. Build Wasm modules
$ make build-all

After executing the command above, please make sure the root directory has sender.wasm and receiver.wasm

4. Start project
$ export ACPW_AWS_ACCESS_KEY_ID=[access key ID you got step1]
$ export ACPW_AWS_SECRET_ACCESS_KEY=[secret access key you got step1]
$ docker-compose up
5. Test
➜ curl localhost:18000/test -H "Host: example.com"
OK

After executing the command above, you can confirm metrics on CloudWatch metrics.

$ aws cloudwatch list-metrics --namespace AWSCloudWatchProxyWasm-dev

Configuration

Sender
Name Required Description
receiver_vm_id ✔ VM ID of receiver
match_hosts Hosts for sending metrics. e.g. example.com
Receiver
Name Required Description
cloud_watch_region ✔ Region of CloudWatch
cloud_watch_cluster_name ✔ Cluster Name of CloudWatch
aws_access_key_id ✔ AWS Access Key ID. You can set it using environment variable ACPW_AWS_ACCESS_KEY_ID
aws_secret_access_key ✔ AWS Secret Access Key. You can set it using environment variable ACPW_AWS_SECRET_ACCESS_KEY
http_request_timeout_millisecond The timeout for requesting to CloudWatch API
metric_namespace The namespace of CloudWatch metrics
metric_name

Directories ¶

Path Synopsis
aws
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL