Read-only AWS reliability audit. Alarm coverage assessment for ECS, Lambda, RDS, Aurora, and SQS.
Project description
opsfabric-discovery
A read-only AWS reliability audit you run on your own laptop. Produces an executive PDF assessing CloudWatch alarm coverage across ECS, Lambda, RDS, Aurora, and SQS workloads against the OpsFabric reliability baseline.
See what your audit would look like (no AWS needed)
Download a sample report (PDF, ~68 KB)
Or run it yourself in 30 seconds without any AWS credentials:
pip install opsfabric-discovery
opsfabric-discovery audit --demo
# → out/audit-demo.pdf
--demo runs against a baked-in synthetic dataset that exercises every feature of the audit (DEGRADED alarm detection, ALB→ECS bridge, critical-gap cards, coverage breakdown). No AWS calls, no credentials needed. Same matching engine, same PDF — only the input is fake.
What it does
- Discovers AWS resources via Resource Explorer 2 across one or all enabled regions.
- Maps CloudWatch alarms to those resources using a five-strategy matcher (exact dimensions, ALB target-group bridge for ECS, namespace + partial dimensions, log-group → metric-filter linkage, naming heuristic).
- Detects alarms that exist but won't notify (actions disabled / no SNS target /
INSUFFICIENT_DATA) and surfaces them as DEGRADED — they don't count toward coverage. - Scores required-check coverage against a baseline pack (
discovery_fabric/data/alarm_pack.yaml). - Renders an executive PDF (3 pages, McKinsey-style) plus JSON appendices for every artifact.
Trust statement
- Read-only. Calls only AWS describe / list APIs. Never creates, modifies, or deletes any resource.
- Runs on your laptop. No telemetry, no phone-home. Your data never leaves your machine.
- Source is auditable. Open the installed Python files — every AWS call is visible.
- Minimum IAM permissions:
sts:GetCallerIdentity,ec2:DescribeRegions,resource-explorer-2:ListViews/GetView/Search,tag:GetResources,cloudwatch:DescribeAlarms,logs:DescribeLogGroups/DescribeMetricFilters,ecs:ListClusters/ListServices/DescribeServices/DescribeTaskDefinition,lambda:ListFunctions/GetFunction,rds:DescribeDBInstances/DescribeDBClusters,sqs:ListQueues/GetQueueAttributes. Read-only across the board.
Install
pip install opsfabric-discovery
opsfabric-discovery --help
Quickstart
Once installed, from any directory:
# Audit a profile from ~/.aws/credentials
opsfabric-discovery audit --profile prod --regions all --account-alias acme-prod
# Or via STS assume-role (cross-account)
opsfabric-discovery audit \
--assume-role-arn arn:aws:iam::CUSTOMER_ACCOUNT:role/OpsFabricAuditor \
--external-id agreed-secret \
--regions all \
--account-alias acme-prod
# Outputs land in ./out/ by default; override with --output-dir
ls out/
# audit-<account-id>-<YYYYMMDD>.pdf
# alarm-coverage-score.json
# alarm-coverage-missing.json
# resource-mapping.json
# all-resources.json
# audit-meta.json
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opsfabric_discovery-0.2.1.tar.gz.
File metadata
- Download URL: opsfabric_discovery-0.2.1.tar.gz
- Upload date:
- Size: 156.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d53e2e914d8532be914cd90aadddf5928bd552bafec89e9d2a95b781b80e3f05
|
|
| MD5 |
6cf02fb71a9bc30e49f10bb7f3ec2512
|
|
| BLAKE2b-256 |
ba4a72ef97dd4fff140499282962caa324586675bbb21df46d8ef0dc9389bcf5
|
File details
Details for the file opsfabric_discovery-0.2.1-py3-none-any.whl.
File metadata
- Download URL: opsfabric_discovery-0.2.1-py3-none-any.whl
- Upload date:
- Size: 52.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5626fac6d74f1391c93addaf10d58bb96e4a232be48843d25d95a62de0c81fbf
|
|
| MD5 |
d2c807a9f363c0b6cb4127cf1e36b55a
|
|
| BLAKE2b-256 |
0e33497a0976e4ca5a395ab332d54a2afab4eb7bf8385143d92f4a71134ea6d0
|