Skip to content

/query endpoint is giving zero metrics but with status 200 #98

@nohupped

Description

@nohupped

Hi,
I am trying to get azure metrics exporter running in our kubernetes cluster with workload identity. I created a local repository from helm using

helm pull webdevops/azure-metrics-exporter --untar

and I have a federated identity created with the following permissions.

        permissions = {
          actions = [
            "Microsoft.Insights/AlertRules/*"
          ]
          not_actions = []
          data_actions = [
            "Microsoft.Insights/Metrics/*",
          ]
          not_data_actions = []
        }

Since I was doubtful about the permission scope, I've added the Monitoring reader role as well from our azure portal just to be sure.

I have the pod up and running and I have the following from my pod logs

001b[34mINFO\u001b[0m","C":"azure-metrics-exporter/main.go:57","M":"starting azure-metrics-exporter v24.2.0 (8ba3def; go1.22.0; by webdevops.io)"}
{"L":"\u001b[34mINFO\u001b[0m","C":"azure-metrics-exporter/main.go:58","M":"{\"Logger\":{\"Debug\":true,\"Development\":true,\"Json\":true},\"Azure\":{\"Environment\":\"AZUREPUBLICCLOUD\",\"AdResourceUrl\":null,\"ServiceDiscovery\":{\"CacheDuration\":0},\"ResourceTags\":[\"owner\"]},\"Metrics\":{\"Template\":\"{name}\",\"Help\":\"Azure monitor insight metric\"},\"Prober\":{\"ConcurrencySubscription\":5,\"ConcurrencySubscriptionResource\":10,\"Cache\":false},\"Server\":{\"Bind\":\":8080\",\"ReadTimeout\":5000000000,\"WriteTimeout\":10000000000}}"}
{"L":"\u001b[34mINFO\u001b[0m","C":"azure-metrics-exporter/main.go:62","M":"init Azure connection"}
{"L":"\u001b[34mINFO\u001b[0m","C":"armclient/client.go:137","M":"connecting to Azure Environment \"AzurePublicCloud\" (AzureAD:https://login.microsoftonline.com/ ResourceManager:https://management.azure.com)"}
{"L":"\u001b[34mINFO\u001b[0m","C":"armclient/client.go:152","M":"using Azure client: appid=d3f72ce8-1d49-4f62-9156-3caf9c0399e9, oid=413a0d31-5f0b-4799-9449-8d45cffc4d88","client":{"appid":"d3f72ce8-1d49-4f62-9156-3caf9c0399e9","aud":"https://management.azure.com","oid":"413a0d31-5f0b-4799-9449-8d45cffc4d88","tid":"3d7995a7-a475-466f-ab08-ed4bcfdca0f8"}}
{"L":"\u001b[34mINFO\u001b[0m","C":"armclient/client.go:162","M":"found 1 Azure Subscriptions"}
{"L":"\u001b[35mDEBUG\u001b[0m","C":"armclient/client.go:164","M":"found Azure Subscription \"<redacted>" (redacted)"}
{"L":"\u001b[34mINFO\u001b[0m","C":"azure-metrics-exporter/main.go:66","M":"starting http server on :8080"}

From the logs, it appears good and I could see its own metrics at the :8080/metrics endpoint.

When I am trying to use the /query endpoint, I get a status 200 but with empty metrics for any metrics I am trying to discover.

For eg: I am trying to get one metric connections_succeeded from Microsoft.DBforPostgreSQL/flexibleServers using my subscription ID from both /probe/metrics and /probe/metrics/list and both gives me zero metrics but with a status 200.
However, when I was checking the actual monitor from within the azure postgres database, I could see connections_succeeded isn't empty and has values.
I didn't see any errors in the pod logs either. Attaching a screenshot of what I see in /query endpoint.
Screenshot 2024-08-24 at 2 55 56 PM

Kindly advise.

Thanks.

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