# MentorMetricsSnapshot record

> The MentorMetricsSnapshot record of Novior.MentorAgent.Abstractions.Models: A point-in-time view of MentorAgent usage for the admin token & cost dashboard…

- URL: https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentormetricssnapshot
- Verified with: MentorAgent 1.2.0
- Last updated: 2026-10-27
- Packages: Novior.MentorAgent.Abstractions

A point-in-time view of MentorAgent usage for the admin token &amp; cost dashboard (roadmap \#9). Produced by `IMentorMetrics.GetSnapshot()`. Process-wide (single instance); for multi-instance production aggregation use OpenTelemetry (roadmap \#8).

## Definition

Namespace: `Novior.MentorAgent.Abstractions.Models`. Package: `Novior.MentorAgent.Abstractions`.

`public sealed record MentorMetricsSnapshot : IEquatable<MentorMetricsSnapshot>`

```shell
dotnet add package Novior.MentorAgent.Abstractions
```

## Constructors

`public MentorMetricsSnapshot()`

## Properties

### `DeflectionRate`

`public double DeflectionRate { get; }`

Share of turns served without error/guardrail block (0–1).

### `ErrorCount`

`public long ErrorCount { get; init; }`

Turns that ended in an error.

### `GeneratedAt`

`public DateTimeOffset GeneratedAt { get; init; }`

When this snapshot was produced (UTC).

### `GuardrailBlockCount`

`public long GuardrailBlockCount { get; init; }`

Messages blocked by the input guardrail — the safety check, a custom `InputGuardrail`, and `RefuseOutOfScope` refusals — plus replies withheld by the output check.

### `InputCost`

`public decimal? InputCost { get; init; }`

Estimated input cost — `null` when no pricing is configured for the model.

### `ModelId`

`public string? ModelId { get; init; }`

Primary chat model id used for pricing (`null` if unknown).

### `Models`

`public IReadOnlyList<MentorModelUsage> Models { get; init; }`

Per-model usage, cost and time series (roadmap \#9) — typically the cheap chat model, the strong routing model and the embedding model. Empty on legacy snapshots; the aggregate fields above are the sum across these entries.

### `OutputCost`

`public decimal? OutputCost { get; init; }`

Estimated output cost — `null` when no pricing is configured.

### `RequestCount`

`public long RequestCount { get; init; }`

Model round-trips recorded.

### `SeriesBucketMinutes`

`public int SeriesBucketMinutes { get; init; }`

Width of each [`MentorUsagePoint`](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentorusagepoint) time-series bucket, in minutes (default 60).

### `ServedCount`

`public long ServedCount { get; init; }`

Turns completed without an error or guardrail block — the deflection proxy.

### `TopActions`

`public IReadOnlyList<MentorActionCount> TopActions { get; init; }`

Most-invoked tools/actions, highest first.

### `TotalCost`

`public decimal? TotalCost { get; }`

Estimated total cost, or `null` when pricing is not available.

### `TotalInputTokens`

`public long TotalInputTokens { get; init; }`

Cumulative input (prompt) tokens.

### `TotalOutputTokens`

`public long TotalOutputTokens { get; init; }`

Cumulative output (completion) tokens.

### `TotalTokens`

`public long TotalTokens { get; }`

Cumulative total tokens.

### `TurnCount`

`public long TurnCount { get; init; }`

User messages (turns) received.

---

- Previous: [MentorMcpExposure enum](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentormcpexposure.md)
- Next: [MentorModelKind enum](https://docs.mentoragent.net/api/novior-mentoragent-abstractions-models/mentormodelkind.md)
