@@ -9,10 +9,14 @@ package dbrutil
99import (
1010 "time"
1111
12- "github.com/acronis/go-dbkit"
1312 "github.com/gocraft/dbr/v2"
1413)
1514
15+ // MetricsCollector is an interface for collecting metrics about SQL queries.
16+ type MetricsCollector interface {
17+ ObserveQueryDuration (query string , duration time.Duration )
18+ }
19+
1620// QueryMetricsEventReceiverOpts consists options for QueryMetricsEventReceiver.
1721type QueryMetricsEventReceiverOpts struct {
1822 AnnotationPrefix string
@@ -23,14 +27,14 @@ type QueryMetricsEventReceiverOpts struct {
2327// To be collected, SQL query should be annotated (comment starting with specified prefix).
2428type QueryMetricsEventReceiver struct {
2529 * dbr.NullEventReceiver
26- metricsCollector dbkit. MetricsCollector
30+ metricsCollector MetricsCollector
2731 annotationPrefix string
2832 annotationModifier func (string ) string
2933}
3034
3135// NewQueryMetricsEventReceiverWithOpts creates a new QueryMetricsEventReceiver with additinal options.
3236func NewQueryMetricsEventReceiverWithOpts (
33- mc dbkit. MetricsCollector , options QueryMetricsEventReceiverOpts ,
37+ mc MetricsCollector , options QueryMetricsEventReceiverOpts ,
3438) * QueryMetricsEventReceiver {
3539 return & QueryMetricsEventReceiver {
3640 metricsCollector : mc ,
@@ -40,7 +44,7 @@ func NewQueryMetricsEventReceiverWithOpts(
4044}
4145
4246// NewQueryMetricsEventReceiver creates a new QueryMetricsEventReceiver.
43- func NewQueryMetricsEventReceiver (mc dbkit. MetricsCollector , annotationPrefix string ) * QueryMetricsEventReceiver {
47+ func NewQueryMetricsEventReceiver (mc MetricsCollector , annotationPrefix string ) * QueryMetricsEventReceiver {
4448 options := QueryMetricsEventReceiverOpts {
4549 AnnotationPrefix : annotationPrefix ,
4650 }
0 commit comments