Skip to content

#591 Implement infrastructure as code (IaC) with Terraform#766

Merged
RUKAYAT-CODER merged 1 commit into
rinafcode:mainfrom
Purity-Euphemia:Implement-infrastructure-as-code-IaC-with-Terraform
Jun 1, 2026
Merged

#591 Implement infrastructure as code (IaC) with Terraform#766
RUKAYAT-CODER merged 1 commit into
rinafcode:mainfrom
Purity-Euphemia:Implement-infrastructure-as-code-IaC-with-Terraform

Conversation

@Purity-Euphemia
Copy link
Copy Markdown
Contributor

Closes #591

Summary

Add compatibility support for local analytics and cost tracking validation, plus Prometheus scrape alias support.

Changes

  • src/analytics/analytics.controller.ts
    • Added POST /analytics/event compatibility endpoint.
  • src/monitoring/cost.controller.ts
    • Added POST /metrics/cost to record hourly infrastructure cost.
    • Added GET /monitoring/cost/summary for 24h cost summary.
  • src/monitoring/dto/record-cost.dto.ts
    • Added validated DTO for cost payloads.
  • src/monitoring/monitoring.module.ts
    • Registered CostController, CostTrackingService, and CostSchedulerService.
  • src/monitoring/metrics/prometheus.controller.ts
    • Added legacy alias GET /observability/metrics/export/prometheus for compatibility.
  • src/observability/README.md
    • Updated docs to show /metrics as the main Prometheus scrape endpoint and alias support.

Tests

  • src/monitoring/cost.controller.spec.ts
    • Verifies hourly cost recording and summary response.
  • src/monitoring/metrics/prometheus.controller.spec.ts
    • Verifies both /metrics and /observability/metrics/export/prometheus alias behavior.

Notes

  • Existing analytics event tracking via POST /analytics/events remains unchanged.
  • The new /analytics/event endpoint provides backward-compatible support for legacy tooling expecting a single-event route.
  • Prometheus metrics are still exposed on /metrics, with an additional compatibility alias.

Validation

  1. Run unit tests covering the new controllers.
  2. Send a POST request to /metrics/cost with { "amountUsd": 5 } and verify success.
  3. Send a GET request to /metrics and /observability/metrics/export/prometheus and verify Prometheus text format.
  4. Send a POST request to /analytics/event with category and action and verify event tracking is accepted.

@RUKAYAT-CODER
Copy link
Copy Markdown
Contributor

Thank you for contributing to the project.

@RUKAYAT-CODER RUKAYAT-CODER merged commit fa13794 into rinafcode:main Jun 1, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement infrastructure as code (IaC) with Terraform

2 participants