(hook redis.DialHook)
| 278 | var _ redis.Hook = (*metricsHook)(nil) |
| 279 | |
| 280 | func (mh *metricsHook) DialHook(hook redis.DialHook) redis.DialHook { |
| 281 | return func(ctx context.Context, network, addr string) (net.Conn, error) { |
| 282 | start := time.Now() |
| 283 | |
| 284 | conn, err := hook(ctx, network, addr) |
| 285 | |
| 286 | dur := time.Since(start) |
| 287 | |
| 288 | attrs := make([]attribute.KeyValue, 0, len(mh.attrs)+2) |
| 289 | attrs = append(attrs, mh.attrs...) |
| 290 | attrs = append(attrs, statusAttr(err)) |
| 291 | attrs = append(attrs, errorTypeAttribute(err)) |
| 292 | |
| 293 | mh.createTime.Record(ctx, milliseconds(dur), metric.WithAttributeSet(attribute.NewSet(attrs...))) |
| 294 | return conn, err |
| 295 | } |
| 296 | } |
| 297 | |
| 298 | func (mh *metricsHook) ProcessHook(hook redis.ProcessHook) redis.ProcessHook { |
| 299 | return func(ctx context.Context, cmd redis.Cmder) error { |
nothing calls this directly
no test coverage detected