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:
Workers: the configured number of imgproxy workersRequestsInProgress: the number of requests currently in progressImagesInProgress: the number of images currently in progressWorkersUtilization,ConcurrencyUtilization: the percentage of imgproxy's workers utilization. Calculated asRequestsInProgress / 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 allocationsCacheHits: the number of cache hits (sent only when greater than 0)CacheMisses: the number of cache misses (sent only when greater than 0)SrcCacheHits: the number of source image cache hits (sent only when greater than 0)SrcCacheMisses: the number of source image cache misses (sent only when greater than 0)
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