Skip to main content

Alertalot

Alertalot Logo

Python library for creating AWS CloudWatch alerts automatically based on predefined configurations.

Running the Code

Linux

  1. Clone the repository and run
    ./bin/install.sh
    
  2. Optionally, run tests
    ./bin/test.sh
    
    You should see:
    ...
    ─────────────────────────────────────────────
    ✓ SUCCESS: Alertalot Pylint check passed
    ✓ SUCCESS: Unittests Pylint check passed
    ✓ SUCCESS: Unittests passed
    ─────────────────────────────────────────────
    ✓ OK!
    

Code Quality and Testing

Before running any of the following commands, ensure that your virtual environment is activated:

source ./venv/bin/activate

Test and Lint Commands

Task Command
Run Unit Tests with Coverage pytest --cov=alertalot --cov-report=html --cov-branch
Lint Alertalot Code pylint alertalot --rcfile=.pylintrc --fail-under=10
Lint Test Code pylint tests --rcfile=tests/.pylintrc --fail-under=10

Usage

Alertalot can be run with various options to create CloudWatch alerts for AWS resources.

Basic Usage

python -m alertalot.main --instance-id i-xxxxxxxxx --vars-file examples/variables.yaml --template-file examples/ec2-application.yaml --region us-east-1

Available Options

Option Description
--instance-id ID of an EC2 instance to generate the alerts for
--params-file Relative path to the parameters file to use (see examples/params.yaml)
--template-file Relative path to the template file to use (see examples/ec2-application.yaml)
--region The AWS region to use
--dry-run Simulate the requests without executing them
-v, --verbose Enable verbose output to show details about executed actions

Special Actions

Action Description
--show-parameters, --show-params Only loads the parameters file and outputs the result. Parameters for the specified region will be merged with global parameters.
--test-aws Only checks if AWS is accessible by calling sts:GetCallerIdentity. Use with --verbose to see detailed output.
--show-instance Loads and describes the target instance. Requires a valid instance ID.

Configuration Files

Parameters File

The parameters file (YAML or JSON) contains values that will be substituted in the template file:

params:
  global:
    # Global parameters used across all regions
  us-east-1:
    # Region-specific parameters
    ALARM_ACTION_ARN: "arn:aws:sns:us-east-1:aaaa:bbbb"

Template File

The template file defines the CloudWatch alarms to be created:

alarms:
  - type: ec2
    alarm-name: AWS / CPU Usage 5 minute / $INSTANCE_NAME / $INSTANCE_ID
    metric-name: CPUUtilization
    alarm-actions: $ALARM_ACTION_ARN
    statistic: Average
    period: 5 minutes
    comparison-operator: GreaterThanOrEqualToThreshold
    threshold: 70%
    evaluation-periods: 1 minute
    tags:
      level: info
    treat-missing-data: breaching

Metadata

Release files for alertalot 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alertalot 0.2.0
File Size Uploaded
alertalot-0.2.0.tar.gz 25.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alertalot 0.2.0
File Interpreter ABI Platform
alertalot-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 58.8 kB

Release files / alertalot-0.2.0.tar.gz

Download URL alertalot-0.2.0.tar.gz
Size 25.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f0a9a44adc1fff048b7f7e929d8988b3f572e711277beb69f5851a520a340e9d
BLAKE2b-256 checksum
How to use checksums
fbb2fe018ce99b836aaa33b3df11e47e2c8ade57965a88360b21714600e10ba5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.17

Release files / alertalot-0.2.0-py3-none-any.whl

Download URL alertalot-0.2.0-py3-none-any.whl
Size 33.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17eef78e2a168f7bc93268464043fe7339c429d3ea085e8bbc9cdb7cbc33b6ed
BLAKE2b-256 checksum
How to use checksums
c4402402802ad70715124af6bb6bf69ba48278ea38bdfa6c94947ee147fb7fa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.17

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page