Skip to content

Commit 903b081

Browse files
wzy9607ofekshenawa
andauthored
fix(redisotel-native): use metric definition from otel/semconv/v1.38.0 (#3731)
Uses the name, desc, unit of `db.client.operation.duration`, `db.client.connection.count`, `db.client.connection.create_time`, `db.client.connection.wait_time`, `db.client.connection.pending_requests` defined by otel/semconv/v1.38.0/dbconv. The resolves the metric description part of #3730. Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
1 parent 1a771e7 commit 903b081

File tree

1 file changed

+18
-31
lines changed

1 file changed

+18
-31
lines changed

extra/redisotel-native/redisotel.go

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import (
77
"strings"
88
"sync"
99

10-
"github.com/redis/go-redis/v9"
1110
"go.opentelemetry.io/otel"
1211
"go.opentelemetry.io/otel/attribute"
1312
"go.opentelemetry.io/otel/metric"
13+
"go.opentelemetry.io/otel/semconv/v1.38.0/dbconv"
14+
15+
"github.com/redis/go-redis/v9"
1416
)
1517

1618
// Metric name constants
@@ -183,22 +185,17 @@ func (o *ObservabilityInstance) createRecorder(meter metric.Meter, cfg config) (
183185
var operationDuration metric.Float64Histogram
184186
if cfg.isMetricGroupEnabled(MetricGroupCommand) {
185187
var operationDurationOpts []metric.Float64HistogramOption
186-
operationDurationOpts = append(operationDurationOpts,
187-
metric.WithDescription("Duration of database client operations"),
188-
metric.WithUnit("s"),
189-
)
190188
if cfg.histAggregation == HistogramAggregationExplicitBucket {
191189
operationDurationOpts = append(operationDurationOpts,
192190
metric.WithExplicitBucketBoundaries(cfg.bucketsOperationDuration...),
193191
)
194192
}
195-
operationDuration, err = meter.Float64Histogram(
196-
MetricOperationDuration,
197-
operationDurationOpts...,
198-
)
193+
var operationDurationConv dbconv.ClientOperationDuration
194+
operationDurationConv, err = dbconv.NewClientOperationDuration(meter, operationDurationOpts...)
199195
if err != nil {
200196
return nil, fmt.Errorf("failed to create operation duration histogram: %w", err)
201197
}
198+
operationDuration = operationDurationConv.Inst()
202199
}
203200

204201
var connectionCountGauge metric.Int64ObservableGauge
@@ -208,31 +205,26 @@ func (o *ObservabilityInstance) createRecorder(meter metric.Meter, cfg config) (
208205

209206
if cfg.isMetricGroupEnabled(MetricGroupConnectionBasic) {
210207
connectionCountGauge, err = meter.Int64ObservableGauge(
211-
MetricConnectionCount,
212-
metric.WithDescription("The number of connections that are currently in state described by the state attribute"),
213-
metric.WithUnit("{connection}"),
208+
dbconv.ClientConnectionCount{}.Name(),
209+
metric.WithDescription(dbconv.ClientConnectionCount{}.Description()),
210+
metric.WithUnit(dbconv.ClientConnectionCount{}.Unit()),
214211
)
215212
if err != nil {
216213
return nil, fmt.Errorf("failed to create connection count metric: %w", err)
217214
}
218215

219216
var connectionCreateTimeOpts []metric.Float64HistogramOption
220-
connectionCreateTimeOpts = append(connectionCreateTimeOpts,
221-
metric.WithDescription("The time it took to create a new connection"),
222-
metric.WithUnit("s"),
223-
)
224217
if cfg.histAggregation == HistogramAggregationExplicitBucket {
225218
connectionCreateTimeOpts = append(connectionCreateTimeOpts,
226219
metric.WithExplicitBucketBoundaries(cfg.bucketsConnectionCreateTime...),
227220
)
228221
}
229-
connectionCreateTime, err = meter.Float64Histogram(
230-
MetricConnectionCreateTime,
231-
connectionCreateTimeOpts...,
232-
)
222+
var connectionCreateTimeConv dbconv.ClientConnectionCreateTime
223+
connectionCreateTimeConv, err = dbconv.NewClientConnectionCreateTime(meter, connectionCreateTimeOpts...)
233224
if err != nil {
234225
return nil, fmt.Errorf("failed to create connection create time histogram: %w", err)
235226
}
227+
connectionCreateTime = connectionCreateTimeConv.Inst()
236228

237229
connectionRelaxedTimeout, err = meter.Int64UpDownCounter(
238230
MetricConnectionRelaxedTimeout,
@@ -281,22 +273,17 @@ func (o *ObservabilityInstance) createRecorder(meter metric.Meter, cfg config) (
281273

282274
if cfg.isMetricGroupEnabled(MetricGroupConnectionAdvanced) {
283275
var connectionWaitTimeOpts []metric.Float64HistogramOption
284-
connectionWaitTimeOpts = append(connectionWaitTimeOpts,
285-
metric.WithDescription("The time it took to obtain a connection from the pool"),
286-
metric.WithUnit("s"),
287-
)
288276
if cfg.histAggregation == HistogramAggregationExplicitBucket {
289277
connectionWaitTimeOpts = append(connectionWaitTimeOpts,
290278
metric.WithExplicitBucketBoundaries(cfg.bucketsConnectionWaitTime...),
291279
)
292280
}
293-
connectionWaitTime, err = meter.Float64Histogram(
294-
MetricConnectionWaitTime,
295-
connectionWaitTimeOpts...,
296-
)
281+
var connectionWaitTimeConv dbconv.ClientConnectionWaitTime
282+
connectionWaitTimeConv, err = dbconv.NewClientConnectionWaitTime(meter, connectionWaitTimeOpts...)
297283
if err != nil {
298284
return nil, fmt.Errorf("failed to create connection wait time histogram: %w", err)
299285
}
286+
connectionWaitTime = connectionWaitTimeConv.Inst()
300287

301288
connectionClosed, err = meter.Int64Counter(
302289
MetricConnectionClosed,
@@ -308,9 +295,9 @@ func (o *ObservabilityInstance) createRecorder(meter metric.Meter, cfg config) (
308295
}
309296

310297
connectionPendingReqsGauge, err = meter.Int64ObservableGauge(
311-
MetricConnectionPendingReqs,
312-
metric.WithDescription("The number of pending requests waiting for a connection"),
313-
metric.WithUnit("{request}"),
298+
dbconv.ClientConnectionPendingRequests{}.Name(),
299+
metric.WithDescription(dbconv.ClientConnectionPendingRequests{}.Description()),
300+
metric.WithUnit(dbconv.ClientConnectionPendingRequests{}.Unit()),
314301
)
315302
if err != nil {
316303
return nil, fmt.Errorf("failed to create connection pending requests metric: %w", err)

0 commit comments

Comments
 (0)