The only agent that thinks for itself

Autonomous Monitoring with self-learning AI built-in, operating independently across your entire stack.

Unlimited Metrics & Logs
Machine learning & MCP
5% CPU, 150MB RAM
3GB disk, >1 year retention
800+ integrations, zero config
Dashboards, alerts out of the box
> Discover Netdata Agents

Centralized metrics streaming and storage

Aggregate metrics from multiple agents into centralized Parent nodes for unified monitoring across your infrastructure.

Stream from unlimited agents
Long-term data retention
High availability clustering
Data replication & backup
Scalable architecture
Enterprise-grade security
> Learn about Parents

Fully managed cloud platform

Access your monitoring data from anywhere with our SaaS platform. No infrastructure to manage, automatic updates, and global availability.

Zero infrastructure management
99.9% uptime SLA
Global data centers
Automatic updates & patches
Enterprise SSO & RBAC
SOC2 & ISO certified
> Explore Netdata Cloud

Deploy Netdata Cloud in your infrastructure

Run the full Netdata Cloud platform on-premises for complete data sovereignty and compliance with your security policies.

Complete data sovereignty
Air-gapped deployment
Custom compliance controls
Private network integration
Dedicated support team
Kubernetes & Docker support
> Learn about Cloud On-Premises

Powerful, intuitive monitoring interface

Modern, responsive UI built for real-time troubleshooting with customizable dashboards and advanced visualization capabilities.

Real-time chart updates
Customizable dashboards
Dark & light themes
Advanced filtering & search
Responsive on all devices
Collaboration features
> Explore Netdata UI

Monitor on the go

Native iOS and Android apps bring full monitoring capabilities to your mobile device with real-time alerts and notifications.

iOS & Android apps
Push notifications
Touch-optimized interface
Offline data access
Biometric authentication
Widget support
> Download apps

The future of infrastructure observability

See our strategic direction across AI-native observability, full-stack signals, operational intelligence, and enterprise platform maturity.

AI-native observability
Full-stack signal coverage
Operational intelligence
Enterprise platform maturity
Agent releases every 6 weeks
Cloud continuous delivery
> Explore Product Roadmap

Best energy efficiency

True real-time per-second

100% automated zero config

Centralized observability

Multi-year retention

High availability built-in

Zero maintenance

Always up-to-date

Enterprise security

Complete data control

Air-gap ready

Compliance certified

Millisecond responsiveness

Infinite zoom & pan

Works on any device

Native performance

Instant alerts

Monitor anywhere

AI-native observability

Continuous delivery

Open source foundation

80% Faster Incident Resolution

AI-powered troubleshooting from detection, to root cause and blast radius identification, to reporting.

True Real-Time and Simple, even at Scale

Linearly and infinitely scalable full-stack observability, that can be deployed even mid-crisis.

90% Cost Reduction, Full Fidelity

Instead of centralizing the data, Netdata distributes the code, eliminating pipelines and complexity.

Control Without Surrender

SOC 2 Type 2 certified with every metric kept on your infrastructure.

Integrations

800+ collectors and notification channels, auto-discovered and ready out of the box.

800+ data collectors
Auto-discovery & zero config
Cloud, infra, app protocols
Notifications out of the box
> Explore integrations
Real Results
46% Cost Reduction

Reduced monitoring costs by 46% while cutting staff overhead by 67%.

— Leonardo Antunez, Codyas

Zero Pipeline

No data shipping. No central storage costs. Query at the edge.

From Our Users
"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

No Query Language

Point-and-click troubleshooting. No PromQL, no LogQL, no learning curve.

Enterprise Ready
67% Less Staff, 46% Cost Cut

Enterprise efficiency without enterprise complexity—real ROI from day one.

— Leonardo Antunez, Codyas

SOC 2 Type 2 Certified

Zero data egress. Only metadata reaches the cloud. Your metrics stay on your infrastructure.

Full Coverage
800+ Collectors

Auto-discovered and configured. No manual setup required.

Any Notification Channel

Slack, PagerDuty, Teams, email, webhooks—all built-in.

Built for the People Who Get Paged

Because 3am alerts deserve instant answers, not hour-long hunts.

Every Industry Has Rules. We Master Them.

See how healthcare, finance, and government teams cut monitoring costs 90% while staying audit-ready.

Monitor Any Technology. Configure Nothing.

Install the agent. It already knows your stack.
From Our Users
"A Rare Unicorn"

Netdata gives more than you invest in it. A rare unicorn that obeys the Pareto rule.

— Eduard Porquet Mateu, TMB Barcelona

99% Downtime Reduction

Reduced website downtime by 99% and cloud bill by 30% using Netdata alerts.

— Falkland Islands Government

Real Savings
30% Cloud Cost Reduction

Optimized resource allocation based on Netdata alerts cut cloud spending by 30%.

— Falkland Islands Government

46% Cost Cut

Reduced monitoring staff by 67% while cutting operational costs by 46%.

— Codyas

Real Coverage
"Plugin for Everything"

Netdata has agent capacity or a plugin for everything, including Windows and Kubernetes.

— Eduard Porquet Mateu, TMB Barcelona

"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

Real Speed
Troubleshooting in 30 Seconds

From 2-3 minutes to 30 seconds—instant visibility into any node issue.

— Matthew Artist, Nodecraft

20% Downtime Reduction

20% less downtime and 40% budget optimization from out-of-the-box monitoring.

— Simon Beginn, LANCOM Systems

Pay per Node. Unlimited Everything Else.

One price per node. Unlimited metrics, logs, users, and retention. No per-GB surprises.

Free tier—forever
No metric limits or caps
Retention you control
Cancel anytime
> See pricing plans

What's Your Monitoring Really Costing You?

Most teams overpay by 40-60%. Let's find out why.

Expose hidden metric charges
Calculate tool consolidation
Customers report 30-67% savings
Results in under 60 seconds
> See what you're really paying

Your Infrastructure Is Unique. Let's Talk.

Because monitoring 10 nodes is different from monitoring 10,000.

On-prem & air-gapped deployment
Volume pricing & agreements
Architecture review for your scale
Compliance & security support
> Start a conversation

Monitoring That Sells Itself

Deploy in minutes. Impress clients in hours. Earn recurring revenue for years.

30-second live demos close deals
Zero config = zero support burden
Competitive margins & deal protection
Response in 48 hours
> Apply to partner

Per-Second Metrics at Homelab Prices

Same engine, same dashboards, same ML. Just priced for tinkerers.

Community: Free forever · 5 nodes · non-commercial
Homelab: $90/yr · unlimited nodes · fair usage
> Get the Homelab Plan

$1,000 Per Referral. Unlimited Referrals.

Your colleagues get 10% off. You get 10% commission. Everyone wins.

10% of subscriptions, up to $1,000 each
Track earnings inside Netdata Cloud
PayPal/Venmo payouts in 3-4 weeks
No caps, no complexity
> Get your referral link
Cost Proof
40% Budget Optimization

"Netdata's significant positive impact" — LANCOM Systems

Calculate Your Savings

Compare vs Datadog, Grafana, Dynatrace

Savings Proof
46% Cost Reduction

"Cut costs by 46%, staff by 67%" — Codyas

30% Cloud Bill Savings

"Reduced cloud bill by 30%" — Falkland Islands Gov

Enterprise Proof
"Better Than Combined Alternatives"

"Better observability with Netdata than combining other tools." — TMB Barcelona

Real Engineers, <24h Response

DPA, SLAs, on-prem, volume pricing

Why Partners Win
Demo Live Infrastructure

One command, 30 seconds, real data—no sandbox needed

Zero Tickets, High Margins

Auto-config + per-node pricing = predictable profit

Homelab Ready
"Absolutely Incredible"

"We tested every monitoring system under the sun." — Benjamin Gabler, CEO Rocket.Net

76k+ GitHub Stars

3rd most starred monitoring project

Worth Recommending
Product That Delivers

Customers report 40-67% cost cuts, 99% downtime reduction

Zero Risk to Your Rep

Free tier lets them try before they buy

AI Support Assistant, Available 24/7

Nedi has access to all official documentation, source code, and resources. Ask any question about Netdata—responds in your language.

Deployment & configuration
Troubleshooting & sizing
Alerts & notifications
Evidence-based answers
> Ask Nedi now

Never Fight Fires Alone

Docs, community, and expert help—pick your path to resolution.

Learn.netdata.cloud docs
Discord, Forums, GitHub
Premium support available
> Get answers now

60 Seconds to First Dashboard

One command to install. Zero config. 850+ integrations documented.

Linux, Windows, K8s, Docker
Auto-discovers your stack
> Read our documentation

Level Up Your Monitoring

Real problems. Real solutions. 112+ guides from basic monitoring to AI observability.

76,000+ Engineers Strong

615+ contributors. 1.5M daily downloads. One mission: simplify observability.

Per-Second. 90% Cheaper. Data Stays Home.

Side-by-side comparisons: costs, real-time granularity, and data sovereignty for every major tool.

See why teams switch from Datadog, Prometheus, Grafana, and more.

> Browse all comparisons
Edge-Native Observability, Born Open Source
Per-second visibility, ML on every metric, and data that never leaves your infrastructure.
Founded in 2016
615+ contributors worldwide
Remote-first, engineering-driven
Open source first
> Read our story
Promises We Publish—and Prove
12 principles backed by open code, independent validation, and measurable outcomes.
Open source, peer-reviewed
Zero config, instant value
Data sovereignty by design
Aligned pricing, no surprises
> See all 12 principles
Edge-Native, AI-Ready, 100% Open
76k+ stars. Full ML, AI, and automation—GPLv3+, not premium add-ons.
76,000+ GitHub stars
GPLv3+ licensed forever
ML on every metric, included
Zero vendor lock-in
> Explore our open source
Build Real-Time Observability for the World
Remote-first team shipping per-second monitoring with ML on every metric.
Remote-first, fully distributed
Open source (76k+ stars)
Challenging technical problems
Your code on millions of systems
> See open roles
Meet the Team Behind Netdata
Conferences, meetups, and tradeshows where you can see Netdata in action and talk to the engineers who build it.
Live demos and deep dives
Book 1-on-1 meetings
Talks and panel sessions
Event recaps and photos
> See all events
Talk to a Netdata Human in <24 Hours
Sales, partnerships, press, or professional services—real engineers, fast answers.
Discuss your observability needs
Pricing and volume discounts
Partnership opportunities
Media and press inquiries
> Book a conversation
Your Data. Your Rules.
On-prem data, cloud control plane, transparent terms.
Trust & Scale
76,000+ GitHub Stars

One of the most popular open-source monitoring projects

SOC 2 Type 2 Certified

Enterprise-grade security and compliance

Data Sovereignty

Your metrics stay on your infrastructure

Validated
University of Amsterdam

"Most energy-efficient monitoring solution" — ICSOC 2023, peer-reviewed

ADASTEC (Autonomous Driving)

"Doesn't miss alerts—mission-critical trust for safety software"

Community Stats
615+ Contributors

Global community improving monitoring for everyone

1.5M+ Downloads/Day

Trusted by teams worldwide

GPLv3+ Licensed

Free forever, fully open source agent

Why Join?
Remote-First

Work from anywhere, async-friendly culture

Impact at Scale

Your work helps millions of systems

Azure Synapse Analytics Workspace icon

Azure Synapse Analytics Workspace

Azure Synapse Analytics Workspace

Plugin: go.d.plugin Module: azure_monitor

Overview

:::info

This is part of the Azure Monitor collector. No separate setup is needed – a single Azure Monitor job discovers and monitors all supported resource types automatically.

:::

Monitor Azure Synapse Analytics with metrics covering:

  • Pipeline – pipeline runs, activity runs, trigger runs
  • SQL pool – built-in SQL pool requests, login attempts, data processed
  • Streaming – event flow (in/out), event timing (late/early/out-of-order/backlogged), watermark delay, resource utilization, errors
  • Streaming I/O – input data throughput, input sources received
  • Link – connection events, processed data volume, changed rows, processing latency, table events

It uses the Azure Monitor Metrics batch API to collect metrics, grouping requests by subscription, region, and time grain. Resources are discovered via Azure Resource Graph queries at startup and refreshed periodically. Authentication is handled through Microsoft Entra ID (service principal, managed identity, or default credentials).

This collector is supported on all platforms.

This collector supports collecting metrics from multiple instances of this integration, including remote instances.

The service principal or managed identity requires these Azure RBAC roles:

RolePurposeScope
Monitoring ReaderRead Azure Monitor metricsSubscription or resource group
ReaderQuery Azure Resource Graph for resource discoverySubscription or resource group

Default Behavior

Auto-Detection

The collector has two discovery phases:

Bootstrap (first run)

  • With the default profiles.mode: auto, the collector queries Azure Resource Graph within the configured subscription_ids to find candidate resources.
  • It matches discovered resource types against built-in profiles and automatically enables the relevant ones.
  • Discovery scope can be narrowed using discovery.mode: filters (resource groups, regions, tags) or replaced entirely with discovery.mode: query for a custom KQL query.
  • A single job can monitor multiple subscriptions.

Runtime (periodic refresh)

  • Periodically re-discovers resources for already-active profile types only.
  • Controlled by discovery.refresh_every (default: 300 seconds, set to 0 to disable).

Important: Runtime refresh does not activate new profiles. If a new resource type appears after bootstrap, restart the collector to pick it up.

Limits

  • Minimum collection interval: 60 seconds (enforced). Azure Monitor metrics granularity is typically 1 minute.
  • Metrics reporting delay: Azure Monitor metrics have a 1-3 minute reporting delay. The collector uses query_offset (default: 180s) as a minimum offset and automatically uses a larger effective offset for slower time-grain batches when needed.
  • API throttling: Azure Monitor applies per-subscription rate limits. The collector uses bounded concurrency and batching to stay within limits, but monitoring many resources in a single subscription may require tuning limits.* options.

Performance Impact

The collector batches resources and metrics to minimize Azure API calls and uses bounded concurrency to avoid overwhelming the API.

Default concurrency and batching limits:

SettingDefaultDescription
limits.max_concurrency4Maximum concurrent batch queries
limits.max_batch_resources50Maximum resources per batch request
limits.max_metrics_per_query20Maximum metrics per batch request

For large deployments, consider splitting resources across multiple jobs. If you hit Azure API rate limits, reduce max_concurrency.

Setup

You can configure the azure_monitor collector in two ways:

MethodBest forHow to
UIFast setup without editing filesGo to Nodes → Configure this node → Collectors → Jobs, search for azure_monitor, then click + to add a job.
FileIf you prefer configuring via file, or need to automate deployments (e.g., with Ansible)Edit go.d/azure_monitor.conf and add a job.

:::important

UI configuration requires paid Netdata Cloud plan.

:::

Prerequisites

Create an Azure monitoring principal

The collector requires a service principal or managed identity with two Azure RBAC roles:

RolePurpose
Monitoring ReaderAccess Azure Monitor metrics for target resources
ReaderQuery Azure Resource Graph for resource discovery

Option A: Service principal

# Create service principal with Monitoring Reader role
az ad sp create-for-rbac --name "netdata-monitor" --role "Monitoring Reader" \
  --scopes /subscriptions/<subscription-id>

# Add the Reader role for resource discovery
az role assignment create --assignee <appId-from-above> \
  --role "Reader" --scope /subscriptions/<subscription-id>

# Note the appId (client_id), password (client_secret), and tenant

Option B: Managed identity (Azure VMs, VMSS, or AKS)

# Assign both roles to the VM's managed identity
az role assignment create --assignee <managed-identity-principal-id> \
  --role "Monitoring Reader" --scope /subscriptions/<subscription-id>

az role assignment create --assignee <managed-identity-principal-id> \
  --role "Reader" --scope /subscriptions/<subscription-id>

Configuration

Options

The following options can be defined globally: update_every, autodetection_retry.

Profile file locations:

TypePath
Stock profiles/usr/lib/netdata/conf.d/go.d/azure_monitor.profiles/default/
User overrides/etc/netdata/go.d/azure_monitor.profiles/

User profile files with the same id as a stock profile override it. Custom profiles extend the collector’s catalog – they do not replace the discovery mechanism.

GroupOptionDescriptionDefaultRequired
Collectionupdate_everyData collection interval (seconds). Must be at least 60.60no
autodetection_retryAutodetection retry interval (seconds). Set 0 to disable.0no
subscription_idsList of Azure subscription IDs to monitor. Used as the scope for resource discovery.yes
cloudAzure cloud environment: public, government, or china.publicno
query_offsetMinimum offset (seconds) subtracted from metric query windows. Increase if metrics appear incomplete.180no
timeoutTimeout for Azure Resource Graph and Azure Monitor API requests, in seconds.30no
Authenticationauth.modeAuthentication method: service_principal, managed_identity, or default.yes
auth.mode_service_principal.tenant_idEntra ID tenant ID (required for service_principal mode).no
auth.mode_service_principal.client_idEntra ID application (client) ID (required for service_principal mode).no
auth.mode_service_principal.client_secretEntra ID client secret (required for service_principal mode).no
auth.mode_managed_identity.client_idClient ID for user-assigned managed identity. Leave empty for system-assigned.no
Discoverydiscovery.refresh_everyInterval (seconds) for refreshing discovered resources. Set 0 to disable runtime re-discovery after bootstrap.300no
discovery.modeResource discovery method: filters (structured filters) or query (custom KQL).filtersno
discovery.mode_filters.resource_groupsOptional list of Azure resource groups to include in filters mode.[]no
discovery.mode_filters.regionsOptional list of Azure regions to include in filters mode.[]no
discovery.mode_filters.tagsOptional exact-match tag filters for filters mode. Keys are matched case-insensitively and values case-sensitively.{}no
discovery.mode_query.kqlCustom Azure Resource Graph KQL for query mode. Must project id, name, type, resourceGroup, location.no
Profilesprofiles.modeHow profiles are selected: auto (discover from resources), exact (explicit list), or combined (both).autono
profiles.mode_exact.namesExplicit profile file basenames used by exact mode. Matching is case-insensitive.[]no
profiles.mode_combined.namesExplicit profile file basenames merged with auto-discovered profiles in combined mode. Matching is case-insensitive.[]no
Limitslimits.max_concurrencyMaximum concurrent batch queries to Azure Monitor.4no
limits.max_batch_resourcesMaximum resources per Azure Monitor batch request.50no
limits.max_metrics_per_queryMaximum metrics per Azure Monitor batch request.20no
Virtual NodevnodeAssociates this data collection job with a Virtual Node.no

query_offset

Azure Monitor metrics have a built-in reporting delay of 1-3 minutes. The collector subtracts this offset from the current time when building metric query windows to avoid fetching incomplete data points.

The configured query_offset acts as a minimum floor. For slower metric batches, the collector automatically uses a larger effective offset when the batch time grain is longer than the configured value.

  • Default (180s) works for most services.
  • Longer time grains (for example PT5M) automatically use at least one full time grain as the effective offset.
  • Increase to 240-300s if you still see gaps or missing data points.
  • Do not set below 60s – metrics will likely be incomplete.

auth.mode

Determines how the collector authenticates with Azure.

ModeWhen to useRequired options
service_principalRunning outside Azure, or when you need explicit credentialstenant_id, client_id, client_secret
managed_identityRunning on Azure VMs, VMSS, or AKS with a managed identityOptionally client_id for user-assigned identity
defaultUses the Azure SDK default credential chain (environment variables, managed identity, Azure CLI, etc.)None

discovery.mode

Controls how the collector finds candidate Azure resources.

ModeBehavior
filtersBuilds an Azure Resource Graph query from the structured mode_filters.* options (resource groups, regions, tags). This is the default.
queryUses the raw KQL you provide in discovery.mode_query.kql. The query must project id, name, type, resourceGroup, and location.

discovery.mode_query.kql

A raw Azure Resource Graph KQL query used when discovery.mode is query.

The query must project these five columns:

ColumnDescription
idFull Azure resource ID (ARM format)
nameResource name
typeResource type (e.g., microsoft.sql/servers/databases)
resourceGroupResource group name
locationAzure region

Example:

resources
| where tags.env =~ "prod"
| project id, name, type, resourceGroup, location

profiles.mode

Controls how the collector decides which metric profiles to activate.

ModeBehavior
autoDiscovers resource types in your subscriptions and enables matching built-in profiles automatically. This is the default.
exactUses only the profile basenames listed under profiles.mode_exact.names. No auto-discovery.
combinedMerges auto-discovered profiles with the basenames listed under profiles.mode_combined.names.

Profile basename matching is case-insensitive. A basename is the profile filename without the .yaml / .yml suffix.

via UI

Configure the azure_monitor collector from the Netdata web interface:

  1. Go to Nodes.
  2. Select the node where you want the azure_monitor data-collection job to run and click the :gear: (Configure this node). That node will run the data collection.
  3. The Collectors → Jobs view opens by default.
  4. In the Search box, type azure_monitor (or scroll the list) to locate the azure_monitor collector.
  5. Click the + next to the azure_monitor collector to add a new job.
  6. Fill in the job fields, then click Test to verify the configuration and Submit to save.
    • Test runs the job with the provided settings and shows whether data can be collected.
    • If it fails, an error message appears with details (for example, connection refused, timeout, or command execution errors), so you can adjust and retest.

via File

The configuration file name for this integration is go.d/azure_monitor.conf.

The file format is YAML. Generally, the structure is:

update_every: 1
autodetection_retry: 0
jobs:
  - name: some_name1
  - name: some_name2

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/azure_monitor.conf
Examples
Service principal with structured discovery

Authenticate with a service principal and auto-discover resources across two subscriptions, filtered to the production-rg resource group in eastus with the tag env=prod.

jobs:
  - name: prod
    subscription_ids:
      - "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
      - "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
    discovery:
      mode: filters
      mode_filters:
        resource_groups:
          - production-rg
        regions:
          - eastus
        tags:
          env:
            - prod
    profiles:
      mode: auto
    auth:
      mode: service_principal
      mode_service_principal:
        tenant_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        client_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        client_secret: "your-client-secret"
Managed identity with exact profiles

Use a managed identity (on an Azure VM, VMSS, or AKS) and monitor only SQL Database and PostgreSQL Flexible Server resources – skip auto-discovery of other services.

jobs:
  - name: databases
    subscription_ids:
      - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    profiles:
      mode: exact
      mode_exact:
        names:
          - sql_database
          - postgres_flexible
    auth:
      mode: managed_identity
Custom Azure Resource Graph KQL

Replace the built-in discovery filters with your own KQL query. Useful when you need joins, computed columns, or filtering logic that structured filters cannot express.

jobs:
  - name: prod-query
    subscription_ids:
      - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    discovery:
      mode: query
      mode_query:
        kql: |
          resources
          | where tags.env =~ "prod"
          | project id, name, type, resourceGroup, location          
    profiles:
      mode: auto
    auth:
      mode: default
Azure Government cloud

Connect to an Azure Government environment. Set cloud: government to use the correct authentication and API endpoints.

jobs:
  - name: gov
    subscription_ids:
      - "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    cloud: government
    auth:
      mode: service_principal
      mode_service_principal:
        tenant_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        client_id: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        client_secret: "your-client-secret"

Metrics

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Per resource

These metrics refer to each monitored Azure resource.

Labels:

LabelDescription
resource_nameThe Azure resource name.
resource_groupThe Azure resource group.
regionThe Azure region where the resource is deployed.
resource_typeThe Azure resource type identifier.
profileThe Azure Monitor profile id.
subscription_idThe Azure subscription identifier.
resource_uidThe unique Azure resource identifier.

Metrics:

MetricDimensionsUnit
azure_monitor.synapse.builtin_sql_pool_data_processedprocessedbytes/s
azure_monitor.synapse.builtin_sql_pool_login_attemptslogin_attemptsattempts/s
azure_monitor.synapse.builtin_sql_pool_requestsrequestsrequests/s
azure_monitor.synapse.activity_runsendedruns/s
azure_monitor.synapse.pipeline_runsendedruns/s
azure_monitor.synapse.trigger_runsendedruns/s
azure_monitor.synapse.link_connection_eventseventsevents/s
azure_monitor.synapse.link_table_eventseventsevents/s
azure_monitor.synapse.link_processed_rowschanged_rowsrows/s
azure_monitor.synapse.link_data_volumeprocessedbytes/s
azure_monitor.synapse.link_processing_latencyaverageseconds
azure_monitor.synapse.streaming_event_flowin, outevents/s
azure_monitor.synapse.streaming_input_throughputreceivedbytes/s
azure_monitor.synapse.streaming_input_sourcesreceivedsources/s
azure_monitor.synapse.streaming_event_timinglate, early, out_of_order, backloggedevents/s
azure_monitor.synapse.streaming_watermark_delaydelayseconds
azure_monitor.synapse.streaming_errorsruntime, data_conversion, deserializationerrors/s
azure_monitor.synapse.streaming_resource_utilizationutilizationpercentage

Alerts

The following alerts are available:

Alert nameOn metricDescription
am_synapse_streaming_resource_utilizationazure_monitor.synapse.streaming_resource_utilizationSynapse streaming SU utilization on ${label:resource_name}
am_synapse_streaming_runtime_errorsazure_monitor.synapse.streaming_errorsSynapse streaming runtime errors on ${label:resource_name}
am_synapse_streaming_data_errorsazure_monitor.synapse.streaming_errorsSynapse streaming data errors on ${label:resource_name}
am_synapse_streaming_watermark_delayazure_monitor.synapse.streaming_watermark_delaySynapse streaming watermark delay on ${label:resource_name}
am_synapse_streaming_late_eventsazure_monitor.synapse.streaming_event_timingSynapse streaming late events on ${label:resource_name}
am_synapse_streaming_out_of_order_eventsazure_monitor.synapse.streaming_event_timingSynapse streaming out-of-order events on ${label:resource_name}
am_synapse_streaming_backlogged_eventsazure_monitor.synapse.streaming_event_timingSynapse streaming backlogged events on ${label:resource_name}
am_synapse_link_processing_latencyazure_monitor.synapse.link_processing_latencySynapse Link processing latency on ${label:resource_name}

Troubleshooting

Debug Mode

Important: Debug mode is not supported for data collection jobs created via the UI using the Dyncfg feature.

To troubleshoot issues with the azure_monitor collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn’t working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that’s not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
    
  • Switch to the netdata user.

    sudo -u netdata -s
    
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m azure_monitor
    

    To debug a specific job:

    ./go.d.plugin -d -m azure_monitor -j jobName
    

Getting Logs

If you’re encountering problems with the azure_monitor collector, follow these steps to retrieve logs and identify potential issues:

  • Run the command specific to your system (systemd, non-systemd, or Docker container).
  • Examine the output for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem.

System with systemd

Use the following command to view logs generated since the last Netdata service restart:

journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep azure_monitor

System without systemd

Locate the collector log file, typically at /var/log/netdata/collector.log, and use grep to filter for collector’s name:

grep azure_monitor /var/log/netdata/collector.log

Note: This method shows logs from all restarts. Focus on the latest entries for troubleshooting current issues.

Docker Container

If your Netdata runs in a Docker container named “netdata” (replace if different), use this command:

docker logs netdata 2>&1 | grep azure_monitor

No metrics are collected

Check the following:

  • Permissions – The principal has both Monitoring Reader and Reader roles on the target subscription.
  • Subscription IDs – The subscription_ids list includes the correct subscription(s).
  • Resources are active – Verify in Azure Portal > Metrics that the resources are producing metrics.
  • Collector logs – Check for authentication or API errors:
    # systemd
    journalctl -u netdata --namespace=netdata --grep azure_monitor --since "5 minutes ago"
    # non-systemd
    grep azure_monitor /var/log/netdata/collector.log
    

Missing metrics for some resource types

Profiles are matched by Azure resource type. If a resource type exists but metrics are missing:

  • Check profile mode – Ensure profiles.mode: auto (default), or explicitly list the profile basename under profiles.mode_exact.names or profiles.mode_combined.names.
  • Verify a built-in profile exists – List available profiles:
    ls /usr/lib/netdata/conf.d/go.d/azure_monitor.profiles/default/
    
  • Check resource activity – Some metrics only appear when the resource is actively processing data (e.g., IoT Hub telemetry metrics require devices to be sending messages).
  • New resource types after startup – Runtime discovery does not activate new profiles. Restart the collector if new resource types were added after bootstrap.

Charts have gaps or incomplete data

Azure Monitor metrics have a built-in reporting delay of 1-3 minutes.

  • The collector uses query_offset (default: 180 seconds) as the minimum offset for metric query windows.
  • Slower time-grain batches automatically use a larger effective offset when needed.
  • If metrics are still missing or incomplete, increase query_offset to 240 or 300 seconds.

Authentication errors in sovereign clouds

For Azure Government or Azure China clouds, set the cloud parameter:

  • Azure Government: cloud: government
  • Azure China (21Vianet): cloud: china

Ensure the service principal is registered in the correct cloud tenant.

The observability platform companies need to succeed

Sign up for free

Want a personalised demo of Netdata for your use case?

Book a Demo