package views import ( "vctp/components/core" ) type BuildInfo struct { BuildTime string SHA1Ver string GoVersion string } templ Index(info BuildInfo) { @core.Header()
vCTP Console

Chargeback Intelligence Dashboard

Point in time snapshots of consumption.

Build Time

{info.BuildTime}

SHA1 Version

{info.SHA1Ver}

Go Runtime

{info.GoVersion}

Overview

vCTP is a vSphere Chargeback Tracking Platform.

Snapshots and Reports

  • Hourly snapshots capture inventory per vCenter (concurrency via `hourly_snapshot_concurrency`).
  • Daily summaries aggregate the hourly snapshots for the day; monthly summaries aggregate daily summaries for the month (or hourly snapshots if configured).
  • Snapshots are registered in `snapshot_registry` so regeneration via `/api/snapshots/aggregate` can locate the correct tables (fallback scanning is also supported).
  • Reports (XLSX with totals/charts) are generated automatically after hourly, daily, and monthly jobs and written to a reports directory.

Prorating and Aggregation

  • SamplesPresent is the count of snapshots in which the VM appears; TotalSamples is the count of unique snapshot times for the vCenter.
  • AvgIsPresent = SamplesPresent / TotalSamples (0 when TotalSamples is 0).
  • Daily AvgVcpuCount/AvgRamGB/AvgProvisionedDisk = AvgIsPresent * last observed value for the day.
  • Daily pool percentages use pool hits divided by SamplesPresent, so they reflect only the time the VM existed.
  • Monthly aggregation weights daily averages by daily total samples, then divides by monthly total samples.
@core.Footer() }