Amazon CloudWatch
imgproxy can send its metrics to Amazon CloudWatch. To use this feature, do the following:
- Set the
IMGPROXY_CLOUD_WATCH_SERVICE_NAMEenvironment variable. imgproxy will use the value of this variable as a value for theServiceNamedimension. - Set up the necessary credentials to grant access to CloudWatch.
- (optional) Specify the AWS region with
IMGPROXY_CLOUD_WATCH_REGIONorAWS_REGION. Default:us-west-1 - (optional) Set the
IMGPROXY_CLOUD_WATCH_NAMESPACEenvironment variable to be the desired CloudWatch namespace. Default:imgproxy
imgproxy sends the following metrics to CloudWatch:
RequestsInProgress: the number of requests currently in progressImagesInProgress: the number of images currently in progressWorkersUtilization,ConcurrencyUtilization: the percentage of imgproxy's workers utilization. Calculated asRequestsInProgress / IMGPROXY_WORKERS * 100BufferSize: a summary of the download buffers sizes (in bytes)BufferDefaultSize: calibrated default buffer size (in bytes)BufferMaxSize: calibrated maximum buffer size (in bytes)VipsMemory: libvips memory usage (in bytes)VipsMaxMemory: libvips maximum memory usage (in bytes)VipsAllocs: the number of active vips allocations
Set up credentials
There are three ways to specify your AWS credentials. The credentials need to have rights to write metrics to CloudWatch:
IAM Roles
If you're running imgproxy on an Amazon Web Services platform, you can use IAM roles to to get the security credentials to make calls to AWS CloudWatch.
- Elastic Container Service (ECS): Assign an IAM role to a task.
- Elastic Kubernetes Service (EKS): Assign a service account to a pod.
- Elastic Beanstalk: Assign an IAM role to an instance.
Environment variables
You can specify an AWS Access Key ID and a Secret Access Key by setting the standard AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.
AWS_ACCESS_KEY_ID=my_access_key AWS_SECRET_ACCESS_KEY=my_secret_key imgproxy
# same for Docker
docker run -e AWS_ACCESS_KEY_ID=my_access_key -e AWS_SECRET_ACCESS_KEY=my_secret_key -it ghcr.io/imgproxy/imgproxy
Shared credentials file
Alternatively, you can create the .aws/credentials file in your home directory with the following content:
[default]
aws_access_key_id = %access_key_id
aws_secret_access_key = %secret_access_key