From c83128e086b3771c04bd4c2f3873227474de429a Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 25 Oct 2024 18:41:22 -0400 Subject: [PATCH] chore: change promtheus label to 'tx_id' the 'id' label was not coming through. Maybe it's reserved? Or used in the chain somewhere. --- coderd/database/dbmetrics/dbmetrics.go | 10 +++++----- coderd/database/dbmetrics/dbmetrics_test.go | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/coderd/database/dbmetrics/dbmetrics.go b/coderd/database/dbmetrics/dbmetrics.go index 404a685876bc0..8708787f57dc7 100644 --- a/coderd/database/dbmetrics/dbmetrics.go +++ b/coderd/database/dbmetrics/dbmetrics.go @@ -41,7 +41,7 @@ func NewDBMetrics(s database.Store, logger slog.Logger, reg prometheus.Registere // retries = Executions - 1 (as 1 execute is expected) "retries", // Uniquely naming some transactions can help debug reoccurring errors. - "id", + "tx_id", }) reg.MustRegister(txRetries) @@ -54,7 +54,7 @@ func NewDBMetrics(s database.Store, logger slog.Logger, reg prometheus.Registere }, []string{ "success", // Did the InTx function return an error? // Uniquely naming some transactions can help debug reoccurring errors. - "id", + "tx_id", }) reg.MustRegister(txDuration) return &metricsStore{ @@ -82,13 +82,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), - "id": options.TxIdentifier, // Can be empty string for unlabeled + "tx_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 + "tx_id": options.TxIdentifier, // Can be empty string for unlabeled }).Inc() // Log all serializable transactions that are retried. @@ -109,7 +109,7 @@ func (m metricsStore) InTx(f func(database.Store) error, options *database.TxOpt // 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("tx_id", options.TxIdentifier), slog.F("duration", dur), ) } diff --git a/coderd/database/dbmetrics/dbmetrics_test.go b/coderd/database/dbmetrics/dbmetrics_test.go index 2b8d2979b1cfe..7eed7035ee281 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", - "id": "", + "tx_id": "", } const inTxHistMetricName = "coderd_db_tx_duration_seconds" const inTxCountMetricName = "coderd_db_tx_executions_count" @@ -86,7 +86,7 @@ func TestInTxMetrics(t *testing.T) { // Check that the metrics are registered inTxHistMetric := promhelp.HistogramValue(t, reg, inTxHistMetricName, prometheus.Labels{ "success": "false", - "id": id, + "tx_id": id, }) require.NotNil(t, inTxHistMetric) require.Equal(t, uint64(1), inTxHistMetric.GetSampleCount()) @@ -94,7 +94,7 @@ func TestInTxMetrics(t *testing.T) { inTxCountMetric := promhelp.CounterValue(t, reg, inTxCountMetricName, prometheus.Labels{ "success": "false", "retries": "1", - "id": id, + "tx_id": id, }) require.NotNil(t, inTxCountMetric) require.Equal(t, 1, inTxCountMetric)