Skip to content

Commit 3965f43

Browse files
committed
[receiver/postgresql] Bump postgresqlreceiver.preciselagmetrics gate to beta
1 parent e140374 commit 3965f43

20 files changed

+1580
-1679
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: breaking
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
7+
component: receiver/postgresql
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Bump postgresqlreceiver.preciselagmetrics gate to beta
11+
12+
13+
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
14+
issues: [31220]
15+
16+
# (Optional) One or more lines of additional information to render under the primary note.
17+
# These lines will be padded with 2 spaces and then inserted directly into the document.
18+
# Use pipe (|) for multiline entries.
19+
subtext:
20+
21+
# If your change doesn't affect end users or the exported elements of any package,
22+
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
23+
# Optional: The change log or logs in which this entry should be included.
24+
# e.g. '[user]' or '[user, api]'
25+
# Include 'user' if the change is relevant to end users.
26+
# Include 'api' if there is a change to a library API.
27+
# Default: '[user]'
28+
change_logs: []

receiver/postgresqlreceiver/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const lagMetricsInSecondsFeatureGateID = "postgresqlreceiver.preciselagmetrics"
2323

2424
var preciseLagMetricsFg = featuregate.GlobalRegistry().MustRegister(
2525
lagMetricsInSecondsFeatureGateID,
26-
featuregate.StageAlpha,
26+
featuregate.StageBeta,
2727
featuregate.WithRegisterDescription("Metric `postgresql.wal.lag` is replaced by more precise `postgresql.wal.delay`."),
2828
featuregate.WithRegisterFromVersion("0.89.0"),
2929
)

receiver/postgresqlreceiver/integration_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ func integrationTest(name string, databases []string) func(*testing.T) {
6666
rCfg.Username = "otelu"
6767
rCfg.Password = "otelp"
6868
rCfg.Insecure = true
69+
rCfg.Metrics.PostgresqlWalDelay.Enabled = true
6970
rCfg.Metrics.PostgresqlDeadlocks.Enabled = true
7071
rCfg.Metrics.PostgresqlTempFiles.Enabled = true
7172
rCfg.Metrics.PostgresqlSequentialScans.Enabled = true

receiver/postgresqlreceiver/scraper_test.go

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func TestScraper(t *testing.T) {
4141

4242
cfg := createDefaultConfig().(*Config)
4343
cfg.Databases = []string{"otel"}
44+
cfg.Metrics.PostgresqlWalDelay.Enabled = true
4445
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
4546
cfg.Metrics.PostgresqlTempFiles.Enabled = true
4647
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
@@ -71,13 +72,17 @@ func TestScraperNoDatabaseSingle(t *testing.T) {
7172
defer testutil.SetFeatureGateForTest(t, separateSchemaAttrGate, separateSchemaAttr)()
7273

7374
cfg := createDefaultConfig().(*Config)
74-
require.True(t, cfg.Metrics.PostgresqlDeadlocks.Enabled == false)
75+
76+
// Validate expected default config values and then enable all metrics
77+
require.False(t, cfg.Metrics.PostgresqlWalDelay.Enabled)
78+
cfg.Metrics.PostgresqlWalDelay.Enabled = true
79+
require.False(t, cfg.Metrics.PostgresqlDeadlocks.Enabled)
7580
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
76-
require.True(t, cfg.Metrics.PostgresqlTempFiles.Enabled == false)
81+
require.False(t, cfg.Metrics.PostgresqlTempFiles.Enabled)
7782
cfg.Metrics.PostgresqlTempFiles.Enabled = true
78-
require.True(t, cfg.Metrics.PostgresqlSequentialScans.Enabled == false)
83+
require.False(t, cfg.Metrics.PostgresqlSequentialScans.Enabled)
7984
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
80-
require.True(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled == false)
85+
require.False(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled)
8186
cfg.Metrics.PostgresqlDatabaseLocks.Enabled = true
8287

8388
scraper := newPostgreSQLScraper(receivertest.NewNopCreateSettings(), cfg, factory)
@@ -91,6 +96,7 @@ func TestScraperNoDatabaseSingle(t *testing.T) {
9196
require.NoError(t, pmetrictest.CompareMetrics(expectedMetrics, actualMetrics, pmetrictest.IgnoreResourceMetricsOrder(),
9297
pmetrictest.IgnoreMetricDataPointsOrder(), pmetrictest.IgnoreStartTimestamp(), pmetrictest.IgnoreTimestamp()))
9398

99+
cfg.Metrics.PostgresqlWalDelay.Enabled = false
94100
cfg.Metrics.PostgresqlDeadlocks.Enabled = false
95101
cfg.Metrics.PostgresqlTempFiles.Enabled = false
96102
cfg.Metrics.PostgresqlSequentialScans.Enabled = false
@@ -112,21 +118,25 @@ func TestScraperNoDatabaseSingle(t *testing.T) {
112118
runTest(false, "expected.yaml", "expected_default_metrics.yaml")
113119
}
114120

115-
func TestScraperNoDatabaseMultiple(t *testing.T) {
121+
func TestScraperNoDatabaseMultipleWithoutPreciseLag(t *testing.T) {
116122
factory := mockClientFactory{}
117123
factory.initMocks([]string{"otel", "open", "telemetry"})
118124

119125
runTest := func(separateSchemaAttr bool, file string) {
120126
defer testutil.SetFeatureGateForTest(t, separateSchemaAttrGate, separateSchemaAttr)()
127+
defer testutil.SetFeatureGateForTest(t, preciseLagMetricsFg, false)()
121128

122129
cfg := createDefaultConfig().(*Config)
123-
require.True(t, cfg.Metrics.PostgresqlDeadlocks.Enabled == false)
130+
131+
// Validate expected default config values and then enable all metrics except wal delay
132+
require.False(t, cfg.Metrics.PostgresqlWalDelay.Enabled)
133+
require.False(t, cfg.Metrics.PostgresqlDeadlocks.Enabled)
124134
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
125-
require.True(t, cfg.Metrics.PostgresqlTempFiles.Enabled == false)
135+
require.False(t, cfg.Metrics.PostgresqlTempFiles.Enabled)
126136
cfg.Metrics.PostgresqlTempFiles.Enabled = true
127-
require.True(t, cfg.Metrics.PostgresqlSequentialScans.Enabled == false)
137+
require.False(t, cfg.Metrics.PostgresqlSequentialScans.Enabled)
128138
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
129-
require.True(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled == false)
139+
require.False(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled)
130140
cfg.Metrics.PostgresqlDatabaseLocks.Enabled = true
131141
scraper := newPostgreSQLScraper(receivertest.NewNopCreateSettings(), cfg, &factory)
132142

@@ -141,11 +151,11 @@ func TestScraperNoDatabaseMultiple(t *testing.T) {
141151
pmetrictest.IgnoreMetricDataPointsOrder(), pmetrictest.IgnoreStartTimestamp(), pmetrictest.IgnoreTimestamp()))
142152
}
143153

144-
runTest(true, "expected_schemaattr.yaml")
145-
runTest(false, "expected.yaml")
154+
runTest(true, "expected_imprecise_lag_schemaattr.yaml")
155+
runTest(false, "expected_imprecise_lag.yaml")
146156
}
147157

148-
func TestScraperNoDatabaseMultipleWithPreciseLagFeatureGate(t *testing.T) {
158+
func TestScraperNoDatabaseMultiple(t *testing.T) {
149159
factory := mockClientFactory{}
150160
factory.initMocks([]string{"otel", "open", "telemetry"})
151161

@@ -154,17 +164,16 @@ func TestScraperNoDatabaseMultipleWithPreciseLagFeatureGate(t *testing.T) {
154164

155165
cfg := createDefaultConfig().(*Config)
156166

157-
testutil.SetFeatureGateForTest(t, preciseLagMetricsFg, true)
167+
// Validate expected default config values and then enable all metrics
168+
require.False(t, cfg.Metrics.PostgresqlWalDelay.Enabled)
158169
cfg.Metrics.PostgresqlWalDelay.Enabled = true
159-
defer testutil.SetFeatureGateForTest(t, preciseLagMetricsFg, false)
160-
161-
require.True(t, cfg.Metrics.PostgresqlDeadlocks.Enabled == false)
170+
require.False(t, cfg.Metrics.PostgresqlDeadlocks.Enabled)
162171
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
163-
require.True(t, cfg.Metrics.PostgresqlTempFiles.Enabled == false)
172+
require.False(t, cfg.Metrics.PostgresqlTempFiles.Enabled)
164173
cfg.Metrics.PostgresqlTempFiles.Enabled = true
165-
require.True(t, cfg.Metrics.PostgresqlSequentialScans.Enabled == false)
174+
require.False(t, cfg.Metrics.PostgresqlSequentialScans.Enabled)
166175
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
167-
require.True(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled == false)
176+
require.False(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled)
168177
cfg.Metrics.PostgresqlDatabaseLocks.Enabled = true
169178
scraper := newPostgreSQLScraper(receivertest.NewNopCreateSettings(), cfg, &factory)
170179

@@ -179,8 +188,8 @@ func TestScraperNoDatabaseMultipleWithPreciseLagFeatureGate(t *testing.T) {
179188
pmetrictest.IgnoreMetricDataPointsOrder(), pmetrictest.IgnoreStartTimestamp(), pmetrictest.IgnoreTimestamp()))
180189
}
181190

182-
runTest(true, "expected_precise_lag_schemaattr.yaml")
183-
runTest(false, "expected_precise_lag.yaml")
191+
runTest(true, "expected_schemaattr.yaml")
192+
runTest(false, "expected.yaml")
184193
}
185194

186195
func TestScraperWithResourceAttributeFeatureGate(t *testing.T) {
@@ -191,14 +200,19 @@ func TestScraperWithResourceAttributeFeatureGate(t *testing.T) {
191200
defer testutil.SetFeatureGateForTest(t, separateSchemaAttrGate, separateSchemaAttr)()
192201

193202
cfg := createDefaultConfig().(*Config)
194-
require.True(t, cfg.Metrics.PostgresqlDeadlocks.Enabled == false)
203+
204+
// Validate expected default config values and then enable all metrics
205+
require.False(t, cfg.Metrics.PostgresqlWalDelay.Enabled)
206+
cfg.Metrics.PostgresqlWalDelay.Enabled = true
207+
require.False(t, cfg.Metrics.PostgresqlDeadlocks.Enabled)
195208
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
196-
require.True(t, cfg.Metrics.PostgresqlTempFiles.Enabled == false)
209+
require.False(t, cfg.Metrics.PostgresqlTempFiles.Enabled)
197210
cfg.Metrics.PostgresqlTempFiles.Enabled = true
198-
require.True(t, cfg.Metrics.PostgresqlSequentialScans.Enabled == false)
211+
require.False(t, cfg.Metrics.PostgresqlSequentialScans.Enabled)
199212
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
200-
require.True(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled == false)
213+
require.False(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled)
201214
cfg.Metrics.PostgresqlDatabaseLocks.Enabled = true
215+
202216
scraper := newPostgreSQLScraper(receivertest.NewNopCreateSettings(), cfg, &factory)
203217

204218
actualMetrics, err := scraper.scrape(context.Background())
@@ -224,13 +238,17 @@ func TestScraperWithResourceAttributeFeatureGateSingle(t *testing.T) {
224238
defer testutil.SetFeatureGateForTest(t, separateSchemaAttrGate, separateSchemaAttr)()
225239

226240
cfg := createDefaultConfig().(*Config)
227-
require.True(t, cfg.Metrics.PostgresqlDeadlocks.Enabled == false)
241+
242+
// Validate expected default config values and then enable all metrics
243+
require.False(t, cfg.Metrics.PostgresqlWalDelay.Enabled)
244+
cfg.Metrics.PostgresqlWalDelay.Enabled = true
245+
require.False(t, cfg.Metrics.PostgresqlDeadlocks.Enabled)
228246
cfg.Metrics.PostgresqlDeadlocks.Enabled = true
229-
require.True(t, cfg.Metrics.PostgresqlTempFiles.Enabled == false)
247+
require.False(t, cfg.Metrics.PostgresqlTempFiles.Enabled)
230248
cfg.Metrics.PostgresqlTempFiles.Enabled = true
231-
require.True(t, cfg.Metrics.PostgresqlSequentialScans.Enabled == false)
249+
require.False(t, cfg.Metrics.PostgresqlSequentialScans.Enabled)
232250
cfg.Metrics.PostgresqlSequentialScans.Enabled = true
233-
require.True(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled == false)
251+
require.False(t, cfg.Metrics.PostgresqlDatabaseLocks.Enabled)
234252
cfg.Metrics.PostgresqlDatabaseLocks.Enabled = true
235253
scraper := newPostgreSQLScraper(receivertest.NewNopCreateSettings(), cfg, &factory)
236254

0 commit comments

Comments
 (0)