From 6cc33f4ce6f697e907da3b2f13b268480a8e5f32 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Mon, 28 Oct 2024 10:59:12 -0400 Subject: [PATCH] chore: name unlabeled db transaction metrics --- coderd/database/dbmetrics/dbmetrics.go | 9 +++++++-- coderd/database/dbmetrics/dbmetrics_test.go | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/coderd/database/dbmetrics/dbmetrics.go b/coderd/database/dbmetrics/dbmetrics.go index 8708787f57dc7..b0309f9f2e2eb 100644 --- a/coderd/database/dbmetrics/dbmetrics.go +++ b/coderd/database/dbmetrics/dbmetrics.go @@ -74,6 +74,11 @@ func (m metricsStore) InTx(f func(database.Store) error, options *database.TxOpt options = database.DefaultTXOptions() } + if options.TxIdentifier == "" { + // empty strings are hard to deal with in grafana + options.TxIdentifier = "unlabeled" + } + start := time.Now() err := m.Store.InTx(f, options) dur := time.Since(start) @@ -82,13 +87,13 @@ func (m metricsStore) InTx(f func(database.Store) error, options *database.TxOpt // So IDs should be used sparingly to prevent too much bloat. m.txDuration.With(prometheus.Labels{ "success": strconv.FormatBool(err == nil), - "tx_id": options.TxIdentifier, // Can be empty string for unlabeled + "tx_id": options.TxIdentifier, }).Observe(dur.Seconds()) m.txRetries.With(prometheus.Labels{ "success": strconv.FormatBool(err == nil), "retries": strconv.FormatInt(int64(options.ExecutionCount()-1), 10), - "tx_id": options.TxIdentifier, // Can be empty string for unlabeled + "tx_id": options.TxIdentifier, }).Inc() // Log all serializable transactions that are retried. diff --git a/coderd/database/dbmetrics/dbmetrics_test.go b/coderd/database/dbmetrics/dbmetrics_test.go index 7eed7035ee281..bd6566d054aae 100644 --- a/coderd/database/dbmetrics/dbmetrics_test.go +++ b/coderd/database/dbmetrics/dbmetrics_test.go @@ -22,7 +22,7 @@ func TestInTxMetrics(t *testing.T) { successLabels := prometheus.Labels{ "success": "true", - "tx_id": "", + "tx_id": "unlabeled", } const inTxHistMetricName = "coderd_db_tx_duration_seconds" const inTxCountMetricName = "coderd_db_tx_executions_count" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy