mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-19 16:57:40 +03:00
Update default histogram buckets for gRPC server latency measurements (#17777)
* Update default histogram buckets for gRPC server latency measurements
This commit is contained in:
parent
9b70a112b1
commit
7b6b97abe6
@ -5,43 +5,47 @@ package com.daml.metrics.grpc
|
||||
|
||||
import com.daml.metrics.api.MetricHandle.{Histogram, LabeledMetricsFactory}
|
||||
import com.daml.metrics.api.{MetricHandle, MetricName, MetricsContext}
|
||||
import com.daml.metrics.grpc.DamlGrpcServerMetrics.GrpcServerMetricsPrefix
|
||||
|
||||
object DamlGrpcServerMetrics {
|
||||
val GrpcServerMetricsPrefix = MetricName.Daml :+ "grpc" :+ "server"
|
||||
}
|
||||
|
||||
class DamlGrpcServerMetrics(
|
||||
metricsFactory: LabeledMetricsFactory,
|
||||
component: String,
|
||||
) extends GrpcServerMetrics {
|
||||
|
||||
private val grpcServerMetricsPrefix = MetricName.Daml :+ "grpc" :+ "server"
|
||||
private implicit val metricsContext: MetricsContext = MetricsContext(
|
||||
Map("service" -> component)
|
||||
)
|
||||
|
||||
override val callTimer: MetricHandle.Timer = metricsFactory.timer(
|
||||
grpcServerMetricsPrefix,
|
||||
GrpcServerMetricsPrefix,
|
||||
"Distribution of the durations of serving gRPC requests.",
|
||||
)
|
||||
override val messagesSent: MetricHandle.Meter = metricsFactory.meter(
|
||||
grpcServerMetricsPrefix :+ "messages" :+ "sent",
|
||||
GrpcServerMetricsPrefix :+ "messages" :+ "sent",
|
||||
"Total number of gRPC messages sent (on either type of connection).",
|
||||
)
|
||||
override val messagesReceived: MetricHandle.Meter = metricsFactory.meter(
|
||||
grpcServerMetricsPrefix :+ "messages" :+ "received",
|
||||
GrpcServerMetricsPrefix :+ "messages" :+ "received",
|
||||
"Total number of gRPC messages received (on either type of connection).",
|
||||
)
|
||||
override val messagesSentSize: MetricHandle.Histogram = metricsFactory.histogram(
|
||||
grpcServerMetricsPrefix :+ "messages" :+ "sent" :+ Histogram.Bytes,
|
||||
GrpcServerMetricsPrefix :+ "messages" :+ "sent" :+ Histogram.Bytes,
|
||||
"Distribution of payload sizes in gRPC messages sent (both unary and streaming).",
|
||||
)
|
||||
override val messagesReceivedSize: MetricHandle.Histogram = metricsFactory.histogram(
|
||||
grpcServerMetricsPrefix :+ "messages" :+ "received" :+ Histogram.Bytes,
|
||||
GrpcServerMetricsPrefix :+ "messages" :+ "received" :+ Histogram.Bytes,
|
||||
"Distribution of payload sizes in gRPC messages received (both unary and streaming).",
|
||||
)
|
||||
override val callsStarted: MetricHandle.Meter = metricsFactory.meter(
|
||||
grpcServerMetricsPrefix :+ "started",
|
||||
GrpcServerMetricsPrefix :+ "started",
|
||||
"Total number of started gRPC requests (on either type of connection).",
|
||||
)
|
||||
override val callsHandled: MetricHandle.Meter = metricsFactory.meter(
|
||||
grpcServerMetricsPrefix :+ "handled",
|
||||
GrpcServerMetricsPrefix :+ "handled",
|
||||
"Total number of handled gRPC requests.",
|
||||
)
|
||||
|
||||
|
@ -9,6 +9,7 @@ import com.daml.metrics.api.MetricHandle.Histogram
|
||||
import com.daml.metrics.api.opentelemetry.OpenTelemetryTimer
|
||||
import com.daml.metrics.api.reporters.MetricsReporter
|
||||
import com.daml.metrics.api.reporters.MetricsReporter.Prometheus
|
||||
import com.daml.metrics.grpc.DamlGrpcServerMetrics
|
||||
import com.daml.telemetry.OpenTelemetryOwner.addViewsToProvider
|
||||
import io.opentelemetry.api.OpenTelemetry
|
||||
import io.opentelemetry.exporter.prometheus.PrometheusCollector
|
||||
@ -91,6 +92,18 @@ object OpenTelemetryOwner {
|
||||
)
|
||||
),
|
||||
)
|
||||
// timing buckets for gRPC server latency measurements with more precise granularity on latencies up to 5s
|
||||
.registerView(
|
||||
histogramSelectorWithRegex(
|
||||
s"${DamlGrpcServerMetrics.GrpcServerMetricsPrefix}.*${OpenTelemetryTimer.TimerUnitAndSuffix}"
|
||||
),
|
||||
explicitHistogramBucketsView(
|
||||
Seq(
|
||||
0.01d, 0.025d, 0.050d, 0.075d, 0.1d, 0.15d, 0.2d, 0.25d, 0.35d, 0.5d, 0.75d, 1d, 1.25d,
|
||||
1.5d, 1.75d, 2d, 2.25d, 2.5d, 2.75d, 3d, 3.5d, 4d, 4.5d, 5d, 10d,
|
||||
)
|
||||
),
|
||||
)
|
||||
// generic timing buckets
|
||||
.registerView(
|
||||
histogramSelectorWithRegex(s".*${OpenTelemetryTimer.TimerUnitAndSuffix}"),
|
||||
|
Loading…
Reference in New Issue
Block a user