diff --git a/cli/server.go b/cli/server.go
index 5adb44c3c0a7d..2cf2d95a065e9 100644
--- a/cli/server.go
+++ b/cli/server.go
@@ -718,7 +718,9 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
}
if options.DeploymentValues.Prometheus.Enable && options.DeploymentValues.Prometheus.CollectDBMetrics {
- options.Database = dbmetrics.New(options.Database, options.PrometheusRegistry)
+ options.Database = dbmetrics.NewQueryMetrics(options.Database, options.Logger, options.PrometheusRegistry)
+ } else {
+ options.Database = dbmetrics.NewDBMetrics(options.Database, options.Logger, options.PrometheusRegistry)
}
var deploymentID string
diff --git a/cli/testdata/coder_server_--help.golden b/cli/testdata/coder_server_--help.golden
index 1387e31710e88..d5c26d98115cb 100644
--- a/cli/testdata/coder_server_--help.golden
+++ b/cli/testdata/coder_server_--help.golden
@@ -145,7 +145,9 @@ INTROSPECTION / PROMETHEUS OPTIONS:
Collect agent stats (may increase charges for metrics storage).
--prometheus-collect-db-metrics bool, $CODER_PROMETHEUS_COLLECT_DB_METRICS (default: false)
- Collect database metrics (may increase charges for metrics storage).
+ Collect database query metrics (may increase charges for metrics
+ storage). If set to false, a reduced set of database metrics are still
+ collected.
--prometheus-enable bool, $CODER_PROMETHEUS_ENABLE
Serve prometheus metrics on the address defined by prometheus address.
diff --git a/cli/testdata/server-config.yaml.golden b/cli/testdata/server-config.yaml.golden
index 78c893c58ae16..95486a26344b8 100644
--- a/cli/testdata/server-config.yaml.golden
+++ b/cli/testdata/server-config.yaml.golden
@@ -197,7 +197,8 @@ introspection:
- template_name
- username
- workspace_name
- # Collect database metrics (may increase charges for metrics storage).
+ # Collect database query metrics (may increase charges for metrics storage). If
+ # set to false, a reduced set of database metrics are still collected.
# (default: false, type: bool)
collect_db_metrics: false
pprof:
diff --git a/coderd/autobuild/lifecycle_executor.go b/coderd/autobuild/lifecycle_executor.go
index 400f0406aee0e..db3c1cfd3dd31 100644
--- a/coderd/autobuild/lifecycle_executor.go
+++ b/coderd/autobuild/lifecycle_executor.go
@@ -285,7 +285,10 @@ func (e *Executor) runOnce(t time.Time) Stats {
// Run with RepeatableRead isolation so that the build process sees the same data
// as our calculation that determines whether an autobuild is necessary.
- }, &sql.TxOptions{Isolation: sql.LevelRepeatableRead})
+ }, &database.TxOptions{
+ Isolation: sql.LevelRepeatableRead,
+ TxIdentifier: "lifecycle",
+ })
if auditLog != nil {
// If the transition didn't succeed then updating the workspace
// to indicate dormant didn't either.
diff --git a/coderd/coderdtest/promhelp/doc.go b/coderd/coderdtest/promhelp/doc.go
new file mode 100644
index 0000000000000..48b7e4b5aa550
--- /dev/null
+++ b/coderd/coderdtest/promhelp/doc.go
@@ -0,0 +1,3 @@
+// Package promhelp provides helper functions for asserting Prometheus
+// metric values in unit tests.
+package promhelp
diff --git a/coderd/coderdtest/promhelp/metrics.go b/coderd/coderdtest/promhelp/metrics.go
new file mode 100644
index 0000000000000..39c8af6ef9561
--- /dev/null
+++ b/coderd/coderdtest/promhelp/metrics.go
@@ -0,0 +1,87 @@
+package promhelp
+
+import (
+ "context"
+ "io"
+ "maps"
+ "net/http"
+ "net/http/httptest"
+ "strings"
+ "testing"
+
+ "github.com/prometheus/client_golang/prometheus"
+ "github.com/prometheus/client_golang/prometheus/promhttp"
+ ptestutil "github.com/prometheus/client_golang/prometheus/testutil"
+ io_prometheus_client "github.com/prometheus/client_model/go"
+ "github.com/stretchr/testify/require"
+)
+
+// RegistryDump returns the http page for a given registry's metrics.
+// Very useful for visual debugging.
+func RegistryDump(reg *prometheus.Registry) string {
+ h := promhttp.HandlerFor(reg, promhttp.HandlerOpts{})
+ rec := httptest.NewRecorder()
+ req, _ := http.NewRequestWithContext(context.Background(), http.MethodGet, "/", nil)
+ h.ServeHTTP(rec, req)
+ resp := rec.Result()
+ data, _ := io.ReadAll(resp.Body)
+ _ = resp.Body.Close()
+ return string(data)
+}
+
+// Compare can be used to compare a registry to some prometheus formatted
+// text. If any values differ, an error is returned.
+// If metric names are passed in, only those metrics will be compared.
+// Usage: `Compare(reg, RegistryDump(reg))`
+func Compare(reg prometheus.Gatherer, compare string, metricNames ...string) error {
+ return ptestutil.GatherAndCompare(reg, strings.NewReader(compare), metricNames...)
+}
+
+// HistogramValue returns the value of a histogram metric with the given name and labels.
+func HistogramValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) *io_prometheus_client.Histogram {
+ t.Helper()
+
+ labeled := MetricValue(t, reg, metricName, labels)
+ require.NotNilf(t, labeled, "metric %q with labels %v not found", metricName, labels)
+ return labeled.GetHistogram()
+}
+
+// GaugeValue returns the value of a gauge metric with the given name and labels.
+func GaugeValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) int {
+ t.Helper()
+
+ labeled := MetricValue(t, reg, metricName, labels)
+ require.NotNilf(t, labeled, "metric %q with labels %v not found", metricName, labels)
+ return int(labeled.GetGauge().GetValue())
+}
+
+// CounterValue returns the value of a counter metric with the given name and labels.
+func CounterValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) int {
+ t.Helper()
+
+ labeled := MetricValue(t, reg, metricName, labels)
+ require.NotNilf(t, labeled, "metric %q with labels %v not found", metricName, labels)
+ return int(labeled.GetCounter().GetValue())
+}
+
+func MetricValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) *io_prometheus_client.Metric {
+ t.Helper()
+
+ metrics, err := reg.Gather()
+ require.NoError(t, err)
+
+ for _, m := range metrics {
+ if m.GetName() == metricName {
+ for _, labeled := range m.GetMetric() {
+ mLabels := make(prometheus.Labels)
+ for _, v := range labeled.GetLabel() {
+ mLabels[v.GetName()] = v.GetValue()
+ }
+ if maps.Equal(mLabels, labels) {
+ return labeled
+ }
+ }
+ }
+ }
+ return nil
+}
diff --git a/coderd/cryptokeys/rotate.go b/coderd/cryptokeys/rotate.go
index 14a623e2156db..83e4106584b03 100644
--- a/coderd/cryptokeys/rotate.go
+++ b/coderd/cryptokeys/rotate.go
@@ -161,8 +161,9 @@ func (k *rotator) rotateKeys(ctx context.Context) error {
}
}
return nil
- }, &sql.TxOptions{
- Isolation: sql.LevelRepeatableRead,
+ }, &database.TxOptions{
+ Isolation: sql.LevelRepeatableRead,
+ TxIdentifier: "rotate_keys",
})
}
diff --git a/coderd/database/db.go b/coderd/database/db.go
index 51e61e4ce2027..ae2c31a566cb3 100644
--- a/coderd/database/db.go
+++ b/coderd/database/db.go
@@ -28,7 +28,7 @@ type Store interface {
wrapper
Ping(ctx context.Context) (time.Duration, error)
- InTx(func(Store) error, *sql.TxOptions) error
+ InTx(func(Store) error, *TxOptions) error
}
type wrapper interface {
@@ -57,6 +57,43 @@ func New(sdb *sql.DB) Store {
}
}
+// TxOptions is used to pass some execution metadata to the callers.
+// Ideally we could throw this into a context, but no context is used for
+// transactions. So instead, the return context is attached to the options
+// passed in.
+// This metadata should not be returned in the method signature, because it
+// is only used for metric tracking. It should never be used by business logic.
+type TxOptions struct {
+ // Isolation is the transaction isolation level.
+ // If zero, the driver or database's default level is used.
+ Isolation sql.IsolationLevel
+ ReadOnly bool
+
+ // -- Coder specific metadata --
+ // TxIdentifier is a unique identifier for the transaction to be used
+ // in metrics. Can be any string.
+ TxIdentifier string
+
+ // Set by InTx
+ executionCount int
+}
+
+// IncrementExecutionCount is a helper function for external packages
+// to increment the unexported count.
+// Mainly for `dbmem`.
+func IncrementExecutionCount(opts *TxOptions) {
+ opts.executionCount++
+}
+
+func (o TxOptions) ExecutionCount() int {
+ return o.executionCount
+}
+
+func (o *TxOptions) WithID(id string) *TxOptions {
+ o.TxIdentifier = id
+ return o
+}
+
// queries encompasses both are sqlc generated
// queries and our custom queries.
type querier interface {
@@ -80,11 +117,24 @@ func (q *sqlQuerier) Ping(ctx context.Context) (time.Duration, error) {
return time.Since(start), err
}
-func (q *sqlQuerier) InTx(function func(Store) error, txOpts *sql.TxOptions) error {
+func DefaultTXOptions() *TxOptions {
+ return &TxOptions{
+ Isolation: sql.LevelDefault,
+ ReadOnly: false,
+ }
+}
+
+func (q *sqlQuerier) InTx(function func(Store) error, txOpts *TxOptions) error {
_, inTx := q.db.(*sqlx.Tx)
- isolation := sql.LevelDefault
- if txOpts != nil {
- isolation = txOpts.Isolation
+
+ if txOpts == nil {
+ // create a default txOpts if left to nil
+ txOpts = DefaultTXOptions()
+ }
+
+ sqlOpts := &sql.TxOptions{
+ Isolation: txOpts.Isolation,
+ ReadOnly: txOpts.ReadOnly,
}
// If we are not already in a transaction, and we are running in serializable
@@ -92,13 +142,14 @@ func (q *sqlQuerier) InTx(function func(Store) error, txOpts *sql.TxOptions) err
// prepared to allow retries if using serializable mode.
// If we are in a transaction already, the parent InTx call will handle the retry.
// We do not want to duplicate those retries.
- if !inTx && isolation == sql.LevelSerializable {
+ if !inTx && sqlOpts.Isolation == sql.LevelSerializable {
// This is an arbitrarily chosen number.
const retryAmount = 3
var err error
attempts := 0
for attempts = 0; attempts < retryAmount; attempts++ {
- err = q.runTx(function, txOpts)
+ txOpts.executionCount++
+ err = q.runTx(function, sqlOpts)
if err == nil {
// Transaction succeeded.
return nil
@@ -111,7 +162,9 @@ func (q *sqlQuerier) InTx(function func(Store) error, txOpts *sql.TxOptions) err
// Transaction kept failing in serializable mode.
return xerrors.Errorf("transaction failed after %d attempts: %w", attempts, err)
}
- return q.runTx(function, txOpts)
+
+ txOpts.executionCount++
+ return q.runTx(function, sqlOpts)
}
// InTx performs database operations inside a transaction.
diff --git a/coderd/database/db_test.go b/coderd/database/db_test.go
index db7fe41eea3dc..a6df18fcbb8c8 100644
--- a/coderd/database/db_test.go
+++ b/coderd/database/db_test.go
@@ -27,7 +27,7 @@ func TestSerializedRetry(t *testing.T) {
db := database.New(sqlDB)
called := 0
- txOpts := &sql.TxOptions{Isolation: sql.LevelSerializable}
+ txOpts := &database.TxOptions{Isolation: sql.LevelSerializable}
err := db.InTx(func(tx database.Store) error {
// Test nested error
return tx.InTx(func(tx database.Store) error {
diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go
index 052f25450e6a5..46ccdd15933e8 100644
--- a/coderd/database/dbauthz/dbauthz.go
+++ b/coderd/database/dbauthz/dbauthz.go
@@ -558,7 +558,7 @@ func (q *querier) Ping(ctx context.Context) (time.Duration, error) {
}
// InTx runs the given function in a transaction.
-func (q *querier) InTx(function func(querier database.Store) error, txOpts *sql.TxOptions) error {
+func (q *querier) InTx(function func(querier database.Store) error, txOpts *database.TxOptions) error {
return q.db.InTx(func(tx database.Store) error {
// Wrap the transaction store in a querier.
wrapped := New(tx, q.auth, q.log, q.acs)
diff --git a/coderd/database/dbmem/dbmem.go b/coderd/database/dbmem/dbmem.go
index 24498d88c9dbc..4f54598744dd0 100644
--- a/coderd/database/dbmem/dbmem.go
+++ b/coderd/database/dbmem/dbmem.go
@@ -365,7 +365,7 @@ func (tx *fakeTx) releaseLocks() {
}
// InTx doesn't rollback data properly for in-memory yet.
-func (q *FakeQuerier) InTx(fn func(database.Store) error, _ *sql.TxOptions) error {
+func (q *FakeQuerier) InTx(fn func(database.Store) error, opts *database.TxOptions) error {
q.mutex.Lock()
defer q.mutex.Unlock()
tx := &fakeTx{
@@ -374,6 +374,9 @@ func (q *FakeQuerier) InTx(fn func(database.Store) error, _ *sql.TxOptions) erro
}
defer tx.releaseLocks()
+ if opts != nil {
+ database.IncrementExecutionCount(opts)
+ }
return fn(tx)
}
diff --git a/coderd/database/dbmetrics/dbmetrics.go b/coderd/database/dbmetrics/dbmetrics.go
index c3e9de22fb0d8..404a685876bc0 100644
--- a/coderd/database/dbmetrics/dbmetrics.go
+++ b/coderd/database/dbmetrics/dbmetrics.go
@@ -1,2721 +1,117 @@
-// Code generated by coderd/database/gen/metrics.
-// Any function can be edited and will not be overwritten.
-// New database functions are automatically generated!
package dbmetrics
import (
"context"
- "database/sql"
+ "strconv"
"time"
- "github.com/google/uuid"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/exp/slices"
+ "cdr.dev/slog"
"github.com/coder/coder/v2/coderd/database"
- "github.com/coder/coder/v2/coderd/rbac"
- "github.com/coder/coder/v2/coderd/rbac/policy"
)
-var (
- // Force these imports, for some reason the autogen does not include them.
- _ uuid.UUID
- _ policy.Action
- _ rbac.Objecter
-)
-
-const wrapname = "dbmetrics.metricsStore"
-
-// New returns a database.Store that registers metrics for all queries to reg.
-func New(s database.Store, reg prometheus.Registerer) database.Store {
+type metricsStore struct {
+ database.Store
+ logger slog.Logger
+ // txDuration is how long transactions take to execute.
+ txDuration *prometheus.HistogramVec
+ // txRetries is how many retries we are seeing for a given tx.
+ txRetries *prometheus.CounterVec
+}
+
+// NewDBMetrics returns a database.Store that registers metrics for the database
+// but does not handle individual queries.
+// metricsStore is intended to always be used, because queryMetrics are a bit
+// too verbose for many use cases.
+func NewDBMetrics(s database.Store, logger slog.Logger, reg prometheus.Registerer) database.Store {
// Don't double-wrap.
if slices.Contains(s.Wrappers(), wrapname) {
return s
}
- queryLatencies := prometheus.NewHistogramVec(prometheus.HistogramOpts{
+ txRetries := prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: "coderd",
Subsystem: "db",
- Name: "query_latencies_seconds",
- Help: "Latency distribution of queries in seconds.",
- Buckets: prometheus.DefBuckets,
- }, []string{"query"})
- txDuration := prometheus.NewHistogram(prometheus.HistogramOpts{
+ Name: "tx_executions_count",
+ Help: "Total count of transactions executed. 'retries' is expected to be 0 for a successful transaction.",
+ }, []string{
+ "success", // Did the InTx function return an error?
+ // Number of executions, since we have retry logic on serialization errors.
+ // retries = Executions - 1 (as 1 execute is expected)
+ "retries",
+ // Uniquely naming some transactions can help debug reoccurring errors.
+ "id",
+ })
+ reg.MustRegister(txRetries)
+
+ txDuration := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Namespace: "coderd",
Subsystem: "db",
Name: "tx_duration_seconds",
Help: "Duration of transactions in seconds.",
Buckets: prometheus.DefBuckets,
+ }, []string{
+ "success", // Did the InTx function return an error?
+ // Uniquely naming some transactions can help debug reoccurring errors.
+ "id",
})
- reg.MustRegister(queryLatencies)
reg.MustRegister(txDuration)
return &metricsStore{
- s: s,
- queryLatencies: queryLatencies,
- txDuration: txDuration,
+ Store: s,
+ txDuration: txDuration,
+ txRetries: txRetries,
+ logger: logger,
}
}
-var _ database.Store = (*metricsStore)(nil)
-
-type metricsStore struct {
- s database.Store
- queryLatencies *prometheus.HistogramVec
- txDuration prometheus.Histogram
-}
-
func (m metricsStore) Wrappers() []string {
- return append(m.s.Wrappers(), wrapname)
-}
-
-func (m metricsStore) Ping(ctx context.Context) (time.Duration, error) {
- start := time.Now()
- duration, err := m.s.Ping(ctx)
- m.queryLatencies.WithLabelValues("Ping").Observe(time.Since(start).Seconds())
- return duration, err
-}
-
-func (m metricsStore) InTx(f func(database.Store) error, options *sql.TxOptions) error {
- start := time.Now()
- err := m.s.InTx(f, options)
- m.txDuration.Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) AcquireLock(ctx context.Context, pgAdvisoryXactLock int64) error {
- start := time.Now()
- err := m.s.AcquireLock(ctx, pgAdvisoryXactLock)
- m.queryLatencies.WithLabelValues("AcquireLock").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) AcquireNotificationMessages(ctx context.Context, arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow, error) {
- start := time.Now()
- r0, r1 := m.s.AcquireNotificationMessages(ctx, arg)
- m.queryLatencies.WithLabelValues("AcquireNotificationMessages").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) {
- start := time.Now()
- provisionerJob, err := m.s.AcquireProvisionerJob(ctx, arg)
- m.queryLatencies.WithLabelValues("AcquireProvisionerJob").Observe(time.Since(start).Seconds())
- return provisionerJob, err
-}
-
-func (m metricsStore) ActivityBumpWorkspace(ctx context.Context, arg database.ActivityBumpWorkspaceParams) error {
- start := time.Now()
- r0 := m.s.ActivityBumpWorkspace(ctx, arg)
- m.queryLatencies.WithLabelValues("ActivityBumpWorkspace").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) AllUserIDs(ctx context.Context) ([]uuid.UUID, error) {
- start := time.Now()
- r0, r1 := m.s.AllUserIDs(ctx)
- m.queryLatencies.WithLabelValues("AllUserIDs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) ArchiveUnusedTemplateVersions(ctx context.Context, arg database.ArchiveUnusedTemplateVersionsParams) ([]uuid.UUID, error) {
- start := time.Now()
- r0, r1 := m.s.ArchiveUnusedTemplateVersions(ctx, arg)
- m.queryLatencies.WithLabelValues("ArchiveUnusedTemplateVersions").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg database.BatchUpdateWorkspaceLastUsedAtParams) error {
- start := time.Now()
- r0 := m.s.BatchUpdateWorkspaceLastUsedAt(ctx, arg)
- m.queryLatencies.WithLabelValues("BatchUpdateWorkspaceLastUsedAt").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) BulkMarkNotificationMessagesFailed(ctx context.Context, arg database.BulkMarkNotificationMessagesFailedParams) (int64, error) {
- start := time.Now()
- r0, r1 := m.s.BulkMarkNotificationMessagesFailed(ctx, arg)
- m.queryLatencies.WithLabelValues("BulkMarkNotificationMessagesFailed").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) BulkMarkNotificationMessagesSent(ctx context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) {
- start := time.Now()
- r0, r1 := m.s.BulkMarkNotificationMessagesSent(ctx, arg)
- m.queryLatencies.WithLabelValues("BulkMarkNotificationMessagesSent").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) CleanTailnetCoordinators(ctx context.Context) error {
- start := time.Now()
- err := m.s.CleanTailnetCoordinators(ctx)
- m.queryLatencies.WithLabelValues("CleanTailnetCoordinators").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) CleanTailnetLostPeers(ctx context.Context) error {
- start := time.Now()
- r0 := m.s.CleanTailnetLostPeers(ctx)
- m.queryLatencies.WithLabelValues("CleanTailnetLostPeers").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) CleanTailnetTunnels(ctx context.Context) error {
- start := time.Now()
- r0 := m.s.CleanTailnetTunnels(ctx)
- m.queryLatencies.WithLabelValues("CleanTailnetTunnels").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) CustomRoles(ctx context.Context, arg database.CustomRolesParams) ([]database.CustomRole, error) {
- start := time.Now()
- r0, r1 := m.s.CustomRoles(ctx, arg)
- m.queryLatencies.WithLabelValues("CustomRoles").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteAPIKeyByID(ctx context.Context, id string) error {
- start := time.Now()
- err := m.s.DeleteAPIKeyByID(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteAPIKeyByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error {
- start := time.Now()
- err := m.s.DeleteAPIKeysByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("DeleteAPIKeysByUserID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteAllTailnetClientSubscriptions(ctx context.Context, arg database.DeleteAllTailnetClientSubscriptionsParams) error {
- start := time.Now()
- r0 := m.s.DeleteAllTailnetClientSubscriptions(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteAllTailnetClientSubscriptions").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteAllTailnetTunnels(ctx context.Context, arg database.DeleteAllTailnetTunnelsParams) error {
- start := time.Now()
- r0 := m.s.DeleteAllTailnetTunnels(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteAllTailnetTunnels").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteApplicationConnectAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error {
- start := time.Now()
- err := m.s.DeleteApplicationConnectAPIKeysByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("DeleteApplicationConnectAPIKeysByUserID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteCoordinator(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteCoordinator(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteCoordinator").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteCryptoKey(ctx context.Context, arg database.DeleteCryptoKeyParams) (database.CryptoKey, error) {
- start := time.Now()
- r0, r1 := m.s.DeleteCryptoKey(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteCryptoKey").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteCustomRole(ctx context.Context, arg database.DeleteCustomRoleParams) error {
- start := time.Now()
- r0 := m.s.DeleteCustomRole(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteCustomRole").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteExternalAuthLink(ctx context.Context, arg database.DeleteExternalAuthLinkParams) error {
- start := time.Now()
- r0 := m.s.DeleteExternalAuthLink(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteExternalAuthLink").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteGitSSHKey(ctx context.Context, userID uuid.UUID) error {
- start := time.Now()
- err := m.s.DeleteGitSSHKey(ctx, userID)
- m.queryLatencies.WithLabelValues("DeleteGitSSHKey").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteGroupByID(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- err := m.s.DeleteGroupByID(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteGroupByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteGroupMemberFromGroup(ctx context.Context, arg database.DeleteGroupMemberFromGroupParams) error {
- start := time.Now()
- err := m.s.DeleteGroupMemberFromGroup(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteGroupMemberFromGroup").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteLicense(ctx context.Context, id int32) (int32, error) {
- start := time.Now()
- licenseID, err := m.s.DeleteLicense(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteLicense").Observe(time.Since(start).Seconds())
- return licenseID, err
-}
-
-func (m metricsStore) DeleteOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteOAuth2ProviderAppByID(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteOAuth2ProviderAppCodeByID(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppCodeByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppCodesByAppAndUserIDParams) error {
- start := time.Now()
- r0 := m.s.DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppCodesByAppAndUserID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteOAuth2ProviderAppSecretByID(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppTokensByAppAndUserIDParams) error {
- start := time.Now()
- r0 := m.s.DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppTokensByAppAndUserID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOldNotificationMessages(ctx context.Context) error {
- start := time.Now()
- r0 := m.s.DeleteOldNotificationMessages(ctx)
- m.queryLatencies.WithLabelValues("DeleteOldNotificationMessages").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOldProvisionerDaemons(ctx context.Context) error {
- start := time.Now()
- r0 := m.s.DeleteOldProvisionerDaemons(ctx)
- m.queryLatencies.WithLabelValues("DeleteOldProvisionerDaemons").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOldWorkspaceAgentLogs(ctx context.Context, arg time.Time) error {
- start := time.Now()
- r0 := m.s.DeleteOldWorkspaceAgentLogs(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteOldWorkspaceAgentLogs").Observe(time.Since(start).Seconds())
- return r0
+ return append(m.Store.Wrappers(), wrapname)
}
-func (m metricsStore) DeleteOldWorkspaceAgentStats(ctx context.Context) error {
- start := time.Now()
- err := m.s.DeleteOldWorkspaceAgentStats(ctx)
- m.queryLatencies.WithLabelValues("DeleteOldWorkspaceAgentStats").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) DeleteOrganization(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteOrganization(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteOrganization").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error {
- start := time.Now()
- r0 := m.s.DeleteOrganizationMember(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteOrganizationMember").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteProvisionerKey(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteProvisionerKey(ctx, id)
- m.queryLatencies.WithLabelValues("DeleteProvisionerKey").Observe(time.Since(start).Seconds())
- return r0
-}
+func (m metricsStore) InTx(f func(database.Store) error, options *database.TxOptions) error {
+ if options == nil {
+ options = database.DefaultTXOptions()
+ }
-func (m metricsStore) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error {
start := time.Now()
- err := m.s.DeleteReplicasUpdatedBefore(ctx, updatedAt)
- m.queryLatencies.WithLabelValues("DeleteReplicasUpdatedBefore").Observe(time.Since(start).Seconds())
+ err := m.Store.InTx(f, options)
+ dur := time.Since(start)
+ // The number of unique label combinations is
+ // 2 x #IDs x #of buckets
+ // So IDs should be used sparingly to prevent too much bloat.
+ m.txDuration.With(prometheus.Labels{
+ "success": strconv.FormatBool(err == nil),
+ "id": options.TxIdentifier, // Can be empty string for unlabeled
+ }).Observe(dur.Seconds())
+
+ m.txRetries.With(prometheus.Labels{
+ "success": strconv.FormatBool(err == nil),
+ "retries": strconv.FormatInt(int64(options.ExecutionCount()-1), 10),
+ "id": options.TxIdentifier, // Can be empty string for unlabeled
+ }).Inc()
+
+ // Log all serializable transactions that are retried.
+ // This is expected to happen in production, but should be kept
+ // to a minimum. If these logs happen frequently, something is wrong.
+ if options.ExecutionCount() > 1 {
+ l := m.logger.Warn
+ if err != nil {
+ // Error level if retries were not enough
+ l = m.logger.Error
+ }
+ // No context is present in this function :(
+ l(context.Background(), "database transaction hit serialization error and had to retry",
+ slog.F("success", err == nil), // It can succeed on retry
+ // Note the error might not be a serialization error. It is possible
+ // the first error was a serialization error, and the error on the
+ // retry is different. If this is the case, we still want to log it
+ // since the first error was a serialization error.
+ slog.Error(err), // Might be nil, that is ok!
+ slog.F("executions", options.ExecutionCount()),
+ slog.F("id", options.TxIdentifier),
+ slog.F("duration", dur),
+ )
+ }
return err
}
-
-func (m metricsStore) DeleteRuntimeConfig(ctx context.Context, key string) error {
- start := time.Now()
- r0 := m.s.DeleteRuntimeConfig(ctx, key)
- m.queryLatencies.WithLabelValues("DeleteRuntimeConfig").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteTailnetAgent(ctx context.Context, arg database.DeleteTailnetAgentParams) (database.DeleteTailnetAgentRow, error) {
- start := time.Now()
- r0, r1 := m.s.DeleteTailnetAgent(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteTailnetAgent").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteTailnetClient(ctx context.Context, arg database.DeleteTailnetClientParams) (database.DeleteTailnetClientRow, error) {
- start := time.Now()
- r0, r1 := m.s.DeleteTailnetClient(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteTailnetClient").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteTailnetClientSubscription(ctx context.Context, arg database.DeleteTailnetClientSubscriptionParams) error {
- start := time.Now()
- r0 := m.s.DeleteTailnetClientSubscription(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteTailnetClientSubscription").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteTailnetPeer(ctx context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) {
- start := time.Now()
- r0, r1 := m.s.DeleteTailnetPeer(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteTailnetPeer").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) {
- start := time.Now()
- r0, r1 := m.s.DeleteTailnetTunnel(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteTailnetTunnel").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error {
- start := time.Now()
- r0 := m.s.DeleteWorkspaceAgentPortShare(ctx, arg)
- m.queryLatencies.WithLabelValues("DeleteWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context, templateID uuid.UUID) error {
- start := time.Now()
- r0 := m.s.DeleteWorkspaceAgentPortSharesByTemplate(ctx, templateID)
- m.queryLatencies.WithLabelValues("DeleteWorkspaceAgentPortSharesByTemplate").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) EnqueueNotificationMessage(ctx context.Context, arg database.EnqueueNotificationMessageParams) error {
- start := time.Now()
- r0 := m.s.EnqueueNotificationMessage(ctx, arg)
- m.queryLatencies.WithLabelValues("EnqueueNotificationMessage").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) FavoriteWorkspace(ctx context.Context, arg uuid.UUID) error {
- start := time.Now()
- r0 := m.s.FavoriteWorkspace(ctx, arg)
- m.queryLatencies.WithLabelValues("FavoriteWorkspace").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) FetchNewMessageMetadata(ctx context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) {
- start := time.Now()
- r0, r1 := m.s.FetchNewMessageMetadata(ctx, arg)
- m.queryLatencies.WithLabelValues("FetchNewMessageMetadata").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) {
- start := time.Now()
- apiKey, err := m.s.GetAPIKeyByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetAPIKeyByID").Observe(time.Since(start).Seconds())
- return apiKey, err
-}
-
-func (m metricsStore) GetAPIKeyByName(ctx context.Context, arg database.GetAPIKeyByNameParams) (database.APIKey, error) {
- start := time.Now()
- apiKey, err := m.s.GetAPIKeyByName(ctx, arg)
- m.queryLatencies.WithLabelValues("GetAPIKeyByName").Observe(time.Since(start).Seconds())
- return apiKey, err
-}
-
-func (m metricsStore) GetAPIKeysByLoginType(ctx context.Context, loginType database.LoginType) ([]database.APIKey, error) {
- start := time.Now()
- apiKeys, err := m.s.GetAPIKeysByLoginType(ctx, loginType)
- m.queryLatencies.WithLabelValues("GetAPIKeysByLoginType").Observe(time.Since(start).Seconds())
- return apiKeys, err
-}
-
-func (m metricsStore) GetAPIKeysByUserID(ctx context.Context, arg database.GetAPIKeysByUserIDParams) ([]database.APIKey, error) {
- start := time.Now()
- apiKeys, err := m.s.GetAPIKeysByUserID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetAPIKeysByUserID").Observe(time.Since(start).Seconds())
- return apiKeys, err
-}
-
-func (m metricsStore) GetAPIKeysLastUsedAfter(ctx context.Context, lastUsed time.Time) ([]database.APIKey, error) {
- start := time.Now()
- apiKeys, err := m.s.GetAPIKeysLastUsedAfter(ctx, lastUsed)
- m.queryLatencies.WithLabelValues("GetAPIKeysLastUsedAfter").Observe(time.Since(start).Seconds())
- return apiKeys, err
-}
-
-func (m metricsStore) GetActiveUserCount(ctx context.Context) (int64, error) {
- start := time.Now()
- count, err := m.s.GetActiveUserCount(ctx)
- m.queryLatencies.WithLabelValues("GetActiveUserCount").Observe(time.Since(start).Seconds())
- return count, err
-}
-
-func (m metricsStore) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceBuild, error) {
- start := time.Now()
- r0, r1 := m.s.GetActiveWorkspaceBuildsByTemplateID(ctx, templateID)
- m.queryLatencies.WithLabelValues("GetActiveWorkspaceBuildsByTemplateID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAllTailnetAgents(ctx context.Context) ([]database.TailnetAgent, error) {
- start := time.Now()
- r0, r1 := m.s.GetAllTailnetAgents(ctx)
- m.queryLatencies.WithLabelValues("GetAllTailnetAgents").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAllTailnetCoordinators(ctx context.Context) ([]database.TailnetCoordinator, error) {
- start := time.Now()
- r0, r1 := m.s.GetAllTailnetCoordinators(ctx)
- m.queryLatencies.WithLabelValues("GetAllTailnetCoordinators").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAllTailnetPeers(ctx context.Context) ([]database.TailnetPeer, error) {
- start := time.Now()
- r0, r1 := m.s.GetAllTailnetPeers(ctx)
- m.queryLatencies.WithLabelValues("GetAllTailnetPeers").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAllTailnetTunnels(ctx context.Context) ([]database.TailnetTunnel, error) {
- start := time.Now()
- r0, r1 := m.s.GetAllTailnetTunnels(ctx)
- m.queryLatencies.WithLabelValues("GetAllTailnetTunnels").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAnnouncementBanners(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetAnnouncementBanners(ctx)
- m.queryLatencies.WithLabelValues("GetAnnouncementBanners").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAppSecurityKey(ctx context.Context) (string, error) {
- start := time.Now()
- key, err := m.s.GetAppSecurityKey(ctx)
- m.queryLatencies.WithLabelValues("GetAppSecurityKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) GetApplicationName(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetApplicationName(ctx)
- m.queryLatencies.WithLabelValues("GetApplicationName").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams) ([]database.GetAuditLogsOffsetRow, error) {
- start := time.Now()
- rows, err := m.s.GetAuditLogsOffset(ctx, arg)
- m.queryLatencies.WithLabelValues("GetAuditLogsOffset").Observe(time.Since(start).Seconds())
- return rows, err
-}
-
-func (m metricsStore) GetAuthorizationUserRoles(ctx context.Context, userID uuid.UUID) (database.GetAuthorizationUserRolesRow, error) {
- start := time.Now()
- row, err := m.s.GetAuthorizationUserRoles(ctx, userID)
- m.queryLatencies.WithLabelValues("GetAuthorizationUserRoles").Observe(time.Since(start).Seconds())
- return row, err
-}
-
-func (m metricsStore) GetCoordinatorResumeTokenSigningKey(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetCoordinatorResumeTokenSigningKey(ctx)
- m.queryLatencies.WithLabelValues("GetCoordinatorResumeTokenSigningKey").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetCryptoKeyByFeatureAndSequence(ctx context.Context, arg database.GetCryptoKeyByFeatureAndSequenceParams) (database.CryptoKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetCryptoKeyByFeatureAndSequence(ctx, arg)
- m.queryLatencies.WithLabelValues("GetCryptoKeyByFeatureAndSequence").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetCryptoKeys(ctx context.Context) ([]database.CryptoKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetCryptoKeys(ctx)
- m.queryLatencies.WithLabelValues("GetCryptoKeys").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetCryptoKeysByFeature(ctx context.Context, feature database.CryptoKeyFeature) ([]database.CryptoKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetCryptoKeysByFeature(ctx, feature)
- m.queryLatencies.WithLabelValues("GetCryptoKeysByFeature").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetDBCryptKeys(ctx context.Context) ([]database.DBCryptKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetDBCryptKeys(ctx)
- m.queryLatencies.WithLabelValues("GetDBCryptKeys").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetDERPMeshKey(ctx context.Context) (string, error) {
- start := time.Now()
- key, err := m.s.GetDERPMeshKey(ctx)
- m.queryLatencies.WithLabelValues("GetDERPMeshKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) GetDefaultOrganization(ctx context.Context) (database.Organization, error) {
- start := time.Now()
- r0, r1 := m.s.GetDefaultOrganization(ctx)
- m.queryLatencies.WithLabelValues("GetDefaultOrganization").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetDefaultProxyConfig(ctx context.Context) (database.GetDefaultProxyConfigRow, error) {
- start := time.Now()
- resp, err := m.s.GetDefaultProxyConfig(ctx)
- m.queryLatencies.WithLabelValues("GetDefaultProxyConfig").Observe(time.Since(start).Seconds())
- return resp, err
-}
-
-func (m metricsStore) GetDeploymentDAUs(ctx context.Context, tzOffset int32) ([]database.GetDeploymentDAUsRow, error) {
- start := time.Now()
- rows, err := m.s.GetDeploymentDAUs(ctx, tzOffset)
- m.queryLatencies.WithLabelValues("GetDeploymentDAUs").Observe(time.Since(start).Seconds())
- return rows, err
-}
-
-func (m metricsStore) GetDeploymentID(ctx context.Context) (string, error) {
- start := time.Now()
- id, err := m.s.GetDeploymentID(ctx)
- m.queryLatencies.WithLabelValues("GetDeploymentID").Observe(time.Since(start).Seconds())
- return id, err
-}
-
-func (m metricsStore) GetDeploymentWorkspaceAgentStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentStatsRow, error) {
- start := time.Now()
- row, err := m.s.GetDeploymentWorkspaceAgentStats(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceAgentStats").Observe(time.Since(start).Seconds())
- return row, err
-}
-
-func (m metricsStore) GetDeploymentWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentUsageStatsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetDeploymentWorkspaceAgentUsageStats(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceAgentUsageStats").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetDeploymentWorkspaceStats(ctx context.Context) (database.GetDeploymentWorkspaceStatsRow, error) {
- start := time.Now()
- row, err := m.s.GetDeploymentWorkspaceStats(ctx)
- m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceStats").Observe(time.Since(start).Seconds())
- return row, err
-}
-
-func (m metricsStore) GetExternalAuthLink(ctx context.Context, arg database.GetExternalAuthLinkParams) (database.ExternalAuthLink, error) {
- start := time.Now()
- link, err := m.s.GetExternalAuthLink(ctx, arg)
- m.queryLatencies.WithLabelValues("GetExternalAuthLink").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) GetExternalAuthLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.ExternalAuthLink, error) {
- start := time.Now()
- r0, r1 := m.s.GetExternalAuthLinksByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("GetExternalAuthLinksByUserID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetFailedWorkspaceBuildsByTemplateID(ctx context.Context, arg database.GetFailedWorkspaceBuildsByTemplateIDParams) ([]database.GetFailedWorkspaceBuildsByTemplateIDRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetFailedWorkspaceBuildsByTemplateID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetFailedWorkspaceBuildsByTemplateID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetFileByHashAndCreator(ctx context.Context, arg database.GetFileByHashAndCreatorParams) (database.File, error) {
- start := time.Now()
- file, err := m.s.GetFileByHashAndCreator(ctx, arg)
- m.queryLatencies.WithLabelValues("GetFileByHashAndCreator").Observe(time.Since(start).Seconds())
- return file, err
-}
-
-func (m metricsStore) GetFileByID(ctx context.Context, id uuid.UUID) (database.File, error) {
- start := time.Now()
- file, err := m.s.GetFileByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetFileByID").Observe(time.Since(start).Seconds())
- return file, err
-}
-
-func (m metricsStore) GetFileTemplates(ctx context.Context, fileID uuid.UUID) ([]database.GetFileTemplatesRow, error) {
- start := time.Now()
- rows, err := m.s.GetFileTemplates(ctx, fileID)
- m.queryLatencies.WithLabelValues("GetFileTemplates").Observe(time.Since(start).Seconds())
- return rows, err
-}
-
-func (m metricsStore) GetGitSSHKey(ctx context.Context, userID uuid.UUID) (database.GitSSHKey, error) {
- start := time.Now()
- key, err := m.s.GetGitSSHKey(ctx, userID)
- m.queryLatencies.WithLabelValues("GetGitSSHKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) GetGroupByID(ctx context.Context, id uuid.UUID) (database.Group, error) {
- start := time.Now()
- group, err := m.s.GetGroupByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetGroupByID").Observe(time.Since(start).Seconds())
- return group, err
-}
-
-func (m metricsStore) GetGroupByOrgAndName(ctx context.Context, arg database.GetGroupByOrgAndNameParams) (database.Group, error) {
- start := time.Now()
- group, err := m.s.GetGroupByOrgAndName(ctx, arg)
- m.queryLatencies.WithLabelValues("GetGroupByOrgAndName").Observe(time.Since(start).Seconds())
- return group, err
-}
-
-func (m metricsStore) GetGroupMembers(ctx context.Context) ([]database.GroupMember, error) {
- start := time.Now()
- r0, r1 := m.s.GetGroupMembers(ctx)
- m.queryLatencies.WithLabelValues("GetGroupMembers").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetGroupMembersByGroupID(ctx context.Context, groupID uuid.UUID) ([]database.GroupMember, error) {
- start := time.Now()
- users, err := m.s.GetGroupMembersByGroupID(ctx, groupID)
- m.queryLatencies.WithLabelValues("GetGroupMembersByGroupID").Observe(time.Since(start).Seconds())
- return users, err
-}
-
-func (m metricsStore) GetGroupMembersCountByGroupID(ctx context.Context, groupID uuid.UUID) (int64, error) {
- start := time.Now()
- r0, r1 := m.s.GetGroupMembersCountByGroupID(ctx, groupID)
- m.queryLatencies.WithLabelValues("GetGroupMembersCountByGroupID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetGroups(ctx context.Context, arg database.GetGroupsParams) ([]database.GetGroupsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetGroups(ctx, arg)
- m.queryLatencies.WithLabelValues("GetGroups").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetHealthSettings(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetHealthSettings(ctx)
- m.queryLatencies.WithLabelValues("GetHealthSettings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetHungProvisionerJobs(ctx context.Context, hungSince time.Time) ([]database.ProvisionerJob, error) {
- start := time.Now()
- jobs, err := m.s.GetHungProvisionerJobs(ctx, hungSince)
- m.queryLatencies.WithLabelValues("GetHungProvisionerJobs").Observe(time.Since(start).Seconds())
- return jobs, err
-}
-
-func (m metricsStore) GetJFrogXrayScanByWorkspaceAndAgentID(ctx context.Context, arg database.GetJFrogXrayScanByWorkspaceAndAgentIDParams) (database.JfrogXrayScan, error) {
- start := time.Now()
- r0, r1 := m.s.GetJFrogXrayScanByWorkspaceAndAgentID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetJFrogXrayScanByWorkspaceAndAgentID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetLastUpdateCheck(ctx context.Context) (string, error) {
- start := time.Now()
- version, err := m.s.GetLastUpdateCheck(ctx)
- m.queryLatencies.WithLabelValues("GetLastUpdateCheck").Observe(time.Since(start).Seconds())
- return version, err
-}
-
-func (m metricsStore) GetLatestCryptoKeyByFeature(ctx context.Context, feature database.CryptoKeyFeature) (database.CryptoKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetLatestCryptoKeyByFeature(ctx, feature)
- m.queryLatencies.WithLabelValues("GetLatestCryptoKeyByFeature").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.WorkspaceBuild, error) {
- start := time.Now()
- build, err := m.s.GetLatestWorkspaceBuildByWorkspaceID(ctx, workspaceID)
- m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuildByWorkspaceID").Observe(time.Since(start).Seconds())
- return build, err
-}
-
-func (m metricsStore) GetLatestWorkspaceBuilds(ctx context.Context) ([]database.WorkspaceBuild, error) {
- start := time.Now()
- builds, err := m.s.GetLatestWorkspaceBuilds(ctx)
- m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuilds").Observe(time.Since(start).Seconds())
- return builds, err
-}
-
-func (m metricsStore) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuild, error) {
- start := time.Now()
- builds, err := m.s.GetLatestWorkspaceBuildsByWorkspaceIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuildsByWorkspaceIDs").Observe(time.Since(start).Seconds())
- return builds, err
-}
-
-func (m metricsStore) GetLicenseByID(ctx context.Context, id int32) (database.License, error) {
- start := time.Now()
- license, err := m.s.GetLicenseByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetLicenseByID").Observe(time.Since(start).Seconds())
- return license, err
-}
-
-func (m metricsStore) GetLicenses(ctx context.Context) ([]database.License, error) {
- start := time.Now()
- licenses, err := m.s.GetLicenses(ctx)
- m.queryLatencies.WithLabelValues("GetLicenses").Observe(time.Since(start).Seconds())
- return licenses, err
-}
-
-func (m metricsStore) GetLogoURL(ctx context.Context) (string, error) {
- start := time.Now()
- url, err := m.s.GetLogoURL(ctx)
- m.queryLatencies.WithLabelValues("GetLogoURL").Observe(time.Since(start).Seconds())
- return url, err
-}
-
-func (m metricsStore) GetNotificationMessagesByStatus(ctx context.Context, arg database.GetNotificationMessagesByStatusParams) ([]database.NotificationMessage, error) {
- start := time.Now()
- r0, r1 := m.s.GetNotificationMessagesByStatus(ctx, arg)
- m.queryLatencies.WithLabelValues("GetNotificationMessagesByStatus").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetNotificationReportGeneratorLogByTemplate(ctx context.Context, arg uuid.UUID) (database.NotificationReportGeneratorLog, error) {
- start := time.Now()
- r0, r1 := m.s.GetNotificationReportGeneratorLogByTemplate(ctx, arg)
- m.queryLatencies.WithLabelValues("GetNotificationReportGeneratorLogByTemplate").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetNotificationTemplateByID(ctx context.Context, id uuid.UUID) (database.NotificationTemplate, error) {
- start := time.Now()
- r0, r1 := m.s.GetNotificationTemplateByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetNotificationTemplateByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetNotificationTemplatesByKind(ctx context.Context, kind database.NotificationTemplateKind) ([]database.NotificationTemplate, error) {
- start := time.Now()
- r0, r1 := m.s.GetNotificationTemplatesByKind(ctx, kind)
- m.queryLatencies.WithLabelValues("GetNotificationTemplatesByKind").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetNotificationsSettings(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetNotificationsSettings(ctx)
- m.queryLatencies.WithLabelValues("GetNotificationsSettings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppCode, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppCodeByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppCodeByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppCodeByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppCode, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppCodeByPrefix(ctx, secretPrefix)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppCodeByPrefix").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppSecret, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppSecretByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppSecretByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppSecret, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppSecretByPrefix(ctx, secretPrefix)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretByPrefix").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppSecretsByAppID(ctx context.Context, appID uuid.UUID) ([]database.OAuth2ProviderAppSecret, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppSecretsByAppID(ctx, appID)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretsByAppID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppTokenByPrefix(ctx context.Context, hashPrefix []byte) (database.OAuth2ProviderAppToken, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppTokenByPrefix(ctx, hashPrefix)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppTokenByPrefix").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderApps(ctx context.Context) ([]database.OAuth2ProviderApp, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderApps(ctx)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderApps").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuth2ProviderAppsByUserID(ctx context.Context, userID uuid.UUID) ([]database.GetOAuth2ProviderAppsByUserIDRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuth2ProviderAppsByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppsByUserID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOAuthSigningKey(ctx context.Context) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetOAuthSigningKey(ctx)
- m.queryLatencies.WithLabelValues("GetOAuthSigningKey").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetOrganizationByID(ctx context.Context, id uuid.UUID) (database.Organization, error) {
- start := time.Now()
- organization, err := m.s.GetOrganizationByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetOrganizationByID").Observe(time.Since(start).Seconds())
- return organization, err
-}
-
-func (m metricsStore) GetOrganizationByName(ctx context.Context, name string) (database.Organization, error) {
- start := time.Now()
- organization, err := m.s.GetOrganizationByName(ctx, name)
- m.queryLatencies.WithLabelValues("GetOrganizationByName").Observe(time.Since(start).Seconds())
- return organization, err
-}
-
-func (m metricsStore) GetOrganizationIDsByMemberIDs(ctx context.Context, ids []uuid.UUID) ([]database.GetOrganizationIDsByMemberIDsRow, error) {
- start := time.Now()
- organizations, err := m.s.GetOrganizationIDsByMemberIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetOrganizationIDsByMemberIDs").Observe(time.Since(start).Seconds())
- return organizations, err
-}
-
-func (m metricsStore) GetOrganizations(ctx context.Context, args database.GetOrganizationsParams) ([]database.Organization, error) {
- start := time.Now()
- organizations, err := m.s.GetOrganizations(ctx, args)
- m.queryLatencies.WithLabelValues("GetOrganizations").Observe(time.Since(start).Seconds())
- return organizations, err
-}
-
-func (m metricsStore) GetOrganizationsByUserID(ctx context.Context, userID uuid.UUID) ([]database.Organization, error) {
- start := time.Now()
- organizations, err := m.s.GetOrganizationsByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("GetOrganizationsByUserID").Observe(time.Since(start).Seconds())
- return organizations, err
-}
-
-func (m metricsStore) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ParameterSchema, error) {
- start := time.Now()
- schemas, err := m.s.GetParameterSchemasByJobID(ctx, jobID)
- m.queryLatencies.WithLabelValues("GetParameterSchemasByJobID").Observe(time.Since(start).Seconds())
- return schemas, err
-}
-
-func (m metricsStore) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) {
- start := time.Now()
- version, err := m.s.GetPreviousTemplateVersion(ctx, arg)
- m.queryLatencies.WithLabelValues("GetPreviousTemplateVersion").Observe(time.Since(start).Seconds())
- return version, err
-}
-
-func (m metricsStore) GetProvisionerDaemons(ctx context.Context) ([]database.ProvisionerDaemon, error) {
- start := time.Now()
- daemons, err := m.s.GetProvisionerDaemons(ctx)
- m.queryLatencies.WithLabelValues("GetProvisionerDaemons").Observe(time.Since(start).Seconds())
- return daemons, err
-}
-
-func (m metricsStore) GetProvisionerDaemonsByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerDaemon, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerDaemonsByOrganization(ctx, organizationID)
- m.queryLatencies.WithLabelValues("GetProvisionerDaemonsByOrganization").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerJobByID(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) {
- start := time.Now()
- job, err := m.s.GetProvisionerJobByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetProvisionerJobByID").Observe(time.Since(start).Seconds())
- return job, err
-}
-
-func (m metricsStore) GetProvisionerJobTimingsByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ProvisionerJobTiming, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerJobTimingsByJobID(ctx, jobID)
- m.queryLatencies.WithLabelValues("GetProvisionerJobTimingsByJobID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerJobsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.ProvisionerJob, error) {
- start := time.Now()
- jobs, err := m.s.GetProvisionerJobsByIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetProvisionerJobsByIDs").Observe(time.Since(start).Seconds())
- return jobs, err
-}
-
-func (m metricsStore) GetProvisionerJobsByIDsWithQueuePosition(ctx context.Context, ids []uuid.UUID) ([]database.GetProvisionerJobsByIDsWithQueuePositionRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerJobsByIDsWithQueuePosition(ctx, ids)
- m.queryLatencies.WithLabelValues("GetProvisionerJobsByIDsWithQueuePosition").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) {
- start := time.Now()
- jobs, err := m.s.GetProvisionerJobsCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetProvisionerJobsCreatedAfter").Observe(time.Since(start).Seconds())
- return jobs, err
-}
-
-func (m metricsStore) GetProvisionerKeyByHashedSecret(ctx context.Context, hashedSecret []byte) (database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerKeyByHashedSecret(ctx, hashedSecret)
- m.queryLatencies.WithLabelValues("GetProvisionerKeyByHashedSecret").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerKeyByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetProvisionerKeyByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerKeyByName(ctx context.Context, name database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.GetProvisionerKeyByName(ctx, name)
- m.queryLatencies.WithLabelValues("GetProvisionerKeyByName").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetProvisionerLogsAfterID(ctx context.Context, arg database.GetProvisionerLogsAfterIDParams) ([]database.ProvisionerJobLog, error) {
- start := time.Now()
- logs, err := m.s.GetProvisionerLogsAfterID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetProvisionerLogsAfterID").Observe(time.Since(start).Seconds())
- return logs, err
-}
-
-func (m metricsStore) GetQuotaAllowanceForUser(ctx context.Context, userID database.GetQuotaAllowanceForUserParams) (int64, error) {
- start := time.Now()
- allowance, err := m.s.GetQuotaAllowanceForUser(ctx, userID)
- m.queryLatencies.WithLabelValues("GetQuotaAllowanceForUser").Observe(time.Since(start).Seconds())
- return allowance, err
-}
-
-func (m metricsStore) GetQuotaConsumedForUser(ctx context.Context, ownerID database.GetQuotaConsumedForUserParams) (int64, error) {
- start := time.Now()
- consumed, err := m.s.GetQuotaConsumedForUser(ctx, ownerID)
- m.queryLatencies.WithLabelValues("GetQuotaConsumedForUser").Observe(time.Since(start).Seconds())
- return consumed, err
-}
-
-func (m metricsStore) GetReplicaByID(ctx context.Context, id uuid.UUID) (database.Replica, error) {
- start := time.Now()
- replica, err := m.s.GetReplicaByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetReplicaByID").Observe(time.Since(start).Seconds())
- return replica, err
-}
-
-func (m metricsStore) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.Replica, error) {
- start := time.Now()
- replicas, err := m.s.GetReplicasUpdatedAfter(ctx, updatedAt)
- m.queryLatencies.WithLabelValues("GetReplicasUpdatedAfter").Observe(time.Since(start).Seconds())
- return replicas, err
-}
-
-func (m metricsStore) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
- start := time.Now()
- r0, r1 := m.s.GetRuntimeConfig(ctx, key)
- m.queryLatencies.WithLabelValues("GetRuntimeConfig").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTailnetAgents(ctx context.Context, id uuid.UUID) ([]database.TailnetAgent, error) {
- start := time.Now()
- r0, r1 := m.s.GetTailnetAgents(ctx, id)
- m.queryLatencies.WithLabelValues("GetTailnetAgents").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTailnetClientsForAgent(ctx context.Context, agentID uuid.UUID) ([]database.TailnetClient, error) {
- start := time.Now()
- r0, r1 := m.s.GetTailnetClientsForAgent(ctx, agentID)
- m.queryLatencies.WithLabelValues("GetTailnetClientsForAgent").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTailnetPeers(ctx context.Context, id uuid.UUID) ([]database.TailnetPeer, error) {
- start := time.Now()
- r0, r1 := m.s.GetTailnetPeers(ctx, id)
- m.queryLatencies.WithLabelValues("GetTailnetPeers").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTailnetTunnelPeerBindings(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTailnetTunnelPeerBindings(ctx, srcID)
- m.queryLatencies.WithLabelValues("GetTailnetTunnelPeerBindings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTailnetTunnelPeerIDs(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTailnetTunnelPeerIDs(ctx, srcID)
- m.queryLatencies.WithLabelValues("GetTailnetTunnelPeerIDs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateAppInsights(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateAppInsights").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateAppInsightsByTemplate(ctx context.Context, arg database.GetTemplateAppInsightsByTemplateParams) ([]database.GetTemplateAppInsightsByTemplateRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateAppInsightsByTemplate(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateAppInsightsByTemplate").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateAverageBuildTime(ctx context.Context, arg database.GetTemplateAverageBuildTimeParams) (database.GetTemplateAverageBuildTimeRow, error) {
- start := time.Now()
- buildTime, err := m.s.GetTemplateAverageBuildTime(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateAverageBuildTime").Observe(time.Since(start).Seconds())
- return buildTime, err
-}
-
-func (m metricsStore) GetTemplateByID(ctx context.Context, id uuid.UUID) (database.Template, error) {
- start := time.Now()
- template, err := m.s.GetTemplateByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetTemplateByID").Observe(time.Since(start).Seconds())
- return template, err
-}
-
-func (m metricsStore) GetTemplateByOrganizationAndName(ctx context.Context, arg database.GetTemplateByOrganizationAndNameParams) (database.Template, error) {
- start := time.Now()
- template, err := m.s.GetTemplateByOrganizationAndName(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateByOrganizationAndName").Observe(time.Since(start).Seconds())
- return template, err
-}
-
-func (m metricsStore) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateDAUsParams) ([]database.GetTemplateDAUsRow, error) {
- start := time.Now()
- daus, err := m.s.GetTemplateDAUs(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateDAUs").Observe(time.Since(start).Seconds())
- return daus, err
-}
-
-func (m metricsStore) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateInsights(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateInsights").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateInsightsByInterval(ctx context.Context, arg database.GetTemplateInsightsByIntervalParams) ([]database.GetTemplateInsightsByIntervalRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateInsightsByInterval(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateInsightsByInterval").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateInsightsByTemplate(ctx context.Context, arg database.GetTemplateInsightsByTemplateParams) ([]database.GetTemplateInsightsByTemplateRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateInsightsByTemplate(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateInsightsByTemplate").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateParameterInsights(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateParameterInsights").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateUsageStats(ctx context.Context, arg database.GetTemplateUsageStatsParams) ([]database.TemplateUsageStat, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateUsageStats(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateUsageStats").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateVersionByID(ctx context.Context, id uuid.UUID) (database.TemplateVersion, error) {
- start := time.Now()
- version, err := m.s.GetTemplateVersionByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetTemplateVersionByID").Observe(time.Since(start).Seconds())
- return version, err
-}
-
-func (m metricsStore) GetTemplateVersionByJobID(ctx context.Context, jobID uuid.UUID) (database.TemplateVersion, error) {
- start := time.Now()
- version, err := m.s.GetTemplateVersionByJobID(ctx, jobID)
- m.queryLatencies.WithLabelValues("GetTemplateVersionByJobID").Observe(time.Since(start).Seconds())
- return version, err
-}
-
-func (m metricsStore) GetTemplateVersionByTemplateIDAndName(ctx context.Context, arg database.GetTemplateVersionByTemplateIDAndNameParams) (database.TemplateVersion, error) {
- start := time.Now()
- version, err := m.s.GetTemplateVersionByTemplateIDAndName(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateVersionByTemplateIDAndName").Observe(time.Since(start).Seconds())
- return version, err
-}
-
-func (m metricsStore) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionParameter, error) {
- start := time.Now()
- parameters, err := m.s.GetTemplateVersionParameters(ctx, templateVersionID)
- m.queryLatencies.WithLabelValues("GetTemplateVersionParameters").Observe(time.Since(start).Seconds())
- return parameters, err
-}
-
-func (m metricsStore) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
- start := time.Now()
- variables, err := m.s.GetTemplateVersionVariables(ctx, templateVersionID)
- m.queryLatencies.WithLabelValues("GetTemplateVersionVariables").Observe(time.Since(start).Seconds())
- return variables, err
-}
-
-func (m metricsStore) GetTemplateVersionWorkspaceTags(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag, error) {
- start := time.Now()
- r0, r1 := m.s.GetTemplateVersionWorkspaceTags(ctx, templateVersionID)
- m.queryLatencies.WithLabelValues("GetTemplateVersionWorkspaceTags").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetTemplateVersionsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersion, error) {
- start := time.Now()
- versions, err := m.s.GetTemplateVersionsByIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetTemplateVersionsByIDs").Observe(time.Since(start).Seconds())
- return versions, err
-}
-
-func (m metricsStore) GetTemplateVersionsByTemplateID(ctx context.Context, arg database.GetTemplateVersionsByTemplateIDParams) ([]database.TemplateVersion, error) {
- start := time.Now()
- versions, err := m.s.GetTemplateVersionsByTemplateID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplateVersionsByTemplateID").Observe(time.Since(start).Seconds())
- return versions, err
-}
-
-func (m metricsStore) GetTemplateVersionsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.TemplateVersion, error) {
- start := time.Now()
- versions, err := m.s.GetTemplateVersionsCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetTemplateVersionsCreatedAfter").Observe(time.Since(start).Seconds())
- return versions, err
-}
-
-func (m metricsStore) GetTemplates(ctx context.Context) ([]database.Template, error) {
- start := time.Now()
- templates, err := m.s.GetTemplates(ctx)
- m.queryLatencies.WithLabelValues("GetTemplates").Observe(time.Since(start).Seconds())
- return templates, err
-}
-
-func (m metricsStore) GetTemplatesWithFilter(ctx context.Context, arg database.GetTemplatesWithFilterParams) ([]database.Template, error) {
- start := time.Now()
- templates, err := m.s.GetTemplatesWithFilter(ctx, arg)
- m.queryLatencies.WithLabelValues("GetTemplatesWithFilter").Observe(time.Since(start).Seconds())
- return templates, err
-}
-
-func (m metricsStore) GetUnexpiredLicenses(ctx context.Context) ([]database.License, error) {
- start := time.Now()
- licenses, err := m.s.GetUnexpiredLicenses(ctx)
- m.queryLatencies.WithLabelValues("GetUnexpiredLicenses").Observe(time.Since(start).Seconds())
- return licenses, err
-}
-
-func (m metricsStore) GetUserActivityInsights(ctx context.Context, arg database.GetUserActivityInsightsParams) ([]database.GetUserActivityInsightsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetUserActivityInsights(ctx, arg)
- m.queryLatencies.WithLabelValues("GetUserActivityInsights").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetUserByEmailOrUsername(ctx context.Context, arg database.GetUserByEmailOrUsernameParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.GetUserByEmailOrUsername(ctx, arg)
- m.queryLatencies.WithLabelValues("GetUserByEmailOrUsername").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) GetUserByID(ctx context.Context, id uuid.UUID) (database.User, error) {
- start := time.Now()
- user, err := m.s.GetUserByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetUserByID").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) GetUserCount(ctx context.Context) (int64, error) {
- start := time.Now()
- count, err := m.s.GetUserCount(ctx)
- m.queryLatencies.WithLabelValues("GetUserCount").Observe(time.Since(start).Seconds())
- return count, err
-}
-
-func (m metricsStore) GetUserLatencyInsights(ctx context.Context, arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetUserLatencyInsights(ctx, arg)
- m.queryLatencies.WithLabelValues("GetUserLatencyInsights").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetUserLinkByLinkedID(ctx context.Context, linkedID string) (database.UserLink, error) {
- start := time.Now()
- link, err := m.s.GetUserLinkByLinkedID(ctx, linkedID)
- m.queryLatencies.WithLabelValues("GetUserLinkByLinkedID").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) GetUserLinkByUserIDLoginType(ctx context.Context, arg database.GetUserLinkByUserIDLoginTypeParams) (database.UserLink, error) {
- start := time.Now()
- link, err := m.s.GetUserLinkByUserIDLoginType(ctx, arg)
- m.queryLatencies.WithLabelValues("GetUserLinkByUserIDLoginType").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) GetUserLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.UserLink, error) {
- start := time.Now()
- r0, r1 := m.s.GetUserLinksByUserID(ctx, userID)
- m.queryLatencies.WithLabelValues("GetUserLinksByUserID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetUserNotificationPreferences(ctx context.Context, userID uuid.UUID) ([]database.NotificationPreference, error) {
- start := time.Now()
- r0, r1 := m.s.GetUserNotificationPreferences(ctx, userID)
- m.queryLatencies.WithLabelValues("GetUserNotificationPreferences").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetUserWorkspaceBuildParameters(ctx context.Context, ownerID database.GetUserWorkspaceBuildParametersParams) ([]database.GetUserWorkspaceBuildParametersRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetUserWorkspaceBuildParameters(ctx, ownerID)
- m.queryLatencies.WithLabelValues("GetUserWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetUsers(ctx context.Context, arg database.GetUsersParams) ([]database.GetUsersRow, error) {
- start := time.Now()
- users, err := m.s.GetUsers(ctx, arg)
- m.queryLatencies.WithLabelValues("GetUsers").Observe(time.Since(start).Seconds())
- return users, err
-}
-
-func (m metricsStore) GetUsersByIDs(ctx context.Context, ids []uuid.UUID) ([]database.User, error) {
- start := time.Now()
- users, err := m.s.GetUsersByIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetUsersByIDs").Observe(time.Since(start).Seconds())
- return users, err
-}
-
-func (m metricsStore) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx context.Context, authToken uuid.UUID) (database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentAndLatestBuildByAuthToken(ctx, authToken)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentAndLatestBuildByAuthToken").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentByID(ctx context.Context, id uuid.UUID) (database.WorkspaceAgent, error) {
- start := time.Now()
- agent, err := m.s.GetWorkspaceAgentByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentByID").Observe(time.Since(start).Seconds())
- return agent, err
-}
-
-func (m metricsStore) GetWorkspaceAgentByInstanceID(ctx context.Context, authInstanceID string) (database.WorkspaceAgent, error) {
- start := time.Now()
- agent, err := m.s.GetWorkspaceAgentByInstanceID(ctx, authInstanceID)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentByInstanceID").Observe(time.Since(start).Seconds())
- return agent, err
-}
-
-func (m metricsStore) GetWorkspaceAgentLifecycleStateByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceAgentLifecycleStateByIDRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentLifecycleStateByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentLifecycleStateByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentLogSourcesByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentLogSource, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentLogSourcesByAgentIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentLogSourcesByAgentIDs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentLogsAfter(ctx context.Context, arg database.GetWorkspaceAgentLogsAfterParams) ([]database.WorkspaceAgentLog, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentLogsAfter(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentLogsAfter").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentMetadata(ctx context.Context, workspaceAgentID database.GetWorkspaceAgentMetadataParams) ([]database.WorkspaceAgentMetadatum, error) {
- start := time.Now()
- metadata, err := m.s.GetWorkspaceAgentMetadata(ctx, workspaceAgentID)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
- return metadata, err
-}
-
-func (m metricsStore) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentPortShare(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentScriptTimingsByBuildID(ctx context.Context, id uuid.UUID) ([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentScriptTimingsByBuildID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentScriptTimingsByBuildID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentScriptsByAgentIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentScriptsByAgentIDs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsRow, error) {
- start := time.Now()
- stats, err := m.s.GetWorkspaceAgentStats(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentStats").Observe(time.Since(start).Seconds())
- return stats, err
-}
-
-func (m metricsStore) GetWorkspaceAgentStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsAndLabelsRow, error) {
- start := time.Now()
- stats, err := m.s.GetWorkspaceAgentStatsAndLabels(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentStatsAndLabels").Observe(time.Since(start).Seconds())
- return stats, err
-}
-
-func (m metricsStore) GetWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentUsageStats(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentUsageStats").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentUsageStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceAgentUsageStatsAndLabels(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentUsageStatsAndLabels").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceAgentsByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgent, error) {
- start := time.Now()
- agents, err := m.s.GetWorkspaceAgentsByResourceIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentsByResourceIDs").Observe(time.Since(start).Seconds())
- return agents, err
-}
-
-func (m metricsStore) GetWorkspaceAgentsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceAgent, error) {
- start := time.Now()
- agents, err := m.s.GetWorkspaceAgentsCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentsCreatedAfter").Observe(time.Since(start).Seconds())
- return agents, err
-}
-
-func (m metricsStore) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgent, error) {
- start := time.Now()
- agents, err := m.s.GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, workspaceID)
- m.queryLatencies.WithLabelValues("GetWorkspaceAgentsInLatestBuildByWorkspaceID").Observe(time.Since(start).Seconds())
- return agents, err
-}
-
-func (m metricsStore) GetWorkspaceAppByAgentIDAndSlug(ctx context.Context, arg database.GetWorkspaceAppByAgentIDAndSlugParams) (database.WorkspaceApp, error) {
- start := time.Now()
- app, err := m.s.GetWorkspaceAppByAgentIDAndSlug(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceAppByAgentIDAndSlug").Observe(time.Since(start).Seconds())
- return app, err
-}
-
-func (m metricsStore) GetWorkspaceAppsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceApp, error) {
- start := time.Now()
- apps, err := m.s.GetWorkspaceAppsByAgentID(ctx, agentID)
- m.queryLatencies.WithLabelValues("GetWorkspaceAppsByAgentID").Observe(time.Since(start).Seconds())
- return apps, err
-}
-
-func (m metricsStore) GetWorkspaceAppsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceApp, error) {
- start := time.Now()
- apps, err := m.s.GetWorkspaceAppsByAgentIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceAppsByAgentIDs").Observe(time.Since(start).Seconds())
- return apps, err
-}
-
-func (m metricsStore) GetWorkspaceAppsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceApp, error) {
- start := time.Now()
- apps, err := m.s.GetWorkspaceAppsCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceAppsCreatedAfter").Observe(time.Since(start).Seconds())
- return apps, err
-}
-
-func (m metricsStore) GetWorkspaceBuildByID(ctx context.Context, id uuid.UUID) (database.WorkspaceBuild, error) {
- start := time.Now()
- build, err := m.s.GetWorkspaceBuildByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildByID").Observe(time.Since(start).Seconds())
- return build, err
-}
-
-func (m metricsStore) GetWorkspaceBuildByJobID(ctx context.Context, jobID uuid.UUID) (database.WorkspaceBuild, error) {
- start := time.Now()
- build, err := m.s.GetWorkspaceBuildByJobID(ctx, jobID)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildByJobID").Observe(time.Since(start).Seconds())
- return build, err
-}
-
-func (m metricsStore) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild, error) {
- start := time.Now()
- build, err := m.s.GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildByWorkspaceIDAndBuildNumber").Observe(time.Since(start).Seconds())
- return build, err
-}
-
-func (m metricsStore) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuildID uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
- start := time.Now()
- params, err := m.s.GetWorkspaceBuildParameters(ctx, workspaceBuildID)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
- return params, err
-}
-
-func (m metricsStore) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceBuildStatsByTemplates(ctx, since)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildStatsByTemplates").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaceBuildsByWorkspaceID(ctx context.Context, arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild, error) {
- start := time.Now()
- builds, err := m.s.GetWorkspaceBuildsByWorkspaceID(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildsByWorkspaceID").Observe(time.Since(start).Seconds())
- return builds, err
-}
-
-func (m metricsStore) GetWorkspaceBuildsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceBuild, error) {
- start := time.Now()
- builds, err := m.s.GetWorkspaceBuildsCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceBuildsCreatedAfter").Observe(time.Since(start).Seconds())
- return builds, err
-}
-
-func (m metricsStore) GetWorkspaceByAgentID(ctx context.Context, agentID uuid.UUID) (database.Workspace, error) {
- start := time.Now()
- workspace, err := m.s.GetWorkspaceByAgentID(ctx, agentID)
- m.queryLatencies.WithLabelValues("GetWorkspaceByAgentID").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) GetWorkspaceByID(ctx context.Context, id uuid.UUID) (database.Workspace, error) {
- start := time.Now()
- workspace, err := m.s.GetWorkspaceByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceByID").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) GetWorkspaceByOwnerIDAndName(ctx context.Context, arg database.GetWorkspaceByOwnerIDAndNameParams) (database.Workspace, error) {
- start := time.Now()
- workspace, err := m.s.GetWorkspaceByOwnerIDAndName(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceByOwnerIDAndName").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) GetWorkspaceByWorkspaceAppID(ctx context.Context, workspaceAppID uuid.UUID) (database.Workspace, error) {
- start := time.Now()
- workspace, err := m.s.GetWorkspaceByWorkspaceAppID(ctx, workspaceAppID)
- m.queryLatencies.WithLabelValues("GetWorkspaceByWorkspaceAppID").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) GetWorkspaceProxies(ctx context.Context) ([]database.WorkspaceProxy, error) {
- start := time.Now()
- proxies, err := m.s.GetWorkspaceProxies(ctx)
- m.queryLatencies.WithLabelValues("GetWorkspaceProxies").Observe(time.Since(start).Seconds())
- return proxies, err
-}
-
-func (m metricsStore) GetWorkspaceProxyByHostname(ctx context.Context, arg database.GetWorkspaceProxyByHostnameParams) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.GetWorkspaceProxyByHostname(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaceProxyByHostname").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) GetWorkspaceProxyByID(ctx context.Context, id uuid.UUID) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.GetWorkspaceProxyByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceProxyByID").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) GetWorkspaceProxyByName(ctx context.Context, name string) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.GetWorkspaceProxyByName(ctx, name)
- m.queryLatencies.WithLabelValues("GetWorkspaceProxyByName").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) GetWorkspaceResourceByID(ctx context.Context, id uuid.UUID) (database.WorkspaceResource, error) {
- start := time.Now()
- resource, err := m.s.GetWorkspaceResourceByID(ctx, id)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourceByID").Observe(time.Since(start).Seconds())
- return resource, err
-}
-
-func (m metricsStore) GetWorkspaceResourceMetadataByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) {
- start := time.Now()
- metadata, err := m.s.GetWorkspaceResourceMetadataByResourceIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourceMetadataByResourceIDs").Observe(time.Since(start).Seconds())
- return metadata, err
-}
-
-func (m metricsStore) GetWorkspaceResourceMetadataCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResourceMetadatum, error) {
- start := time.Now()
- metadata, err := m.s.GetWorkspaceResourceMetadataCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourceMetadataCreatedAfter").Observe(time.Since(start).Seconds())
- return metadata, err
-}
-
-func (m metricsStore) GetWorkspaceResourcesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceResource, error) {
- start := time.Now()
- resources, err := m.s.GetWorkspaceResourcesByJobID(ctx, jobID)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourcesByJobID").Observe(time.Since(start).Seconds())
- return resources, err
-}
-
-func (m metricsStore) GetWorkspaceResourcesByJobIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResource, error) {
- start := time.Now()
- resources, err := m.s.GetWorkspaceResourcesByJobIDs(ctx, ids)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourcesByJobIDs").Observe(time.Since(start).Seconds())
- return resources, err
-}
-
-func (m metricsStore) GetWorkspaceResourcesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResource, error) {
- start := time.Now()
- resources, err := m.s.GetWorkspaceResourcesCreatedAfter(ctx, createdAt)
- m.queryLatencies.WithLabelValues("GetWorkspaceResourcesCreatedAfter").Observe(time.Since(start).Seconds())
- return resources, err
-}
-
-func (m metricsStore) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx context.Context, templateIds []uuid.UUID) ([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx, templateIds)
- m.queryLatencies.WithLabelValues("GetWorkspaceUniqueOwnerCountByTemplateIDs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetWorkspaces(ctx context.Context, arg database.GetWorkspacesParams) ([]database.GetWorkspacesRow, error) {
- start := time.Now()
- workspaces, err := m.s.GetWorkspaces(ctx, arg)
- m.queryLatencies.WithLabelValues("GetWorkspaces").Observe(time.Since(start).Seconds())
- return workspaces, err
-}
-
-func (m metricsStore) GetWorkspacesEligibleForTransition(ctx context.Context, now time.Time) ([]database.WorkspaceTable, error) {
- start := time.Now()
- workspaces, err := m.s.GetWorkspacesEligibleForTransition(ctx, now)
- m.queryLatencies.WithLabelValues("GetWorkspacesEligibleForAutoStartStop").Observe(time.Since(start).Seconds())
- return workspaces, err
-}
-
-func (m metricsStore) InsertAPIKey(ctx context.Context, arg database.InsertAPIKeyParams) (database.APIKey, error) {
- start := time.Now()
- key, err := m.s.InsertAPIKey(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertAPIKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) InsertAllUsersGroup(ctx context.Context, organizationID uuid.UUID) (database.Group, error) {
- start := time.Now()
- group, err := m.s.InsertAllUsersGroup(ctx, organizationID)
- m.queryLatencies.WithLabelValues("InsertAllUsersGroup").Observe(time.Since(start).Seconds())
- return group, err
-}
-
-func (m metricsStore) InsertAuditLog(ctx context.Context, arg database.InsertAuditLogParams) (database.AuditLog, error) {
- start := time.Now()
- log, err := m.s.InsertAuditLog(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertAuditLog").Observe(time.Since(start).Seconds())
- return log, err
-}
-
-func (m metricsStore) InsertCryptoKey(ctx context.Context, arg database.InsertCryptoKeyParams) (database.CryptoKey, error) {
- start := time.Now()
- key, err := m.s.InsertCryptoKey(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertCryptoKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) InsertCustomRole(ctx context.Context, arg database.InsertCustomRoleParams) (database.CustomRole, error) {
- start := time.Now()
- r0, r1 := m.s.InsertCustomRole(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertCustomRole").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertDBCryptKey(ctx context.Context, arg database.InsertDBCryptKeyParams) error {
- start := time.Now()
- r0 := m.s.InsertDBCryptKey(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertDBCryptKey").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) InsertDERPMeshKey(ctx context.Context, value string) error {
- start := time.Now()
- err := m.s.InsertDERPMeshKey(ctx, value)
- m.queryLatencies.WithLabelValues("InsertDERPMeshKey").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertDeploymentID(ctx context.Context, value string) error {
- start := time.Now()
- err := m.s.InsertDeploymentID(ctx, value)
- m.queryLatencies.WithLabelValues("InsertDeploymentID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertExternalAuthLink(ctx context.Context, arg database.InsertExternalAuthLinkParams) (database.ExternalAuthLink, error) {
- start := time.Now()
- link, err := m.s.InsertExternalAuthLink(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertExternalAuthLink").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) InsertFile(ctx context.Context, arg database.InsertFileParams) (database.File, error) {
- start := time.Now()
- file, err := m.s.InsertFile(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertFile").Observe(time.Since(start).Seconds())
- return file, err
-}
-
-func (m metricsStore) InsertGitSSHKey(ctx context.Context, arg database.InsertGitSSHKeyParams) (database.GitSSHKey, error) {
- start := time.Now()
- key, err := m.s.InsertGitSSHKey(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertGitSSHKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) InsertGroup(ctx context.Context, arg database.InsertGroupParams) (database.Group, error) {
- start := time.Now()
- group, err := m.s.InsertGroup(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertGroup").Observe(time.Since(start).Seconds())
- return group, err
-}
-
-func (m metricsStore) InsertGroupMember(ctx context.Context, arg database.InsertGroupMemberParams) error {
- start := time.Now()
- err := m.s.InsertGroupMember(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertGroupMember").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertLicense(ctx context.Context, arg database.InsertLicenseParams) (database.License, error) {
- start := time.Now()
- license, err := m.s.InsertLicense(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertLicense").Observe(time.Since(start).Seconds())
- return license, err
-}
-
-func (m metricsStore) InsertMissingGroups(ctx context.Context, arg database.InsertMissingGroupsParams) ([]database.Group, error) {
- start := time.Now()
- r0, r1 := m.s.InsertMissingGroups(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertMissingGroups").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertOAuth2ProviderApp(ctx context.Context, arg database.InsertOAuth2ProviderAppParams) (database.OAuth2ProviderApp, error) {
- start := time.Now()
- r0, r1 := m.s.InsertOAuth2ProviderApp(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOAuth2ProviderApp").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertOAuth2ProviderAppCode(ctx context.Context, arg database.InsertOAuth2ProviderAppCodeParams) (database.OAuth2ProviderAppCode, error) {
- start := time.Now()
- r0, r1 := m.s.InsertOAuth2ProviderAppCode(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppCode").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertOAuth2ProviderAppSecret(ctx context.Context, arg database.InsertOAuth2ProviderAppSecretParams) (database.OAuth2ProviderAppSecret, error) {
- start := time.Now()
- r0, r1 := m.s.InsertOAuth2ProviderAppSecret(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppSecret").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertOAuth2ProviderAppToken(ctx context.Context, arg database.InsertOAuth2ProviderAppTokenParams) (database.OAuth2ProviderAppToken, error) {
- start := time.Now()
- r0, r1 := m.s.InsertOAuth2ProviderAppToken(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppToken").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertOrganization(ctx context.Context, arg database.InsertOrganizationParams) (database.Organization, error) {
- start := time.Now()
- organization, err := m.s.InsertOrganization(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOrganization").Observe(time.Since(start).Seconds())
- return organization, err
-}
-
-func (m metricsStore) InsertOrganizationMember(ctx context.Context, arg database.InsertOrganizationMemberParams) (database.OrganizationMember, error) {
- start := time.Now()
- member, err := m.s.InsertOrganizationMember(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertOrganizationMember").Observe(time.Since(start).Seconds())
- return member, err
-}
-
-func (m metricsStore) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) {
- start := time.Now()
- job, err := m.s.InsertProvisionerJob(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertProvisionerJob").Observe(time.Since(start).Seconds())
- return job, err
-}
-
-func (m metricsStore) InsertProvisionerJobLogs(ctx context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) {
- start := time.Now()
- logs, err := m.s.InsertProvisionerJobLogs(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertProvisionerJobLogs").Observe(time.Since(start).Seconds())
- return logs, err
-}
-
-func (m metricsStore) InsertProvisionerJobTimings(ctx context.Context, arg database.InsertProvisionerJobTimingsParams) ([]database.ProvisionerJobTiming, error) {
- start := time.Now()
- r0, r1 := m.s.InsertProvisionerJobTimings(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertProvisionerJobTimings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.InsertProvisionerKey(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertProvisionerKey").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) {
- start := time.Now()
- replica, err := m.s.InsertReplica(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertReplica").Observe(time.Since(start).Seconds())
- return replica, err
-}
-
-func (m metricsStore) InsertTemplate(ctx context.Context, arg database.InsertTemplateParams) error {
- start := time.Now()
- err := m.s.InsertTemplate(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertTemplate").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertTemplateVersion(ctx context.Context, arg database.InsertTemplateVersionParams) error {
- start := time.Now()
- err := m.s.InsertTemplateVersion(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertTemplateVersion").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertTemplateVersionParameter(ctx context.Context, arg database.InsertTemplateVersionParameterParams) (database.TemplateVersionParameter, error) {
- start := time.Now()
- parameter, err := m.s.InsertTemplateVersionParameter(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertTemplateVersionParameter").Observe(time.Since(start).Seconds())
- return parameter, err
-}
-
-func (m metricsStore) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) {
- start := time.Now()
- variable, err := m.s.InsertTemplateVersionVariable(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertTemplateVersionVariable").Observe(time.Since(start).Seconds())
- return variable, err
-}
-
-func (m metricsStore) InsertTemplateVersionWorkspaceTag(ctx context.Context, arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag, error) {
- start := time.Now()
- r0, r1 := m.s.InsertTemplateVersionWorkspaceTag(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertTemplateVersionWorkspaceTag").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertUser(ctx context.Context, arg database.InsertUserParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.InsertUser(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertUser").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) InsertUserGroupsByID(ctx context.Context, arg database.InsertUserGroupsByIDParams) ([]uuid.UUID, error) {
- start := time.Now()
- r0, r1 := m.s.InsertUserGroupsByID(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertUserGroupsByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertUserGroupsByName(ctx context.Context, arg database.InsertUserGroupsByNameParams) error {
- start := time.Now()
- err := m.s.InsertUserGroupsByName(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertUserGroupsByName").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertUserLink(ctx context.Context, arg database.InsertUserLinkParams) (database.UserLink, error) {
- start := time.Now()
- link, err := m.s.InsertUserLink(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertUserLink").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) InsertWorkspace(ctx context.Context, arg database.InsertWorkspaceParams) (database.WorkspaceTable, error) {
- start := time.Now()
- workspace, err := m.s.InsertWorkspace(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspace").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) InsertWorkspaceAgent(ctx context.Context, arg database.InsertWorkspaceAgentParams) (database.WorkspaceAgent, error) {
- start := time.Now()
- agent, err := m.s.InsertWorkspaceAgent(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgent").Observe(time.Since(start).Seconds())
- return agent, err
-}
-
-func (m metricsStore) InsertWorkspaceAgentLogSources(ctx context.Context, arg database.InsertWorkspaceAgentLogSourcesParams) ([]database.WorkspaceAgentLogSource, error) {
- start := time.Now()
- r0, r1 := m.s.InsertWorkspaceAgentLogSources(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentLogSources").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertWorkspaceAgentLogs(ctx context.Context, arg database.InsertWorkspaceAgentLogsParams) ([]database.WorkspaceAgentLog, error) {
- start := time.Now()
- r0, r1 := m.s.InsertWorkspaceAgentLogs(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentLogs").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertWorkspaceAgentMetadata(ctx context.Context, arg database.InsertWorkspaceAgentMetadataParams) error {
- start := time.Now()
- err := m.s.InsertWorkspaceAgentMetadata(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertWorkspaceAgentScriptTimings(ctx context.Context, arg database.InsertWorkspaceAgentScriptTimingsParams) (database.WorkspaceAgentScriptTiming, error) {
- start := time.Now()
- r0, r1 := m.s.InsertWorkspaceAgentScriptTimings(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentScriptTimings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertWorkspaceAgentScripts(ctx context.Context, arg database.InsertWorkspaceAgentScriptsParams) ([]database.WorkspaceAgentScript, error) {
- start := time.Now()
- r0, r1 := m.s.InsertWorkspaceAgentScripts(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentScripts").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) InsertWorkspaceAgentStats(ctx context.Context, arg database.InsertWorkspaceAgentStatsParams) error {
- start := time.Now()
- r0 := m.s.InsertWorkspaceAgentStats(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAgentStats").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) InsertWorkspaceApp(ctx context.Context, arg database.InsertWorkspaceAppParams) (database.WorkspaceApp, error) {
- start := time.Now()
- app, err := m.s.InsertWorkspaceApp(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceApp").Observe(time.Since(start).Seconds())
- return app, err
-}
-
-func (m metricsStore) InsertWorkspaceAppStats(ctx context.Context, arg database.InsertWorkspaceAppStatsParams) error {
- start := time.Now()
- r0 := m.s.InsertWorkspaceAppStats(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceAppStats").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) InsertWorkspaceBuild(ctx context.Context, arg database.InsertWorkspaceBuildParams) error {
- start := time.Now()
- err := m.s.InsertWorkspaceBuild(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceBuild").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertWorkspaceBuildParameters(ctx context.Context, arg database.InsertWorkspaceBuildParametersParams) error {
- start := time.Now()
- err := m.s.InsertWorkspaceBuildParameters(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) InsertWorkspaceProxy(ctx context.Context, arg database.InsertWorkspaceProxyParams) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.InsertWorkspaceProxy(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceProxy").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) InsertWorkspaceResource(ctx context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) {
- start := time.Now()
- resource, err := m.s.InsertWorkspaceResource(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceResource").Observe(time.Since(start).Seconds())
- return resource, err
-}
-
-func (m metricsStore) InsertWorkspaceResourceMetadata(ctx context.Context, arg database.InsertWorkspaceResourceMetadataParams) ([]database.WorkspaceResourceMetadatum, error) {
- start := time.Now()
- metadata, err := m.s.InsertWorkspaceResourceMetadata(ctx, arg)
- m.queryLatencies.WithLabelValues("InsertWorkspaceResourceMetadata").Observe(time.Since(start).Seconds())
- return metadata, err
-}
-
-func (m metricsStore) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.ListProvisionerKeysByOrganization(ctx, organizationID)
- m.queryLatencies.WithLabelValues("ListProvisionerKeysByOrganization").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) {
- start := time.Now()
- r0, r1 := m.s.ListProvisionerKeysByOrganizationExcludeReserved(ctx, organizationID)
- m.queryLatencies.WithLabelValues("ListProvisionerKeysByOrganizationExcludeReserved").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare, error) {
- start := time.Now()
- r0, r1 := m.s.ListWorkspaceAgentPortShares(ctx, workspaceID)
- m.queryLatencies.WithLabelValues("ListWorkspaceAgentPortShares").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) OrganizationMembers(ctx context.Context, arg database.OrganizationMembersParams) ([]database.OrganizationMembersRow, error) {
- start := time.Now()
- r0, r1 := m.s.OrganizationMembers(ctx, arg)
- m.queryLatencies.WithLabelValues("OrganizationMembers").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx context.Context, templateID uuid.UUID) error {
- start := time.Now()
- r0 := m.s.ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx, templateID)
- m.queryLatencies.WithLabelValues("ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) RegisterWorkspaceProxy(ctx context.Context, arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.RegisterWorkspaceProxy(ctx, arg)
- m.queryLatencies.WithLabelValues("RegisterWorkspaceProxy").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) RemoveUserFromAllGroups(ctx context.Context, userID uuid.UUID) error {
- start := time.Now()
- r0 := m.s.RemoveUserFromAllGroups(ctx, userID)
- m.queryLatencies.WithLabelValues("RemoveUserFromAllGroups").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) RemoveUserFromGroups(ctx context.Context, arg database.RemoveUserFromGroupsParams) ([]uuid.UUID, error) {
- start := time.Now()
- r0, r1 := m.s.RemoveUserFromGroups(ctx, arg)
- m.queryLatencies.WithLabelValues("RemoveUserFromGroups").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) RevokeDBCryptKey(ctx context.Context, activeKeyDigest string) error {
- start := time.Now()
- r0 := m.s.RevokeDBCryptKey(ctx, activeKeyDigest)
- m.queryLatencies.WithLabelValues("RevokeDBCryptKey").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) TryAcquireLock(ctx context.Context, pgTryAdvisoryXactLock int64) (bool, error) {
- start := time.Now()
- ok, err := m.s.TryAcquireLock(ctx, pgTryAdvisoryXactLock)
- m.queryLatencies.WithLabelValues("TryAcquireLock").Observe(time.Since(start).Seconds())
- return ok, err
-}
-
-func (m metricsStore) UnarchiveTemplateVersion(ctx context.Context, arg database.UnarchiveTemplateVersionParams) error {
- start := time.Now()
- r0 := m.s.UnarchiveTemplateVersion(ctx, arg)
- m.queryLatencies.WithLabelValues("UnarchiveTemplateVersion").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UnfavoriteWorkspace(ctx context.Context, arg uuid.UUID) error {
- start := time.Now()
- r0 := m.s.UnfavoriteWorkspace(ctx, arg)
- m.queryLatencies.WithLabelValues("UnfavoriteWorkspace").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateAPIKeyByID(ctx context.Context, arg database.UpdateAPIKeyByIDParams) error {
- start := time.Now()
- err := m.s.UpdateAPIKeyByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateAPIKeyByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateCryptoKeyDeletesAt(ctx context.Context, arg database.UpdateCryptoKeyDeletesAtParams) (database.CryptoKey, error) {
- start := time.Now()
- key, err := m.s.UpdateCryptoKeyDeletesAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateCryptoKeyDeletesAt").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) UpdateCustomRole(ctx context.Context, arg database.UpdateCustomRoleParams) (database.CustomRole, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateCustomRole(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateCustomRole").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateExternalAuthLink(ctx context.Context, arg database.UpdateExternalAuthLinkParams) (database.ExternalAuthLink, error) {
- start := time.Now()
- link, err := m.s.UpdateExternalAuthLink(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateExternalAuthLink").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) UpdateGitSSHKey(ctx context.Context, arg database.UpdateGitSSHKeyParams) (database.GitSSHKey, error) {
- start := time.Now()
- key, err := m.s.UpdateGitSSHKey(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateGitSSHKey").Observe(time.Since(start).Seconds())
- return key, err
-}
-
-func (m metricsStore) UpdateGroupByID(ctx context.Context, arg database.UpdateGroupByIDParams) (database.Group, error) {
- start := time.Now()
- group, err := m.s.UpdateGroupByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateGroupByID").Observe(time.Since(start).Seconds())
- return group, err
-}
-
-func (m metricsStore) UpdateInactiveUsersToDormant(ctx context.Context, lastSeenAfter database.UpdateInactiveUsersToDormantParams) ([]database.UpdateInactiveUsersToDormantRow, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateInactiveUsersToDormant(ctx, lastSeenAfter)
- m.queryLatencies.WithLabelValues("UpdateInactiveUsersToDormant").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateMemberRoles(ctx context.Context, arg database.UpdateMemberRolesParams) (database.OrganizationMember, error) {
- start := time.Now()
- member, err := m.s.UpdateMemberRoles(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateMemberRoles").Observe(time.Since(start).Seconds())
- return member, err
-}
-
-func (m metricsStore) UpdateNotificationTemplateMethodByID(ctx context.Context, arg database.UpdateNotificationTemplateMethodByIDParams) (database.NotificationTemplate, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateNotificationTemplateMethodByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateNotificationTemplateMethodByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateOAuth2ProviderAppByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByIDParams) (database.OAuth2ProviderApp, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateOAuth2ProviderAppByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateOAuth2ProviderAppSecretByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppSecretByIDParams) (database.OAuth2ProviderAppSecret, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateOAuth2ProviderAppSecretByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateOrganization(ctx context.Context, arg database.UpdateOrganizationParams) (database.Organization, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateOrganization(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateOrganization").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error {
- start := time.Now()
- r0 := m.s.UpdateProvisionerDaemonLastSeenAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateProvisionerDaemonLastSeenAt").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateProvisionerJobByID(ctx context.Context, arg database.UpdateProvisionerJobByIDParams) error {
- start := time.Now()
- err := m.s.UpdateProvisionerJobByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateProvisionerJobByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg database.UpdateProvisionerJobWithCancelByIDParams) error {
- start := time.Now()
- err := m.s.UpdateProvisionerJobWithCancelByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateProvisionerJobWithCancelByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateProvisionerJobWithCompleteByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteByIDParams) error {
- start := time.Now()
- err := m.s.UpdateProvisionerJobWithCompleteByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateProvisionerJobWithCompleteByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateReplica(ctx context.Context, arg database.UpdateReplicaParams) (database.Replica, error) {
- start := time.Now()
- replica, err := m.s.UpdateReplica(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateReplica").Observe(time.Since(start).Seconds())
- return replica, err
-}
-
-func (m metricsStore) UpdateTailnetPeerStatusByCoordinator(ctx context.Context, arg database.UpdateTailnetPeerStatusByCoordinatorParams) error {
- start := time.Now()
- r0 := m.s.UpdateTailnetPeerStatusByCoordinator(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTailnetPeerStatusByCoordinator").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateTemplateACLByID(ctx context.Context, arg database.UpdateTemplateACLByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateACLByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateACLByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateAccessControlByID(ctx context.Context, arg database.UpdateTemplateAccessControlByIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateTemplateAccessControlByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateAccessControlByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateTemplateActiveVersionByID(ctx context.Context, arg database.UpdateTemplateActiveVersionByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateActiveVersionByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateActiveVersionByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateDeletedByID(ctx context.Context, arg database.UpdateTemplateDeletedByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateDeletedByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateDeletedByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateMetaByID(ctx context.Context, arg database.UpdateTemplateMetaByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateMetaByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateMetaByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateScheduleByID(ctx context.Context, arg database.UpdateTemplateScheduleByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateScheduleByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateScheduleByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateVersionByID(ctx context.Context, arg database.UpdateTemplateVersionByIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateVersionByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateVersionByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateVersionDescriptionByJobID(ctx context.Context, arg database.UpdateTemplateVersionDescriptionByJobIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateVersionDescriptionByJobID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateVersionDescriptionByJobID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams) error {
- start := time.Now()
- err := m.s.UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateVersionExternalAuthProvidersByJobID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateTemplateWorkspacesLastUsedAt(ctx context.Context, arg database.UpdateTemplateWorkspacesLastUsedAtParams) error {
- start := time.Now()
- r0 := m.s.UpdateTemplateWorkspacesLastUsedAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateTemplateWorkspacesLastUsedAt").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateUserAppearanceSettings(ctx context.Context, arg database.UpdateUserAppearanceSettingsParams) (database.User, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateUserAppearanceSettings(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserAppearanceSettings").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateUserDeletedByID(ctx context.Context, id uuid.UUID) error {
- start := time.Now()
- r0 := m.s.UpdateUserDeletedByID(ctx, id)
- m.queryLatencies.WithLabelValues("UpdateUserDeletedByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateUserGithubComUserID(ctx context.Context, arg database.UpdateUserGithubComUserIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateUserGithubComUserID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserGithubComUserID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateUserHashedOneTimePasscode(ctx context.Context, arg database.UpdateUserHashedOneTimePasscodeParams) error {
- start := time.Now()
- r0 := m.s.UpdateUserHashedOneTimePasscode(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserHashedOneTimePasscode").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateUserHashedPassword(ctx context.Context, arg database.UpdateUserHashedPasswordParams) error {
- start := time.Now()
- err := m.s.UpdateUserHashedPassword(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserHashedPassword").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateUserLastSeenAt(ctx context.Context, arg database.UpdateUserLastSeenAtParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.UpdateUserLastSeenAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserLastSeenAt").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) UpdateUserLink(ctx context.Context, arg database.UpdateUserLinkParams) (database.UserLink, error) {
- start := time.Now()
- link, err := m.s.UpdateUserLink(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserLink").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) UpdateUserLinkedID(ctx context.Context, arg database.UpdateUserLinkedIDParams) (database.UserLink, error) {
- start := time.Now()
- link, err := m.s.UpdateUserLinkedID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserLinkedID").Observe(time.Since(start).Seconds())
- return link, err
-}
-
-func (m metricsStore) UpdateUserLoginType(ctx context.Context, arg database.UpdateUserLoginTypeParams) (database.User, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateUserLoginType(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserLoginType").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateUserNotificationPreferences(ctx context.Context, arg database.UpdateUserNotificationPreferencesParams) (int64, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateUserNotificationPreferences(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserNotificationPreferences").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateUserProfile(ctx context.Context, arg database.UpdateUserProfileParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.UpdateUserProfile(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserProfile").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) UpdateUserQuietHoursSchedule(ctx context.Context, arg database.UpdateUserQuietHoursScheduleParams) (database.User, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateUserQuietHoursSchedule(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserQuietHoursSchedule").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpdateUserRoles(ctx context.Context, arg database.UpdateUserRolesParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.UpdateUserRoles(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserRoles").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) UpdateUserStatus(ctx context.Context, arg database.UpdateUserStatusParams) (database.User, error) {
- start := time.Now()
- user, err := m.s.UpdateUserStatus(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateUserStatus").Observe(time.Since(start).Seconds())
- return user, err
-}
-
-func (m metricsStore) UpdateWorkspace(ctx context.Context, arg database.UpdateWorkspaceParams) (database.WorkspaceTable, error) {
- start := time.Now()
- workspace, err := m.s.UpdateWorkspace(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspace").Observe(time.Since(start).Seconds())
- return workspace, err
-}
-
-func (m metricsStore) UpdateWorkspaceAgentConnectionByID(ctx context.Context, arg database.UpdateWorkspaceAgentConnectionByIDParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceAgentConnectionByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentConnectionByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceAgentLifecycleStateByID(ctx context.Context, arg database.UpdateWorkspaceAgentLifecycleStateByIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceAgentLifecycleStateByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentLifecycleStateByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceAgentLogOverflowByID(ctx context.Context, arg database.UpdateWorkspaceAgentLogOverflowByIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceAgentLogOverflowByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentLogOverflowByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceAgentMetadata(ctx context.Context, arg database.UpdateWorkspaceAgentMetadataParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceAgentMetadata(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceAgentStartupByID(ctx context.Context, arg database.UpdateWorkspaceAgentStartupByIDParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceAgentStartupByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentStartupByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceAppHealthByID(ctx context.Context, arg database.UpdateWorkspaceAppHealthByIDParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceAppHealthByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAppHealthByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceAutomaticUpdates(ctx context.Context, arg database.UpdateWorkspaceAutomaticUpdatesParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceAutomaticUpdates(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAutomaticUpdates").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceAutostart(ctx context.Context, arg database.UpdateWorkspaceAutostartParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceAutostart(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceAutostart").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceBuildCostByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildCostByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceBuildDeadlineByID(ctx context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceBuildDeadlineByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildDeadlineByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceBuildProvisionerStateByID(ctx context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceBuildProvisionerStateByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildProvisionerStateByID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceDeletedByID(ctx context.Context, arg database.UpdateWorkspaceDeletedByIDParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceDeletedByID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceDeletedByID").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceDormantDeletingAt(ctx context.Context, arg database.UpdateWorkspaceDormantDeletingAtParams) (database.WorkspaceTable, error) {
- start := time.Now()
- ws, r0 := m.s.UpdateWorkspaceDormantDeletingAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceDormantDeletingAt").Observe(time.Since(start).Seconds())
- return ws, r0
-}
-
-func (m metricsStore) UpdateWorkspaceLastUsedAt(ctx context.Context, arg database.UpdateWorkspaceLastUsedAtParams) error {
- start := time.Now()
- err := m.s.UpdateWorkspaceLastUsedAt(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceLastUsedAt").Observe(time.Since(start).Seconds())
- return err
-}
-
-func (m metricsStore) UpdateWorkspaceProxy(ctx context.Context, arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy, error) {
- start := time.Now()
- proxy, err := m.s.UpdateWorkspaceProxy(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceProxy").Observe(time.Since(start).Seconds())
- return proxy, err
-}
-
-func (m metricsStore) UpdateWorkspaceProxyDeleted(ctx context.Context, arg database.UpdateWorkspaceProxyDeletedParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceProxyDeleted(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceProxyDeleted").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspaceTTL(ctx context.Context, arg database.UpdateWorkspaceTTLParams) error {
- start := time.Now()
- r0 := m.s.UpdateWorkspaceTTL(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspaceTTL").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx context.Context, arg database.UpdateWorkspacesDormantDeletingAtByTemplateIDParams) ([]database.WorkspaceTable, error) {
- start := time.Now()
- r0, r1 := m.s.UpdateWorkspacesDormantDeletingAtByTemplateID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpdateWorkspacesDormantDeletingAtByTemplateID").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertAnnouncementBanners(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertAnnouncementBanners(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertAnnouncementBanners").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertAppSecurityKey(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertAppSecurityKey(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertAppSecurityKey").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertApplicationName(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertApplicationName(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertApplicationName").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertCoordinatorResumeTokenSigningKey(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertCoordinatorResumeTokenSigningKey(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertCoordinatorResumeTokenSigningKey").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertDefaultProxy(ctx context.Context, arg database.UpsertDefaultProxyParams) error {
- start := time.Now()
- r0 := m.s.UpsertDefaultProxy(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertDefaultProxy").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertHealthSettings(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertHealthSettings(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertHealthSettings").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertJFrogXrayScanByWorkspaceAndAgentID(ctx context.Context, arg database.UpsertJFrogXrayScanByWorkspaceAndAgentIDParams) error {
- start := time.Now()
- r0 := m.s.UpsertJFrogXrayScanByWorkspaceAndAgentID(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertJFrogXrayScanByWorkspaceAndAgentID").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertLastUpdateCheck(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertLastUpdateCheck(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertLastUpdateCheck").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertLogoURL(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertLogoURL(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertLogoURL").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
- start := time.Now()
- r0 := m.s.UpsertNotificationReportGeneratorLog(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertNotificationReportGeneratorLog").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertNotificationsSettings(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertNotificationsSettings(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertNotificationsSettings").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertOAuthSigningKey(ctx context.Context, value string) error {
- start := time.Now()
- r0 := m.s.UpsertOAuthSigningKey(ctx, value)
- m.queryLatencies.WithLabelValues("UpsertOAuthSigningKey").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertProvisionerDaemon(ctx context.Context, arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertProvisionerDaemon(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertProvisionerDaemon").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error {
- start := time.Now()
- r0 := m.s.UpsertRuntimeConfig(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertRuntimeConfig").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertTailnetAgent(ctx context.Context, arg database.UpsertTailnetAgentParams) (database.TailnetAgent, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertTailnetAgent(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertTailnetAgent").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertTailnetClient(ctx context.Context, arg database.UpsertTailnetClientParams) (database.TailnetClient, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertTailnetClient(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertTailnetClient").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertTailnetClientSubscription(ctx context.Context, arg database.UpsertTailnetClientSubscriptionParams) error {
- start := time.Now()
- r0 := m.s.UpsertTailnetClientSubscription(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertTailnetClientSubscription").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertTailnetCoordinator(ctx context.Context, id uuid.UUID) (database.TailnetCoordinator, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertTailnetCoordinator(ctx, id)
- m.queryLatencies.WithLabelValues("UpsertTailnetCoordinator").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertTailnetPeer(ctx context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertTailnetPeer(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertTailnetPeer").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertTailnetTunnel(ctx context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertTailnetTunnel(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertTailnetTunnel").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) UpsertTemplateUsageStats(ctx context.Context) error {
- start := time.Now()
- r0 := m.s.UpsertTemplateUsageStats(ctx)
- m.queryLatencies.WithLabelValues("UpsertTemplateUsageStats").Observe(time.Since(start).Seconds())
- return r0
-}
-
-func (m metricsStore) UpsertWorkspaceAgentPortShare(ctx context.Context, arg database.UpsertWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
- start := time.Now()
- r0, r1 := m.s.UpsertWorkspaceAgentPortShare(ctx, arg)
- m.queryLatencies.WithLabelValues("UpsertWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, prepared rbac.PreparedAuthorized) ([]database.Template, error) {
- start := time.Now()
- templates, err := m.s.GetAuthorizedTemplates(ctx, arg, prepared)
- m.queryLatencies.WithLabelValues("GetAuthorizedTemplates").Observe(time.Since(start).Seconds())
- return templates, err
-}
-
-func (m metricsStore) GetTemplateGroupRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateGroup, error) {
- start := time.Now()
- roles, err := m.s.GetTemplateGroupRoles(ctx, id)
- m.queryLatencies.WithLabelValues("GetTemplateGroupRoles").Observe(time.Since(start).Seconds())
- return roles, err
-}
-
-func (m metricsStore) GetTemplateUserRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateUser, error) {
- start := time.Now()
- roles, err := m.s.GetTemplateUserRoles(ctx, id)
- m.queryLatencies.WithLabelValues("GetTemplateUserRoles").Observe(time.Since(start).Seconds())
- return roles, err
-}
-
-func (m metricsStore) GetAuthorizedWorkspaces(ctx context.Context, arg database.GetWorkspacesParams, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesRow, error) {
- start := time.Now()
- workspaces, err := m.s.GetAuthorizedWorkspaces(ctx, arg, prepared)
- m.queryLatencies.WithLabelValues("GetAuthorizedWorkspaces").Observe(time.Since(start).Seconds())
- return workspaces, err
-}
-
-func (m metricsStore) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetAuthorizedUsers(ctx, arg, prepared)
- m.queryLatencies.WithLabelValues("GetAuthorizedUsers").Observe(time.Since(start).Seconds())
- return r0, r1
-}
-
-func (m metricsStore) GetAuthorizedAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetAuditLogsOffsetRow, error) {
- start := time.Now()
- r0, r1 := m.s.GetAuthorizedAuditLogsOffset(ctx, arg, prepared)
- m.queryLatencies.WithLabelValues("GetAuthorizedAuditLogsOffset").Observe(time.Since(start).Seconds())
- return r0, r1
-}
diff --git a/coderd/database/dbmetrics/dbmetrics_test.go b/coderd/database/dbmetrics/dbmetrics_test.go
new file mode 100644
index 0000000000000..2b8d2979b1cfe
--- /dev/null
+++ b/coderd/database/dbmetrics/dbmetrics_test.go
@@ -0,0 +1,109 @@
+package dbmetrics_test
+
+import (
+ "bytes"
+ "testing"
+
+ "github.com/prometheus/client_golang/prometheus"
+ "github.com/stretchr/testify/require"
+ "golang.org/x/xerrors"
+
+ "cdr.dev/slog"
+ "cdr.dev/slog/sloggers/sloghuman"
+ "cdr.dev/slog/sloggers/slogtest"
+ "github.com/coder/coder/v2/coderd/coderdtest/promhelp"
+ "github.com/coder/coder/v2/coderd/database"
+ "github.com/coder/coder/v2/coderd/database/dbmem"
+ "github.com/coder/coder/v2/coderd/database/dbmetrics"
+)
+
+func TestInTxMetrics(t *testing.T) {
+ t.Parallel()
+
+ successLabels := prometheus.Labels{
+ "success": "true",
+ "id": "",
+ }
+ const inTxHistMetricName = "coderd_db_tx_duration_seconds"
+ const inTxCountMetricName = "coderd_db_tx_executions_count"
+ t.Run("QueryMetrics", func(t *testing.T) {
+ t.Parallel()
+
+ db := dbmem.New()
+ reg := prometheus.NewRegistry()
+ db = dbmetrics.NewQueryMetrics(db, slogtest.Make(t, nil), reg)
+
+ err := db.InTx(func(s database.Store) error {
+ return nil
+ }, nil)
+ require.NoError(t, err)
+
+ // Check that the metrics are registered
+ inTxMetric := promhelp.HistogramValue(t, reg, inTxHistMetricName, successLabels)
+ require.NotNil(t, inTxMetric)
+ require.Equal(t, uint64(1), inTxMetric.GetSampleCount())
+ })
+
+ t.Run("DBMetrics", func(t *testing.T) {
+ t.Parallel()
+
+ db := dbmem.New()
+ reg := prometheus.NewRegistry()
+ db = dbmetrics.NewDBMetrics(db, slogtest.Make(t, nil), reg)
+
+ err := db.InTx(func(s database.Store) error {
+ return nil
+ }, nil)
+ require.NoError(t, err)
+
+ // Check that the metrics are registered
+ inTxMetric := promhelp.HistogramValue(t, reg, inTxHistMetricName, successLabels)
+ require.NotNil(t, inTxMetric)
+ require.Equal(t, uint64(1), inTxMetric.GetSampleCount())
+ })
+
+ // Test log output and metrics on failures
+ // Log example:
+ // [erro] database transaction hit serialization error and had to retry success=false executions=2 id=foobar_factory
+ t.Run("SerializationError", func(t *testing.T) {
+ t.Parallel()
+
+ var output bytes.Buffer
+ logger := slog.Make(sloghuman.Sink(&output))
+
+ reg := prometheus.NewRegistry()
+ db := dbmetrics.NewDBMetrics(dbmem.New(), logger, reg)
+ const id = "foobar_factory"
+
+ txOpts := database.DefaultTXOptions().WithID(id)
+ database.IncrementExecutionCount(txOpts) // 2 executions
+
+ err := db.InTx(func(s database.Store) error {
+ return xerrors.Errorf("some dumb error")
+ }, txOpts)
+ require.Error(t, err)
+
+ // Check that the metrics are registered
+ inTxHistMetric := promhelp.HistogramValue(t, reg, inTxHistMetricName, prometheus.Labels{
+ "success": "false",
+ "id": id,
+ })
+ require.NotNil(t, inTxHistMetric)
+ require.Equal(t, uint64(1), inTxHistMetric.GetSampleCount())
+
+ inTxCountMetric := promhelp.CounterValue(t, reg, inTxCountMetricName, prometheus.Labels{
+ "success": "false",
+ "retries": "1",
+ "id": id,
+ })
+ require.NotNil(t, inTxCountMetric)
+ require.Equal(t, 1, inTxCountMetric)
+
+ // Also check the logs
+ require.Contains(t, output.String(), "some dumb error")
+ require.Contains(t, output.String(), "database transaction hit serialization error and had to retry")
+ require.Contains(t, output.String(), "success=false")
+ require.Contains(t, output.String(), "executions=2")
+ require.Contains(t, output.String(), "id="+id)
+ })
+}
diff --git a/coderd/database/dbmetrics/querymetrics.go b/coderd/database/dbmetrics/querymetrics.go
new file mode 100644
index 0000000000000..7e74aab3b9de0
--- /dev/null
+++ b/coderd/database/dbmetrics/querymetrics.go
@@ -0,0 +1,2710 @@
+// Code generated by coderd/database/gen/metrics.
+// Any function can be edited and will not be overwritten.
+// New database functions are automatically generated!
+package dbmetrics
+
+import (
+ "context"
+ "time"
+
+ "github.com/google/uuid"
+ "github.com/prometheus/client_golang/prometheus"
+ "golang.org/x/exp/slices"
+
+ "cdr.dev/slog"
+ "github.com/coder/coder/v2/coderd/database"
+ "github.com/coder/coder/v2/coderd/rbac"
+ "github.com/coder/coder/v2/coderd/rbac/policy"
+)
+
+var (
+ // Force these imports, for some reason the autogen does not include them.
+ _ uuid.UUID
+ _ policy.Action
+ _ rbac.Objecter
+)
+
+const wrapname = "dbmetrics.metricsStore"
+
+// NewQueryMetrics returns a database.Store that registers metrics for all queries to reg.
+func NewQueryMetrics(s database.Store, logger slog.Logger, reg prometheus.Registerer) database.Store {
+ // Don't double-wrap.
+ if slices.Contains(s.Wrappers(), wrapname) {
+ return s
+ }
+ queryLatencies := prometheus.NewHistogramVec(prometheus.HistogramOpts{
+ Namespace: "coderd",
+ Subsystem: "db",
+ Name: "query_latencies_seconds",
+ Help: "Latency distribution of queries in seconds.",
+ Buckets: prometheus.DefBuckets,
+ }, []string{"query"})
+ reg.MustRegister(queryLatencies)
+ return &queryMetricsStore{
+ s: s,
+ queryLatencies: queryLatencies,
+ dbMetrics: NewDBMetrics(s, logger, reg).(*metricsStore),
+ }
+}
+
+var _ database.Store = (*queryMetricsStore)(nil)
+
+type queryMetricsStore struct {
+ s database.Store
+ queryLatencies *prometheus.HistogramVec
+ dbMetrics *metricsStore
+}
+
+func (m queryMetricsStore) Wrappers() []string {
+ return append(m.s.Wrappers(), wrapname)
+}
+
+func (m queryMetricsStore) Ping(ctx context.Context) (time.Duration, error) {
+ start := time.Now()
+ duration, err := m.s.Ping(ctx)
+ m.queryLatencies.WithLabelValues("Ping").Observe(time.Since(start).Seconds())
+ return duration, err
+}
+
+func (m queryMetricsStore) InTx(f func(database.Store) error, options *database.TxOptions) error {
+ return m.dbMetrics.InTx(f, options)
+}
+
+func (m queryMetricsStore) AcquireLock(ctx context.Context, pgAdvisoryXactLock int64) error {
+ start := time.Now()
+ err := m.s.AcquireLock(ctx, pgAdvisoryXactLock)
+ m.queryLatencies.WithLabelValues("AcquireLock").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) AcquireNotificationMessages(ctx context.Context, arg database.AcquireNotificationMessagesParams) ([]database.AcquireNotificationMessagesRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.AcquireNotificationMessages(ctx, arg)
+ m.queryLatencies.WithLabelValues("AcquireNotificationMessages").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) AcquireProvisionerJob(ctx context.Context, arg database.AcquireProvisionerJobParams) (database.ProvisionerJob, error) {
+ start := time.Now()
+ provisionerJob, err := m.s.AcquireProvisionerJob(ctx, arg)
+ m.queryLatencies.WithLabelValues("AcquireProvisionerJob").Observe(time.Since(start).Seconds())
+ return provisionerJob, err
+}
+
+func (m queryMetricsStore) ActivityBumpWorkspace(ctx context.Context, arg database.ActivityBumpWorkspaceParams) error {
+ start := time.Now()
+ r0 := m.s.ActivityBumpWorkspace(ctx, arg)
+ m.queryLatencies.WithLabelValues("ActivityBumpWorkspace").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) AllUserIDs(ctx context.Context) ([]uuid.UUID, error) {
+ start := time.Now()
+ r0, r1 := m.s.AllUserIDs(ctx)
+ m.queryLatencies.WithLabelValues("AllUserIDs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) ArchiveUnusedTemplateVersions(ctx context.Context, arg database.ArchiveUnusedTemplateVersionsParams) ([]uuid.UUID, error) {
+ start := time.Now()
+ r0, r1 := m.s.ArchiveUnusedTemplateVersions(ctx, arg)
+ m.queryLatencies.WithLabelValues("ArchiveUnusedTemplateVersions").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) BatchUpdateWorkspaceLastUsedAt(ctx context.Context, arg database.BatchUpdateWorkspaceLastUsedAtParams) error {
+ start := time.Now()
+ r0 := m.s.BatchUpdateWorkspaceLastUsedAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("BatchUpdateWorkspaceLastUsedAt").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) BulkMarkNotificationMessagesFailed(ctx context.Context, arg database.BulkMarkNotificationMessagesFailedParams) (int64, error) {
+ start := time.Now()
+ r0, r1 := m.s.BulkMarkNotificationMessagesFailed(ctx, arg)
+ m.queryLatencies.WithLabelValues("BulkMarkNotificationMessagesFailed").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) BulkMarkNotificationMessagesSent(ctx context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) {
+ start := time.Now()
+ r0, r1 := m.s.BulkMarkNotificationMessagesSent(ctx, arg)
+ m.queryLatencies.WithLabelValues("BulkMarkNotificationMessagesSent").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) CleanTailnetCoordinators(ctx context.Context) error {
+ start := time.Now()
+ err := m.s.CleanTailnetCoordinators(ctx)
+ m.queryLatencies.WithLabelValues("CleanTailnetCoordinators").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) CleanTailnetLostPeers(ctx context.Context) error {
+ start := time.Now()
+ r0 := m.s.CleanTailnetLostPeers(ctx)
+ m.queryLatencies.WithLabelValues("CleanTailnetLostPeers").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) CleanTailnetTunnels(ctx context.Context) error {
+ start := time.Now()
+ r0 := m.s.CleanTailnetTunnels(ctx)
+ m.queryLatencies.WithLabelValues("CleanTailnetTunnels").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) CustomRoles(ctx context.Context, arg database.CustomRolesParams) ([]database.CustomRole, error) {
+ start := time.Now()
+ r0, r1 := m.s.CustomRoles(ctx, arg)
+ m.queryLatencies.WithLabelValues("CustomRoles").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteAPIKeyByID(ctx context.Context, id string) error {
+ start := time.Now()
+ err := m.s.DeleteAPIKeyByID(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteAPIKeyByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error {
+ start := time.Now()
+ err := m.s.DeleteAPIKeysByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("DeleteAPIKeysByUserID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteAllTailnetClientSubscriptions(ctx context.Context, arg database.DeleteAllTailnetClientSubscriptionsParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteAllTailnetClientSubscriptions(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteAllTailnetClientSubscriptions").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteAllTailnetTunnels(ctx context.Context, arg database.DeleteAllTailnetTunnelsParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteAllTailnetTunnels(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteAllTailnetTunnels").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteApplicationConnectAPIKeysByUserID(ctx context.Context, userID uuid.UUID) error {
+ start := time.Now()
+ err := m.s.DeleteApplicationConnectAPIKeysByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("DeleteApplicationConnectAPIKeysByUserID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteCoordinator(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteCoordinator(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteCoordinator").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteCryptoKey(ctx context.Context, arg database.DeleteCryptoKeyParams) (database.CryptoKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.DeleteCryptoKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteCryptoKey").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteCustomRole(ctx context.Context, arg database.DeleteCustomRoleParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteCustomRole(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteCustomRole").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteExternalAuthLink(ctx context.Context, arg database.DeleteExternalAuthLinkParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteExternalAuthLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteExternalAuthLink").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteGitSSHKey(ctx context.Context, userID uuid.UUID) error {
+ start := time.Now()
+ err := m.s.DeleteGitSSHKey(ctx, userID)
+ m.queryLatencies.WithLabelValues("DeleteGitSSHKey").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteGroupByID(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ err := m.s.DeleteGroupByID(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteGroupByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteGroupMemberFromGroup(ctx context.Context, arg database.DeleteGroupMemberFromGroupParams) error {
+ start := time.Now()
+ err := m.s.DeleteGroupMemberFromGroup(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteGroupMemberFromGroup").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteLicense(ctx context.Context, id int32) (int32, error) {
+ start := time.Now()
+ licenseID, err := m.s.DeleteLicense(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteLicense").Observe(time.Since(start).Seconds())
+ return licenseID, err
+}
+
+func (m queryMetricsStore) DeleteOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteOAuth2ProviderAppByID(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteOAuth2ProviderAppCodeByID(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppCodeByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppCodesByAppAndUserIDParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteOAuth2ProviderAppCodesByAppAndUserID(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppCodesByAppAndUserID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteOAuth2ProviderAppSecretByID(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx context.Context, arg database.DeleteOAuth2ProviderAppTokensByAppAndUserIDParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteOAuth2ProviderAppTokensByAppAndUserID(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteOAuth2ProviderAppTokensByAppAndUserID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOldNotificationMessages(ctx context.Context) error {
+ start := time.Now()
+ r0 := m.s.DeleteOldNotificationMessages(ctx)
+ m.queryLatencies.WithLabelValues("DeleteOldNotificationMessages").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOldProvisionerDaemons(ctx context.Context) error {
+ start := time.Now()
+ r0 := m.s.DeleteOldProvisionerDaemons(ctx)
+ m.queryLatencies.WithLabelValues("DeleteOldProvisionerDaemons").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOldWorkspaceAgentLogs(ctx context.Context, arg time.Time) error {
+ start := time.Now()
+ r0 := m.s.DeleteOldWorkspaceAgentLogs(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteOldWorkspaceAgentLogs").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOldWorkspaceAgentStats(ctx context.Context) error {
+ start := time.Now()
+ err := m.s.DeleteOldWorkspaceAgentStats(ctx)
+ m.queryLatencies.WithLabelValues("DeleteOldWorkspaceAgentStats").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteOrganization(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteOrganization(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteOrganization").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteOrganizationMember(ctx context.Context, arg database.DeleteOrganizationMemberParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteOrganizationMember(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteOrganizationMember").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteProvisionerKey(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteProvisionerKey(ctx, id)
+ m.queryLatencies.WithLabelValues("DeleteProvisionerKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error {
+ start := time.Now()
+ err := m.s.DeleteReplicasUpdatedBefore(ctx, updatedAt)
+ m.queryLatencies.WithLabelValues("DeleteReplicasUpdatedBefore").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) DeleteRuntimeConfig(ctx context.Context, key string) error {
+ start := time.Now()
+ r0 := m.s.DeleteRuntimeConfig(ctx, key)
+ m.queryLatencies.WithLabelValues("DeleteRuntimeConfig").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteTailnetAgent(ctx context.Context, arg database.DeleteTailnetAgentParams) (database.DeleteTailnetAgentRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.DeleteTailnetAgent(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteTailnetAgent").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteTailnetClient(ctx context.Context, arg database.DeleteTailnetClientParams) (database.DeleteTailnetClientRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.DeleteTailnetClient(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteTailnetClient").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteTailnetClientSubscription(ctx context.Context, arg database.DeleteTailnetClientSubscriptionParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteTailnetClientSubscription(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteTailnetClientSubscription").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteTailnetPeer(ctx context.Context, arg database.DeleteTailnetPeerParams) (database.DeleteTailnetPeerRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.DeleteTailnetPeer(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteTailnetPeer").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteTailnetTunnel(ctx context.Context, arg database.DeleteTailnetTunnelParams) (database.DeleteTailnetTunnelRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.DeleteTailnetTunnel(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteTailnetTunnel").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) DeleteWorkspaceAgentPortShare(ctx context.Context, arg database.DeleteWorkspaceAgentPortShareParams) error {
+ start := time.Now()
+ r0 := m.s.DeleteWorkspaceAgentPortShare(ctx, arg)
+ m.queryLatencies.WithLabelValues("DeleteWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) DeleteWorkspaceAgentPortSharesByTemplate(ctx context.Context, templateID uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.DeleteWorkspaceAgentPortSharesByTemplate(ctx, templateID)
+ m.queryLatencies.WithLabelValues("DeleteWorkspaceAgentPortSharesByTemplate").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) EnqueueNotificationMessage(ctx context.Context, arg database.EnqueueNotificationMessageParams) error {
+ start := time.Now()
+ r0 := m.s.EnqueueNotificationMessage(ctx, arg)
+ m.queryLatencies.WithLabelValues("EnqueueNotificationMessage").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) FavoriteWorkspace(ctx context.Context, arg uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.FavoriteWorkspace(ctx, arg)
+ m.queryLatencies.WithLabelValues("FavoriteWorkspace").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) FetchNewMessageMetadata(ctx context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.FetchNewMessageMetadata(ctx, arg)
+ m.queryLatencies.WithLabelValues("FetchNewMessageMetadata").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAPIKeyByID(ctx context.Context, id string) (database.APIKey, error) {
+ start := time.Now()
+ apiKey, err := m.s.GetAPIKeyByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetAPIKeyByID").Observe(time.Since(start).Seconds())
+ return apiKey, err
+}
+
+func (m queryMetricsStore) GetAPIKeyByName(ctx context.Context, arg database.GetAPIKeyByNameParams) (database.APIKey, error) {
+ start := time.Now()
+ apiKey, err := m.s.GetAPIKeyByName(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetAPIKeyByName").Observe(time.Since(start).Seconds())
+ return apiKey, err
+}
+
+func (m queryMetricsStore) GetAPIKeysByLoginType(ctx context.Context, loginType database.LoginType) ([]database.APIKey, error) {
+ start := time.Now()
+ apiKeys, err := m.s.GetAPIKeysByLoginType(ctx, loginType)
+ m.queryLatencies.WithLabelValues("GetAPIKeysByLoginType").Observe(time.Since(start).Seconds())
+ return apiKeys, err
+}
+
+func (m queryMetricsStore) GetAPIKeysByUserID(ctx context.Context, arg database.GetAPIKeysByUserIDParams) ([]database.APIKey, error) {
+ start := time.Now()
+ apiKeys, err := m.s.GetAPIKeysByUserID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetAPIKeysByUserID").Observe(time.Since(start).Seconds())
+ return apiKeys, err
+}
+
+func (m queryMetricsStore) GetAPIKeysLastUsedAfter(ctx context.Context, lastUsed time.Time) ([]database.APIKey, error) {
+ start := time.Now()
+ apiKeys, err := m.s.GetAPIKeysLastUsedAfter(ctx, lastUsed)
+ m.queryLatencies.WithLabelValues("GetAPIKeysLastUsedAfter").Observe(time.Since(start).Seconds())
+ return apiKeys, err
+}
+
+func (m queryMetricsStore) GetActiveUserCount(ctx context.Context) (int64, error) {
+ start := time.Now()
+ count, err := m.s.GetActiveUserCount(ctx)
+ m.queryLatencies.WithLabelValues("GetActiveUserCount").Observe(time.Since(start).Seconds())
+ return count, err
+}
+
+func (m queryMetricsStore) GetActiveWorkspaceBuildsByTemplateID(ctx context.Context, templateID uuid.UUID) ([]database.WorkspaceBuild, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetActiveWorkspaceBuildsByTemplateID(ctx, templateID)
+ m.queryLatencies.WithLabelValues("GetActiveWorkspaceBuildsByTemplateID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAllTailnetAgents(ctx context.Context) ([]database.TailnetAgent, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAllTailnetAgents(ctx)
+ m.queryLatencies.WithLabelValues("GetAllTailnetAgents").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAllTailnetCoordinators(ctx context.Context) ([]database.TailnetCoordinator, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAllTailnetCoordinators(ctx)
+ m.queryLatencies.WithLabelValues("GetAllTailnetCoordinators").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAllTailnetPeers(ctx context.Context) ([]database.TailnetPeer, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAllTailnetPeers(ctx)
+ m.queryLatencies.WithLabelValues("GetAllTailnetPeers").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAllTailnetTunnels(ctx context.Context) ([]database.TailnetTunnel, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAllTailnetTunnels(ctx)
+ m.queryLatencies.WithLabelValues("GetAllTailnetTunnels").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAnnouncementBanners(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAnnouncementBanners(ctx)
+ m.queryLatencies.WithLabelValues("GetAnnouncementBanners").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAppSecurityKey(ctx context.Context) (string, error) {
+ start := time.Now()
+ key, err := m.s.GetAppSecurityKey(ctx)
+ m.queryLatencies.WithLabelValues("GetAppSecurityKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) GetApplicationName(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetApplicationName(ctx)
+ m.queryLatencies.WithLabelValues("GetApplicationName").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams) ([]database.GetAuditLogsOffsetRow, error) {
+ start := time.Now()
+ rows, err := m.s.GetAuditLogsOffset(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetAuditLogsOffset").Observe(time.Since(start).Seconds())
+ return rows, err
+}
+
+func (m queryMetricsStore) GetAuthorizationUserRoles(ctx context.Context, userID uuid.UUID) (database.GetAuthorizationUserRolesRow, error) {
+ start := time.Now()
+ row, err := m.s.GetAuthorizationUserRoles(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetAuthorizationUserRoles").Observe(time.Since(start).Seconds())
+ return row, err
+}
+
+func (m queryMetricsStore) GetCoordinatorResumeTokenSigningKey(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetCoordinatorResumeTokenSigningKey(ctx)
+ m.queryLatencies.WithLabelValues("GetCoordinatorResumeTokenSigningKey").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetCryptoKeyByFeatureAndSequence(ctx context.Context, arg database.GetCryptoKeyByFeatureAndSequenceParams) (database.CryptoKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetCryptoKeyByFeatureAndSequence(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetCryptoKeyByFeatureAndSequence").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetCryptoKeys(ctx context.Context) ([]database.CryptoKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetCryptoKeys(ctx)
+ m.queryLatencies.WithLabelValues("GetCryptoKeys").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetCryptoKeysByFeature(ctx context.Context, feature database.CryptoKeyFeature) ([]database.CryptoKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetCryptoKeysByFeature(ctx, feature)
+ m.queryLatencies.WithLabelValues("GetCryptoKeysByFeature").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetDBCryptKeys(ctx context.Context) ([]database.DBCryptKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetDBCryptKeys(ctx)
+ m.queryLatencies.WithLabelValues("GetDBCryptKeys").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetDERPMeshKey(ctx context.Context) (string, error) {
+ start := time.Now()
+ key, err := m.s.GetDERPMeshKey(ctx)
+ m.queryLatencies.WithLabelValues("GetDERPMeshKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) GetDefaultOrganization(ctx context.Context) (database.Organization, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetDefaultOrganization(ctx)
+ m.queryLatencies.WithLabelValues("GetDefaultOrganization").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetDefaultProxyConfig(ctx context.Context) (database.GetDefaultProxyConfigRow, error) {
+ start := time.Now()
+ resp, err := m.s.GetDefaultProxyConfig(ctx)
+ m.queryLatencies.WithLabelValues("GetDefaultProxyConfig").Observe(time.Since(start).Seconds())
+ return resp, err
+}
+
+func (m queryMetricsStore) GetDeploymentDAUs(ctx context.Context, tzOffset int32) ([]database.GetDeploymentDAUsRow, error) {
+ start := time.Now()
+ rows, err := m.s.GetDeploymentDAUs(ctx, tzOffset)
+ m.queryLatencies.WithLabelValues("GetDeploymentDAUs").Observe(time.Since(start).Seconds())
+ return rows, err
+}
+
+func (m queryMetricsStore) GetDeploymentID(ctx context.Context) (string, error) {
+ start := time.Now()
+ id, err := m.s.GetDeploymentID(ctx)
+ m.queryLatencies.WithLabelValues("GetDeploymentID").Observe(time.Since(start).Seconds())
+ return id, err
+}
+
+func (m queryMetricsStore) GetDeploymentWorkspaceAgentStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentStatsRow, error) {
+ start := time.Now()
+ row, err := m.s.GetDeploymentWorkspaceAgentStats(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceAgentStats").Observe(time.Since(start).Seconds())
+ return row, err
+}
+
+func (m queryMetricsStore) GetDeploymentWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) (database.GetDeploymentWorkspaceAgentUsageStatsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetDeploymentWorkspaceAgentUsageStats(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceAgentUsageStats").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetDeploymentWorkspaceStats(ctx context.Context) (database.GetDeploymentWorkspaceStatsRow, error) {
+ start := time.Now()
+ row, err := m.s.GetDeploymentWorkspaceStats(ctx)
+ m.queryLatencies.WithLabelValues("GetDeploymentWorkspaceStats").Observe(time.Since(start).Seconds())
+ return row, err
+}
+
+func (m queryMetricsStore) GetExternalAuthLink(ctx context.Context, arg database.GetExternalAuthLinkParams) (database.ExternalAuthLink, error) {
+ start := time.Now()
+ link, err := m.s.GetExternalAuthLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetExternalAuthLink").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) GetExternalAuthLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.ExternalAuthLink, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetExternalAuthLinksByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetExternalAuthLinksByUserID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetFailedWorkspaceBuildsByTemplateID(ctx context.Context, arg database.GetFailedWorkspaceBuildsByTemplateIDParams) ([]database.GetFailedWorkspaceBuildsByTemplateIDRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetFailedWorkspaceBuildsByTemplateID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetFailedWorkspaceBuildsByTemplateID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetFileByHashAndCreator(ctx context.Context, arg database.GetFileByHashAndCreatorParams) (database.File, error) {
+ start := time.Now()
+ file, err := m.s.GetFileByHashAndCreator(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetFileByHashAndCreator").Observe(time.Since(start).Seconds())
+ return file, err
+}
+
+func (m queryMetricsStore) GetFileByID(ctx context.Context, id uuid.UUID) (database.File, error) {
+ start := time.Now()
+ file, err := m.s.GetFileByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetFileByID").Observe(time.Since(start).Seconds())
+ return file, err
+}
+
+func (m queryMetricsStore) GetFileTemplates(ctx context.Context, fileID uuid.UUID) ([]database.GetFileTemplatesRow, error) {
+ start := time.Now()
+ rows, err := m.s.GetFileTemplates(ctx, fileID)
+ m.queryLatencies.WithLabelValues("GetFileTemplates").Observe(time.Since(start).Seconds())
+ return rows, err
+}
+
+func (m queryMetricsStore) GetGitSSHKey(ctx context.Context, userID uuid.UUID) (database.GitSSHKey, error) {
+ start := time.Now()
+ key, err := m.s.GetGitSSHKey(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetGitSSHKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) GetGroupByID(ctx context.Context, id uuid.UUID) (database.Group, error) {
+ start := time.Now()
+ group, err := m.s.GetGroupByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetGroupByID").Observe(time.Since(start).Seconds())
+ return group, err
+}
+
+func (m queryMetricsStore) GetGroupByOrgAndName(ctx context.Context, arg database.GetGroupByOrgAndNameParams) (database.Group, error) {
+ start := time.Now()
+ group, err := m.s.GetGroupByOrgAndName(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetGroupByOrgAndName").Observe(time.Since(start).Seconds())
+ return group, err
+}
+
+func (m queryMetricsStore) GetGroupMembers(ctx context.Context) ([]database.GroupMember, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetGroupMembers(ctx)
+ m.queryLatencies.WithLabelValues("GetGroupMembers").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetGroupMembersByGroupID(ctx context.Context, groupID uuid.UUID) ([]database.GroupMember, error) {
+ start := time.Now()
+ users, err := m.s.GetGroupMembersByGroupID(ctx, groupID)
+ m.queryLatencies.WithLabelValues("GetGroupMembersByGroupID").Observe(time.Since(start).Seconds())
+ return users, err
+}
+
+func (m queryMetricsStore) GetGroupMembersCountByGroupID(ctx context.Context, groupID uuid.UUID) (int64, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetGroupMembersCountByGroupID(ctx, groupID)
+ m.queryLatencies.WithLabelValues("GetGroupMembersCountByGroupID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetGroups(ctx context.Context, arg database.GetGroupsParams) ([]database.GetGroupsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetGroups(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetGroups").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetHealthSettings(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetHealthSettings(ctx)
+ m.queryLatencies.WithLabelValues("GetHealthSettings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetHungProvisionerJobs(ctx context.Context, hungSince time.Time) ([]database.ProvisionerJob, error) {
+ start := time.Now()
+ jobs, err := m.s.GetHungProvisionerJobs(ctx, hungSince)
+ m.queryLatencies.WithLabelValues("GetHungProvisionerJobs").Observe(time.Since(start).Seconds())
+ return jobs, err
+}
+
+func (m queryMetricsStore) GetJFrogXrayScanByWorkspaceAndAgentID(ctx context.Context, arg database.GetJFrogXrayScanByWorkspaceAndAgentIDParams) (database.JfrogXrayScan, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetJFrogXrayScanByWorkspaceAndAgentID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetJFrogXrayScanByWorkspaceAndAgentID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetLastUpdateCheck(ctx context.Context) (string, error) {
+ start := time.Now()
+ version, err := m.s.GetLastUpdateCheck(ctx)
+ m.queryLatencies.WithLabelValues("GetLastUpdateCheck").Observe(time.Since(start).Seconds())
+ return version, err
+}
+
+func (m queryMetricsStore) GetLatestCryptoKeyByFeature(ctx context.Context, feature database.CryptoKeyFeature) (database.CryptoKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetLatestCryptoKeyByFeature(ctx, feature)
+ m.queryLatencies.WithLabelValues("GetLatestCryptoKeyByFeature").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetLatestWorkspaceBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) (database.WorkspaceBuild, error) {
+ start := time.Now()
+ build, err := m.s.GetLatestWorkspaceBuildByWorkspaceID(ctx, workspaceID)
+ m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuildByWorkspaceID").Observe(time.Since(start).Seconds())
+ return build, err
+}
+
+func (m queryMetricsStore) GetLatestWorkspaceBuilds(ctx context.Context) ([]database.WorkspaceBuild, error) {
+ start := time.Now()
+ builds, err := m.s.GetLatestWorkspaceBuilds(ctx)
+ m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuilds").Observe(time.Since(start).Seconds())
+ return builds, err
+}
+
+func (m queryMetricsStore) GetLatestWorkspaceBuildsByWorkspaceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceBuild, error) {
+ start := time.Now()
+ builds, err := m.s.GetLatestWorkspaceBuildsByWorkspaceIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetLatestWorkspaceBuildsByWorkspaceIDs").Observe(time.Since(start).Seconds())
+ return builds, err
+}
+
+func (m queryMetricsStore) GetLicenseByID(ctx context.Context, id int32) (database.License, error) {
+ start := time.Now()
+ license, err := m.s.GetLicenseByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetLicenseByID").Observe(time.Since(start).Seconds())
+ return license, err
+}
+
+func (m queryMetricsStore) GetLicenses(ctx context.Context) ([]database.License, error) {
+ start := time.Now()
+ licenses, err := m.s.GetLicenses(ctx)
+ m.queryLatencies.WithLabelValues("GetLicenses").Observe(time.Since(start).Seconds())
+ return licenses, err
+}
+
+func (m queryMetricsStore) GetLogoURL(ctx context.Context) (string, error) {
+ start := time.Now()
+ url, err := m.s.GetLogoURL(ctx)
+ m.queryLatencies.WithLabelValues("GetLogoURL").Observe(time.Since(start).Seconds())
+ return url, err
+}
+
+func (m queryMetricsStore) GetNotificationMessagesByStatus(ctx context.Context, arg database.GetNotificationMessagesByStatusParams) ([]database.NotificationMessage, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetNotificationMessagesByStatus(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetNotificationMessagesByStatus").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetNotificationReportGeneratorLogByTemplate(ctx context.Context, arg uuid.UUID) (database.NotificationReportGeneratorLog, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetNotificationReportGeneratorLogByTemplate(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetNotificationReportGeneratorLogByTemplate").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetNotificationTemplateByID(ctx context.Context, id uuid.UUID) (database.NotificationTemplate, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetNotificationTemplateByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetNotificationTemplateByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetNotificationTemplatesByKind(ctx context.Context, kind database.NotificationTemplateKind) ([]database.NotificationTemplate, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetNotificationTemplatesByKind(ctx, kind)
+ m.queryLatencies.WithLabelValues("GetNotificationTemplatesByKind").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetNotificationsSettings(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetNotificationsSettings(ctx)
+ m.queryLatencies.WithLabelValues("GetNotificationsSettings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderApp, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppCodeByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppCode, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppCodeByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppCodeByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppCodeByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppCode, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppCodeByPrefix(ctx, secretPrefix)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppCodeByPrefix").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppSecretByID(ctx context.Context, id uuid.UUID) (database.OAuth2ProviderAppSecret, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppSecretByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppSecretByPrefix(ctx context.Context, secretPrefix []byte) (database.OAuth2ProviderAppSecret, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppSecretByPrefix(ctx, secretPrefix)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretByPrefix").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppSecretsByAppID(ctx context.Context, appID uuid.UUID) ([]database.OAuth2ProviderAppSecret, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppSecretsByAppID(ctx, appID)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppSecretsByAppID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppTokenByPrefix(ctx context.Context, hashPrefix []byte) (database.OAuth2ProviderAppToken, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppTokenByPrefix(ctx, hashPrefix)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppTokenByPrefix").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderApps(ctx context.Context) ([]database.OAuth2ProviderApp, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderApps(ctx)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderApps").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuth2ProviderAppsByUserID(ctx context.Context, userID uuid.UUID) ([]database.GetOAuth2ProviderAppsByUserIDRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuth2ProviderAppsByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetOAuth2ProviderAppsByUserID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOAuthSigningKey(ctx context.Context) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetOAuthSigningKey(ctx)
+ m.queryLatencies.WithLabelValues("GetOAuthSigningKey").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetOrganizationByID(ctx context.Context, id uuid.UUID) (database.Organization, error) {
+ start := time.Now()
+ organization, err := m.s.GetOrganizationByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetOrganizationByID").Observe(time.Since(start).Seconds())
+ return organization, err
+}
+
+func (m queryMetricsStore) GetOrganizationByName(ctx context.Context, name string) (database.Organization, error) {
+ start := time.Now()
+ organization, err := m.s.GetOrganizationByName(ctx, name)
+ m.queryLatencies.WithLabelValues("GetOrganizationByName").Observe(time.Since(start).Seconds())
+ return organization, err
+}
+
+func (m queryMetricsStore) GetOrganizationIDsByMemberIDs(ctx context.Context, ids []uuid.UUID) ([]database.GetOrganizationIDsByMemberIDsRow, error) {
+ start := time.Now()
+ organizations, err := m.s.GetOrganizationIDsByMemberIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetOrganizationIDsByMemberIDs").Observe(time.Since(start).Seconds())
+ return organizations, err
+}
+
+func (m queryMetricsStore) GetOrganizations(ctx context.Context, args database.GetOrganizationsParams) ([]database.Organization, error) {
+ start := time.Now()
+ organizations, err := m.s.GetOrganizations(ctx, args)
+ m.queryLatencies.WithLabelValues("GetOrganizations").Observe(time.Since(start).Seconds())
+ return organizations, err
+}
+
+func (m queryMetricsStore) GetOrganizationsByUserID(ctx context.Context, userID uuid.UUID) ([]database.Organization, error) {
+ start := time.Now()
+ organizations, err := m.s.GetOrganizationsByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetOrganizationsByUserID").Observe(time.Since(start).Seconds())
+ return organizations, err
+}
+
+func (m queryMetricsStore) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ParameterSchema, error) {
+ start := time.Now()
+ schemas, err := m.s.GetParameterSchemasByJobID(ctx, jobID)
+ m.queryLatencies.WithLabelValues("GetParameterSchemasByJobID").Observe(time.Since(start).Seconds())
+ return schemas, err
+}
+
+func (m queryMetricsStore) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) {
+ start := time.Now()
+ version, err := m.s.GetPreviousTemplateVersion(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetPreviousTemplateVersion").Observe(time.Since(start).Seconds())
+ return version, err
+}
+
+func (m queryMetricsStore) GetProvisionerDaemons(ctx context.Context) ([]database.ProvisionerDaemon, error) {
+ start := time.Now()
+ daemons, err := m.s.GetProvisionerDaemons(ctx)
+ m.queryLatencies.WithLabelValues("GetProvisionerDaemons").Observe(time.Since(start).Seconds())
+ return daemons, err
+}
+
+func (m queryMetricsStore) GetProvisionerDaemonsByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerDaemon, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerDaemonsByOrganization(ctx, organizationID)
+ m.queryLatencies.WithLabelValues("GetProvisionerDaemonsByOrganization").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerJobByID(ctx context.Context, id uuid.UUID) (database.ProvisionerJob, error) {
+ start := time.Now()
+ job, err := m.s.GetProvisionerJobByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetProvisionerJobByID").Observe(time.Since(start).Seconds())
+ return job, err
+}
+
+func (m queryMetricsStore) GetProvisionerJobTimingsByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ProvisionerJobTiming, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerJobTimingsByJobID(ctx, jobID)
+ m.queryLatencies.WithLabelValues("GetProvisionerJobTimingsByJobID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerJobsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.ProvisionerJob, error) {
+ start := time.Now()
+ jobs, err := m.s.GetProvisionerJobsByIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetProvisionerJobsByIDs").Observe(time.Since(start).Seconds())
+ return jobs, err
+}
+
+func (m queryMetricsStore) GetProvisionerJobsByIDsWithQueuePosition(ctx context.Context, ids []uuid.UUID) ([]database.GetProvisionerJobsByIDsWithQueuePositionRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerJobsByIDsWithQueuePosition(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetProvisionerJobsByIDsWithQueuePosition").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) {
+ start := time.Now()
+ jobs, err := m.s.GetProvisionerJobsCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetProvisionerJobsCreatedAfter").Observe(time.Since(start).Seconds())
+ return jobs, err
+}
+
+func (m queryMetricsStore) GetProvisionerKeyByHashedSecret(ctx context.Context, hashedSecret []byte) (database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerKeyByHashedSecret(ctx, hashedSecret)
+ m.queryLatencies.WithLabelValues("GetProvisionerKeyByHashedSecret").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerKeyByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetProvisionerKeyByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerKeyByName(ctx context.Context, name database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetProvisionerKeyByName(ctx, name)
+ m.queryLatencies.WithLabelValues("GetProvisionerKeyByName").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetProvisionerLogsAfterID(ctx context.Context, arg database.GetProvisionerLogsAfterIDParams) ([]database.ProvisionerJobLog, error) {
+ start := time.Now()
+ logs, err := m.s.GetProvisionerLogsAfterID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetProvisionerLogsAfterID").Observe(time.Since(start).Seconds())
+ return logs, err
+}
+
+func (m queryMetricsStore) GetQuotaAllowanceForUser(ctx context.Context, userID database.GetQuotaAllowanceForUserParams) (int64, error) {
+ start := time.Now()
+ allowance, err := m.s.GetQuotaAllowanceForUser(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetQuotaAllowanceForUser").Observe(time.Since(start).Seconds())
+ return allowance, err
+}
+
+func (m queryMetricsStore) GetQuotaConsumedForUser(ctx context.Context, ownerID database.GetQuotaConsumedForUserParams) (int64, error) {
+ start := time.Now()
+ consumed, err := m.s.GetQuotaConsumedForUser(ctx, ownerID)
+ m.queryLatencies.WithLabelValues("GetQuotaConsumedForUser").Observe(time.Since(start).Seconds())
+ return consumed, err
+}
+
+func (m queryMetricsStore) GetReplicaByID(ctx context.Context, id uuid.UUID) (database.Replica, error) {
+ start := time.Now()
+ replica, err := m.s.GetReplicaByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetReplicaByID").Observe(time.Since(start).Seconds())
+ return replica, err
+}
+
+func (m queryMetricsStore) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Time) ([]database.Replica, error) {
+ start := time.Now()
+ replicas, err := m.s.GetReplicasUpdatedAfter(ctx, updatedAt)
+ m.queryLatencies.WithLabelValues("GetReplicasUpdatedAfter").Observe(time.Since(start).Seconds())
+ return replicas, err
+}
+
+func (m queryMetricsStore) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetRuntimeConfig(ctx, key)
+ m.queryLatencies.WithLabelValues("GetRuntimeConfig").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTailnetAgents(ctx context.Context, id uuid.UUID) ([]database.TailnetAgent, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTailnetAgents(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTailnetAgents").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTailnetClientsForAgent(ctx context.Context, agentID uuid.UUID) ([]database.TailnetClient, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTailnetClientsForAgent(ctx, agentID)
+ m.queryLatencies.WithLabelValues("GetTailnetClientsForAgent").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTailnetPeers(ctx context.Context, id uuid.UUID) ([]database.TailnetPeer, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTailnetPeers(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTailnetPeers").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTailnetTunnelPeerBindings(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerBindingsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTailnetTunnelPeerBindings(ctx, srcID)
+ m.queryLatencies.WithLabelValues("GetTailnetTunnelPeerBindings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTailnetTunnelPeerIDs(ctx context.Context, srcID uuid.UUID) ([]database.GetTailnetTunnelPeerIDsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTailnetTunnelPeerIDs(ctx, srcID)
+ m.queryLatencies.WithLabelValues("GetTailnetTunnelPeerIDs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateAppInsights(ctx context.Context, arg database.GetTemplateAppInsightsParams) ([]database.GetTemplateAppInsightsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateAppInsights(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateAppInsights").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateAppInsightsByTemplate(ctx context.Context, arg database.GetTemplateAppInsightsByTemplateParams) ([]database.GetTemplateAppInsightsByTemplateRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateAppInsightsByTemplate(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateAppInsightsByTemplate").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateAverageBuildTime(ctx context.Context, arg database.GetTemplateAverageBuildTimeParams) (database.GetTemplateAverageBuildTimeRow, error) {
+ start := time.Now()
+ buildTime, err := m.s.GetTemplateAverageBuildTime(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateAverageBuildTime").Observe(time.Since(start).Seconds())
+ return buildTime, err
+}
+
+func (m queryMetricsStore) GetTemplateByID(ctx context.Context, id uuid.UUID) (database.Template, error) {
+ start := time.Now()
+ template, err := m.s.GetTemplateByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTemplateByID").Observe(time.Since(start).Seconds())
+ return template, err
+}
+
+func (m queryMetricsStore) GetTemplateByOrganizationAndName(ctx context.Context, arg database.GetTemplateByOrganizationAndNameParams) (database.Template, error) {
+ start := time.Now()
+ template, err := m.s.GetTemplateByOrganizationAndName(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateByOrganizationAndName").Observe(time.Since(start).Seconds())
+ return template, err
+}
+
+func (m queryMetricsStore) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateDAUsParams) ([]database.GetTemplateDAUsRow, error) {
+ start := time.Now()
+ daus, err := m.s.GetTemplateDAUs(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateDAUs").Observe(time.Since(start).Seconds())
+ return daus, err
+}
+
+func (m queryMetricsStore) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateInsights(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateInsights").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateInsightsByInterval(ctx context.Context, arg database.GetTemplateInsightsByIntervalParams) ([]database.GetTemplateInsightsByIntervalRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateInsightsByInterval(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateInsightsByInterval").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateInsightsByTemplate(ctx context.Context, arg database.GetTemplateInsightsByTemplateParams) ([]database.GetTemplateInsightsByTemplateRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateInsightsByTemplate(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateInsightsByTemplate").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateParameterInsights(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateParameterInsights").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateUsageStats(ctx context.Context, arg database.GetTemplateUsageStatsParams) ([]database.TemplateUsageStat, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateUsageStats(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateUsageStats").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateVersionByID(ctx context.Context, id uuid.UUID) (database.TemplateVersion, error) {
+ start := time.Now()
+ version, err := m.s.GetTemplateVersionByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionByID").Observe(time.Since(start).Seconds())
+ return version, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionByJobID(ctx context.Context, jobID uuid.UUID) (database.TemplateVersion, error) {
+ start := time.Now()
+ version, err := m.s.GetTemplateVersionByJobID(ctx, jobID)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionByJobID").Observe(time.Since(start).Seconds())
+ return version, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionByTemplateIDAndName(ctx context.Context, arg database.GetTemplateVersionByTemplateIDAndNameParams) (database.TemplateVersion, error) {
+ start := time.Now()
+ version, err := m.s.GetTemplateVersionByTemplateIDAndName(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionByTemplateIDAndName").Observe(time.Since(start).Seconds())
+ return version, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionParameter, error) {
+ start := time.Now()
+ parameters, err := m.s.GetTemplateVersionParameters(ctx, templateVersionID)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionParameters").Observe(time.Since(start).Seconds())
+ return parameters, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
+ start := time.Now()
+ variables, err := m.s.GetTemplateVersionVariables(ctx, templateVersionID)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionVariables").Observe(time.Since(start).Seconds())
+ return variables, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionWorkspaceTags(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionWorkspaceTag, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetTemplateVersionWorkspaceTags(ctx, templateVersionID)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionWorkspaceTags").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetTemplateVersionsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersion, error) {
+ start := time.Now()
+ versions, err := m.s.GetTemplateVersionsByIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionsByIDs").Observe(time.Since(start).Seconds())
+ return versions, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionsByTemplateID(ctx context.Context, arg database.GetTemplateVersionsByTemplateIDParams) ([]database.TemplateVersion, error) {
+ start := time.Now()
+ versions, err := m.s.GetTemplateVersionsByTemplateID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionsByTemplateID").Observe(time.Since(start).Seconds())
+ return versions, err
+}
+
+func (m queryMetricsStore) GetTemplateVersionsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.TemplateVersion, error) {
+ start := time.Now()
+ versions, err := m.s.GetTemplateVersionsCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetTemplateVersionsCreatedAfter").Observe(time.Since(start).Seconds())
+ return versions, err
+}
+
+func (m queryMetricsStore) GetTemplates(ctx context.Context) ([]database.Template, error) {
+ start := time.Now()
+ templates, err := m.s.GetTemplates(ctx)
+ m.queryLatencies.WithLabelValues("GetTemplates").Observe(time.Since(start).Seconds())
+ return templates, err
+}
+
+func (m queryMetricsStore) GetTemplatesWithFilter(ctx context.Context, arg database.GetTemplatesWithFilterParams) ([]database.Template, error) {
+ start := time.Now()
+ templates, err := m.s.GetTemplatesWithFilter(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetTemplatesWithFilter").Observe(time.Since(start).Seconds())
+ return templates, err
+}
+
+func (m queryMetricsStore) GetUnexpiredLicenses(ctx context.Context) ([]database.License, error) {
+ start := time.Now()
+ licenses, err := m.s.GetUnexpiredLicenses(ctx)
+ m.queryLatencies.WithLabelValues("GetUnexpiredLicenses").Observe(time.Since(start).Seconds())
+ return licenses, err
+}
+
+func (m queryMetricsStore) GetUserActivityInsights(ctx context.Context, arg database.GetUserActivityInsightsParams) ([]database.GetUserActivityInsightsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetUserActivityInsights(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetUserActivityInsights").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetUserByEmailOrUsername(ctx context.Context, arg database.GetUserByEmailOrUsernameParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.GetUserByEmailOrUsername(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetUserByEmailOrUsername").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) GetUserByID(ctx context.Context, id uuid.UUID) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.GetUserByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetUserByID").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) GetUserCount(ctx context.Context) (int64, error) {
+ start := time.Now()
+ count, err := m.s.GetUserCount(ctx)
+ m.queryLatencies.WithLabelValues("GetUserCount").Observe(time.Since(start).Seconds())
+ return count, err
+}
+
+func (m queryMetricsStore) GetUserLatencyInsights(ctx context.Context, arg database.GetUserLatencyInsightsParams) ([]database.GetUserLatencyInsightsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetUserLatencyInsights(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetUserLatencyInsights").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetUserLinkByLinkedID(ctx context.Context, linkedID string) (database.UserLink, error) {
+ start := time.Now()
+ link, err := m.s.GetUserLinkByLinkedID(ctx, linkedID)
+ m.queryLatencies.WithLabelValues("GetUserLinkByLinkedID").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) GetUserLinkByUserIDLoginType(ctx context.Context, arg database.GetUserLinkByUserIDLoginTypeParams) (database.UserLink, error) {
+ start := time.Now()
+ link, err := m.s.GetUserLinkByUserIDLoginType(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetUserLinkByUserIDLoginType").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) GetUserLinksByUserID(ctx context.Context, userID uuid.UUID) ([]database.UserLink, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetUserLinksByUserID(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetUserLinksByUserID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetUserNotificationPreferences(ctx context.Context, userID uuid.UUID) ([]database.NotificationPreference, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetUserNotificationPreferences(ctx, userID)
+ m.queryLatencies.WithLabelValues("GetUserNotificationPreferences").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetUserWorkspaceBuildParameters(ctx context.Context, ownerID database.GetUserWorkspaceBuildParametersParams) ([]database.GetUserWorkspaceBuildParametersRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetUserWorkspaceBuildParameters(ctx, ownerID)
+ m.queryLatencies.WithLabelValues("GetUserWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetUsers(ctx context.Context, arg database.GetUsersParams) ([]database.GetUsersRow, error) {
+ start := time.Now()
+ users, err := m.s.GetUsers(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetUsers").Observe(time.Since(start).Seconds())
+ return users, err
+}
+
+func (m queryMetricsStore) GetUsersByIDs(ctx context.Context, ids []uuid.UUID) ([]database.User, error) {
+ start := time.Now()
+ users, err := m.s.GetUsersByIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetUsersByIDs").Observe(time.Since(start).Seconds())
+ return users, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentAndLatestBuildByAuthToken(ctx context.Context, authToken uuid.UUID) (database.GetWorkspaceAgentAndLatestBuildByAuthTokenRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentAndLatestBuildByAuthToken(ctx, authToken)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentAndLatestBuildByAuthToken").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentByID(ctx context.Context, id uuid.UUID) (database.WorkspaceAgent, error) {
+ start := time.Now()
+ agent, err := m.s.GetWorkspaceAgentByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentByID").Observe(time.Since(start).Seconds())
+ return agent, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentByInstanceID(ctx context.Context, authInstanceID string) (database.WorkspaceAgent, error) {
+ start := time.Now()
+ agent, err := m.s.GetWorkspaceAgentByInstanceID(ctx, authInstanceID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentByInstanceID").Observe(time.Since(start).Seconds())
+ return agent, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentLifecycleStateByID(ctx context.Context, id uuid.UUID) (database.GetWorkspaceAgentLifecycleStateByIDRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentLifecycleStateByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentLifecycleStateByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentLogSourcesByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentLogSource, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentLogSourcesByAgentIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentLogSourcesByAgentIDs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentLogsAfter(ctx context.Context, arg database.GetWorkspaceAgentLogsAfterParams) ([]database.WorkspaceAgentLog, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentLogsAfter(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentLogsAfter").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentMetadata(ctx context.Context, workspaceAgentID database.GetWorkspaceAgentMetadataParams) ([]database.WorkspaceAgentMetadatum, error) {
+ start := time.Now()
+ metadata, err := m.s.GetWorkspaceAgentMetadata(ctx, workspaceAgentID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
+ return metadata, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentPortShare(ctx context.Context, arg database.GetWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentPortShare(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentScriptTimingsByBuildID(ctx context.Context, id uuid.UUID) ([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentScriptTimingsByBuildID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentScriptTimingsByBuildID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgentScript, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentScriptsByAgentIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentScriptsByAgentIDs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsRow, error) {
+ start := time.Now()
+ stats, err := m.s.GetWorkspaceAgentStats(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentStats").Observe(time.Since(start).Seconds())
+ return stats, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentStatsAndLabelsRow, error) {
+ start := time.Now()
+ stats, err := m.s.GetWorkspaceAgentStatsAndLabels(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentStatsAndLabels").Observe(time.Since(start).Seconds())
+ return stats, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentUsageStats(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentUsageStats(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentUsageStats").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentUsageStatsAndLabels(ctx context.Context, createdAt time.Time) ([]database.GetWorkspaceAgentUsageStatsAndLabelsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceAgentUsageStatsAndLabels(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentUsageStatsAndLabels").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentsByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceAgent, error) {
+ start := time.Now()
+ agents, err := m.s.GetWorkspaceAgentsByResourceIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentsByResourceIDs").Observe(time.Since(start).Seconds())
+ return agents, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceAgent, error) {
+ start := time.Now()
+ agents, err := m.s.GetWorkspaceAgentsCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentsCreatedAfter").Observe(time.Since(start).Seconds())
+ return agents, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgent, error) {
+ start := time.Now()
+ agents, err := m.s.GetWorkspaceAgentsInLatestBuildByWorkspaceID(ctx, workspaceID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAgentsInLatestBuildByWorkspaceID").Observe(time.Since(start).Seconds())
+ return agents, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAppByAgentIDAndSlug(ctx context.Context, arg database.GetWorkspaceAppByAgentIDAndSlugParams) (database.WorkspaceApp, error) {
+ start := time.Now()
+ app, err := m.s.GetWorkspaceAppByAgentIDAndSlug(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAppByAgentIDAndSlug").Observe(time.Since(start).Seconds())
+ return app, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAppsByAgentID(ctx context.Context, agentID uuid.UUID) ([]database.WorkspaceApp, error) {
+ start := time.Now()
+ apps, err := m.s.GetWorkspaceAppsByAgentID(ctx, agentID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAppsByAgentID").Observe(time.Since(start).Seconds())
+ return apps, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAppsByAgentIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceApp, error) {
+ start := time.Now()
+ apps, err := m.s.GetWorkspaceAppsByAgentIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAppsByAgentIDs").Observe(time.Since(start).Seconds())
+ return apps, err
+}
+
+func (m queryMetricsStore) GetWorkspaceAppsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceApp, error) {
+ start := time.Now()
+ apps, err := m.s.GetWorkspaceAppsCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceAppsCreatedAfter").Observe(time.Since(start).Seconds())
+ return apps, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildByID(ctx context.Context, id uuid.UUID) (database.WorkspaceBuild, error) {
+ start := time.Now()
+ build, err := m.s.GetWorkspaceBuildByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildByID").Observe(time.Since(start).Seconds())
+ return build, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildByJobID(ctx context.Context, jobID uuid.UUID) (database.WorkspaceBuild, error) {
+ start := time.Now()
+ build, err := m.s.GetWorkspaceBuildByJobID(ctx, jobID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildByJobID").Observe(time.Since(start).Seconds())
+ return build, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx context.Context, arg database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams) (database.WorkspaceBuild, error) {
+ start := time.Now()
+ build, err := m.s.GetWorkspaceBuildByWorkspaceIDAndBuildNumber(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildByWorkspaceIDAndBuildNumber").Observe(time.Since(start).Seconds())
+ return build, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuildID uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
+ start := time.Now()
+ params, err := m.s.GetWorkspaceBuildParameters(ctx, workspaceBuildID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
+ return params, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceBuildStatsByTemplates(ctx, since)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildStatsByTemplates").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildsByWorkspaceID(ctx context.Context, arg database.GetWorkspaceBuildsByWorkspaceIDParams) ([]database.WorkspaceBuild, error) {
+ start := time.Now()
+ builds, err := m.s.GetWorkspaceBuildsByWorkspaceID(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildsByWorkspaceID").Observe(time.Since(start).Seconds())
+ return builds, err
+}
+
+func (m queryMetricsStore) GetWorkspaceBuildsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceBuild, error) {
+ start := time.Now()
+ builds, err := m.s.GetWorkspaceBuildsCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceBuildsCreatedAfter").Observe(time.Since(start).Seconds())
+ return builds, err
+}
+
+func (m queryMetricsStore) GetWorkspaceByAgentID(ctx context.Context, agentID uuid.UUID) (database.Workspace, error) {
+ start := time.Now()
+ workspace, err := m.s.GetWorkspaceByAgentID(ctx, agentID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceByAgentID").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) GetWorkspaceByID(ctx context.Context, id uuid.UUID) (database.Workspace, error) {
+ start := time.Now()
+ workspace, err := m.s.GetWorkspaceByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceByID").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) GetWorkspaceByOwnerIDAndName(ctx context.Context, arg database.GetWorkspaceByOwnerIDAndNameParams) (database.Workspace, error) {
+ start := time.Now()
+ workspace, err := m.s.GetWorkspaceByOwnerIDAndName(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceByOwnerIDAndName").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) GetWorkspaceByWorkspaceAppID(ctx context.Context, workspaceAppID uuid.UUID) (database.Workspace, error) {
+ start := time.Now()
+ workspace, err := m.s.GetWorkspaceByWorkspaceAppID(ctx, workspaceAppID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceByWorkspaceAppID").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) GetWorkspaceProxies(ctx context.Context) ([]database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxies, err := m.s.GetWorkspaceProxies(ctx)
+ m.queryLatencies.WithLabelValues("GetWorkspaceProxies").Observe(time.Since(start).Seconds())
+ return proxies, err
+}
+
+func (m queryMetricsStore) GetWorkspaceProxyByHostname(ctx context.Context, arg database.GetWorkspaceProxyByHostnameParams) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.GetWorkspaceProxyByHostname(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaceProxyByHostname").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) GetWorkspaceProxyByID(ctx context.Context, id uuid.UUID) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.GetWorkspaceProxyByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceProxyByID").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) GetWorkspaceProxyByName(ctx context.Context, name string) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.GetWorkspaceProxyByName(ctx, name)
+ m.queryLatencies.WithLabelValues("GetWorkspaceProxyByName").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourceByID(ctx context.Context, id uuid.UUID) (database.WorkspaceResource, error) {
+ start := time.Now()
+ resource, err := m.s.GetWorkspaceResourceByID(ctx, id)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourceByID").Observe(time.Since(start).Seconds())
+ return resource, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourceMetadataByResourceIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) {
+ start := time.Now()
+ metadata, err := m.s.GetWorkspaceResourceMetadataByResourceIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourceMetadataByResourceIDs").Observe(time.Since(start).Seconds())
+ return metadata, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourceMetadataCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResourceMetadatum, error) {
+ start := time.Now()
+ metadata, err := m.s.GetWorkspaceResourceMetadataCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourceMetadataCreatedAfter").Observe(time.Since(start).Seconds())
+ return metadata, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourcesByJobID(ctx context.Context, jobID uuid.UUID) ([]database.WorkspaceResource, error) {
+ start := time.Now()
+ resources, err := m.s.GetWorkspaceResourcesByJobID(ctx, jobID)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourcesByJobID").Observe(time.Since(start).Seconds())
+ return resources, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourcesByJobIDs(ctx context.Context, ids []uuid.UUID) ([]database.WorkspaceResource, error) {
+ start := time.Now()
+ resources, err := m.s.GetWorkspaceResourcesByJobIDs(ctx, ids)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourcesByJobIDs").Observe(time.Since(start).Seconds())
+ return resources, err
+}
+
+func (m queryMetricsStore) GetWorkspaceResourcesCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.WorkspaceResource, error) {
+ start := time.Now()
+ resources, err := m.s.GetWorkspaceResourcesCreatedAfter(ctx, createdAt)
+ m.queryLatencies.WithLabelValues("GetWorkspaceResourcesCreatedAfter").Observe(time.Since(start).Seconds())
+ return resources, err
+}
+
+func (m queryMetricsStore) GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx context.Context, templateIds []uuid.UUID) ([]database.GetWorkspaceUniqueOwnerCountByTemplateIDsRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx, templateIds)
+ m.queryLatencies.WithLabelValues("GetWorkspaceUniqueOwnerCountByTemplateIDs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetWorkspaces(ctx context.Context, arg database.GetWorkspacesParams) ([]database.GetWorkspacesRow, error) {
+ start := time.Now()
+ workspaces, err := m.s.GetWorkspaces(ctx, arg)
+ m.queryLatencies.WithLabelValues("GetWorkspaces").Observe(time.Since(start).Seconds())
+ return workspaces, err
+}
+
+func (m queryMetricsStore) GetWorkspacesEligibleForTransition(ctx context.Context, now time.Time) ([]database.WorkspaceTable, error) {
+ start := time.Now()
+ workspaces, err := m.s.GetWorkspacesEligibleForTransition(ctx, now)
+ m.queryLatencies.WithLabelValues("GetWorkspacesEligibleForAutoStartStop").Observe(time.Since(start).Seconds())
+ return workspaces, err
+}
+
+func (m queryMetricsStore) InsertAPIKey(ctx context.Context, arg database.InsertAPIKeyParams) (database.APIKey, error) {
+ start := time.Now()
+ key, err := m.s.InsertAPIKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertAPIKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) InsertAllUsersGroup(ctx context.Context, organizationID uuid.UUID) (database.Group, error) {
+ start := time.Now()
+ group, err := m.s.InsertAllUsersGroup(ctx, organizationID)
+ m.queryLatencies.WithLabelValues("InsertAllUsersGroup").Observe(time.Since(start).Seconds())
+ return group, err
+}
+
+func (m queryMetricsStore) InsertAuditLog(ctx context.Context, arg database.InsertAuditLogParams) (database.AuditLog, error) {
+ start := time.Now()
+ log, err := m.s.InsertAuditLog(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertAuditLog").Observe(time.Since(start).Seconds())
+ return log, err
+}
+
+func (m queryMetricsStore) InsertCryptoKey(ctx context.Context, arg database.InsertCryptoKeyParams) (database.CryptoKey, error) {
+ start := time.Now()
+ key, err := m.s.InsertCryptoKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertCryptoKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) InsertCustomRole(ctx context.Context, arg database.InsertCustomRoleParams) (database.CustomRole, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertCustomRole(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertCustomRole").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertDBCryptKey(ctx context.Context, arg database.InsertDBCryptKeyParams) error {
+ start := time.Now()
+ r0 := m.s.InsertDBCryptKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertDBCryptKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) InsertDERPMeshKey(ctx context.Context, value string) error {
+ start := time.Now()
+ err := m.s.InsertDERPMeshKey(ctx, value)
+ m.queryLatencies.WithLabelValues("InsertDERPMeshKey").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertDeploymentID(ctx context.Context, value string) error {
+ start := time.Now()
+ err := m.s.InsertDeploymentID(ctx, value)
+ m.queryLatencies.WithLabelValues("InsertDeploymentID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertExternalAuthLink(ctx context.Context, arg database.InsertExternalAuthLinkParams) (database.ExternalAuthLink, error) {
+ start := time.Now()
+ link, err := m.s.InsertExternalAuthLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertExternalAuthLink").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) InsertFile(ctx context.Context, arg database.InsertFileParams) (database.File, error) {
+ start := time.Now()
+ file, err := m.s.InsertFile(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertFile").Observe(time.Since(start).Seconds())
+ return file, err
+}
+
+func (m queryMetricsStore) InsertGitSSHKey(ctx context.Context, arg database.InsertGitSSHKeyParams) (database.GitSSHKey, error) {
+ start := time.Now()
+ key, err := m.s.InsertGitSSHKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertGitSSHKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) InsertGroup(ctx context.Context, arg database.InsertGroupParams) (database.Group, error) {
+ start := time.Now()
+ group, err := m.s.InsertGroup(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertGroup").Observe(time.Since(start).Seconds())
+ return group, err
+}
+
+func (m queryMetricsStore) InsertGroupMember(ctx context.Context, arg database.InsertGroupMemberParams) error {
+ start := time.Now()
+ err := m.s.InsertGroupMember(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertGroupMember").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertLicense(ctx context.Context, arg database.InsertLicenseParams) (database.License, error) {
+ start := time.Now()
+ license, err := m.s.InsertLicense(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertLicense").Observe(time.Since(start).Seconds())
+ return license, err
+}
+
+func (m queryMetricsStore) InsertMissingGroups(ctx context.Context, arg database.InsertMissingGroupsParams) ([]database.Group, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertMissingGroups(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertMissingGroups").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertOAuth2ProviderApp(ctx context.Context, arg database.InsertOAuth2ProviderAppParams) (database.OAuth2ProviderApp, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertOAuth2ProviderApp(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOAuth2ProviderApp").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertOAuth2ProviderAppCode(ctx context.Context, arg database.InsertOAuth2ProviderAppCodeParams) (database.OAuth2ProviderAppCode, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertOAuth2ProviderAppCode(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppCode").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertOAuth2ProviderAppSecret(ctx context.Context, arg database.InsertOAuth2ProviderAppSecretParams) (database.OAuth2ProviderAppSecret, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertOAuth2ProviderAppSecret(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppSecret").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertOAuth2ProviderAppToken(ctx context.Context, arg database.InsertOAuth2ProviderAppTokenParams) (database.OAuth2ProviderAppToken, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertOAuth2ProviderAppToken(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOAuth2ProviderAppToken").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertOrganization(ctx context.Context, arg database.InsertOrganizationParams) (database.Organization, error) {
+ start := time.Now()
+ organization, err := m.s.InsertOrganization(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOrganization").Observe(time.Since(start).Seconds())
+ return organization, err
+}
+
+func (m queryMetricsStore) InsertOrganizationMember(ctx context.Context, arg database.InsertOrganizationMemberParams) (database.OrganizationMember, error) {
+ start := time.Now()
+ member, err := m.s.InsertOrganizationMember(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertOrganizationMember").Observe(time.Since(start).Seconds())
+ return member, err
+}
+
+func (m queryMetricsStore) InsertProvisionerJob(ctx context.Context, arg database.InsertProvisionerJobParams) (database.ProvisionerJob, error) {
+ start := time.Now()
+ job, err := m.s.InsertProvisionerJob(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertProvisionerJob").Observe(time.Since(start).Seconds())
+ return job, err
+}
+
+func (m queryMetricsStore) InsertProvisionerJobLogs(ctx context.Context, arg database.InsertProvisionerJobLogsParams) ([]database.ProvisionerJobLog, error) {
+ start := time.Now()
+ logs, err := m.s.InsertProvisionerJobLogs(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertProvisionerJobLogs").Observe(time.Since(start).Seconds())
+ return logs, err
+}
+
+func (m queryMetricsStore) InsertProvisionerJobTimings(ctx context.Context, arg database.InsertProvisionerJobTimingsParams) ([]database.ProvisionerJobTiming, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertProvisionerJobTimings(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertProvisionerJobTimings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertProvisionerKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertProvisionerKey").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) {
+ start := time.Now()
+ replica, err := m.s.InsertReplica(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertReplica").Observe(time.Since(start).Seconds())
+ return replica, err
+}
+
+func (m queryMetricsStore) InsertTemplate(ctx context.Context, arg database.InsertTemplateParams) error {
+ start := time.Now()
+ err := m.s.InsertTemplate(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertTemplate").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertTemplateVersion(ctx context.Context, arg database.InsertTemplateVersionParams) error {
+ start := time.Now()
+ err := m.s.InsertTemplateVersion(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertTemplateVersion").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertTemplateVersionParameter(ctx context.Context, arg database.InsertTemplateVersionParameterParams) (database.TemplateVersionParameter, error) {
+ start := time.Now()
+ parameter, err := m.s.InsertTemplateVersionParameter(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertTemplateVersionParameter").Observe(time.Since(start).Seconds())
+ return parameter, err
+}
+
+func (m queryMetricsStore) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) {
+ start := time.Now()
+ variable, err := m.s.InsertTemplateVersionVariable(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertTemplateVersionVariable").Observe(time.Since(start).Seconds())
+ return variable, err
+}
+
+func (m queryMetricsStore) InsertTemplateVersionWorkspaceTag(ctx context.Context, arg database.InsertTemplateVersionWorkspaceTagParams) (database.TemplateVersionWorkspaceTag, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertTemplateVersionWorkspaceTag(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertTemplateVersionWorkspaceTag").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertUser(ctx context.Context, arg database.InsertUserParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.InsertUser(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertUser").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) InsertUserGroupsByID(ctx context.Context, arg database.InsertUserGroupsByIDParams) ([]uuid.UUID, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertUserGroupsByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertUserGroupsByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertUserGroupsByName(ctx context.Context, arg database.InsertUserGroupsByNameParams) error {
+ start := time.Now()
+ err := m.s.InsertUserGroupsByName(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertUserGroupsByName").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertUserLink(ctx context.Context, arg database.InsertUserLinkParams) (database.UserLink, error) {
+ start := time.Now()
+ link, err := m.s.InsertUserLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertUserLink").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) InsertWorkspace(ctx context.Context, arg database.InsertWorkspaceParams) (database.WorkspaceTable, error) {
+ start := time.Now()
+ workspace, err := m.s.InsertWorkspace(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspace").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgent(ctx context.Context, arg database.InsertWorkspaceAgentParams) (database.WorkspaceAgent, error) {
+ start := time.Now()
+ agent, err := m.s.InsertWorkspaceAgent(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgent").Observe(time.Since(start).Seconds())
+ return agent, err
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentLogSources(ctx context.Context, arg database.InsertWorkspaceAgentLogSourcesParams) ([]database.WorkspaceAgentLogSource, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertWorkspaceAgentLogSources(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentLogSources").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentLogs(ctx context.Context, arg database.InsertWorkspaceAgentLogsParams) ([]database.WorkspaceAgentLog, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertWorkspaceAgentLogs(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentLogs").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentMetadata(ctx context.Context, arg database.InsertWorkspaceAgentMetadataParams) error {
+ start := time.Now()
+ err := m.s.InsertWorkspaceAgentMetadata(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentScriptTimings(ctx context.Context, arg database.InsertWorkspaceAgentScriptTimingsParams) (database.WorkspaceAgentScriptTiming, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertWorkspaceAgentScriptTimings(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentScriptTimings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentScripts(ctx context.Context, arg database.InsertWorkspaceAgentScriptsParams) ([]database.WorkspaceAgentScript, error) {
+ start := time.Now()
+ r0, r1 := m.s.InsertWorkspaceAgentScripts(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentScripts").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) InsertWorkspaceAgentStats(ctx context.Context, arg database.InsertWorkspaceAgentStatsParams) error {
+ start := time.Now()
+ r0 := m.s.InsertWorkspaceAgentStats(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAgentStats").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) InsertWorkspaceApp(ctx context.Context, arg database.InsertWorkspaceAppParams) (database.WorkspaceApp, error) {
+ start := time.Now()
+ app, err := m.s.InsertWorkspaceApp(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceApp").Observe(time.Since(start).Seconds())
+ return app, err
+}
+
+func (m queryMetricsStore) InsertWorkspaceAppStats(ctx context.Context, arg database.InsertWorkspaceAppStatsParams) error {
+ start := time.Now()
+ r0 := m.s.InsertWorkspaceAppStats(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceAppStats").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) InsertWorkspaceBuild(ctx context.Context, arg database.InsertWorkspaceBuildParams) error {
+ start := time.Now()
+ err := m.s.InsertWorkspaceBuild(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceBuild").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertWorkspaceBuildParameters(ctx context.Context, arg database.InsertWorkspaceBuildParametersParams) error {
+ start := time.Now()
+ err := m.s.InsertWorkspaceBuildParameters(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceBuildParameters").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) InsertWorkspaceProxy(ctx context.Context, arg database.InsertWorkspaceProxyParams) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.InsertWorkspaceProxy(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceProxy").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) InsertWorkspaceResource(ctx context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) {
+ start := time.Now()
+ resource, err := m.s.InsertWorkspaceResource(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceResource").Observe(time.Since(start).Seconds())
+ return resource, err
+}
+
+func (m queryMetricsStore) InsertWorkspaceResourceMetadata(ctx context.Context, arg database.InsertWorkspaceResourceMetadataParams) ([]database.WorkspaceResourceMetadatum, error) {
+ start := time.Now()
+ metadata, err := m.s.InsertWorkspaceResourceMetadata(ctx, arg)
+ m.queryLatencies.WithLabelValues("InsertWorkspaceResourceMetadata").Observe(time.Since(start).Seconds())
+ return metadata, err
+}
+
+func (m queryMetricsStore) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.ListProvisionerKeysByOrganization(ctx, organizationID)
+ m.queryLatencies.WithLabelValues("ListProvisionerKeysByOrganization").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context, organizationID uuid.UUID) ([]database.ProvisionerKey, error) {
+ start := time.Now()
+ r0, r1 := m.s.ListProvisionerKeysByOrganizationExcludeReserved(ctx, organizationID)
+ m.queryLatencies.WithLabelValues("ListProvisionerKeysByOrganizationExcludeReserved").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare, error) {
+ start := time.Now()
+ r0, r1 := m.s.ListWorkspaceAgentPortShares(ctx, workspaceID)
+ m.queryLatencies.WithLabelValues("ListWorkspaceAgentPortShares").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) OrganizationMembers(ctx context.Context, arg database.OrganizationMembersParams) ([]database.OrganizationMembersRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.OrganizationMembers(ctx, arg)
+ m.queryLatencies.WithLabelValues("OrganizationMembers").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx context.Context, templateID uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx, templateID)
+ m.queryLatencies.WithLabelValues("ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) RegisterWorkspaceProxy(ctx context.Context, arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.RegisterWorkspaceProxy(ctx, arg)
+ m.queryLatencies.WithLabelValues("RegisterWorkspaceProxy").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) RemoveUserFromAllGroups(ctx context.Context, userID uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.RemoveUserFromAllGroups(ctx, userID)
+ m.queryLatencies.WithLabelValues("RemoveUserFromAllGroups").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) RemoveUserFromGroups(ctx context.Context, arg database.RemoveUserFromGroupsParams) ([]uuid.UUID, error) {
+ start := time.Now()
+ r0, r1 := m.s.RemoveUserFromGroups(ctx, arg)
+ m.queryLatencies.WithLabelValues("RemoveUserFromGroups").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) RevokeDBCryptKey(ctx context.Context, activeKeyDigest string) error {
+ start := time.Now()
+ r0 := m.s.RevokeDBCryptKey(ctx, activeKeyDigest)
+ m.queryLatencies.WithLabelValues("RevokeDBCryptKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) TryAcquireLock(ctx context.Context, pgTryAdvisoryXactLock int64) (bool, error) {
+ start := time.Now()
+ ok, err := m.s.TryAcquireLock(ctx, pgTryAdvisoryXactLock)
+ m.queryLatencies.WithLabelValues("TryAcquireLock").Observe(time.Since(start).Seconds())
+ return ok, err
+}
+
+func (m queryMetricsStore) UnarchiveTemplateVersion(ctx context.Context, arg database.UnarchiveTemplateVersionParams) error {
+ start := time.Now()
+ r0 := m.s.UnarchiveTemplateVersion(ctx, arg)
+ m.queryLatencies.WithLabelValues("UnarchiveTemplateVersion").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UnfavoriteWorkspace(ctx context.Context, arg uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.UnfavoriteWorkspace(ctx, arg)
+ m.queryLatencies.WithLabelValues("UnfavoriteWorkspace").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateAPIKeyByID(ctx context.Context, arg database.UpdateAPIKeyByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateAPIKeyByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateAPIKeyByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateCryptoKeyDeletesAt(ctx context.Context, arg database.UpdateCryptoKeyDeletesAtParams) (database.CryptoKey, error) {
+ start := time.Now()
+ key, err := m.s.UpdateCryptoKeyDeletesAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateCryptoKeyDeletesAt").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) UpdateCustomRole(ctx context.Context, arg database.UpdateCustomRoleParams) (database.CustomRole, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateCustomRole(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateCustomRole").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateExternalAuthLink(ctx context.Context, arg database.UpdateExternalAuthLinkParams) (database.ExternalAuthLink, error) {
+ start := time.Now()
+ link, err := m.s.UpdateExternalAuthLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateExternalAuthLink").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) UpdateGitSSHKey(ctx context.Context, arg database.UpdateGitSSHKeyParams) (database.GitSSHKey, error) {
+ start := time.Now()
+ key, err := m.s.UpdateGitSSHKey(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateGitSSHKey").Observe(time.Since(start).Seconds())
+ return key, err
+}
+
+func (m queryMetricsStore) UpdateGroupByID(ctx context.Context, arg database.UpdateGroupByIDParams) (database.Group, error) {
+ start := time.Now()
+ group, err := m.s.UpdateGroupByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateGroupByID").Observe(time.Since(start).Seconds())
+ return group, err
+}
+
+func (m queryMetricsStore) UpdateInactiveUsersToDormant(ctx context.Context, lastSeenAfter database.UpdateInactiveUsersToDormantParams) ([]database.UpdateInactiveUsersToDormantRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateInactiveUsersToDormant(ctx, lastSeenAfter)
+ m.queryLatencies.WithLabelValues("UpdateInactiveUsersToDormant").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateMemberRoles(ctx context.Context, arg database.UpdateMemberRolesParams) (database.OrganizationMember, error) {
+ start := time.Now()
+ member, err := m.s.UpdateMemberRoles(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateMemberRoles").Observe(time.Since(start).Seconds())
+ return member, err
+}
+
+func (m queryMetricsStore) UpdateNotificationTemplateMethodByID(ctx context.Context, arg database.UpdateNotificationTemplateMethodByIDParams) (database.NotificationTemplate, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateNotificationTemplateMethodByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateNotificationTemplateMethodByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateOAuth2ProviderAppByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppByIDParams) (database.OAuth2ProviderApp, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateOAuth2ProviderAppByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateOAuth2ProviderAppByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateOAuth2ProviderAppSecretByID(ctx context.Context, arg database.UpdateOAuth2ProviderAppSecretByIDParams) (database.OAuth2ProviderAppSecret, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateOAuth2ProviderAppSecretByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateOAuth2ProviderAppSecretByID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateOrganization(ctx context.Context, arg database.UpdateOrganizationParams) (database.Organization, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateOrganization(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateOrganization").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateProvisionerDaemonLastSeenAt(ctx context.Context, arg database.UpdateProvisionerDaemonLastSeenAtParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateProvisionerDaemonLastSeenAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateProvisionerDaemonLastSeenAt").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateProvisionerJobByID(ctx context.Context, arg database.UpdateProvisionerJobByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateProvisionerJobByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateProvisionerJobByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateProvisionerJobWithCancelByID(ctx context.Context, arg database.UpdateProvisionerJobWithCancelByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateProvisionerJobWithCancelByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateProvisionerJobWithCancelByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateProvisionerJobWithCompleteByID(ctx context.Context, arg database.UpdateProvisionerJobWithCompleteByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateProvisionerJobWithCompleteByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateProvisionerJobWithCompleteByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateReplica(ctx context.Context, arg database.UpdateReplicaParams) (database.Replica, error) {
+ start := time.Now()
+ replica, err := m.s.UpdateReplica(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateReplica").Observe(time.Since(start).Seconds())
+ return replica, err
+}
+
+func (m queryMetricsStore) UpdateTailnetPeerStatusByCoordinator(ctx context.Context, arg database.UpdateTailnetPeerStatusByCoordinatorParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateTailnetPeerStatusByCoordinator(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTailnetPeerStatusByCoordinator").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateTemplateACLByID(ctx context.Context, arg database.UpdateTemplateACLByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateACLByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateACLByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateAccessControlByID(ctx context.Context, arg database.UpdateTemplateAccessControlByIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateTemplateAccessControlByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateAccessControlByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateTemplateActiveVersionByID(ctx context.Context, arg database.UpdateTemplateActiveVersionByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateActiveVersionByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateActiveVersionByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateDeletedByID(ctx context.Context, arg database.UpdateTemplateDeletedByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateDeletedByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateDeletedByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateMetaByID(ctx context.Context, arg database.UpdateTemplateMetaByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateMetaByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateMetaByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateScheduleByID(ctx context.Context, arg database.UpdateTemplateScheduleByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateScheduleByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateScheduleByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateVersionByID(ctx context.Context, arg database.UpdateTemplateVersionByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateVersionByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateVersionByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateVersionDescriptionByJobID(ctx context.Context, arg database.UpdateTemplateVersionDescriptionByJobIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateVersionDescriptionByJobID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateVersionDescriptionByJobID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateVersionExternalAuthProvidersByJobID(ctx context.Context, arg database.UpdateTemplateVersionExternalAuthProvidersByJobIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateTemplateVersionExternalAuthProvidersByJobID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateVersionExternalAuthProvidersByJobID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateTemplateWorkspacesLastUsedAt(ctx context.Context, arg database.UpdateTemplateWorkspacesLastUsedAtParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateTemplateWorkspacesLastUsedAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateTemplateWorkspacesLastUsedAt").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateUserAppearanceSettings(ctx context.Context, arg database.UpdateUserAppearanceSettingsParams) (database.User, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateUserAppearanceSettings(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserAppearanceSettings").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateUserDeletedByID(ctx context.Context, id uuid.UUID) error {
+ start := time.Now()
+ r0 := m.s.UpdateUserDeletedByID(ctx, id)
+ m.queryLatencies.WithLabelValues("UpdateUserDeletedByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateUserGithubComUserID(ctx context.Context, arg database.UpdateUserGithubComUserIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateUserGithubComUserID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserGithubComUserID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateUserHashedOneTimePasscode(ctx context.Context, arg database.UpdateUserHashedOneTimePasscodeParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateUserHashedOneTimePasscode(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserHashedOneTimePasscode").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateUserHashedPassword(ctx context.Context, arg database.UpdateUserHashedPasswordParams) error {
+ start := time.Now()
+ err := m.s.UpdateUserHashedPassword(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserHashedPassword").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateUserLastSeenAt(ctx context.Context, arg database.UpdateUserLastSeenAtParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.UpdateUserLastSeenAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserLastSeenAt").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) UpdateUserLink(ctx context.Context, arg database.UpdateUserLinkParams) (database.UserLink, error) {
+ start := time.Now()
+ link, err := m.s.UpdateUserLink(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserLink").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) UpdateUserLinkedID(ctx context.Context, arg database.UpdateUserLinkedIDParams) (database.UserLink, error) {
+ start := time.Now()
+ link, err := m.s.UpdateUserLinkedID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserLinkedID").Observe(time.Since(start).Seconds())
+ return link, err
+}
+
+func (m queryMetricsStore) UpdateUserLoginType(ctx context.Context, arg database.UpdateUserLoginTypeParams) (database.User, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateUserLoginType(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserLoginType").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateUserNotificationPreferences(ctx context.Context, arg database.UpdateUserNotificationPreferencesParams) (int64, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateUserNotificationPreferences(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserNotificationPreferences").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateUserProfile(ctx context.Context, arg database.UpdateUserProfileParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.UpdateUserProfile(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserProfile").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) UpdateUserQuietHoursSchedule(ctx context.Context, arg database.UpdateUserQuietHoursScheduleParams) (database.User, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateUserQuietHoursSchedule(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserQuietHoursSchedule").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpdateUserRoles(ctx context.Context, arg database.UpdateUserRolesParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.UpdateUserRoles(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserRoles").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) UpdateUserStatus(ctx context.Context, arg database.UpdateUserStatusParams) (database.User, error) {
+ start := time.Now()
+ user, err := m.s.UpdateUserStatus(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateUserStatus").Observe(time.Since(start).Seconds())
+ return user, err
+}
+
+func (m queryMetricsStore) UpdateWorkspace(ctx context.Context, arg database.UpdateWorkspaceParams) (database.WorkspaceTable, error) {
+ start := time.Now()
+ workspace, err := m.s.UpdateWorkspace(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspace").Observe(time.Since(start).Seconds())
+ return workspace, err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAgentConnectionByID(ctx context.Context, arg database.UpdateWorkspaceAgentConnectionByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceAgentConnectionByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentConnectionByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAgentLifecycleStateByID(ctx context.Context, arg database.UpdateWorkspaceAgentLifecycleStateByIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceAgentLifecycleStateByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentLifecycleStateByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAgentLogOverflowByID(ctx context.Context, arg database.UpdateWorkspaceAgentLogOverflowByIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceAgentLogOverflowByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentLogOverflowByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAgentMetadata(ctx context.Context, arg database.UpdateWorkspaceAgentMetadataParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceAgentMetadata(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentMetadata").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAgentStartupByID(ctx context.Context, arg database.UpdateWorkspaceAgentStartupByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceAgentStartupByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAgentStartupByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAppHealthByID(ctx context.Context, arg database.UpdateWorkspaceAppHealthByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceAppHealthByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAppHealthByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAutomaticUpdates(ctx context.Context, arg database.UpdateWorkspaceAutomaticUpdatesParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceAutomaticUpdates(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAutomaticUpdates").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceAutostart(ctx context.Context, arg database.UpdateWorkspaceAutostartParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceAutostart(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceAutostart").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceBuildCostByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildCostByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceBuildDeadlineByID(ctx context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceBuildDeadlineByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildDeadlineByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceBuildProvisionerStateByID(ctx context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceBuildProvisionerStateByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceBuildProvisionerStateByID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceDeletedByID(ctx context.Context, arg database.UpdateWorkspaceDeletedByIDParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceDeletedByID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceDeletedByID").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceDormantDeletingAt(ctx context.Context, arg database.UpdateWorkspaceDormantDeletingAtParams) (database.WorkspaceTable, error) {
+ start := time.Now()
+ ws, r0 := m.s.UpdateWorkspaceDormantDeletingAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceDormantDeletingAt").Observe(time.Since(start).Seconds())
+ return ws, r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceLastUsedAt(ctx context.Context, arg database.UpdateWorkspaceLastUsedAtParams) error {
+ start := time.Now()
+ err := m.s.UpdateWorkspaceLastUsedAt(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceLastUsedAt").Observe(time.Since(start).Seconds())
+ return err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceProxy(ctx context.Context, arg database.UpdateWorkspaceProxyParams) (database.WorkspaceProxy, error) {
+ start := time.Now()
+ proxy, err := m.s.UpdateWorkspaceProxy(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceProxy").Observe(time.Since(start).Seconds())
+ return proxy, err
+}
+
+func (m queryMetricsStore) UpdateWorkspaceProxyDeleted(ctx context.Context, arg database.UpdateWorkspaceProxyDeletedParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceProxyDeleted(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceProxyDeleted").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspaceTTL(ctx context.Context, arg database.UpdateWorkspaceTTLParams) error {
+ start := time.Now()
+ r0 := m.s.UpdateWorkspaceTTL(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspaceTTL").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpdateWorkspacesDormantDeletingAtByTemplateID(ctx context.Context, arg database.UpdateWorkspacesDormantDeletingAtByTemplateIDParams) ([]database.WorkspaceTable, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpdateWorkspacesDormantDeletingAtByTemplateID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpdateWorkspacesDormantDeletingAtByTemplateID").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertAnnouncementBanners(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertAnnouncementBanners(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertAnnouncementBanners").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertAppSecurityKey(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertAppSecurityKey(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertAppSecurityKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertApplicationName(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertApplicationName(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertApplicationName").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertCoordinatorResumeTokenSigningKey(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertCoordinatorResumeTokenSigningKey(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertCoordinatorResumeTokenSigningKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertDefaultProxy(ctx context.Context, arg database.UpsertDefaultProxyParams) error {
+ start := time.Now()
+ r0 := m.s.UpsertDefaultProxy(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertDefaultProxy").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertHealthSettings(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertHealthSettings(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertHealthSettings").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertJFrogXrayScanByWorkspaceAndAgentID(ctx context.Context, arg database.UpsertJFrogXrayScanByWorkspaceAndAgentIDParams) error {
+ start := time.Now()
+ r0 := m.s.UpsertJFrogXrayScanByWorkspaceAndAgentID(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertJFrogXrayScanByWorkspaceAndAgentID").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertLastUpdateCheck(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertLastUpdateCheck(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertLastUpdateCheck").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertLogoURL(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertLogoURL(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertLogoURL").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertNotificationReportGeneratorLog(ctx context.Context, arg database.UpsertNotificationReportGeneratorLogParams) error {
+ start := time.Now()
+ r0 := m.s.UpsertNotificationReportGeneratorLog(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertNotificationReportGeneratorLog").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertNotificationsSettings(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertNotificationsSettings(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertNotificationsSettings").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertOAuthSigningKey(ctx context.Context, value string) error {
+ start := time.Now()
+ r0 := m.s.UpsertOAuthSigningKey(ctx, value)
+ m.queryLatencies.WithLabelValues("UpsertOAuthSigningKey").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertProvisionerDaemon(ctx context.Context, arg database.UpsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertProvisionerDaemon(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertProvisionerDaemon").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error {
+ start := time.Now()
+ r0 := m.s.UpsertRuntimeConfig(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertRuntimeConfig").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertTailnetAgent(ctx context.Context, arg database.UpsertTailnetAgentParams) (database.TailnetAgent, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertTailnetAgent(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertTailnetAgent").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertTailnetClient(ctx context.Context, arg database.UpsertTailnetClientParams) (database.TailnetClient, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertTailnetClient(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertTailnetClient").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertTailnetClientSubscription(ctx context.Context, arg database.UpsertTailnetClientSubscriptionParams) error {
+ start := time.Now()
+ r0 := m.s.UpsertTailnetClientSubscription(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertTailnetClientSubscription").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertTailnetCoordinator(ctx context.Context, id uuid.UUID) (database.TailnetCoordinator, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertTailnetCoordinator(ctx, id)
+ m.queryLatencies.WithLabelValues("UpsertTailnetCoordinator").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertTailnetPeer(ctx context.Context, arg database.UpsertTailnetPeerParams) (database.TailnetPeer, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertTailnetPeer(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertTailnetPeer").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertTailnetTunnel(ctx context.Context, arg database.UpsertTailnetTunnelParams) (database.TailnetTunnel, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertTailnetTunnel(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertTailnetTunnel").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) UpsertTemplateUsageStats(ctx context.Context) error {
+ start := time.Now()
+ r0 := m.s.UpsertTemplateUsageStats(ctx)
+ m.queryLatencies.WithLabelValues("UpsertTemplateUsageStats").Observe(time.Since(start).Seconds())
+ return r0
+}
+
+func (m queryMetricsStore) UpsertWorkspaceAgentPortShare(ctx context.Context, arg database.UpsertWorkspaceAgentPortShareParams) (database.WorkspaceAgentPortShare, error) {
+ start := time.Now()
+ r0, r1 := m.s.UpsertWorkspaceAgentPortShare(ctx, arg)
+ m.queryLatencies.WithLabelValues("UpsertWorkspaceAgentPortShare").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAuthorizedTemplates(ctx context.Context, arg database.GetTemplatesWithFilterParams, prepared rbac.PreparedAuthorized) ([]database.Template, error) {
+ start := time.Now()
+ templates, err := m.s.GetAuthorizedTemplates(ctx, arg, prepared)
+ m.queryLatencies.WithLabelValues("GetAuthorizedTemplates").Observe(time.Since(start).Seconds())
+ return templates, err
+}
+
+func (m queryMetricsStore) GetTemplateGroupRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateGroup, error) {
+ start := time.Now()
+ roles, err := m.s.GetTemplateGroupRoles(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTemplateGroupRoles").Observe(time.Since(start).Seconds())
+ return roles, err
+}
+
+func (m queryMetricsStore) GetTemplateUserRoles(ctx context.Context, id uuid.UUID) ([]database.TemplateUser, error) {
+ start := time.Now()
+ roles, err := m.s.GetTemplateUserRoles(ctx, id)
+ m.queryLatencies.WithLabelValues("GetTemplateUserRoles").Observe(time.Since(start).Seconds())
+ return roles, err
+}
+
+func (m queryMetricsStore) GetAuthorizedWorkspaces(ctx context.Context, arg database.GetWorkspacesParams, prepared rbac.PreparedAuthorized) ([]database.GetWorkspacesRow, error) {
+ start := time.Now()
+ workspaces, err := m.s.GetAuthorizedWorkspaces(ctx, arg, prepared)
+ m.queryLatencies.WithLabelValues("GetAuthorizedWorkspaces").Observe(time.Since(start).Seconds())
+ return workspaces, err
+}
+
+func (m queryMetricsStore) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAuthorizedUsers(ctx, arg, prepared)
+ m.queryLatencies.WithLabelValues("GetAuthorizedUsers").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
+
+func (m queryMetricsStore) GetAuthorizedAuditLogsOffset(ctx context.Context, arg database.GetAuditLogsOffsetParams, prepared rbac.PreparedAuthorized) ([]database.GetAuditLogsOffsetRow, error) {
+ start := time.Now()
+ r0, r1 := m.s.GetAuthorizedAuditLogsOffset(ctx, arg, prepared)
+ m.queryLatencies.WithLabelValues("GetAuthorizedAuditLogsOffset").Observe(time.Since(start).Seconds())
+ return r0, r1
+}
diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go
index b3c7b9e7615d3..ffc9ab79f777e 100644
--- a/coderd/database/dbmock/dbmock.go
+++ b/coderd/database/dbmock/dbmock.go
@@ -11,7 +11,6 @@ package dbmock
import (
context "context"
- sql "database/sql"
reflect "reflect"
time "time"
@@ -3489,7 +3488,7 @@ func (mr *MockStoreMockRecorder) GetWorkspacesEligibleForTransition(arg0, arg1 a
}
// InTx mocks base method.
-func (m *MockStore) InTx(arg0 func(database.Store) error, arg1 *sql.TxOptions) error {
+func (m *MockStore) InTx(arg0 func(database.Store) error, arg1 *database.TxOptions) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "InTx", arg0, arg1)
ret0, _ := ret[0].(error)
diff --git a/coderd/database/dbpurge/dbpurge.go b/coderd/database/dbpurge/dbpurge.go
index 00244cfd63533..e9c22611f1879 100644
--- a/coderd/database/dbpurge/dbpurge.go
+++ b/coderd/database/dbpurge/dbpurge.go
@@ -66,7 +66,7 @@ func New(ctx context.Context, logger slog.Logger, db database.Store, clk quartz.
logger.Info(ctx, "purged old database entries", slog.F("duration", clk.Since(start)))
return nil
- }, nil); err != nil {
+ }, database.DefaultTXOptions().WithID("db_purge")); err != nil {
logger.Error(ctx, "failed to purge old database entries", slog.Error(err))
return
}
diff --git a/coderd/database/dbrollup/dbrollup.go b/coderd/database/dbrollup/dbrollup.go
index 36eddc41fc544..c6b61c587580e 100644
--- a/coderd/database/dbrollup/dbrollup.go
+++ b/coderd/database/dbrollup/dbrollup.go
@@ -108,7 +108,7 @@ func (r *Rolluper) start(ctx context.Context) {
ev.TemplateUsageStats = true
return tx.UpsertTemplateUsageStats(ctx)
- }, nil)
+ }, database.DefaultTXOptions().WithID("db_rollup"))
})
err := eg.Wait()
diff --git a/coderd/database/dbrollup/dbrollup_test.go b/coderd/database/dbrollup/dbrollup_test.go
index 0c32ddc9a9c9a..6d541dd66969b 100644
--- a/coderd/database/dbrollup/dbrollup_test.go
+++ b/coderd/database/dbrollup/dbrollup_test.go
@@ -38,7 +38,7 @@ type wrapUpsertDB struct {
resume <-chan struct{}
}
-func (w *wrapUpsertDB) InTx(fn func(database.Store) error, opts *sql.TxOptions) error {
+func (w *wrapUpsertDB) InTx(fn func(database.Store) error, opts *database.TxOptions) error {
return w.Store.InTx(func(tx database.Store) error {
return fn(&wrapUpsertDB{Store: tx, resume: w.resume})
}, opts)
diff --git a/coderd/database/tx.go b/coderd/database/tx.go
index 43da15f3f058c..32a25753513ed 100644
--- a/coderd/database/tx.go
+++ b/coderd/database/tx.go
@@ -33,7 +33,7 @@ func ReadModifyUpdate(db Store, f func(tx Store) error,
) error {
var err error
for retries := 0; retries < maxRetries; retries++ {
- err = db.InTx(f, &sql.TxOptions{
+ err = db.InTx(f, &TxOptions{
Isolation: sql.LevelRepeatableRead,
})
var pqe *pq.Error
diff --git a/coderd/database/tx_test.go b/coderd/database/tx_test.go
index d97c1bc26d57f..5f051085188ca 100644
--- a/coderd/database/tx_test.go
+++ b/coderd/database/tx_test.go
@@ -19,7 +19,7 @@ func TestReadModifyUpdate_OK(t *testing.T) {
mDB := dbmock.NewMockStore(gomock.NewController(t))
mDB.EXPECT().
- InTx(gomock.Any(), &sql.TxOptions{Isolation: sql.LevelRepeatableRead}).
+ InTx(gomock.Any(), &database.TxOptions{Isolation: sql.LevelRepeatableRead}).
Times(1).
Return(nil)
err := database.ReadModifyUpdate(mDB, func(tx database.Store) error {
@@ -34,11 +34,11 @@ func TestReadModifyUpdate_RetryOK(t *testing.T) {
mDB := dbmock.NewMockStore(gomock.NewController(t))
firstUpdate := mDB.EXPECT().
- InTx(gomock.Any(), &sql.TxOptions{Isolation: sql.LevelRepeatableRead}).
+ InTx(gomock.Any(), &database.TxOptions{Isolation: sql.LevelRepeatableRead}).
Times(1).
Return(&pq.Error{Code: pq.ErrorCode("40001")})
mDB.EXPECT().
- InTx(gomock.Any(), &sql.TxOptions{Isolation: sql.LevelRepeatableRead}).
+ InTx(gomock.Any(), &database.TxOptions{Isolation: sql.LevelRepeatableRead}).
After(firstUpdate).
Times(1).
Return(nil)
@@ -55,7 +55,7 @@ func TestReadModifyUpdate_HardError(t *testing.T) {
mDB := dbmock.NewMockStore(gomock.NewController(t))
mDB.EXPECT().
- InTx(gomock.Any(), &sql.TxOptions{Isolation: sql.LevelRepeatableRead}).
+ InTx(gomock.Any(), &database.TxOptions{Isolation: sql.LevelRepeatableRead}).
Times(1).
Return(xerrors.New("a bad thing happened"))
@@ -71,7 +71,7 @@ func TestReadModifyUpdate_TooManyRetries(t *testing.T) {
mDB := dbmock.NewMockStore(gomock.NewController(t))
mDB.EXPECT().
- InTx(gomock.Any(), &sql.TxOptions{Isolation: sql.LevelRepeatableRead}).
+ InTx(gomock.Any(), &database.TxOptions{Isolation: sql.LevelRepeatableRead}).
Times(5).
Return(&pq.Error{Code: pq.ErrorCode("40001")})
err := database.ReadModifyUpdate(mDB, func(tx database.Store) error {
diff --git a/coderd/idpsync/role_test.go b/coderd/idpsync/role_test.go
index c6ab989881976..45e9edd6c1dd4 100644
--- a/coderd/idpsync/role_test.go
+++ b/coderd/idpsync/role_test.go
@@ -2,7 +2,6 @@ package idpsync_test
import (
"context"
- "database/sql"
"encoding/json"
"testing"
@@ -324,7 +323,7 @@ func TestNoopNoDiff(t *testing.T) {
// and 'UpdateMemberRoles'.
mDB.EXPECT().InTx(
gomock.Any(), gomock.Any(),
- ).DoAndReturn(func(f func(database.Store) error, _ *sql.TxOptions) error {
+ ).DoAndReturn(func(f func(database.Store) error, _ *database.TxOptions) error {
err := f(mDB)
return err
})
diff --git a/coderd/promoauth/oauth2_test.go b/coderd/promoauth/oauth2_test.go
index e54608385ccfe..9e31d90944f36 100644
--- a/coderd/promoauth/oauth2_test.go
+++ b/coderd/promoauth/oauth2_test.go
@@ -3,24 +3,19 @@ package promoauth_test
import (
"context"
"fmt"
- "io"
"net/http"
- "net/http/httptest"
"net/url"
"strings"
"testing"
"time"
"github.com/prometheus/client_golang/prometheus"
- "github.com/prometheus/client_golang/prometheus/promhttp"
- ptestutil "github.com/prometheus/client_golang/prometheus/testutil"
- io_prometheus_client "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "golang.org/x/exp/maps"
"golang.org/x/oauth2"
"github.com/coder/coder/v2/coderd/coderdtest/oidctest"
+ "github.com/coder/coder/v2/coderd/coderdtest/promhelp"
"github.com/coder/coder/v2/coderd/externalauth"
"github.com/coder/coder/v2/coderd/promoauth"
"github.com/coder/coder/v2/testutil"
@@ -34,7 +29,7 @@ func TestInstrument(t *testing.T) {
reg := prometheus.NewRegistry()
t.Cleanup(func() {
if t.Failed() {
- t.Log(registryDump(reg))
+ t.Log(promhelp.RegistryDump(reg))
}
})
@@ -46,7 +41,7 @@ func TestInstrument(t *testing.T) {
const metricname = "coderd_oauth2_external_requests_total"
count := func(source string) int {
labels["source"] = source
- return counterValue(t, reg, "coderd_oauth2_external_requests_total", labels)
+ return promhelp.CounterValue(t, reg, "coderd_oauth2_external_requests_total", labels)
}
factory := promoauth.NewFactory(reg)
@@ -58,7 +53,7 @@ func TestInstrument(t *testing.T) {
}
// 0 Requests before we start
- require.Nil(t, metricValue(t, reg, metricname, labels), "no metrics at start")
+ require.Nil(t, promhelp.MetricValue(t, reg, metricname, labels), "no metrics at start")
noClientCtx := ctx
// This should never be done, but promoauth should not break the default client
@@ -94,7 +89,7 @@ func TestInstrument(t *testing.T) {
// Verify the default client was not broken. This check is added because we
// extend the http.DefaultTransport. If a `.Clone()` is not done, this can be
// mis-used. It is cheap to run this quick check.
- snapshot := registryDump(reg)
+ snapshot := promhelp.RegistryDump(reg)
req, err := http.NewRequestWithContext(ctx, http.MethodGet,
must[*url.URL](t)(idp.IssuerURL().Parse("/.well-known/openid-configuration")).String(), nil)
require.NoError(t, err)
@@ -103,7 +98,7 @@ func TestInstrument(t *testing.T) {
require.NoError(t, err)
_ = resp.Body.Close()
- require.NoError(t, compare(reg, snapshot), "http default client corrupted")
+ require.NoError(t, promhelp.Compare(reg, snapshot), "http default client corrupted")
}
func TestGithubRateLimits(t *testing.T) {
@@ -214,37 +209,26 @@ func TestGithubRateLimits(t *testing.T) {
}
pass := true
if !c.ExpectNoMetrics {
- pass = pass && assert.Equal(t, gaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_total", labels), c.Limit, "limit")
- pass = pass && assert.Equal(t, gaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_remaining", labels), c.Remaining, "remaining")
- pass = pass && assert.Equal(t, gaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_used", labels), c.Used, "used")
+ pass = pass && assert.Equal(t, promhelp.GaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_total", labels), c.Limit, "limit")
+ pass = pass && assert.Equal(t, promhelp.GaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_remaining", labels), c.Remaining, "remaining")
+ pass = pass && assert.Equal(t, promhelp.GaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_used", labels), c.Used, "used")
if !c.at.IsZero() {
until := c.Reset.Sub(c.at)
// Float accuracy is not great, so we allow a delta of 2
- pass = pass && assert.InDelta(t, gaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_reset_in_seconds", labels), int(until.Seconds()), 2, "reset in")
+ pass = pass && assert.InDelta(t, promhelp.GaugeValue(t, reg, "coderd_oauth2_external_requests_rate_limit_reset_in_seconds", labels), int(until.Seconds()), 2, "reset in")
}
} else {
- pass = pass && assert.Nil(t, metricValue(t, reg, "coderd_oauth2_external_requests_rate_limit_total", labels), "not exists")
+ pass = pass && assert.Nil(t, promhelp.MetricValue(t, reg, "coderd_oauth2_external_requests_rate_limit_total", labels), "not exists")
}
// Helpful debugging
if !pass {
- t.Log(registryDump(reg))
+ t.Log(promhelp.RegistryDump(reg))
}
})
}
}
-func registryDump(reg *prometheus.Registry) string {
- h := promhttp.HandlerFor(reg, promhttp.HandlerOpts{})
- rec := httptest.NewRecorder()
- req, _ := http.NewRequestWithContext(context.Background(), http.MethodGet, "/", nil)
- h.ServeHTTP(rec, req)
- resp := rec.Result()
- data, _ := io.ReadAll(resp.Body)
- _ = resp.Body.Close()
- return string(data)
-}
-
func must[V any](t *testing.T) func(v V, err error) V {
return func(v V, err error) V {
t.Helper()
@@ -252,39 +236,3 @@ func must[V any](t *testing.T) func(v V, err error) V {
return v
}
}
-
-func gaugeValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) int {
- labeled := metricValue(t, reg, metricName, labels)
- require.NotNilf(t, labeled, "metric %q with labels %v not found", metricName, labels)
- return int(labeled.GetGauge().GetValue())
-}
-
-func counterValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) int {
- labeled := metricValue(t, reg, metricName, labels)
- require.NotNilf(t, labeled, "metric %q with labels %v not found", metricName, labels)
- return int(labeled.GetCounter().GetValue())
-}
-
-func compare(reg prometheus.Gatherer, compare string) error {
- return ptestutil.GatherAndCompare(reg, strings.NewReader(compare))
-}
-
-func metricValue(t testing.TB, reg prometheus.Gatherer, metricName string, labels prometheus.Labels) *io_prometheus_client.Metric {
- metrics, err := reg.Gather()
- require.NoError(t, err)
-
- for _, m := range metrics {
- if m.GetName() == metricName {
- for _, labeled := range m.GetMetric() {
- mLables := make(prometheus.Labels)
- for _, v := range labeled.GetLabel() {
- mLables[v.GetName()] = v.GetValue()
- }
- if maps.Equal(mLables, labels) {
- return labeled
- }
- }
- }
- }
- return nil
-}
diff --git a/coderd/templates.go b/coderd/templates.go
index cbc6eb784d2e4..de47b5225a973 100644
--- a/coderd/templates.go
+++ b/coderd/templates.go
@@ -467,7 +467,7 @@ func (api *API) postTemplateByOrganization(rw http.ResponseWriter, r *http.Reque
templateVersionAudit.New = newTemplateVersion
return nil
- }, nil)
+ }, database.DefaultTXOptions().WithID("postTemplate"))
if err != nil {
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
Message: "Internal error inserting template.",
diff --git a/coderd/wsbuilder/wsbuilder_test.go b/coderd/wsbuilder/wsbuilder_test.go
index ad53cd7d45609..dd532467bbc92 100644
--- a/coderd/wsbuilder/wsbuilder_test.go
+++ b/coderd/wsbuilder/wsbuilder_test.go
@@ -735,9 +735,9 @@ func expectDB(t *testing.T, opts ...txExpect) *dbmock.MockStore {
// we expect to be run in a transaction; we use mTx to record the
// "in transaction" calls.
mDB.EXPECT().InTx(
- gomock.Any(), gomock.Eq(&sql.TxOptions{Isolation: sql.LevelRepeatableRead}),
+ gomock.Any(), gomock.Eq(&database.TxOptions{Isolation: sql.LevelRepeatableRead}),
).
- DoAndReturn(func(f func(database.Store) error, _ *sql.TxOptions) error {
+ DoAndReturn(func(f func(database.Store) error, _ *database.TxOptions) error {
err := f(mTx)
return err
})
@@ -763,7 +763,7 @@ func withTemplate(mTx *dbmock.MockStore) {
// withInTx runs the given functions on the same db mock.
func withInTx(mTx *dbmock.MockStore) {
mTx.EXPECT().InTx(gomock.Any(), gomock.Any()).Times(1).DoAndReturn(
- func(f func(store database.Store) error, _ *sql.TxOptions) error {
+ func(f func(store database.Store) error, _ *database.TxOptions) error {
return f(mTx)
},
)
diff --git a/codersdk/deployment.go b/codersdk/deployment.go
index d6840df504b85..6394deb000d52 100644
--- a/codersdk/deployment.go
+++ b/codersdk/deployment.go
@@ -1357,14 +1357,18 @@ when required by your organization's security policy.`,
Default: strings.Join(agentmetrics.LabelAll, ","),
},
{
- Name: "Prometheus Collect Database Metrics",
- Description: "Collect database metrics (may increase charges for metrics storage).",
- Flag: "prometheus-collect-db-metrics",
- Env: "CODER_PROMETHEUS_COLLECT_DB_METRICS",
- Value: &c.Prometheus.CollectDBMetrics,
- Group: &deploymentGroupIntrospectionPrometheus,
- YAML: "collect_db_metrics",
- Default: "false",
+ Name: "Prometheus Collect Database Metrics",
+ // Some db metrics like transaction information will still be collected.
+ // Query metrics blow up the number of unique time series with labels
+ // and can be very expensive. So default to not capturing query metrics.
+ Description: "Collect database query metrics (may increase charges for metrics storage). " +
+ "If set to false, a reduced set of database metrics are still collected.",
+ Flag: "prometheus-collect-db-metrics",
+ Env: "CODER_PROMETHEUS_COLLECT_DB_METRICS",
+ Value: &c.Prometheus.CollectDBMetrics,
+ Group: &deploymentGroupIntrospectionPrometheus,
+ YAML: "collect_db_metrics",
+ Default: "false",
},
// Pprof settings
{
diff --git a/docs/reference/cli/server.md b/docs/reference/cli/server.md
index 17906465d2e3f..981c2419cf903 100644
--- a/docs/reference/cli/server.md
+++ b/docs/reference/cli/server.md
@@ -321,7 +321,7 @@ When collecting agent stats, aggregate metrics by a given set of comma-separated
| YAML | introspection.prometheus.collect_db_metrics
|
| Default | false
|
-Collect database metrics (may increase charges for metrics storage).
+Collect database query metrics (may increase charges for metrics storage). If set to false, a reduced set of database metrics are still collected.
### --pprof-enable
diff --git a/enterprise/cli/testdata/coder_server_--help.golden b/enterprise/cli/testdata/coder_server_--help.golden
index 95c0c957d80f6..b637a0da3f74d 100644
--- a/enterprise/cli/testdata/coder_server_--help.golden
+++ b/enterprise/cli/testdata/coder_server_--help.golden
@@ -146,7 +146,9 @@ INTROSPECTION / PROMETHEUS OPTIONS:
Collect agent stats (may increase charges for metrics storage).
--prometheus-collect-db-metrics bool, $CODER_PROMETHEUS_COLLECT_DB_METRICS (default: false)
- Collect database metrics (may increase charges for metrics storage).
+ Collect database query metrics (may increase charges for metrics
+ storage). If set to false, a reduced set of database metrics are still
+ collected.
--prometheus-enable bool, $CODER_PROMETHEUS_ENABLE
Serve prometheus metrics on the address defined by prometheus address.
diff --git a/enterprise/coderd/workspacequota.go b/enterprise/coderd/workspacequota.go
index 8178f6304a947..7ea42ea24f491 100644
--- a/enterprise/coderd/workspacequota.go
+++ b/enterprise/coderd/workspacequota.go
@@ -104,8 +104,9 @@ func (c *committer) CommitQuota(
permit = true
consumed = newConsumed
return nil
- }, &sql.TxOptions{
- Isolation: sql.LevelSerializable,
+ }, &database.TxOptions{
+ Isolation: sql.LevelSerializable,
+ TxIdentifier: "commit_quota",
})
if err != nil {
return nil, err
diff --git a/enterprise/dbcrypt/cliutil.go b/enterprise/dbcrypt/cliutil.go
index 4d8e7e7b0340f..47045f9bfefab 100644
--- a/enterprise/dbcrypt/cliutil.go
+++ b/enterprise/dbcrypt/cliutil.go
@@ -73,7 +73,7 @@ func Rotate(ctx context.Context, log slog.Logger, sqlDB *sql.DB, ciphers []Ciphe
}
}
return nil
- }, &sql.TxOptions{
+ }, &database.TxOptions{
Isolation: sql.LevelRepeatableRead,
})
if err != nil {
@@ -163,7 +163,7 @@ func Decrypt(ctx context.Context, log slog.Logger, sqlDB *sql.DB, ciphers []Ciph
}
}
return nil
- }, &sql.TxOptions{
+ }, &database.TxOptions{
Isolation: sql.LevelRepeatableRead,
})
if err != nil {
diff --git a/enterprise/dbcrypt/dbcrypt.go b/enterprise/dbcrypt/dbcrypt.go
index 979a8ad137e6d..77a7d5cb78738 100644
--- a/enterprise/dbcrypt/dbcrypt.go
+++ b/enterprise/dbcrypt/dbcrypt.go
@@ -60,7 +60,7 @@ type dbCrypt struct {
database.Store
}
-func (db *dbCrypt) InTx(function func(database.Store) error, txOpts *sql.TxOptions) error {
+func (db *dbCrypt) InTx(function func(database.Store) error, txOpts *database.TxOptions) error {
return db.Store.InTx(func(s database.Store) error {
return function(&dbCrypt{
primaryCipherDigest: db.primaryCipherDigest,
@@ -445,5 +445,5 @@ func (db *dbCrypt) ensureEncrypted(ctx context.Context) error {
ActiveKeyDigest: db.primaryCipherDigest,
Test: testValue,
})
- }, &sql.TxOptions{Isolation: sql.LevelRepeatableRead})
+ }, &database.TxOptions{Isolation: sql.LevelRepeatableRead})
}
diff --git a/enterprise/dbcrypt/dbcrypt_internal_test.go b/enterprise/dbcrypt/dbcrypt_internal_test.go
index 432dc90061677..a480fa08930f5 100644
--- a/enterprise/dbcrypt/dbcrypt_internal_test.go
+++ b/enterprise/dbcrypt/dbcrypt_internal_test.go
@@ -773,7 +773,7 @@ func TestEncryptDecryptField(t *testing.T) {
func expectInTx(mdb *dbmock.MockStore) *gomock.Call {
return mdb.EXPECT().InTx(gomock.Any(), gomock.Any()).Times(1).DoAndReturn(
- func(f func(store database.Store) error, _ *sql.TxOptions) error {
+ func(f func(store database.Store) error, _ *database.TxOptions) error {
return f(mdb)
},
)
diff --git a/scripts/dbgen/main.go b/scripts/dbgen/main.go
index 54b104d04f718..4ec08920e9741 100644
--- a/scripts/dbgen/main.go
+++ b/scripts/dbgen/main.go
@@ -60,7 +60,7 @@ func run() error {
return xerrors.Errorf("stub dbmem: %w", err)
}
- err = orderAndStubDatabaseFunctions(filepath.Join(databasePath, "dbmetrics", "dbmetrics.go"), "m", "metricsStore", func(params stubParams) string {
+ err = orderAndStubDatabaseFunctions(filepath.Join(databasePath, "dbmetrics", "querymetrics.go"), "m", "queryMetricsStore", func(params stubParams) string {
return fmt.Sprintf(`
start := time.Now()
%s := m.s.%s(%s)