Table of Contents

Class InMemoryUsageMeter

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

In-memory usage meter for testing and single-node deployments. Thread-safe via ConcurrentBag<T>.

public sealed class InMemoryUsageMeter : IUsageMeter
Inheritance
InMemoryUsageMeter
Implements
Inherited Members

Properties

RecordCount

Total number of recorded turns.

public int RecordCount { get; }

Property Value

int

Methods

CheckBudgetAsync(BudgetPeriod, CancellationToken)

Checks current budget status against configured limits.

public 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.

public 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.

public 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.

public 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.

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

Parameters

sessionId string
ct CancellationToken

Returns

Task<UsageSummary>

GetTotalUsageAsync(CancellationToken)

Gets total lifetime usage.

public Task<UsageSummary> GetTotalUsageAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task<UsageSummary>

RecordTurnAsync(TurnUsageRecord, CancellationToken)

Records a single agent turn's usage.

public Task RecordTurnAsync(TurnUsageRecord record, CancellationToken ct = default)

Parameters

record TurnUsageRecord
ct CancellationToken

Returns

Task