observability

package
v1.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package observability provides tracing and metrics middleware for Nexus.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Counter

type Counter struct {
	// contains filtered or unexported fields
}

Counter is a simple atomic counter for metrics. In a full integration, this would be backed by gu.Counter or Prometheus.

func (*Counter) Add

func (c *Counter) Add(n int64)

Add increments the counter by n.

func (*Counter) Inc

func (c *Counter) Inc()

Inc increments the counter.

func (*Counter) Value

func (c *Counter) Value() int64

Value returns the current count.

type MetricsExtension

type MetricsExtension struct {
	RequestsReceived  Counter
	RequestsCompleted Counter
	RequestsFailed    Counter
	RequestsCached    Counter

	ProviderFailures Counter
	CircuitOpens     Counter
	Fallbacks        Counter

	GuardrailBlocks  Counter
	GuardrailRedacts Counter

	TenantsCreated  Counter
	TenantsDisabled Counter
	KeysCreated     Counter
	KeysRevoked     Counter

	BudgetWarnings Counter
	BudgetExceeded Counter

	// Stream lifecycle
	StreamsStarted   Counter
	StreamsCompleted Counter
	StreamsFailed    Counter
	ChunksEmitted    Counter
	ChunkBytes       Counter
}

MetricsExtension tracks operational metrics via counters. Follows the dispatch/observability pattern.

func NewMetricsExtension

func NewMetricsExtension() *MetricsExtension

NewMetricsExtension creates a new metrics extension.

func (*MetricsExtension) Name

func (e *MetricsExtension) Name() string

func (*MetricsExtension) OnBudgetExceeded

func (e *MetricsExtension) OnBudgetExceeded(_ context.Context, _ id.TenantID) error

func (*MetricsExtension) OnBudgetWarning

func (e *MetricsExtension) OnBudgetWarning(_ context.Context, _ id.TenantID, _ float64) error

func (*MetricsExtension) OnChunkReceived

func (e *MetricsExtension) OnChunkReceived(_ context.Context, _ id.RequestID, _ provider.EventKind, byteSize int) error

func (*MetricsExtension) OnCircuitOpened

func (e *MetricsExtension) OnCircuitOpened(_ context.Context, _ string) error

func (*MetricsExtension) OnFallbackTriggered

func (e *MetricsExtension) OnFallbackTriggered(_ context.Context, _, _ string) error

func (*MetricsExtension) OnGuardrailBlocked

func (e *MetricsExtension) OnGuardrailBlocked(_ context.Context, _ string, _ id.RequestID) error

func (*MetricsExtension) OnGuardrailRedacted

func (e *MetricsExtension) OnGuardrailRedacted(_ context.Context, _, _ string) error

func (*MetricsExtension) OnKeyCreated

func (e *MetricsExtension) OnKeyCreated(_ context.Context, _ id.KeyID, _ id.TenantID) error

func (*MetricsExtension) OnKeyRevoked

func (e *MetricsExtension) OnKeyRevoked(_ context.Context, _ id.KeyID) error

func (*MetricsExtension) OnProviderFailed

func (e *MetricsExtension) OnProviderFailed(_ context.Context, _, _ string, _ error) error

func (*MetricsExtension) OnRequestCached

func (e *MetricsExtension) OnRequestCached(_ context.Context, _ id.RequestID, _ string) error

func (*MetricsExtension) OnRequestCompleted

func (e *MetricsExtension) OnRequestCompleted(_ context.Context, _ id.RequestID, _, _ string, _ time.Duration, _, _ int) error

func (*MetricsExtension) OnRequestFailed

func (e *MetricsExtension) OnRequestFailed(_ context.Context, _ id.RequestID, _ string, _ error) error

func (*MetricsExtension) OnRequestReceived

func (e *MetricsExtension) OnRequestReceived(_ context.Context, _ id.RequestID, _, _ string) error

func (*MetricsExtension) OnStreamCompleted

func (*MetricsExtension) OnStreamFailed

func (e *MetricsExtension) OnStreamFailed(_ context.Context, _ id.RequestID, _ string, _ error) error

func (*MetricsExtension) OnStreamStarted

func (e *MetricsExtension) OnStreamStarted(_ context.Context, _ id.RequestID, _, _ string) error

func (*MetricsExtension) OnTenantCreated

func (e *MetricsExtension) OnTenantCreated(_ context.Context, _ id.TenantID) error

func (*MetricsExtension) OnTenantDisabled

func (e *MetricsExtension) OnTenantDisabled(_ context.Context, _ id.TenantID) error

type NoopTracer

type NoopTracer struct{}

NoopTracer is a tracer that does nothing.

func (NoopTracer) StartSpan

type SpanAttribute

type SpanAttribute struct {
	Key   string
	Value any
}

SpanAttribute is a key-value pair for span metadata.

type SpanFinisher

type SpanFinisher interface {
	// Finish completes the span. If err is non-nil, the span is marked as errored.
	Finish(err error)

	// SetAttribute adds an attribute to the span.
	SetAttribute(key string, value any)
}

SpanFinisher completes a span.

type Tracer

type Tracer interface {
	// StartSpan begins a new span. Returns a context with the span and a finish func.
	StartSpan(ctx context.Context, name string, attrs ...SpanAttribute) (context.Context, SpanFinisher)
}

Tracer creates spans for request tracing.

type TracingMiddleware

type TracingMiddleware struct {
	// contains filtered or unexported fields
}

TracingMiddleware adds distributed tracing to the pipeline.

func NewTracingMiddleware

func NewTracingMiddleware(tracer Tracer) *TracingMiddleware

NewTracingMiddleware creates a tracing middleware with the given tracer.

func (*TracingMiddleware) Name

func (m *TracingMiddleware) Name() string

func (*TracingMiddleware) Priority

func (m *TracingMiddleware) Priority() int

func (*TracingMiddleware) Process

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL