How akash-29-1995/multicloud-disk-monitoring-architecture works
Lucidity enrolls EC2 instances for continuous disk monitoring: an operator or Jenkins triggers discovery, the orchestrator writes Ansible inventory, Ansible configures the agent through SSM, and CloudWatch collects metrics and drives dashboards and alarms. Terraform provisions the monitoring roles and CloudWatch resources; Ansible also supports reconciliation and host validation. GCP and Azure are documented extension points, but their adapters are stubs. Relationships for infrastructure and Ansible are based on the README; source-level edges are limited to the supplied orchestrator excerpts.
Main entry points: Jenkinsfile Jenkins stages · main.py Orchestrator CLI · factory.py Adapter selection · aws.py AWS discovery adapter
Components 29
Setup triggers
- Jenkins stages
jenkins/Jenkinsfile
Discovery and inventory
- Orchestrator CLI
orchestrator/main.py - Parameter and registry validation
orchestrator/validators/params.py - Customer account registry
config/customer-accounts.template.yaml - Monitoring profiles
config/monitoring-profiles.yaml - Adapter selection
orchestrator/adapters/factory.py - AWS discovery adapter
orchestrator/adapters/aws.py - Cross-account AssumeRole
orchestrator/auth/sts.py - Cloud adapter interface
orchestrator/adapters/base.py - GCP adapter stub
orchestrator/adapters/gcp.py - Azure adapter stub
orchestrator/adapters/azure.py - Normalized inventory models
orchestrator/inventory/models.py - Inventory file generator
orchestrator/inventory/generator.py - Generated Ansible inventory
ansible/inventory/orchestrator-output
Agent enrollment
- Enrollment playbook
ansible/playbooks/enroll-disk-monitoring.yml - Reconcile playbook
ansible/playbooks/reconcile-agent-config.yml - Host validation playbook
ansible/playbooks/validate-agent-on-host.yml - CloudWatch Agent role
ansible/roles/cloudwatch_agent/tasks/main.yml
Monitoring
- CloudWatch Agent
- CloudWatch metrics
cloudwatch - Monitoring dashboard
cloudwatch/dashboard.json - Disk and agent alarms
cloudwatch/alarms.json - Email notifications
AWS provisioning
- Terraform environments
terraform/environments - CloudWatch resources
terraform/modules/cloudwatch/main.tf - Monitoring IAM roles
terraform/modules/monitoring-role/main.tf
Other components
- Operator
- AWS Systems Manager
- EC2 instances
Connections 37
- Operator → Orchestrator CLI: runs discovery
README.md - Operator → Jenkins stages: triggers setup
README.md - Jenkins stages → Orchestrator CLI: triggers discovery
README.md - Orchestrator CLI → Parameter and registry validation: validates and resolves
orchestrator/main.py - Parameter and registry validation → Customer account registry: reads registry
- Parameter and registry validation → Monitoring profiles: loads profile
- Orchestrator CLI → Adapter selection: selects adapter
orchestrator/main.py - Adapter selection → AWS discovery adapter: creates AWS adapter
orchestrator/adapters/factory.py - Adapter selection → GCP adapter stub: creates GCP adapter
orchestrator/adapters/factory.py - Adapter selection → Azure adapter stub: creates Azure adapter
orchestrator/adapters/factory.py - Adapter selection → Cloud adapter interface: returns interface
orchestrator/adapters/factory.py - Orchestrator CLI → AWS discovery adapter: runs discovery
orchestrator/main.py - AWS discovery adapter → Cross-account AssumeRole: assumes role
orchestrator/adapters/aws.py - AWS discovery adapter → EC2 instances: finds tagged instances
README.md - AWS discovery adapter → Normalized inventory models: normalizes hosts
orchestrator/adapters/aws.py - Orchestrator CLI → Inventory file generator: writes inventory
orchestrator/main.py - Inventory file generator → Normalized inventory models: serializes inventory
orchestrator/inventory/generator.py - Inventory file generator → Generated Ansible inventory: writes files
- Generated Ansible inventory → Enrollment playbook: supplies host inventory
README.md - Generated Ansible inventory → Reconcile playbook: supplies host inventory
README.md - Jenkins stages → Enrollment playbook: triggers enrollment
README.md - Jenkins stages → Reconcile playbook: triggers autoheal
README.md - Jenkins stages → Host validation playbook: triggers validation
README.md - Enrollment playbook → CloudWatch Agent role: uses role
README.md - Reconcile playbook → CloudWatch Agent role: uses role
README.md - Host validation playbook → AWS Systems Manager: validates via SSM
README.md - Enrollment playbook → AWS Systems Manager: configures via SSM
README.md - CloudWatch Agent role → CloudWatch Agent: installs and configures
README.md - CloudWatch Agent → CloudWatch metrics: publishes metrics
README.md - CloudWatch metrics → Monitoring dashboard: feeds dashboard
README.md - CloudWatch metrics → Disk and agent alarms: feeds alarms
README.md - Disk and agent alarms → Email notifications: sends alerts
README.md - Disk and agent alarms → Jenkins stages: triggers autoheal
README.md - Terraform environments → CloudWatch resources: configures resources
README.md - Terraform environments → Monitoring IAM roles: provisions roles
README.md - Monitoring IAM roles → AWS Systems Manager: grants access
README.md - CloudWatch resources → CloudWatch metrics: provisions monitoring
README.md