How vaishnavsreekumar/sentinelfinops works
SentinelFinOps scans AWS accounts for idle EC2 instances and unattached EBS volumes, estimates savings, and routes findings through optional AI reasoning and deterministic policy checks before Slack alerting. Engineers can acknowledge, snooze, or trigger backed-up remediation through Slack actions. The graph also captures documented reporting and governance capabilities. The README describes orchestration not fully present in sampled source, so those documented links are shown; uncertain implementation details are omitted.
Main entry points: run_scan.py Scan Orchestrator · server.py Action Endpoint · runtime.py AI Runtime · remediation_manager.py EC2 Remediation
Components 26
Scanning
- Scan Orchestrator
scanner/run_scan.py - Account Discovery
scanner/account_discovery.py - Account Sessions
scanner/account_session.py - EC2 Scanner
scanner/ec2_scanner.py - EBS Scanner
scanner/ebs_scanner.py - Idle Analysis
engine/idle_engine.py
AI Governance
- AI Runtime
ai/runtime.py - Context Builder
ai/context_builder.py - AI Gateway
ai/gateway.py - Model Providers
ai/providers/factory.py - Policy Engine
policy/engine.py - Policy Rules
policy/rules
Alerts and Remediation
- Slack Notifier
notifications/notifier.py - Action Endpoint
server.py - EC2 Remediation
storage/remediation_manager.py - EBS Remediation
storage/ebs_remediation_manager.py
State and Telemetry
- Remediation Locks
storage/remediation_lock.py - Alert and Snooze State
storage/alert_state_manager.py - Audit and Remediation Ledger
storage/audit_logger.py
Operations
- CLI Runner
main.py - Savings Reports
reporting/savings_report.py - Account Bootstrap
bootstrap/bootstrap_accounts.py
Other components
- Scheduled Trigger
- Slack
- DynamoDB
- AWS Accounts
Connections 38
- Scheduled Trigger → Scan Orchestrator: triggers scan
- CLI Runner → Scan Orchestrator: runs scan
- Scan Orchestrator → Account Discovery: discovers accounts
- Scan Orchestrator → Account Sessions: assumes roles
- Scan Orchestrator → EC2 Scanner: scans instances
- Scan Orchestrator → EBS Scanner: scans volumes
- Scan Orchestrator → Idle Analysis: checks utilization
- Account Discovery → AWS Accounts: queries Organizations
- Account Sessions → AWS Accounts: assumes member roles
- EC2 Scanner → AWS Accounts: reads EC2 metrics
- EBS Scanner → AWS Accounts: reads EBS resources
- Scan Orchestrator → Alert and Snooze State: checks alert state
- Scan Orchestrator → AI Runtime: sends ScanContext
- AI Runtime → Context Builder: builds context
- AI Runtime → AI Gateway: requests suggestions
- AI Gateway → Model Providers: dispatches prompts
- AI Runtime → Policy Engine: validates recommendations
- Policy Engine → Policy Rules: evaluates rules
- Scan Orchestrator → Slack Notifier: dispatches findings
- Slack Notifier → Slack: sends alerts
- Slack → Action Endpoint: posts actions
- Action Endpoint → Alert and Snooze State: updates state
- Action Endpoint → EC2 Remediation: requests stop
- Action Endpoint → EBS Remediation: requests deletion
- EC2 Remediation → Remediation Locks: acquires lock
- EBS Remediation → Remediation Locks: acquires lock
- EC2 Remediation → AWS Accounts: backs up and stops
- EBS Remediation → AWS Accounts: snapshots and deletes
- EC2 Remediation → Audit and Remediation Ledger: records remediation
- EBS Remediation → Audit and Remediation Ledger: records remediation
- Action Endpoint → Audit and Remediation Ledger: logs actions
- Alert and Snooze State → DynamoDB: reads and writes
- Remediation Locks → DynamoDB: coordinates locks
- Audit and Remediation Ledger → DynamoDB: persists records
- CLI Runner → Savings Reports: runs reports
- Savings Reports → DynamoDB: reads savings history
- CLI Runner → Account Bootstrap: bootstraps accounts
- Account Bootstrap → AWS Accounts: configures member roles