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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions