Skip to content
Tracon

TraconObservabilityOptions

Namespace Tracon · Assembly Tracon.Core.dll

Defines telemetry collection and persistence options.

public sealed class TraconObservabilityOptions

objectTraconObservabilityOptions

object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Tracon does not take over the pipeline: the consumer’s OTLP exporter continues to run. These options only control what Tracon writes to its own span store.

public TraconObservabilityOptions()

Gets or sets whether failed run spans are persisted regardless of sampling ratio.

public bool AlwaysPersistFailures { get; set; }

bool

Gets or sets whether the tracon.job.queue.depth observable gauge publishes measurements.

public bool EnableJobQueueDepthGauge { get; set; }

bool

Disabled by default under the no-surprises rule, for the same reason as TraconObservabilityOptions.EnableQuotaUsageGauge: the gauge reads the database. The tracon.job.executions counter and the tracon.job.duration histogram are not affected by this setting — they cost no extra query and are always written.

Gets or sets whether the tracon.quota.usage and tracon.quota.limit observable gauges are enabled.

public bool EnableQuotaUsageGauge { get; set; }

bool

Disabled by default under the no-surprises rule because the gauge reads the database. Unlike the cost counter, this consumes additional resources and must be explicitly requested.

Gets or sets whether span and metric creation is enabled. When disabled, no Activity starts and no measurement is recorded.

public bool Enabled { get; set; }

bool

Gets or sets whether the tracon.agent.version tag is added to spans and the tracon.runs and tracon.run.duration metrics.

public bool IncludeAgentVersionTag { get; set; }

bool

Defaults to true. A version number creates dozens of time series per agent over time, which is acceptable cardinality. Deployments that change versions very frequently can disable it.

Gets or sets the queue-depth gauge’s cache refresh interval. Consecutive polls do not reach the database before this interval elapses.

public TimeSpan JobQueueDepthRefreshInterval { get; set; }

TimeSpan

Gets or sets how many distinct job lanes may each get a metric series of their own before further lanes are folded into a single other series.

public int MaxJobLaneCardinality { get; set; }

int

A lane name is chosen by the consumer (JobLanes) and its count is unbounded, so it is the one tag value Tracon does not control. This limit is a guard, not a design constraint: an installation with more than 64 meaningful lanes is an operator error rather than a use case. Lanes keep the name they were first seen under for the life of the process; the set never shrinks.

Gets or sets the largest span count held in memory for one run. Excess spans are dropped and a warning is logged.

public int MaxSpansPerRun { get; set; }

int

The sampling decision is made when a run finishes, when success or failure is known. Spans remain in memory until then. This limit bounds memory use by the concurrent run count.

Gets or sets whether spans are written to ITraceStore. When disabled, spans are still created and sent to the consumer exporter, but are not written to Tracon’s own store.

public bool PersistSpans { get; set; }

bool

Gets or sets the quota-gauge cache refresh interval. Consecutive polls do not reach the database before this interval elapses.

public TimeSpan QuotaUsageRefreshInterval { get; set; }

TimeSpan

Gets or sets whether request and response text is written to spans. Disabled by default because this content can contain personal data.

public bool RecordSensitiveData { get; set; }

bool

Gets or sets the fraction from 0 to 1 of successful run spans to persist. Defaults to 0.1, or one tenth.

public double SuccessSampleRatio { get; set; }

double

Persisting every span bottlenecks the database at high volume. Failed runs are valuable for debugging and are separately protected by TraconObservabilityOptions.AlwaysPersistFailures.