Source File
metrics.go
Belonging Package
google.golang.org/grpc/experimental/stats
/*** Copyright 2024 gRPC authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.**/// Package stats contains experimental metrics/stats API's.package statsimport ()// MetricsRecorder records on metrics derived from metric registry.// Implementors must embed UnimplementedMetricsRecorder.type MetricsRecorder interface {// RecordInt64Count records the measurement alongside labels on the int// count associated with the provided handle.RecordInt64Count(handle *Int64CountHandle, incr int64, labels ...string)// RecordFloat64Count records the measurement alongside labels on the float// count associated with the provided handle.RecordFloat64Count(handle *Float64CountHandle, incr float64, labels ...string)// RecordInt64Histo records the measurement alongside labels on the int// histo associated with the provided handle.RecordInt64Histo(handle *Int64HistoHandle, incr int64, labels ...string)// RecordFloat64Histo records the measurement alongside labels on the float// histo associated with the provided handle.RecordFloat64Histo(handle *Float64HistoHandle, incr float64, labels ...string)// RecordInt64Gauge records the measurement alongside labels on the int// gauge associated with the provided handle.RecordInt64Gauge(handle *Int64GaugeHandle, incr int64, labels ...string)// RecordInt64UpDownCounter records the measurement alongside labels on the int// count associated with the provided handle.RecordInt64UpDownCount(handle *Int64UpDownCountHandle, incr int64, labels ...string)// RegisterAsyncReporter registers a reporter to produce metric values for// only the listed descriptors. The returned function must be called when// the metrics are no longer needed, which will remove the reporter. The// returned method needs to be idempotent and concurrent safe.RegisterAsyncReporter(reporter AsyncMetricReporter, descriptors ...AsyncMetric) func()// EnforceMetricsRecorderEmbedding is included to force implementers to embed// another implementation of this interface, allowing gRPC to add methods// without breaking users.internal.EnforceMetricsRecorderEmbedding}// AsyncMetricReporter is an interface for types that record metrics asynchronously// for the set of descriptors they are registered with. The AsyncMetricsRecorder// parameter is used to record values for these metrics.//// Implementations must make unique recordings across all registered// AsyncMetricReporters. Meaning, they should not report values for a metric with// the same attributes as another AsyncMetricReporter will report.//// Implementations must be concurrent-safe.type AsyncMetricReporter interface {// Report records metric values using the provided recorder.Report(AsyncMetricsRecorder) error}// AsyncMetricReporterFunc is an adapter to allow the use of ordinary functions as// AsyncMetricReporters.type AsyncMetricReporterFunc func(AsyncMetricsRecorder) error// Report calls f(r).func ( AsyncMetricReporterFunc) ( AsyncMetricsRecorder) error {return ()}// AsyncMetricsRecorder records on asynchronous metrics derived from metric registry.type AsyncMetricsRecorder interface {// RecordInt64AsyncGauge records the measurement alongside labels on the int// count associated with the provided handle asynchronouslyRecordInt64AsyncGauge(handle *Int64AsyncGaugeHandle, incr int64, labels ...string)}// Metrics is an experimental legacy alias of the now-stable stats.MetricSet.// Metrics will be deleted in a future release.type Metrics = stats.MetricSet// Metric was replaced by direct usage of strings.type Metric = string// NewMetrics is an experimental legacy alias of the now-stable// stats.NewMetricSet. NewMetrics will be deleted in a future release.func ( ...Metric) *Metrics {return stats.NewMetricSet(...)}// UnimplementedMetricsRecorder must be embedded to have forward compatible implementations.type UnimplementedMetricsRecorder struct {internal.EnforceMetricsRecorderEmbedding}// RecordInt64Count provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Int64CountHandle, int64, ...string) {}// RecordFloat64Count provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Float64CountHandle, float64, ...string) {}// RecordInt64Histo provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Int64HistoHandle, int64, ...string) {}// RecordFloat64Histo provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Float64HistoHandle, float64, ...string) {}// RecordInt64Gauge provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Int64GaugeHandle, int64, ...string) {}// RecordInt64UpDownCount provides a no-op implementation.func (UnimplementedMetricsRecorder) (*Int64UpDownCountHandle, int64, ...string) {}// RegisterAsyncReporter provides a no-op implementation.func (UnimplementedMetricsRecorder) (AsyncMetricReporter, ...AsyncMetric) func() {// No-op: Return an empty function to ensure caller doesn't panic on nil function callreturn func() {}}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |