Public/Monitor/Get-TBQuotaStatus.ps1

function Get-TBQuotaStatus {
    <#
    .SYNOPSIS
        Returns current UTCM quota usage and limits.
    .DESCRIPTION
        Queries the current number of monitors and snapshot jobs, then compares
        against the documented UTCM limits (30 monitors, 800 monitored
        resource-instances per day, 12 snapshot jobs).
    .EXAMPLE
        Get-TBQuotaStatus
    #>

    [CmdletBinding()]
    [OutputType([PSCustomObject])]
    param()

    $monitors = @(Get-TBMonitor)

    $totalBaselineResources = 0
    foreach ($monitor in $monitors) {
        try {
            $baseline = Get-TBBaseline -MonitorId $monitor.Id
            $totalBaselineResources += @($baseline.Resources).Count
        }
        catch {
            Write-TBLog -Message ('Could not load baseline for monitor {0}: {1}' -f $monitor.Id, $_.Exception.Message) -Level 'Warning'
        }
    }

    # UTCM runs 4 evaluation cycles per day
    $monitoredResourcesPerDay = $totalBaselineResources * 4

    $snapshots = @(Get-TBSnapshot)

    [PSCustomObject]@{
        PSTypeName                = 'TenantBaseline.QuotaStatus'
        MonitorCount              = $monitors.Count
        MonitorLimit              = 30
        TotalBaselineResources    = $totalBaselineResources
        MonitoredResourcesPerDay  = $monitoredResourcesPerDay
        ResourceDayLimit          = 800
        SnapshotJobCount          = $snapshots.Count
        SnapshotJobLimit          = 12
    }
}