Monitoring licenses: how to choose and avoid overpaying
Monitoring licenses: we break down node‑, metric‑ and host‑based models, how to count your infrastructure and how to avoid double billing.

Why teams often overpay for monitoring licenses
Monitoring bills often grow faster than infrastructure. The reason is simple: a license is usually counted not by your actual workload, but by billing units. You add a couple of virtual machines, enable extra integrations, expand the set of collected data, and the number of "units" increases significantly even though the load on the IT team barely changed.
The main trap is that different vendors use the same words to mean different things. A "node" can be a physical server, a VM, a database instance, a network device or even an agent. In a "by hosts" model sometimes each OS is counted, sometimes each unique IP or agent. In a "by metrics" model growth often happens unnoticed: you enabled logs or traces, added more metrics, and the quota ran out.
Before buying, clarify the basic rules even before doing calculations:
- what exactly is counted as a unit (physical server, VM, container, service, agent)
- how transient objects are handled (autoscaling, test stands, short‑lived VMs)
- whether modules are billed separately (logs, APM, network, synthetic checks)
- how high availability is counted (active and standby nodes separately or not)
- whether licenses can be reused during migration or hardware replacement
"Paying twice" in practice means paying for the same entity in two places. For example, you pay for a host (virtual machine) and separately for an "application node" running on that same VM. Or you pay for a server and for the agent on it as two different objects.
A typical scenario: some systems move to virtualization, and monitoring is enabled for the host, guest VMs and applications. If accounting rules are not clarified, standby nodes, test VMs and short‑lived instances start being counted as full units, and the bill grows faster than the hardware estate. Therefore, before procurement — including through a system integrator like GSE.kz — it's useful to lock precise definitions and accounting boundaries in advance.
Licensing models: nodes, hosts and metrics in plain language
You should compare monitoring offers only after you have the same understanding of the billing unit. Different vendors can use the same terms to mean different things, and that makes calculations drift.
Nodes and hosts
A node is usually understood as an object being monitored: a server, switch, storage, virtual machine, sometimes a database or an application. A common problem is that vendors may count any entity you add to the monitoring system as a node.
A host is closer to the "machine" where something runs, but boundaries depend on vendor rules. In one product a "host" = a physical rack server (even if it runs 30 VMs). In another, a "host" = each VM as a separate host.
Simple example: you have 5 physical servers and 80 virtual machines. With physical‑host licensing the bill will be closer to 5. With per‑VM licensing — closer to 80. With "by nodes" it depends on whether network devices, storage, clusters, hypervisors and "logical" services are also counted as nodes.
Metrics
Metric‑based licensing usually means paying for the volume of monitoring data. It's important to clarify what exactly is billed: number of time series, data points, events/alerts or collected indicators per object.
The most common surprise: the same machine becomes "expensive" by metrics if you collect many indicators (CPU per core, disks by partition, detailed application metrics), even if the number of hosts is small.
Ask the vendor for clear definitions and examples tailored to your scenarios: what counts as a node/host in physical, virtualized and container environments; what is not billed (proxies, gateways, standby nodes); how clusters are counted; the exact formula for metrics; and an example calculation for your architecture (for example, "5 physical servers and 80 VMs").
If definitions are vague, the risk of overpaying is almost guaranteed.
Inventory: without it licenses are almost always counted "blind"
To calculate licenses correctly you need a simple inventory: a list of what you will actually monitor and which data you will collect. This is not about a perfect CMDB. It's a clear list of telemetry sources.
It's convenient to start with a map of data sources and note three things for each: how many instances, where they run and what you want to see (availability, performance, logs, transactions). Usually the list includes servers and virtual hosts (including jump hosts and proxies), storage and backup, network, applications and databases, as well as external services and integrations (mail, DNS, external APIs).
Next, fix environments. Production is usually counted separately, but test, dev and DR often get pulled into licenses unexpectedly. If DR is only brought up during an incident, clarify whether it is counted always or only when active.
Separately mark places where billing units are most often confused: clusters, load balancers, proxies, shared entry points. One load balancer may sit in front of 20 applications, and it's important to understand in advance whether that will be counted as 21 objects.
Finally — a short 6–12 month growth forecast. Even a simple growth plan (plus 10 servers, a new database, one more site) helps choose a licensing model that won't become a nasty surprise when you scale.
How to calculate cost in each model
It's better to calculate licenses using a single scheme for all options. That way you see where you pay for real load and where you pay because of accounting peculiarities.
-
Take the contract/price list and copy verbatim what is considered a unit: node, host or metric. Clarify details: are powered‑off objects counted, how VMs are handled, are agents free, what is included in "metrics".
-
Calculate the base volume from the current inventory.
-
Add a margin for growth and pilots as a single number (often 15–30%) so you don't buy exactly to the limit.
-
Separately calculate modules: logging, APM, synthetic checks. They are often licensed under a different scale.
-
Compare the totals across 2–3 scenarios: "as is", "in 6 months", "project/migration".
Example: you have 40 physical servers, 120 virtual machines and 600 workstations. In a "by hosts" model it's critical to know whether VMs are counted separately or only hypervisors. In a "by nodes" model workstations can sharply raise the volume if an agent is installed on every PC. In a "by metrics" model you need to decide in advance how many metrics you will actually store: basic metrics (CPU, RAM, disk) are usually predictable, while application and container metrics grow faster.
The final check for any model is the same: the same object should not be billed twice (for example, a server as a "host" and also as a "node" via a separate module).
Where double charging most often occurs
Double charging usually appears not because of vendor "greed" but because the same part of infrastructure is accounted for in different ways. It's especially noticeable when monitoring is collected in "layers": some by agents, some by API, some by the hypervisor.
The most common case is an agent in the guest OS plus hypervisor‑level accounting. You count VMs as "hosts" (agents inside VMs), and then enable a module that licenses hypervisor nodes or the whole cluster separately. As a result the same load is paid for twice: as a VM and as part of the virtualization platform.
The second typical reason is the same server appearing in different "projects", "tenants" or groups. This happens when environments are separated by departments: infrastructure is added to a shared contour and then the same entity reappears in another contour for reporting.
With metrics the story is similar: identical indicators arrive from different sources. CPU and memory can be obtained from an agent, from the hypervisor and from hardware management. If a model charges by metrics or time series, you pay for duplicates.
Another often underestimated cost layer: storage and retention, storage volume and request counts, alerts. With high polling frequency these items can outgrow the base license.
Signs you are overpaying:
- the same object appears twice under different names (FQDN, IP, inventory number)
- agent and API collection are enabled simultaneously for the same metrics
- different teams create their own spaces and add the same nodes there
- cardinality (tags, labels, dynamic names) grows without infrastructure growth
- polling is too frequent for all metrics, including rarely needed ones
If you build infrastructure on your own hardware and roll out monitoring in parallel, agree in advance what counts as an accounting unit: VM, hypervisor, physical host or metric. One such conversation often saves months of unnecessary payments.
Virtualization and clusters: how not to confuse billing units
Virtualization easily breaks counting logic: one physical server, ten VMs on it, and monitoring may count both. To avoid overpaying, first find out what exactly is considered a licensing unit in your product: hypervisor host, guest VM, CPU socket, agent or a "node" with a set of checks.
Physical hosts and virtual machines
If licensing is by physical hosts, dense virtualization is usually advantageous: many VMs on one hypervisor don't increase the bill until you add new hosts. If licensing is by VM, it's better to remove unnecessary machines (for example, test clones and forgotten templates).
A practical approach is to decide in advance where you need detail. Often it's enough to monitor hypervisors and key VMs (databases, gateways, domain controllers) rather than every auxiliary machine.
Clusters, standby and DR
In clusters confusion begins with standby capacity. If you have a 4+1 scheme (one node for failover), some vendors require licenses for all five, even if the fifth is mostly idle. Others allow not paying for passive nodes, but only if they are truly passive.
Before signing, check:
- whether a passive (failover) node is counted as a full billing unit
- how DR is interpreted: a cold standby without running VMs is often cheaper than a warm one
- whether you need to license the DR environment if metrics and alerts are collected there
- whether a license can be moved when VMs migrate between hosts
Autoscaling adds another risk: short spikes in VMs or containers can increase the "maximum over a period" and raise the bill. Clarify how the maximum is calculated (hour, day, month) and whether brief spikes can be excluded.
Kubernetes and containers: what can sharply increase the bill
Kubernetes easily inflates licenses because the number of objects multiplies compared to the classic "server + agent" scheme. Today you have 10 physical servers, and tomorrow hundreds of pods run on them, each with its own metrics, logs and labels.
The key question is what the vendor counts. Some models count nodes (cluster worker nodes), others count hosts (VMs), others count containers/pods or the volume of metrics. If licensing is tied to metrics or active series, the bill can grow even without more hardware.
Metric cardinality: overspend due to labels
The most frequent cause of cost jumps is cardinality — the number of unique combinations of labels for metrics. Each new combination can be counted as a separate series. Labels like pod, container, request_id, user_id, path, status_code sometimes multiply the number of series by tens of times.
Example: a cluster serves 50 microservices. If each service exports a metric with an endpoint label (100 variants) and pod (20 replicas), you get 50 x 100 x 20 = 100,000 series for just one metric. In a metric‑based model this quickly turns into an unexpected bill.
Service mesh and sidecars: how not to double entities
With a mesh approach (a sidecar in each pod) you begin to monitor not only the application but also the proxy next to it. The number of containers, metric volume and, if logs and traces are enabled, the total data flow increases.
What can be reduced without losing meaning
A few measures usually help: disable metrics not used in dashboards and alerts; restrict "dangerous" labels (especially user and request identifiers); enable tracing sampling; aggregate metrics by service instead of by each pod. And be sure to fix during the pilot what exactly is counted: cluster node, pod/container or metric volume.
Cloud and hybrid: how to count when systems are spread out
In a hybrid setup (your DC + cloud) overpayment most often comes from different billing units. On‑prem you may be used to counting physical hosts or VMs, but in the cloud billing can be per instance, per metric volume or per telemetry traffic. Therefore, agree on one rule for "what counts as a unit" and apply it consistently across locations.
A practical rule: count what you actually observe and what will generate alerts. In the cloud this typically includes not only applications but infrastructure components: cloud VMs and managed services (DB, queues, load balancers), agents on VMs or cluster nodes, ingress and transit points (VPN gateway, proxy, bastion, NAT), collectors and log gateways, test and temporary environments.
There are also "hidden" cost items that don't look like a license: metric and log storage, retention, and outbound traffic when telemetry leaves the cloud to your DC or central monitoring contour.
Double charging almost always happens during migrations. While transfer is in progress, the same functions live in two places and monitoring begins to count both old and new nodes.
To budget without surprises, plan the transition period in advance: estimate 1–3 months of parallel operation; define when old nodes stop being counted (by actual shutdown, not "after migration"); keep a reserve for spikes in metrics and logs during tests; clarify whether a license can be temporarily moved between sites; set a rule that any temporary environment has an owner and a lifetime.
Example calculation for a typical infrastructure
Imagine infrastructure: two sites (primary and backup), 120 virtual machines, 15 physical servers (hypervisors and a few standalone servers for databases and backup) and 30 network devices. The task is to see how the bill changes across models and where it’s easy to pay twice.
If licensing is "by hosts"
Often a "host" means one monitored OS instance or a device with an agent. Then a straight count gives 120 VMs + 15 physical + 30 network = 165 hosts.
Nuance: if some servers are counted as "physical" and some as "VMs", check whether the same physical node isn't counted twice (as a hypervisor host and as the location for VM agents). This is a typical cause of overpayment.
If licensing is "by nodes"
This looks favorable when a node = physical server/hypervisor or network device and VMs are not counted separately. Then the count may be 15 physical + 30 network = 45 nodes (across two sites).
But virtualization often introduces inconsistencies: some vendors call every compute unit a "node", including each VM, or require separate licenses for cluster functions. So it's best to have the "what exactly is a node" formulation in the contract.
If licensing is "by metrics"
Metrics are convenient when there are many objects and the set of indicators is limited and controlled. Suppose you collect on average 80 metrics per VM, 200 per physical server and 60 per network device. Then base volume is 120x80 + 15x200 + 30x60 = 14,400 metrics.
Detailing can easily blow up cost: collection frequency (switching from 60s to 15s increases volume roughly 4x) and labels (which turn one metric into many time series).
Choosing a model is easier when you decide beforehand what's more important: a predictable budget or maximum detail. Nodes/hosts are usually easier to control; metrics give flexibility but require discipline in frequency, labels and data sources.
Typical mistakes when choosing a license
The most common mistake is buying licenses for the "today" picture. Infrastructure grows: new services, environments, separate contours for analytics and security appear. If you don't allow for growth at least 12–18 months, in six months you'll be forced to top up on less favorable terms or to change the model.
The second pain point is unclear accounting rules for DR, test and temporary stands. Some vendors count a backup site as a full copy of production, others make exceptions, and others require separate licenses if active metric collection runs. Without a clear answer to "what exactly counts" you can end up paying twice for the same hardware because it appears in two contours.
Another trap is comparing offers without a single scenario. When one estimate is done "by hosts in prod" and another "by nodes in cluster plus app metrics", the final numbers are not comparable. You need identical assumptions: which data sources, retention depth, integrations, level of detail.
With metric‑based licensing people often forget about cardinality: metrics with labels like user_id, request_id or dynamic names can inflate the bill many times. A similar problem occurs with duplicate collectors: two agents, two exporters or two monitoring contours collect the same data and you pay for the volume twice.
Example: a company licenses monitoring "by hosts" and separately enables an APM module "by metrics". Prod has 120 hosts, test 60, DR 120. If test and DR are not specified, the bill can easily become 300 hosts, and metrics grow due to parallel collection.
A useful practice is to ask for a simple accounting table: what is the billing unit and how it's defined; whether test, DR and temporary stands are included and under what conditions; how clusters, hypervisors and guest VMs are handled; are there cardinality limits; who is responsible for duplicate control and recalculation when changes occur. As an integrator, GSE.kz often sees that such a table saves more than a "discount" in the price list because it removes non‑obvious duplicates.
Checklist before signing and control after launch
Before signing:
- fix the billing unit (node, host, metric, agent) and its exact definition
- check exceptions: test environments, inactive hosts, short‑lived containers, guest VMs
- allow for growth over 6–12 months
- separately agree on DR (cold/warm reserve, standby nodes)
- separate calculations for additional modules (APM, logging, synthetic checks) and data storage
2–4 weeks after deployment check actual consumption:
- is there duplicate collection (agent and SNMP/API for the same object)?
- is the number of metrics growing due to templates and autodiscovery?
- are tags/labels and dynamic names inflating the bill?
- are there alerts and limits for license consumption?
- are rules fixed: what is always monitored and what is enabled on demand?
If monitoring is planned on‑prem, estimate resources for storage and processing of data and server infrastructure in advance. In projects where local production and on‑site support matter, rack‑level servers like GSE S200 and integration services from GSE.kz are often considered to set up observability contours and license accounting rules correctly from the start.
FAQ
Where should I start to avoid mistakes with monitoring licenses?
Start with one thing: put in writing exactly what counts as a billing unit in your product. Different vendors may mean different things by "host", "node" and "metric", and that can make the same environment many times more expensive in calculations.
Why does the monitoring bill grow faster than the infrastructure?
Most often you pay not for the team's work but for accounting units: new VMs, containers, integrations, logs or traces cause the bill to grow automatically. Another reason is vague definitions when the same object begins to be counted twice (for example, a "host" and an "application node" on the same machine).
What is "double charging" in monitoring and how does it happen?
It's when the same entity is included in licensing twice. A typical example: you count a VM as a host via an agent, and then enable a virtualization module that additionally charges for hypervisors or the cluster, while some metrics are duplicated.
How to decide which is better: host‑based or node‑based licensing?
Choose the option where the billing unit is closest to what you actually want to control and what will trigger alerts. Physical‑host licensing is often more predictable with dense virtualization; per‑VM licensing is convenient if you need detail for each guest; "by nodes" requires especially clear definition of what a node is for your vendor.
What to pay attention to if licensing is "by metrics"?
Immediately clarify the formula: what is charged — time series, data points, events or "metrics per object". Then limit the collected indicators to those actually used and check cardinality in advance so that one metric with labels doesn't turn into thousands of series.
How do autoscaling and temporary VMs affect licenses?
Autoscaling and short‑lived environments: ephemeral VMs, pods and test stands may be counted as full units, especially if the vendor takes the "maximum over a period". Agree in advance how the peak is calculated and whether short‑lived objects can be excluded.
How not to overpay for DR and standby nodes in a cluster?
Clarify whether a passive (standby) node is counted and how DR is treated: a cold standby without active telemetry collection is usually cheaper than a warm one. It's important to agree when the reserve stops being accounted for and what happens during migrations when systems run in parallel on both sites.
What in Kubernetes most often explodes monitoring costs?
The most common cost driver is metric cardinality due to labels: combinations of labels create many time series. Logs and traces, especially with service mesh and sidecars, also increase volume, so it's useful to limit "dangerous" labels and enable reasonable tracing sampling.
Why is inventory needed before buying monitoring?
Do a simple inventory of what will actually be monitored: which objects, in which environments, and which types of data you need (metrics, logs, APM). Without this, calculations are done "blind" and test, dev, proxies, jump hosts and temporary stands may end up in the license unexpectedly.
What questions to ask the vendor or integrator before signing a contract?
Ask the vendor for an accounting table with examples for your architecture: what is a billing unit, how are powered‑off objects, test and DR counted, how clusters and migrations are handled, and which modules are billed separately. If implementation is through an integrator like GSE.kz, record these definitions in project documentation and check actual consumption 2–4 weeks after launch.