Table of Contents

Dashboards Public API Reference

This page documents Orleans.Lattice.Dashboards 9.9.0, in the documentation for Orleans.Lattice 9.9.0 (release line 9.9), built 2026-10-04. It is also published as markdown, with every table and list, at api.md, and llms.txt lists every page.

This document is the contract for the public Orleans.Lattice.Dashboards surface. The package exposes a single accessor type and a kind enum; everything else (the embedded JSON resources, the resource-name resolution) is an internal detail described by behaviour in Architecture.

Retrieving a dashboard

using Orleans.Lattice.Dashboards;

public static class DashboardExample
{
    public static string GetOverviewJson()
        => LatticeDashboards.GetGrafanaDashboardJson(LatticeDashboardKind.Overview);
}
Type Kind Purpose Key public members
LatticeDashboards static class Retrieves the bundled Grafana dashboard JSON. GetGrafanaDashboardJson(LatticeDashboardKind), All
LatticeDashboardKind enum Identifies one bundled dashboard, each resolving to a focused operator workflow. Overview, CommitPath, Replication, AtomicWrites, MaterialisedViews, Authorization, Backup, Scaling, ReplicationGrpc, Tenancy, GrainIndex

LatticeDashboards

Member Semantics
string GetGrafanaDashboardJson(LatticeDashboardKind kind) Returns the Grafana dashboard JSON for kind as a UTF-8 string. The result is a complete Grafana dashboard model (panels, templating, time range) suitable for import. Throws ArgumentOutOfRangeException when kind is not a defined value. The call is synchronous and performs no I/O beyond reading an embedded resource.
IReadOnlyList<LatticeDashboardKind> All Every dashboard kind shipped with the package, in declaration order. Use it to enumerate and export all dashboards in one pass.

LatticeDashboardKind

Value Source meter Operator workflow
Overview orleans.lattice, plus Orleans.Lattice.Api.Mcp.RepoContext for its exact-KNN panels At-a-glance per-tree throughput, latency envelopes, cache hit-rate, tombstone churn, splits, split admission and forwarding, shard consolidation and healing, compaction, atomic-write outcomes, coordinator completions and phase-tick failures, lifecycle, events, and runtime configuration changes, plus storage footprint, WAL compression and saturation, snapshot, write-admission, distributed-lock, atomic-action (saga / TCC), grain-call contention, tree-registry, shard-root optimistic point-read and leaf-division panels, and three exact-KNN gather panels (work, wall time, and budget and gather outcomes) over the repository-context meter, which populate only where that package is hosted and its meter exported. Does not require the replication package.
CommitPath orleans.lattice WAL-first commit pipeline: per-step commit latency, leaf commit concurrency and per-observer latency, SetAsync / SetManyAsync envelope and stage breakdowns, the WAL append, writer-admission and shard-dispatch pipeline, storage-provider write latency, phase-2 commit, retries and timeouts, LatticeSaturatedException refusals by refusing seam and the replay-admission refusals by arm, compaction latency, scan-page coalescing and shard-root wedge guards, and leaf lifecycle diagnostics (materialiser pin path, activation and deactivation outcomes, snapshot capture and hydration, the WAL replay permit gate, deferred-terminal ledger refusals, the resident leaf working set, span fail-open commits, the WAL GC blocked-consumer population).
Replication orleans.lattice.replication, plus orleans.lattice for its WAL, WAL-compaction and WAL GC panels Cross-cluster operator view: ship / apply / lag durations, WAL ship vs trim throughput and the log-tailing producer's append vs ship rate, dead-letter churn, apply FIFO and causal violations, causal apply-buffer occupancy, fall-off-log events, per-peer cursor lag, batches in flight and wire version, and anti-entropy (digest probes, Merkle walks, leaf re-replay, drift remediation), bootstrap, shipping-optimisation and coordinated-restore panels. Its replication panels need the replication package registered on the silo; its WAL, WAL-compaction and WAL GC panels read the core meter.
AtomicWrites orleans.lattice SetManyAtomicAsync saga deep-dive: outcome rate, saga duration and batch-size percentiles, per-tree committed throughput, a dedicated saga-failure-rate panel, saga phase and per-key breakdowns, cross-tree atomic-write outcome, failure-rate, duration and fan-out panels, and saga decision registry write-rate, group-commit coalescing and write-duration panels.
MaterialisedViews orleans.lattice Cluster-wide materialised-view health: apply-lag and drain-backlog-depth percentiles, filter / re-project and aggregation apply throughput, and warning panels for lag-budget evictions, re-key collisions, atomic-staging backstop fall-backs, cross-tree joint-atomicity violations, source back-pressure self-throttling, and aggregation reserved-key rejections. Keyed by view name (and cluster); no per-silo filter, because a view's maintainer is a single grain activation that migrates between silos. Does not require the replication package.
Authorization orleans.lattice.auth, orleans.lattice.membership Identity and authorization operator view: enforcement-gate decision throughput (by effect and operation), decision-latency percentiles, compiled-snapshot rebuild rate and the snapshot epoch / age / subjects gauges, plus subject-resolution cache hit-ratio and hit / miss throughput and identity-directory search latency, hit / miss throughput and hit ratio. Useful only when the authentication / authorization packages are registered on the silo.
Backup orleans.lattice.backup Backup / restore operator view: capture / restore throughput and duration percentiles, per-backup size / artifact / entry distributions, cumulative processed throughput, retention reclaim and prune rates, incremental lag behind the base cut, capture / restore failure rates by reason, capture retries, scheduler skipped-run, overrun and capture-failure counters, cross-tree-consistent fence selection / drain / retry counters and drain-wait percentiles, and the inventory gauges. Useful only when the backup package is registered on the silo.
Scaling orleans.lattice.scaling Autoscaling-signal operator view: the smoothed scale-in-gated and raw instantaneous scale-value gauges, the three normalised compute-pressure dimensions (activation / host-resource / WAL-dispatch), the recommended silo replica count, and the storage-axis stats. Useful only when the scaling package is registered on the silo.
ReplicationGrpc orleans.lattice.replication.grpc Replication gRPC transport-security view: the insecure (plaintext) channel construction counter as a cluster-wide cumulative total and as a per-second rate broken out by peer cluster id and transport (push / saga_control / snapshot), so an accidental plaintext downgrade under AllowPlaintextEndpoints is visible. Useful only when the gRPC replication transport is registered on the silo.
Tenancy orleans.lattice.tenancy Per-tenant observability view: the registered-tenant count (cluster aggregate) and, dimensioned by tenant, the usage series (stored bytes, live keys, resident memory, owned trees), the quota ceilings and burst-headroom percentage, and the durable metered overage series (bytes / keys / memory / trees). A templated tenant variable scopes every per-tenant panel to one tenant or to all tenants; the registered-tenant count is a cluster aggregate and ignores it. Useful only when the tenancy package is registered on the silo.
GrainIndex orleans.lattice Grain-index operator view: each index's backfill lifecycle state and percent complete, its processed-versus-total crawl progress, its live entry count, onboarding throughput split by route (activation versus backfill), projection-latency percentiles, and index-write failure rates by route. A templated index variable scopes every panel to one index or to all of them. Sources the shared core meter - the grain-index package publishes no meter of its own - but the series appear only once the grain-index package is registered on the silo.

Enumerating every dashboard

using Orleans.Lattice.Dashboards;

public static class DashboardExporter
{
    public static IEnumerable<(LatticeDashboardKind Kind, string Json)> ReadAll()
    {
        foreach (LatticeDashboardKind kind in LatticeDashboards.All)
        {
            string json = LatticeDashboards.GetGrafanaDashboardJson(kind);
            yield return (kind, json);
        }
    }
}

See also