metrics

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package metrics provides Prometheus metrics for TokMan services.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Compression metrics
	CompressionRequestsTotal = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_compression_requests_total",
			Help: "Total number of compression requests",
		},
		[]string{"mode", "status"},
	)

	CompressionTokensOriginal = promauto.NewHistogram(
		prometheus.HistogramOpts{
			Name:    "tokman_compression_tokens_original",
			Help:    "Original token count before compression",
			Buckets: prometheus.ExponentialBuckets(100, 2, 10),
		},
	)

	CompressionTokensCompressed = promauto.NewHistogram(
		prometheus.HistogramOpts{
			Name:    "tokman_compression_tokens_compressed",
			Help:    "Token count after compression",
			Buckets: prometheus.ExponentialBuckets(50, 2, 10),
		},
	)

	CompressionSavingsPercent = promauto.NewHistogram(
		prometheus.HistogramOpts{
			Name:    "tokman_compression_savings_percent",
			Help:    "Percentage of tokens saved",
			Buckets: prometheus.LinearBuckets(0, 10, 11),
		},
	)

	CompressionDurationMs = promauto.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "tokman_compression_duration_ms",
			Help:    "Compression processing time in milliseconds",
			Buckets: prometheus.ExponentialBuckets(1, 2, 12),
		},
		[]string{"mode"},
	)

	LayersApplied = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_layers_applied_total",
			Help: "Number of times each layer was applied",
		},
		[]string{"layer"},
	)

	// Command execution metrics
	CommandsExecuted = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_commands_executed_total",
			Help: "Total commands executed",
		},
		[]string{"command", "status"},
	)

	CommandDurationMs = promauto.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "tokman_command_duration_ms",
			Help:    "Command execution duration in milliseconds",
			Buckets: prometheus.ExponentialBuckets(10, 2, 12),
		},
		[]string{"command"},
	)

	// Service discovery metrics
	DiscoveryInstances = promauto.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: "tokman_discovery_instances",
			Help: "Number of discovered service instances",
		},
		[]string{"service_type", "healthy"},
	)

	DiscoveryHealthChecks = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_discovery_health_checks_total",
			Help: "Total health checks performed",
		},
		[]string{"service_type", "status"},
	)

	// Load balancer metrics
	LoadBalancerSelections = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_loadbalancer_selections_total",
			Help: "Number of instance selections by load balancer",
		},
		[]string{"service_type", "instance_id"},
	)

	// gRPC metrics
	GRPCRequestsTotal = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: "tokman_grpc_requests_total",
			Help: "Total gRPC requests",
		},
		[]string{"method", "status"},
	)

	GRPCDurationMs = promauto.NewHistogramVec(
		prometheus.HistogramOpts{
			Name:    "tokman_grpc_duration_ms",
			Help:    "gRPC request duration in milliseconds",
			Buckets: prometheus.ExponentialBuckets(1, 2, 12),
		},
		[]string{"method"},
	)

	// Cache metrics
	CacheHits = promauto.NewCounter(
		prometheus.CounterOpts{
			Name: "tokman_cache_hits_total",
			Help: "Total cache hits",
		},
	)

	CacheMisses = promauto.NewCounter(
		prometheus.CounterOpts{
			Name: "tokman_cache_misses_total",
			Help: "Total cache misses",
		},
	)

	CacheSize = promauto.NewGauge(
		prometheus.GaugeOpts{
			Name: "tokman_cache_size",
			Help: "Current cache size",
		},
	)

	// Token tracking metrics
	TokensSavedTotal = promauto.NewCounter(
		prometheus.CounterOpts{
			Name: "tokman_tokens_saved_total",
			Help: "Total tokens saved across all operations",
		},
	)

	TokensProcessedTotal = promauto.NewCounter(
		prometheus.CounterOpts{
			Name: "tokman_tokens_processed_total",
			Help: "Total tokens processed",
		},
	)
)

TokMan metrics exposed via Prometheus.

Functions

func RecordCacheHit

func RecordCacheHit()

RecordCacheHit records a cache hit.

func RecordCacheMiss

func RecordCacheMiss()

RecordCacheMiss records a cache miss.

func RecordCommand

func RecordCommand(command string, success bool, durationMs float64)

RecordCommand records command execution metrics.

func RecordCompression

func RecordCompression(mode string, originalTokens, compressedTokens int, durationMs float64)

RecordCompression records compression metrics.

func RecordCompressionError

func RecordCompressionError(mode string)

RecordCompressionError records a failed compression.

func RecordGRPCRequest

func RecordGRPCRequest(method string, success bool, durationMs float64)

RecordGRPCRequest records a gRPC request.

func RecordHealthCheck

func RecordHealthCheck(serviceType string, healthy bool)

RecordHealthCheck records a health check result.

func RecordLayerApplied

func RecordLayerApplied(layerName string)

RecordLayerApplied records that a layer was applied.

func RecordLoadBalancerSelection

func RecordLoadBalancerSelection(serviceType, instanceID string)

RecordLoadBalancerSelection records a load balancer selection.

func UpdateCacheSize

func UpdateCacheSize(size int)

UpdateCacheSize updates the cache size gauge.

func UpdateDiscoveryInstances

func UpdateDiscoveryInstances(serviceType string, healthy, unhealthy int)

UpdateDiscoveryInstances updates discovery instance counts.

Types

This section is empty.

Jump to

Keyboard shortcuts

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