telemetry

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(cfg Config) *slog.Logger

Init configures the default slog logger for cloud-native workloads.

Types

type Config

type Config struct {
	ServiceName string
	Version     string
	Level       string
	Output      io.Writer
}

Config controls structured logger initialization.

type GRPCMetrics

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

GRPCMetrics records RED-style gRPC metrics and can be appended to `/metrics`.

func NewGRPCMetrics

func NewGRPCMetrics(cfg GRPCMetricsConfig) *GRPCMetrics

NewGRPCMetrics creates a shared metrics collector for DenseCloud gRPC runtimes.

func (*GRPCMetrics) AppendPrometheus

func (m *GRPCMetrics) AppendPrometheus(builder *strings.Builder)

AppendPrometheus emits gRPC metrics in Prometheus text exposition format.

func (*GRPCMetrics) BeginRPC

func (m *GRPCMetrics) BeginRPC()

BeginRPC marks the beginning of an in-flight gRPC request.

func (*GRPCMetrics) ObserveRPC

func (m *GRPCMetrics) ObserveRPC(method, rpcType, code string, seconds float64)

ObserveRPC records a completed gRPC request.

type GRPCMetricsConfig

type GRPCMetricsConfig struct {
	ServiceName string
	Buckets     []float64
}

GRPCMetricsConfig configures DenseCloud's shared gRPC metrics collector.

type HTTPMetrics

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

HTTPMetrics records RED-style HTTP metrics and exposes Prometheus text format.

func NewHTTPMetrics

func NewHTTPMetrics(cfg HTTPMetricsConfig) *HTTPMetrics

NewHTTPMetrics creates a shared metrics collector for DenseCloud runtimes.

func (*HTTPMetrics) Handler

func (m *HTTPMetrics) Handler() http.Handler

Handler exposes metrics in Prometheus text exposition format.

func (*HTTPMetrics) Middleware

func (m *HTTPMetrics) Middleware() func(http.Handler) http.Handler

Middleware records request counts, errors, latency, and in-flight concurrency.

type HTTPMetricsConfig

type HTTPMetricsConfig struct {
	ServiceName string
	Buckets     []float64
	IgnorePaths []string
	PathLabeler func(*http.Request) string
	Collectors  []PrometheusCollector
}

HTTPMetricsConfig configures DenseCloud's shared RED metrics.

type OTelConfig

type OTelConfig struct {
	ServiceName    string
	ServiceVersion string
	// DeploymentEnvironment maps to deployment.environment when provided.
	DeploymentEnvironment string
	Endpoint              string
	Enabled               bool
	Insecure              bool
	SamplingRate          float64
	BatchTimeout          time.Duration
}

OTelConfig holds OpenTelemetry configuration.

func DefaultOTelConfig

func DefaultOTelConfig() OTelConfig

DefaultOTelConfig returns sensible defaults for tracing.

type OTelProvider

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

OTelProvider wraps the tracer provider and provides cleanup methods.

func InitOTelTracer

func InitOTelTracer(cfg OTelConfig) (*OTelProvider, error)

InitOTelTracer initializes the OpenTelemetry tracer provider.

func (*OTelProvider) Shutdown

func (p *OTelProvider) Shutdown(ctx context.Context) error

Shutdown gracefully shuts down the tracer provider.

func (*OTelProvider) ShutdownWithTimeout

func (p *OTelProvider) ShutdownWithTimeout(timeout time.Duration) error

ShutdownWithTimeout shuts down the provider with a timeout.

type PrometheusCollector

type PrometheusCollector interface {
	AppendPrometheus(*strings.Builder)
}

PrometheusCollector appends metrics in Prometheus text exposition format.

Jump to

Keyboard shortcuts

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