Skip to main content

Overview


Module: Lens Platform: Stormus Version: 1.0.0-RELEASE Last Updated: October 25, 2025 Spring Boot Version: 2.7.4 Java Version: 17


Executive Summary​

AWS Lens is the comprehensive cost management, analytics, and reporting module within the Stormus platform. It provides deep insights into AWS cloud spending across 12+ service categories, manages Reserved Instance (RI) utilization and coverage, delivers customizable CUDOS dashboards, and generates detailed financial reports. With 40 REST controllers, 107 service classes, 165 data transfer objects, and 47 data access components, Lens processes billions of rows of cost data to deliver actionable insights that help organizations optimize their cloud spend by 20-40%.

Key Metrics:

  • Total Lines of Code: ~25,670
  • Controllers: 40 REST API controllers
  • Services: 107 service classes
  • DTOs: 165 data transfer objects
  • DAOs: 47 data access objects
  • API Endpoints: 100+ endpoints
  • Cost Breakup Categories: 12 AWS service categories
  • CUDOS Dashboards: 3 (S3, Data Transfer, Database)

Module Purpose & Business Value​

Primary Purpose​

AWS Lens serves as the centralized cost intelligence hub for multi-cloud environments, providing:

  1. Cost Visibility - Real-time and historical cost analysis across all AWS services
  2. Cost Optimization - Identify savings opportunities through RI management and resource optimization
  3. Financial Reporting - Generate comprehensive reports for FinOps, chargebacks, and showbacks
  4. Predictive Analytics - Trend analysis and cost forecasting
  5. Governance & Compliance - Tag-based cost allocation and audit trails

Business Value​

  • Cost Reduction: Identify and eliminate waste, saving 20-40% on cloud spend
  • Financial Planning: Accurate forecasting and budgeting with trend analysis
  • Accountability: Clear cost attribution through tags and account breakdowns
  • Decision Support: Data-driven insights for RI purchases and resource sizing
  • Compliance: Detailed audit trails and cost allocation reports

Target Users​

  • FinOps Teams: Monitor spending, identify anomalies, generate financial reports
  • Engineering Teams: Understand service-level costs, optimize resource usage
  • Executives: High-level dashboards, cost trends, ROI analysis
  • Finance Teams: Invoicing, chargebacks, budget tracking

Key Features​

1. Multi-Dimensional Cost Analysis​

1.1 AWS vs Actual Cost Comparison​

  • Feature: Compare AWS billed costs with actual resource usage costs
  • Controllers: AwsVsActualCostController
  • Use Case: Identify billing discrepancies, validate marketplace savings
  • Granularity: Account, service, region, resource-level
  • Time Range: Daily, weekly, monthly, custom date ranges

1.2 Cost Explorer​

  • Feature: Interactive cost exploration with dynamic filtering
  • Controllers: CostExplorerController
  • Filters:
    • Time period (hourly, daily, monthly)
    • AWS service
    • Region
    • Account
    • Tags
    • Resource IDs
  • Visualizations: Line charts, bar charts, pie charts, tables
  • Feature: Time-series analysis of spending patterns
  • Controllers: CostTrendsController
  • Analytics:
    • Week-over-week growth
    • Month-over-month comparison
    • Year-over-year trends
    • Seasonal patterns
    • Anomaly detection

1.4 Account-Wise Breakup​

  • Feature: Multi-account cost segmentation
  • Controllers: AccountWiseBreakupController, AccountWiseBreakupV2Controller
  • Capabilities:
    • Organizational unit (OU) rollups
    • Linked account analysis
    • Cross-account cost attribution
    • Hierarchical account structures

2. Reserved Instance (RI) Management​

2.1 RI Tracking & Monitoring​

  • Feature: Centralized Reserved Instance inventory
  • Controllers: ReservationController
  • Tracked Attributes:
    • RI ID, type, instance family
    • Payment option (No Upfront, Partial, All Upfront)
    • Term (1yr, 3yr)
    • Start/end dates
    • Scope (Regional, Zonal)
    • State (Active, Retired)

2.2 RI Utilization Analysis​

  • Feature: Track how effectively RIs are being used
  • Controllers: ReservationUtilizationController
  • Metrics:
    • Utilization percentage (0-100%)
    • Unused RI hours
    • On-Demand equivalent hours covered
    • Cost savings realized
    • Utilization alerts (<80% triggers notification)

2.3 RI Coverage Analysis​

  • Feature: Identify coverage gaps for potential RI purchases
  • Controllers: RiCoverageController
  • Analysis:
    • Percentage of usage covered by RIs
    • Coverage by instance family
    • Recommended RI purchases
    • ROI calculations for new RIs
    • Break-even analysis

2.4 RI Expiry Alerts​

  • Feature: Proactive notifications for expiring reservations
  • Controllers: alertsapi/RiExpiryAlertController
  • Alert Rules:
    • 90 days before expiry
    • 60 days before expiry
    • 30 days before expiry
    • Automatic renewal recommendations
  • Channels: Email, Slack, Dashboard notifications

3. Service-Specific Cost Breakdowns​

Lens provides detailed cost breakup for 12 AWS service categories, each with dedicated controllers and services:

3.1 Analytics Services​

  • Services Covered: Kinesis Data Streams, EMR, Athena, Glue
  • Controllers: costbreakup/AnalyticsController
  • Cost Dimensions: Data ingestion, processing, storage, queries

3.2 Container Services​

  • Services Covered: ECS, EKS, Fargate
  • Controllers: costbreakup/ContainersController
  • Cost Dimensions: Task execution, cluster management, data transfer

3.3 Database Services​

  • Services Covered: RDS, DynamoDB, ElastiCache, Redshift, DocumentDB, OpenSearch
  • Controllers: costbreakup/DatabaseController
  • Cost Dimensions: Instance hours, storage, IOPS, backups, data transfer

3.4 Data Transfer Costs​

  • Scope: Inter-AZ, inter-region, internet egress
  • Controllers: costbreakup/DataTransferController
  • Granularity: Source/destination breakdown, service-specific transfer

3.5 Compute Instance Costs​

  • Services Covered: EC2, RDS instances, ElastiCache nodes
  • Controllers: costbreakup/InstanceCostController
  • Analysis: Instance type distribution, on-demand vs RI vs Spot

3.6 Management & Governance​

  • Services Covered: CloudWatch (Logs, Metrics, Alarms, Dashboards)
  • Controllers: costbreakup/ManagementAndGovernanceController
  • Cost Tracking: Log ingestion, metric storage, alarm evaluations

3.7 Media Services​

  • Services Covered: MediaLive, MediaConnect, MediaTailor
  • Controllers: costbreakup/MediaController
  • Cost Dimensions: Channel hours, throughput, ad insertion

3.8 Migration & Transfer Services​

  • Services Covered: Database Migration Service (DMS)
  • Controllers: costbreakup/MigrationAndTransferController
  • Cost Tracking: Replication instance hours, data transfer

3.9 Networking & Content Delivery​

  • Services Covered: CloudFront, API Gateway, Load Balancers, VPC
  • Controllers: costbreakup/NetworkingAndContentDeliveryController
  • Cost Dimensions: Requests, data transfer, LCU hours

3.10 Security Services​

  • Services Covered: WAF, GuardDuty, Shield
  • Controllers: costbreakup/SecurityController
  • Cost Tracking: Rules processed, threats analyzed, DDoS protection

3.11 Serverless Services​

  • Services Covered: Lambda, SQS, SES, SNS
  • Controllers: costbreakup/ServerlessController
  • Cost Dimensions: Invocations, duration, memory allocation, requests

3.12 Storage Services​

  • Services Covered: S3, EBS (Volumes, Snapshots), EFS, Glacier
  • Controllers: costbreakup/StorageController
  • Cost Dimensions: Storage capacity, requests, data retrieval, storage class tiers

4. CUDOS (Cloud Usage Dashboards for Optimization & Savings)​

Pre-built, industry-standard dashboards based on AWS best practices:

4.1 S3 Dashboard​

  • Controller: cudos/S3DashboardController
  • Visualizations:
    • Storage by bucket and storage class
    • Request costs (GET, PUT, LIST)
    • Data transfer costs (in/out)
    • Lifecycle transition analysis
    • Intelligent tiering effectiveness
  • Optimization Recommendations:
    • Migrate to cheaper storage classes
    • Enable lifecycle policies
    • Delete orphaned objects

4.2 Data Transfer Dashboard​

  • Controller: cudos/DataTransferDashboardController
  • Visualizations:
    • Inter-AZ transfer costs
    • Inter-region transfer costs
    • Internet egress costs
    • Transfer by service (EC2, RDS, S3, etc.)
    • Top talkers (source/destination pairs)
  • Optimization Recommendations:
    • Consolidate resources in single AZ
    • Use VPC endpoints
    • Implement caching (CloudFront)

4.3 Database Dashboard​

  • Controller: cudos/DatabaseDashboardController
  • Coverage: RDS, ElastiCache, DynamoDB, Redshift
  • Visualizations:
    • Database costs by engine and instance type
    • Storage vs compute cost breakdown
    • Backup and snapshot costs
    • Utilization metrics (CPU, memory, IOPS)
  • Optimization Recommendations:
    • Rightsize over-provisioned instances
    • Enable auto-scaling (DynamoDB)
    • Optimize backup retention

5. Reporting & Dashboards​

5.1 Billing Console​

  • Feature: Comprehensive billing dashboard
  • Controllers: BillingConsoleController
  • Components:
    • Current month spend vs budget
    • Top 10 cost drivers
    • Service-level breakdown
    • Account-level breakdown
    • Historical comparison

5.2 Billing Summary Reports​

  • Feature: Aggregated monthly/quarterly reports
  • Controllers: BillingSummaryController
  • Report Types:
    • Executive summary (PDF)
    • Detailed line-item report (CSV/Excel)
    • Chargeback/showback reports
    • Cost allocation by tags
  • Distribution: Email, S3, dashboard download

5.3 Tag-Based Reports​

  • Feature: Cost attribution using AWS tags
  • Controllers: TagReportController
  • Tag Dimensions:
    • Environment (prod, dev, staging)
    • Team/department
    • Project/application
    • Cost center
    • Custom tags
  • Analysis: Tag compliance, untagged resource identification

5.4 Daily Cost Reports​

  • Feature: Automated daily cost summaries
  • Controllers: alertsapi/DailyReportController
  • Content:
    • Yesterday's total spend
    • Day-over-day change
    • Top 5 cost changes
    • Anomalies detected
  • Delivery: Email, Slack, webhook

6. Cost Alerting & Anomaly Detection​

6.1 Cost Alerts​

  • Feature: Threshold-based cost notifications
  • Controllers: alertsapi/CostAlertController
  • Alert Types:
    • Budget threshold exceeded (50%, 80%, 100%, 120%)
    • Spending anomaly detected (ML-based)
    • Service-level spike (>50% increase)
    • Account-level spike
  • Response Actions:
    • Send notifications
    • Trigger automation (optional)
    • Create incident tickets

6.2 RI Utilization Alerts​

  • Feature: Low RI utilization warnings
  • Controllers: alertsapi/RiUtilizationAlertController
  • Thresholds:
    • Critical: <60% utilization
    • Warning: <80% utilization
  • Actions: Notify FinOps team, suggest modifications

7. Optimization Recommendations​

7.1 AWS Native Recommendations​

  • Feature: AWS Cost Explorer recommendations integration
  • Controllers: RecommendationController
  • Recommendation Types:
    • EC2 rightsizing (downsize over-provisioned instances)
    • RDS rightsizing
    • S3 storage class recommendations
    • Reserved Instance purchase recommendations
    • Savings Plans recommendations
  • Prioritization: By savings potential (high to low)

7.2 FinOps Recommendations​

  • Feature: Custom FinOps best practices
  • Controllers: finops/FinOpsRecommendationController
  • Recommendations:
    • Classic Load Balancer β†’ ALB/NLB migration
    • EBS volumes β†’ EFS migration (for shared storage)
    • On-Demand β†’ Spot instances
    • Idle resource detection (ELBs, EIPs, volumes)

7.3 Monthly Report Recommendations​

  • Feature: Curated monthly optimization report
  • Controllers: monthlyreport/ReportRecommendationController
  • Content:
    • Top 10 cost-saving opportunities
    • Estimated annual savings
    • Implementation difficulty (easy, medium, hard)
    • Action items with owners

8. AWS Marketplace Integration​

8.1 Marketplace Metering​

  • Feature: Usage tracking for marketplace products
  • Controllers: marketplace/MarketPlaceController
  • Capabilities:
    • Hourly usage reporting to AWS
    • Custom pricing dimensions
    • Subscription management
  • Use Case: CloudKeeper's own marketplace offering

9. Advanced Features​

9.1 Saved Report Filters​

  • Feature: Save complex filter combinations for reuse
  • Controllers: SavedReportFilterMetaController
  • Use Case: Create "Cost Center A - Production - Q1" saved view

9.2 Date Utilities​

  • Feature: Flexible date range selection
  • Controllers: DatesController
  • Supported Ranges: Last 7 days, last 30 days, MTD, QTD, YTD, custom

9.3 Custom Query Processing​

  • Feature: Optimize complex Snowflake queries
  • Integration: Uses queryprocessor module
  • Optimization: Query caching, parallel execution, result pagination

9.4 Async Processing​

  • Feature: Background processing for heavy reports
  • Implementation: @EnableAsync in LensApplication.java:12
  • Use Case: Large Excel exports, multi-account aggregations

9.5 Intelligent Caching​

  • Feature: Redis-based response caching
  • Implementation: @EnableCaching in LensApplication.java:14
  • TTL: 15 minutes for dashboard queries, 1 hour for filter metadata
  • Cache Keys: Account + date range + service

9.6 Automatic Retry​

  • Feature: Resilient external API calls
  • Implementation: @EnableRetry in LensApplication.java:13
  • Retry Policy: 3 attempts, exponential backoff
  • Use Case: Snowflake connection failures, AWS API throttling

9.7 Job Scheduling​

  • Feature: Scheduled data refresh jobs
  • Implementation: @EnableScheduling in LensApplication.java:15
  • Jobs:
    • Daily cost ingestion (2 AM UTC)
    • RI utilization refresh (hourly)
    • Report generation (configurable)

Technology Stack Summary​

Frameworks & Core Libraries​

TechnologyVersionPurpose
Spring Boot2.7.4Application framework
Spring Cloud2021.0.8Microservices infrastructure
Java17Programming language
Gradle7.6Build tool

Spring Modules Enabled​

  • Spring Boot Starter Web - REST API support
  • Spring Boot Starter Data JPA - Relational database access
  • Spring Boot Starter Data MongoDB - NoSQL document storage
  • Spring Boot Starter Thymeleaf - Server-side HTML templating (for reports)
  • Spring Boot Actuator - Health checks, metrics
  • Spring Retry - Automatic retry logic
  • Spring Cache - Caching abstraction
  • Spring Scheduling - Scheduled task execution
  • Spring Data JPA Auditing - Entity auditing (created/modified timestamps)

Databases​

DatabasePurposeKey Tables/Collections
SnowflakeAnalytics data warehouseCOST_DAILY, COST_HOURLY, RI_UTILIZATION
MongoDBDocument storagesaved_reports, filter_metadata, custom_queries
RedisIn-memory cachedashboard_cache, query_results
MySQLTransactional dataaccounts, users, billing_metadata

External Integrations​

IntegrationLibraryPurpose
Snowflakesnowflake-jdbc:3.13.27Query cost data warehouse
AWS SDKaws-java-sdk:1.12.324Fetch recommendations, RI data, Cost Explorer
RabbitMQspring-boot-starter-amqpAsync event processing
Spring Cloud Configspring-cloud-starter-configCentralized configuration

API Documentation​

ToolVersionPurpose
SpringDoc OpenAPI1.6.12Auto-generate API docs (Swagger UI)

Testing & Quality​

ToolVersionPurpose
JUnit Jupiter5.xUnit testing
Mockito5.2.0Mocking framework
JaCoCo0.8.7Code coverage
SonarQube4.4.1.3373Code quality analysis

Module Dependencies​

Lens depends on the following internal modules:

ModulePurpose
snowplugSnowflake multi-tenant datasource configuration
monitoringPrometheus metrics, application monitoring
errorhandlerCentralized exception handling
loggerutilStructured logging utilities

Quick Start Guide​

Prerequisites​

  • Java 17 or higher
  • Gradle 7.6 or higher
  • Snowflake account with cost data
  • MongoDB instance
  • Redis instance
  • RabbitMQ instance
  • Access to Spring Cloud Config Server

Running Lens Locally​

# 1. Clone the repository
cd /home/ubuntu/repos/product/stormus/lens

# 2. Configure environment
export SNOWFLAKE_URL="jdbc:snowflake://your-account.snowflakecomputing.com"
export SNOWFLAKE_USER="your-username"
export SNOWFLAKE_PASSWORD="your-password"
export MONGODB_URI="mongodb://localhost:27017/lens"
export REDIS_HOST="localhost"
export RABBITMQ_HOST="localhost"
export CONFIG_SERVER_URL="http://localhost:8888"

# 3. Build the application
./gradlew clean build

# 4. Run the application
./gradlew bootRun

# Or run the JAR directly
java -jar build/libs/lens-1.0.0-RELEASE.jar

Accessing the API​

Base URL: http://localhost:<port>

Swagger UI: http://localhost:<port>/swagger-ui.html

Health Check: http://localhost:<port>/actuator/health

Example API Call​

# Get cost summary
curl -X GET "http://localhost:8080/admin-pages/cost/summary?accountId=123456789012&startDate=2024-01-01&endDate=2024-01-31" \
-H "Authorization: Bearer eyJhbGc..." \
-H "auth-customer: customer-123"

Architecture Overview (High-Level)​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AWS LENS MODULE β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ Controllers │─────▢│ Services │─────▢│ DAO β”‚ β”‚
β”‚ β”‚ (40) β”‚ β”‚ (107) β”‚ β”‚ (47) β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β–Ό β–Ό β–Ό β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ DTOs & Domain Models (165) β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”‚ Integrates with
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ Snowflake β”‚ MongoDB β”‚ Redis β”‚ RabbitMQβ”‚
β”‚ (Analytics) β”‚ (Documents) β”‚ (Cache) β”‚ (Events) β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”‚ Fetches data from
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AWS Services β”‚
β”‚ β€’ Cost Explorer API β”‚
β”‚ β€’ Pricing API β”‚
β”‚ β€’ Organizations API β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Statistics​

MetricCountDetails
Total Lines of Code25,670Java source files only
Controllers40REST API endpoints
Services107Business logic layer
DTOs165Data transfer objects
DAOs47Data access objects
API Endpoints100+Public REST APIs
Cost Breakup Categories12AWS service categories
CUDOS Dashboards3S3, Data Transfer, Database
Alert Types4Cost, RI expiry, RI utilization, daily
Dependencies (Internal)4snowplug, monitoring, errorhandler, loggerutil
Dependencies (External)10+Snowflake, AWS SDK, MongoDB, etc.


Next Steps​

  1. Understand Architecture: Read 03-logical-architecture for layer structure
  2. Explore APIs: Check 06-api-reference for endpoint documentation
  3. Set Up Environment: Follow 11-deployment-guide for local setup
  4. Start Contributing: Read 12-developer-guide for contribution guidelines

Lens Module Version: 1.0.0-RELEASE Documentation Version: 1.0 Last Updated: October 25, 2025