Table of Contents

Interface IUsageMeter

Namespace
JD.AI.Core.Usage
Assembly
JD.AI.Core.dll

Centralized usage metering service for tracking token consumption, cost estimation, and budget enforcement across all providers.

public interface IUsageMeter

Methods

CheckBudgetAsync(BudgetPeriod, CancellationToken)

Checks current budget status against configured limits.

Task<BudgetStatus> CheckBudgetAsync(BudgetPeriod period = BudgetPeriod.Monthly, CancellationToken ct = default)

Parameters

period BudgetPeriod
ct CancellationToken

Returns

Task<BudgetStatus>

ExportAsync(UsageExportFormat, DateTimeOffset?, DateTimeOffset?, CancellationToken)

Exports usage data in the specified format.

Task<string> ExportAsync(UsageExportFormat format, DateTimeOffset? from = null, DateTimeOffset? until = null, CancellationToken ct = default)

Parameters

format UsageExportFormat
from DateTimeOffset?
until DateTimeOffset?
ct CancellationToken

Returns

Task<string>

GetPeriodUsageAsync(DateTimeOffset, DateTimeOffset, CancellationToken)

Gets aggregated usage for a time period.

Task<UsageSummary> GetPeriodUsageAsync(DateTimeOffset from, DateTimeOffset until, CancellationToken ct = default)

Parameters

from DateTimeOffset
until DateTimeOffset
ct CancellationToken

Returns

Task<UsageSummary>

GetProjectUsageAsync(string, CancellationToken)

Gets aggregated usage for a project path.

Task<UsageSummary> GetProjectUsageAsync(string projectPath, CancellationToken ct = default)

Parameters

projectPath string
ct CancellationToken

Returns

Task<UsageSummary>

GetSessionUsageAsync(string, CancellationToken)

Gets aggregated usage for a session.

Task<UsageSummary> GetSessionUsageAsync(string sessionId, CancellationToken ct = default)

Parameters

sessionId string
ct CancellationToken

Returns

Task<UsageSummary>

GetTotalUsageAsync(CancellationToken)

Gets total lifetime usage.

Task<UsageSummary> GetTotalUsageAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<UsageSummary>

RecordTurnAsync(TurnUsageRecord, CancellationToken)

Records a single agent turn's usage.

Task RecordTurnAsync(TurnUsageRecord record, CancellationToken ct = default)

Parameters

record TurnUsageRecord
ct CancellationToken

Returns

Task