Skip to content

fix[datadog_metric_active_tags_and_aggregations]: protect against incorrect empty results#3782

Open
mdb wants to merge 1 commit into
DataDog:masterfrom
mdb:mdb/fix-metric-active-tags-valuestring
Open

fix[datadog_metric_active_tags_and_aggregations]: protect against incorrect empty results#3782
mdb wants to merge 1 commit into
DataDog:masterfrom
mdb:mdb/fix-metric-active-tags-valuestring

Conversation

@mdb
Copy link
Copy Markdown
Contributor

@mdb mdb commented May 13, 2026

Fixes #3791 to ensure datadog_metric_active_tags_and_aggregations does not incorrectly return empty results.

The Read function called ListActiveMetricConfigurations with state.Metric.String(). On a plugin-framework types.String, .String() returns the Go-fmt'd representation (fmt.Sprintf("%q", ...)), wrapping the value in literal double-quotes. A metric like foo.bar reached the API as ""foo.bar"", which the API treats as a non-existent metric and returns an empty body without erroring, so the data source silently returned empty active_tags and active_aggregations for every metric. The correct accessor is .ValueString(), used by every sibling metric data source in this package.

Also drop the dereference of data.Id (typed *string,omitempty in the SDK), which would panic on a response missing an id, and set the resource ID from state.Metric.ValueString() — the value the API returns today and the convention used elsewhere.

The existing cassette was recorded against the buggy path and encoded the quoted form in both the request URL and the response id field; updated to the unquoted form so the existing assertions catch a regression.

…w/ quotes

The Read function called ListActiveMetricConfigurations with
state.Metric.String(). On a plugin-framework types.String, .String()
returns the Go-fmt'd representation (fmt.Sprintf("%q", ...)), wrapping
the value in literal double-quotes. A metric like foo.bar reached the
API as "\"foo.bar\"", which the API treats as a non-existent metric
and returns an empty body without erroring, so the data source
silently returned empty active_tags and active_aggregations for every
metric. The correct accessor is .ValueString(), used by every sibling
metric data source in this package.

Also drop the dereference of data.Id (typed *string,omitempty in the
SDK), which would panic on a response missing an id, and set the
resource ID from state.Metric.ValueString() — the value the API
returns today and the convention used elsewhere.

The existing cassette was recorded against the buggy path and encoded
the quoted form in both the request URL and the response id field;
updated to the unquoted form so the existing assertions catch a
regression.

Signed-off-by: Mike Ball <mikedball@gmail.com>
@mdb mdb marked this pull request as ready for review May 15, 2026 09:31
@mdb mdb requested review from a team as code owners May 15, 2026 09:31
@mdb mdb changed the title fix[datadog_metric_active_tags_and_aggregations]: metric name passed w/ quotes fix[datadog_metric_active_tags_and_aggregations]: protect against incorrect empty results May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[datadog_metric_active_tags_and_aggregations] data source silently returns empty results

1 participant