Skip to main content

Azure Monitor managed service for Prometheus

Reading time: 0 minute(s) (0 words)

Azure Monitor managed service for Prometheus is a part of Azure Monitor Metrics. It allows collecting Prometheus metrics and analyzing them with Azure Monitor tools.

Integration with Nobl9 lets you collect metrics from Azure Monitor managed service for Prometheus and create SLOs based on them.

Azure Monitor managed service for Prometheus parameters and supported features in Nobl9
General support:
Release channel: Beta
Connection method: Agent, Direct
Replay and SLI Analyzer: Historical data limit 30 days
Event logs: Supported
Query checker: Not supported
Query parameters retrieval: Supported
Timestamp cache persistence: Supported

Query parameters:
Query interval: 1 min
Query delay: 0
Jitter: 15 sec
Timeout: 30 sec

Agent details and minimum required versions for supported features:
Plugin name: n9prometheus
Query delay environment variable: PROM_QUERY_DELAY
Replay and SLI Analyzer: 0.78.0-beta
Query parameters retrieval: 0.78.0-beta
Timestamp cache persistence: 0.78.0-beta
Custom HTTP headers: 0.83.0-beta

Additional notes:
Support for Prometheus metrics
Learn more Opens in a new tab

Authentication

To query an Azure Monitor workplace, authenticate with your Microsoft Entra ID with client_id and client_secret. For this:

  1. Register an Azure application with Microsoft Entra ID.
  2. Assign your application the Monitoring Data Reader role to your required Azure Monitor workspace.
    This role meets the Nobl9 requirements for metric collection.

You can also use sloctl. This way, you can configure SLOs for your Azure Cloud application without the resource and metric autocompletion.

Azure IAM

We recommend granting the Monitoring Data Reader role on the subscription or resource group level rather than a specific resource. A broader scope provides a more comprehensive choice of subscriptions, resource groups, resources, and metrics in the Nobl9 platform.

URL

The Azure Monitor managed service for Prometheus agent requests the Range queries API endpoint in the /api/v1/query_range form. For example:

GET /api/v1/query_range
POST /api/v1/query_range

Omit the /api/v1/query_range API path from the URL. Specify only the base URL for your Prometheus server.
For example, if your Prometheus server is available under <http://prometheus.example.com> and you access API via <http://prometheus.example.com/api/v1>, then use only the <http://prometheus.example.com> part.

Other APIs or Web UIs have similar path endings. Omit them in the URL: for example, the /graph part of the path.

This integration focuses on querying the Prometheus servers, not fetching metrics directly from services. Avoid using URLs pointing to service endpoints that expose data in the Prometheus format (often under the /metrics path).

Learn about how to find a query endpoint.

Adding Azure Monitor managed service for Prometheus as a data source

You can add Azure Monitor managed service for Prometheus using the direct or agent connection methods.

Direct connection method

Nobl9 Web

  1. Navigate to Integrations > Sources.
  2. Click .
  3. Click the required Source button.
  4. Choose Direct.
release channel
Currently, Nobl9 integration with Azure Monitor managed service for Prometheus is available in the Beta release channel only.
  1. Enter the URL of your required base Prometheus server.

  2. Enter your Azure Tenant ID.
    It is an 8-4-4-4-12-character code containing digits 0-9 and letters Aa-Ff.

  3. Enter your Microsoft Entra Client ID and Client Secret.

  1. Select a Project.
    Specifying a project is helpful when multiple users are spread across multiple teams or projects. When the Project field is left blank, Nobl9 uses the default project.
  2. Enter a Display Name.
    You can enter a user-friendly name with spaces in this field.
  3. Enter a Name.
    The name is mandatory and can only contain lowercase, alphanumeric characters, and dashes (for example, my-project-1). Nobl9 duplicates the display name here, transforming it into the supported format, but you can edit the result.
  4. Enter a Description.
    Here you can add details such as who is responsible for the integration (team/owner) and the purpose of creating it.
  5. Specify the Query delay to set a customized delay for queries when pulling the data from the data source.
    • The default value in Azure Monitor managed service for Prometheus integration for Query delay is 0 minutes.
    info
    Changing the Query delay may affect your SLI data. For more details, check the Query delay documentation.
  6. Enter a Maximum Period for Historical Data Retrieval.
    • This value defines how far back in the past your data will be retrieved when replaying your SLO based on this data source.
    • The maximum period value depends on the data source.
      Find the maximum value for your data source.
    • A greater period can extend the loading time when creating an SLO.
      • The value must be a positive integer.
  7. Enter a Default Period for Historical Data Retrieval.
    • It is used by SLOs connected to this data source.
    • The value must be a positive integer or 0.
    • By default, this value is set to 0. When you set it to >0, you will create SLOs with Replay.
  8. Click Add Data Source.

sloctl

  1. Create a YAML definition to set up a direct connection with Azure Monitor managed service for Prometheus. For this, refer to the following example:
YAML definition for the direct connection method
apiVersion: n9/v1alpha
kind: Direct
metadata:
name: azure-prometheus
displayName: Azure Prometheus Direct
project: default
spec:
description: Example Azure Prometheus Direct
releaseChannel: beta
azurePrometheus:
url: https://prod-app.azuremonitor.com
tenantId: 5cdecca3-c2c5-4072-89dd-5555faf05202
clientId: 70747025-9367-41a5-98f1-59b18b5793c3
clientSecret: "[secret]"
historicalDataRetrieval:
maxDuration:
value: 30
unit: Day
defaultDuration:
value: 15
unit: Day
triggeredBySloCreation:
value: 15
unit: Day
triggeredBySloEdit:
value: 15
unit: Day
queryDelay:
value: 1
unit: Second
FieldTypeDescription
queryDelay.unit
mandatory
enumSpecifies the unit for the query delay. Possible values: Second | Minute.
• Check query delay documentation for default unit of query delay for each source.
queryDelay.value
mandatory
numericSpecifies the value for the query delay.
• Must be a number less than 1440 minutes (24 hours).
• Check query delay documentation for default unit of query delay for each source.
releaseChannel
mandatory
enumSpecifies the release channel. Accepted values: beta | stable.
Source-specific fields
azurePrometheus.clientId
mandatory
string, secretYour Microsoft Entra ID client ID.
azurePrometheus.clientSecret
mandatory
string, secretYour Microsoft Entra ID client secret.
azurePrometheus.tenantID
mandatory
stringThe identifier of your Microsoft Entra tenant.
azurePrometheus.url
mandatory
stringBase URL to Prometheus server. See authentication section above for more details.
Replay-related fields
historicalDataRetrieval
optional
n/aOptional structure related to configuration related to Replay.
❗ Use only with supported sources.
• If omitted, Nobl9 uses the default values of value: 0 and unit: Day for maxDuration and defaultDuration.
maxDuration.value
optional
numericSpecifies the maximum duration for historical data retrieval. Must be integer ≥ 0. See Replay documentation for values of max duration per data source.
maxDuration.unit
optional
enumSpecifies the unit for the maximum duration of historical data retrieval. Accepted values: Minute | Hour | Day.
defaultDuration.value
optional
numericSpecifies the default duration for historical data retrieval. Must be integer ≥ 0 and maxDuration.
defaultDuration.unit
optional
enumSpecifies the unit for the default duration of historical data retrieval. Accepted values: Minute | Hour | Day.
  1. Apply your YAML definition using the sloctl apply command.

Agent connection method

Use the agent method to run an agent alongside your Prometheus server. Once connected, the agent will periodically connect to Nobl9 using an outbound connection.

Nobl9 Web

To connect Azure Monitor managed service for Prometheus, do the following:

  1. Navigate to Integrations > Sources.
  2. Click .
  3. Click the required Source button.
  4. Choose Agent.
release channel
Currently, Nobl9 integration with Azure Monitor managed service for Prometheus is available in the Beta release channel only.
  1. Enter the URL of your required base Prometheus server.

  2. Enter your Azure Tenant ID.
    It is an 8-4-4-4-12-character code containing digits 0-9 and letters Aa-Ff.

  1. Select a Project.
    Specifying a project is helpful when multiple users are spread across multiple teams or projects. When the Project field is left blank, Nobl9 uses the default project.
  2. Enter a Display Name.
    You can enter a user-friendly name with spaces in this field.
  3. Enter a Name.
    The name is mandatory and can only contain lowercase, alphanumeric characters, and dashes (for example, my-project-1). Nobl9 duplicates the display name here, transforming it into the supported format, but you can edit the result.
  4. Enter a Description.
    Here you can add details such as who is responsible for the integration (team/owner) and the purpose of creating it.
  5. Specify the Query delay to set a customized delay for queries when pulling the data from the data source.
    • The default value in Azure Monitor managed service for Prometheus integration for Query delay is 0 minutes.
    info
    Changing the Query delay may affect your SLI data. For more details, check the Query delay documentation.
  6. Enter a Maximum Period for Historical Data Retrieval.
    • This value defines how far back in the past your data will be retrieved when replaying your SLO based on this data source.
    • The maximum period value depends on the data source.
      Find the maximum value for your data source.
    • A greater period can extend the loading time when creating an SLO.
      • The value must be a positive integer.
  7. Enter a Default Period for Historical Data Retrieval.
    • It is used by SLOs connected to this data source.
    • The value must be a positive integer or 0.
    • By default, this value is set to 0. When you set it to >0, you will create SLOs with Replay.
  8. Click Add Data Source.
  9. Deploy your agent in a Kubernetes cluster or Docker container.
  10. 💡Custom HTTP headers
    When you need to set custom HTTP headers in your Nobl9 agent, include them in your agent deployment.

sloctl

  1. Create a YAML definition to set up an agent connection with Azure Monitor managed service for Prometheus. For this, refer to the following example:
YAML definition for the agent connection method
apiVersion: n9/v1alpha
kind: Agent
metadata:
name: azure-prometheus
displayName: Azure Prometheus Agent
project: default
spec:
description: Example Azure Prometheus Agent
releaseChannel: beta
azurePrometheus:
url: https://defaultazuremonitorworkspace-westus2-szxw.westus2.prometheus.monitor.azure.com
tenantId: 41372654-f4b6-4bd1-a3fe-75629c024df1
historicalDataRetrieval:
maxDuration:
value: 30
unit: Day
defaultDuration:
value: 15
unit: Day
queryDelay:
value: 1
unit: Second
FieldTypeDescription
queryDelay.unit
mandatory
enumSpecifies the unit for the query delay. Possible values: Second | Minute.
• Check query delay documentation for default unit of query delay for each source.
queryDelay.value
mandatory
numericSpecifies the value for the query delay.
• Must be a number less than 1440 minutes (24 hours).
• Check query delay documentation for default unit of query delay for each source.
releaseChannel
mandatory
enumSpecifies the release channel. Accepted values: beta | stable.
Source-specific fields
azurePrometheus.url
mandatory
stringBase URL to Prometheus server. See authentication section above for more details.
azurePrometheus.tenantID
mandatory
stringThe identifier of your Microsoft Entra tenant.
Replay-related fields
historicalDataRetrieval
optional
n/aOptional structure related to configuration related to Replay.
❗ Use only with supported sources.
• If omitted, Nobl9 uses the default values of value: 0 and unit: Day for maxDuration and defaultDuration.
maxDuration.value
optional
numericSpecifies the maximum duration for historical data retrieval. Must be integer ≥ 0. See Replay documentation for values of max duration per data source.
maxDuration.unit
optional
enumSpecifies the unit for the maximum duration of historical data retrieval. Accepted values: Minute | Hour | Day.
defaultDuration.value
optional
numericSpecifies the default duration for historical data retrieval. Must be integer ≥ 0 and maxDuration.
defaultDuration.unit
optional
enumSpecifies the unit for the default duration of historical data retrieval. Accepted values: Minute | Hour | Day.
  1. Apply your YAML definition using the sloctl apply command.
  2. Deploy your agent in a Kubernetes cluster or Docker container.
  3. 💡Custom HTTP headers
    When you need to set custom HTTP headers in your Nobl9 agent, include them in your agent deployment.
For a more in-depth look, consult additional resources: