Table of Contents

Class ObservabilityBridgeOptions

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

Configuration options for the Observability Bridge that exports Resource System metrics to OpenTelemetry format.

public class ObservabilityBridgeOptions
Inheritance
ObservabilityBridgeOptions
Inherited Members

Remarks

The Observability Bridge periodically captures ResourceSnapshot instances and exposes them as OTel-compatible metrics via Meter.

Consumers can attach their preferred OTel exporters (Prometheus, OTLP, Console, etc.) to capture these metrics.

Constructors

ObservabilityBridgeOptions()

public ObservabilityBridgeOptions()

Fields

SectionName

The configuration section name for observability bridge settings.

public const string SectionName = "Typhon:ObservabilityBridge"

Field Value

string

Properties

ExportCapacityMetrics

Export CapacityMetrics (Current, Maximum, Utilization) to OTel. Default: true.

public bool ExportCapacityMetrics { get; set; }

Property Value

bool

ExportDiskIOMetrics

Export DiskIOMetrics (ReadOps, WriteOps, ReadBytes, WriteBytes) to OTel. Default: true.

public bool ExportDiskIOMetrics { get; set; }

Property Value

bool

ExportDurationMetrics

Export DurationMetric values (LastUs, AvgUs, MaxUs) to OTel. Default: true.

public bool ExportDurationMetrics { get; set; }

Property Value

bool

ExportMemoryMetrics

Export MemoryMetrics (AllocatedBytes, PeakBytes) to OTel. Default: true.

public bool ExportMemoryMetrics { get; set; }

Property Value

bool

ExportThroughputMetrics

Export ThroughputMetric counters to OTel. Default: true.

public bool ExportThroughputMetrics { get; set; }

Property Value

bool

MetricNamePrefix

Prefix for all OTel metric names. Default: "typhon.resource".

public string MetricNamePrefix { get; set; }

Property Value

string

Remarks

Metric names follow the pattern: {prefix}.{path}.{kind}.{sub}

// With default prefix:
// Storage/PageCache Memory.AllocatedBytes → typhon.resource.storage.page_cache.memory.allocated_bytes

SnapshotInterval

How often to capture a new ResourceSnapshot from the IResourceGraph. Default: 5 seconds.

public TimeSpan SnapshotInterval { get; set; }

Property Value

TimeSpan

Remarks

A 5-second interval balances freshness against overhead. Snapshots are lightweight (~50ns per node), so shorter intervals are feasible for high-resolution monitoring.

Thresholds

Health check thresholds per resource path. Key: normalized path (e.g., "Storage/PageCache"), Value: threshold configuration.

public Dictionary<string, HealthThresholds> Thresholds { get; set; }

Property Value

Dictionary<string, HealthThresholds>

Remarks

Paths not in this dictionary use default thresholds:

  • Degraded: 80% utilization
  • Unhealthy: 95% utilization