package telemetry import ( "go.opentelemetry.io/otel/metric" ) var ( RequestCounter metric.Int64Counter RequestDuration metric.Float64Histogram RequestBodySize metric.Int64Histogram UpstreamErrors metric.Int64Counter TokensInput metric.Int64Counter TokensOutput metric.Int64Counter CredentialCooldowns metric.Int64Counter ActiveCredentials metric.Int64UpDownCounter StreamRequests metric.Int64Counter ) // InitMetrics creates all metric instruments from the given meter. func InitMetrics(meter metric.Meter) { RequestCounter, _ = meter.Int64Counter("proxy.request.count", metric.WithDescription("Total proxy requests"), ) RequestDuration, _ = meter.Float64Histogram("proxy.request.duration_ms", metric.WithDescription("Request latency in milliseconds"), metric.WithUnit("ms"), ) RequestBodySize, _ = meter.Int64Histogram("proxy.request.body_size_bytes", metric.WithDescription("Request body size in bytes"), metric.WithUnit("By"), ) UpstreamErrors, _ = meter.Int64Counter("proxy.upstream.errors", metric.WithDescription("Upstream error count"), ) TokensInput, _ = meter.Int64Counter("proxy.tokens.input", metric.WithDescription("Input tokens consumed"), ) TokensOutput, _ = meter.Int64Counter("proxy.tokens.output", metric.WithDescription("Output tokens consumed"), ) CredentialCooldowns, _ = meter.Int64Counter("proxy.credential.cooldowns", metric.WithDescription("Credential cooldown activations"), ) ActiveCredentials, _ = meter.Int64UpDownCounter("proxy.credential.active", metric.WithDescription("Currently active (non-cooldown) credentials"), ) StreamRequests, _ = meter.Int64Counter("proxy.stream.requests", metric.WithDescription("Streaming request count"), ) }