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)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: