Skip to content

Bug: --monitoring.filters flag broken when filter value contains : character #476

@draganavr

Description

@draganavr

Root cause:
In stackdriver_exporter.go the SplitExtraFilter function uses : as a separator to split the metric prefix from the filter value:

`utils.SplitExtraFilter(ef, ":")


This breaks when the `database_id` value contains `:`, for example:

project:instance`

Fix:

`sed -i 's/utils.SplitExtraFilter(ef, ":")/utils.SplitExtraFilter(ef, "|")/' stackdriver_exporter.go


This changes the separator to `|`, so flags are written as:

--monitoring.filters=cloudsql.googleapis.com/database/up|resource.labels.database_id="project:instance"`

Steps to reproduce:

  1. Set --monitoring.filters=cloudsql.googleapis.com/database/up:resource.labels.database_id="project:instance"
  2. Exporter does not apply the filter and returns metrics for all instances

Expected: Filter is applied, only the selected instance is returned
Actual: Filter is silently ignored, all instances are returned
Environment:

  • stackdriver_exporter master branch (go 1.24.0)
  • Google CloudSQL database metrics
  • database_id format: project-id:instance-name (contains :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions