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)