Pricing
This topic includes information about pricing for the IBM Cloud Monitoring. You can also review the sample scenarios to learn more about the costs of a Monitoring instance.
IBM Cloud Monitoring pricing is based on hourly consumption. You are billed monthly based on the number of connected agents and the agent deployment mode, the number of custom metric time series, extra number of containers per agent and additional API calls above 1M. There are two agent modes: agent for orchestrated environments, and agent for non-orchestrated environments.
All other IBM Cloud Monitoring functionality, including dashboards, panels, and alerts, are included in the base service price and pricing does not vary.
The costs that are provided in this topic are guidelines and do not represent actual costs. They represent a starting point for estimates of costs that would be incurred in environments with a similar configuration. Actual costs can vary by geography. The prices that are used are based on actual prices as of January 2024 and it is possible they can change.
Before you begin
Read this section to understand concepts and costs that are associated with the Monitoring service.
Consumption charges
In your monthly usage charges, consumption is measured hourly and your bill breaks down into the following concepts:
Metric | Description |
---|---|
NODE_HOURS |
Tracks the number of agents that are running in an agent for orchestrated environments.
This does not include the agents tracked by For example, if you have 1 agent connected continuously, that agent will be billed 720 |
TIME_SERIES_HOURS |
Reflects the total number of custom metrics time series you are sending to IBM Cloud Monitoring during a 1 hour time window. This is an aggregation of all time series from agents and other metrics sources. Platform metrics, Prometheus
remote write, metric streaming and custom metrics collected with the agent (Prometheus, JMX or StatsD) contribute to TIME_SERIES_HOURS .
Only custom metrics are counted for |
LITE_NODE_HOURS |
Tracks the number of agents that are monitoring non-containerized infrastructures such as VMs or bare metal servers, and are using the agent for non-orchestrated environments. |
API_CALL_HOURS |
Represents how many calls are being made to the API per month. All instances include 1M API calls. |
CONTAINER_HOURS |
Represents how many containers are monitored across all hosts that are being monitored by agents. |
To monitor how the IBM Cloud Monitoring service is used and the costs associated to its usage, see Viewing your usage.
All metrics that start with sysdig_*
and kube_*
are collected automatically by an agent and are included in the agent price.
Service plans
The following service plans are available when you provision an instance of the IBM Cloud Monitoring service:
Lite plan
You can provision a Monitoring instance with the Lite
service plan to try out the Monitoring service for free for 30 days.
After 30 days you must upgrade the instance to a graduated tier plan to continue working with the Monitoring service or delete it.
Graduated tier plan
The graduated tier service plan is billed based on the number of hosts that you monitor, the agent mode that is configured per host, the number of containers, the number of API calls, and the number of time series collected.
The following table outlines the cost per host by agent mode and what is included in the price:
Agent mode | Cost per host | Default infrastructure metrics (CPU, memory, disk, and network) | Includes up to 1K time-series (Prometheus, JMX, appchecks, StatsD) | Monitoring of 50 containers | 1M API calls |
---|---|---|---|---|---|
Agent for non-orchestrated environments | 10.07 USD | ||||
Agent for orchestrated environments | 37 USD |
For hosts running an agent for non-orchestrated environments or for hosts running an agent for orchestrated environments that exceed the base tier allotment for Prometheus, JMX, appchecks, and Statsd metrics, additional prices apply:
-
Time series are priced according to the following tiers:
-
Tier 1: The price per time-series is 0.09 USD for up to 100K time-series per month.
-
Tier 2: The price per time-series is 0.05 USD for 100K to 1M time-series per month.
-
Tier 3: The price per time-series is 0.03 USD for 1M to 10M time-series per month.
-
Tier 4: The price per time-series is 0.02 USD for more than 10M time-series per month.
-
-
Containers are priced as follows: 5.38 USD per 10 containers per month.
-
API calls are priced as follows: The price for API calls is 0.01 USD per 1000 API calls per month.
Each measure is priced independently when there is an overage.
Platform metrics are an additional source of time-series. They are priced based on the tiers.
A host can be a container, a virtual machine, a bare metal, or any metrics source where you install a monitoring agent.
Data is collected and retained per the standard guidelines across all plans. For more information see data collection and data retention.
Prometheus remote write cost is based on metric ingestion. The price is calculated the same as for metrics collected using the agent with IBM Cloud Monitoring.
Calculating time series pricing units
Pricing units are comprised of time-series.
A time-series is a series of data-points ordered by time. It is a unique combination of a metric name and label key-value pairs. For example: website_failedRequest |region='Asia', customer_ID='abc'
.
The same metric name can produce multiple time-series when the metric and label values differ.
For example, the following are 4 unique time series:
metric_name{datacenter=”dc-1”, zone=”zone1”} 23
metric_name{datacenter=”dc-2”, zone=”zone1”} 34
metric_name{datacenter=”dc-3”, zone=”zone2”} 43
metric_name{datacenter=”dc-4”, zone=”zone2”} 23
A data-point is the value generated for a time-series at a given point in time. For example: [timestamp]|website_failedRequests:20|region='Asia', customer_ID='abc'
.
The number of time-series you are ingesting from the different sources are measured hourly and contribute to TIME_SERIES_HOURS
pricing concept.
Checking the metrics that are collected per agent
In IBM Cloud Monitoring, you can monitor your monitoring agent by using the dashboard template monitoring agent Health & Status that is available in the dashboard templates available out-of-the-box. In this dashboard, you can see the number of monitoring agents that are deployed and connected to the instance, check the version of the monitoring agents, and find out how many metrics per host the agent is collecting.
In this dashboard, the panel TimeSeries Usage provides the number of time-series that are collected from each category (Prometheus, JMX, StatsD, Prometheus Remote Write and Platform Metrics). This panel uses the query sum(sysdig_ts_usage)by(metric_category)
that you can also run in PromQL Explorer, in your dashboards or for alerts.
In case you need to investigate which applications or services are contributing more to the Prometheus time-series, you can use the metric scrape_series_added
. This metric represents the number of time series scraped and ingested
from the monitoring agent via Prometheus and includes several labels to facilitate the analysis such as kube_cluster_name
, kube_namespace_name
, kube_workload_name
or container_name
.
The following query represents the number of time series ingested from the monitoring agent via Prometheus grouped by cluster, namespace, workloads and container so you can identify those applications that are contributing more time series:
sum(scrape_series_added)by(kube_cluster_name, kube_namespace_name, kube_workload_name, container_name)
Pricing considerations when monitoring Windows systems
Windows monitoring is charged by the number of time-series that are generated. The number of time-series depends on the number of collectors and resources your Windows system has. The following table estimates the number of time-series generated when the default collectors are installed on a Windows system.
Collector | Description | Estimate number of Time Series |
---|---|---|
cpu |
CPU Usage | 15 time-series per vCPU |
cs |
"Computer System" metrics (system properties, number of CPUs/total memory) | 3 |
logical_disk |
Logical disks, disk I/O | 14 time-series per disk partition |
os |
OS metrics (memory, processes, users) | 13 |
system |
System calls | 6 |
net |
Network interface I/O | 12 time-series per network adapter |
For example, if you have one Windows server with 2 vCPUs, 2 logical disks and 1 network adapter you can anticipate 92 time-series.
15 * 2 + 3 + 14 * 2 + 13 + 6 + 12 * 1 = 92
With the cost per time-series of 0.09 USD for each time-series you would expect your cost to be 8.28 USD per month.
92 * 0.09 USD = 8.28 USD
Other collectors that generate time-series include:
Collector | Description | Estimate number of Time Series |
---|---|---|
mssql |
SQL Server Performance Objects metrics | approximately 500 time-series per instance and approximately 100 time-series per database |
memory |
Memory usage metrics | 32 |
ad |
Active Directory Domain Services | 14 time-series per disk partition |
process |
Per-process metrics | 21 time-series per process. (This metric has high cardinality. One process can have subprocesses with multiple process_id values.) You can filter processes |
service |
Service state metrics | 26 time-series per service. (This metric has high cardinality. Windows has a lot of services by default.) You can filter services |
Billing samples
Billing sample 1: Basic usage
Consider the following example where you have the following configuration:
- 1 Kubernetes cluster with 3 worker nodes running agents for orchestrated environments
- Host-1 generates 1200 custom metrics time-series
- Host-2 generates 1000 custom metrics time-series
- Host-3 generates 1500 custom metrics time-series
The billing calculation for the month is calculated as follows:
-
Base cost per host
The base price per host per month is 37 USD which includes up to 1K time-series (includes Prometheus, JMX, appchecks, and StatsD metrics).
For 3 hosts, the total monthly base cost is 111 USD.
3 * 37 USD = 111 USD
-
Additional time-series cost
Each host has a 1000 time-series allotment that are included in the base cost per host of 37 USD. If you have 3 hosts, you have 3000 time-series included. The remaining time-series are priced based on the tiers. The following shows the calculation of the 700 additional time-series.
1200 + 1000 + 1500 - ( 3*1000 ) = 700
The result from adding the time series per host minus the allotment defines the tier that is applied for pricing.
700 additional time-series corresponds to tier 1. The price per host is 0.09 USD for up to 100K time-series per month.
700 * 0.09 USD = 63 USD
The total cost for additional time-series is 63 USD.
The total monitoring cost per month is 174 USD.
111 USD + 63 USD = 174 USD
Billing sample 2: Unused time-series allotment
Consider the following example where you have the following configuration:
- 2 Kubernetes or OpenShift clusters with a total of 5 worker nodes running agents for orchestrated environments
- Host-1 generates 2000 custom metrics time-series
- Host-2 generates 100 custom metrics time-series
- Host-3 generates 500 custom metrics time-series
- Host-4 generates 100 custom metrics time-series
- Host-5 generates 200 custom metrics time-series
The billing calculation for the month is calculated as follows:
-
Base cost per host
The price per host per month is 37 USD which includes up to 1K time-series (includes Prometheus, JMX, appchecks, and StatsD metrics) and 50 containers.
For 5 hosts, the total base cost is 185 USD.
5 * 37 USD = 185 USD
-
Additional time-series cost
Each host has a 1000 time-series allotment. The remaining time-series are priced based on the tiers.
2000 + 100 + 500 + 100 + 200 - ( 5*1000 ) = -1100
The result from adding the time series per host minus the allotment defines the tier that is applied for pricing.
You have 1100 more time-series available per your configuration.
The total cost for additional time-series is 0 USD.
The total monitoring cost per month is 187 USD.
187 USD + 0 USD + 0 USD + 0 USD = 187 USD
Billing sample 3: Platform metrics only
Consider the following example where you have the following configuration for platform metrics:
- Event-stream generates 50 time-series per month
- IBM Cloud Databases generates 60 time-series per month
- 30k API calls
The billing calculation for the month is calculated as follows:
-
Additional time-series cost
Since there are no agents running in this instance, there is no time-series allotment. All platform metrics time-series are priced based on the tiers. The following shows the total time-series for the configuration.
50 + 60 = 110
For tier 1, the price per time-series is 0.09 USD (Tier 1) for up to 100K time-series per month.
110 * 0.09 USD = 9.90 USD
-
Additional API calls
1M API calls are included with the instance each month.
The price for additional API calls is 0.01 USD per 1000 API calls.
0.03M - 1M = -970k 0 * 0.01 USD/1k = 0 USD
The total cost for additional API calls is 0 USD.
The total monitoring cost per month is 9.90 USD.
9.90 USD + 0 USD = 9.90 USD
Since there were no agents running in this example, the base price and additional containers costs were not applicable to this example.
Billing sample 4: Host allotment and platform metrics combined
The following configuration demonstrates billing for a combination of host time-series allotment as well as platform metrics.
Consider the following example where you have the following configuration:
- 3 hosts running agents for orchestrated environments
- Host-1 generates 1000 custom metrics time-series
- Host-2 generates 850 custom metrics time-series
- Host-3 generates 800 custom metrics time-series
- Cloud Foundry generates 200 time-series per month
- Event Streams generates 200 time-series per month
- IBM Cloud Databases generates 100 time-series per month
- 100 containers
- 300k API calls
The billing calculation for the month would look like:
-
Base cost per host
The price per host per month is 37 USD which includes up to 1K time-series (includes Prometheus, JMX, appchecks, and StatsD metrics) and 50 containers.
For 3 hosts, the total cost is 111 USD.
3 * 37 USD = 111 USD
-
Additional time-series cost
Each host has a 1000 time-series allotment. The remaining time-series are priced based on the tiers. In this case, 150 time-series.
1000 + 850 + 800 + 200 + 200 + 100 - ( 3*1000 ) = 150
The result from adding the time series per host, plus the platform metrics minus the allotment defines the tier that is applied for pricing.
Notice that since the Base cost per host time-series allotment was not completely used by the agents, 350 of the 500 platform metrics time-series were covered by the base tier. Only the additional 150 platform metrics time-series (
500 - 350 = 150
)have an additional cost.150 * 0.09 USD (Tier-1) = 13.50 USD
The total cost for time-series is 13.50 USD.
The total monitoring cost per month is 124.50 USD.
111 USD + 13.50 USD = 124.50 USD
Billing sample 5: Basic usage for Virtual Machine or Bare Metal servers running an agent for non-orchestrated environments
Consider the following example where you have the following configuration:
- 3 hosts running an agent for non-orchestrated environments
- Host-1 generates 50 custom metrics time-series
- Host-2 generates 100 custom metrics time-series
- Host-3 generates 100 custom metrics time-series
The billing calculation for the month is calculated as follows:
-
Base cost per host
The base price per host per month is 10.07 USD.
For 3 hosts, the total base cost is 30.21 USD.
3 * 10.07 USD = 30.21 USD
-
Time-series cost
Time-series are priced based on the tiers. In this scenario you require 250 additional time-series.
50 + 100 + 100 = 250
The result from adding the time series per host defines the tier that is applied for pricing.
250 time-series corresponds to tier 1. The price per host is 0.09 USD for up to 100K time-series per month.
250 * 0.09 USD = 22.50 USD
The total cost for additional time-series is 22.50 USD.
The total monitoring cost per month is 52.71 USD.
30.21 USD + 22.50 USD = 52.71 USD