Try it free

Forecast costs for new resources

  • Latest Dynatrace
  • Tutorial
  • 5-min read
  • Published May 26, 2026

When you're planning to onboard new hosts, you want a cost estimate before the spend shows up in your bill. This tutorial shows you how to derive an average GiB-hours-per-host figure from your existing fleet and use it to project the incremental cost at daily, monthly, and annual cadence.

All USD figures in this tutorial use the public list price of $1,000 per 100,000 GiB-hours (March 2026). Actual costs depend on your negotiated DPS contract. Use these queries for directional analysis and relative comparisons, not invoice reconciliation.

Who is this for?

This tutorial is for FinOps practitioners, platform engineers, and anyone responsible for capacity planning who needs a quick cost estimate before a new deployment goes live.

What will you learn?

In this tutorial, you'll learn how to:

  • Check Account Management for simple scale-up estimates.
  • Derive an average GiB-hours-per-host figure from your existing Full-Stack Monitoring fleet.
  • Project the incremental daily, monthly, and annual cost for a planned number of new hosts.

Before you begin

Prerequisites

  • Access to Account Management with Subscription viewer permissions.
  • DQL query permissions on the dt.system.events table in at least one environment.
  • A known or estimated number of new hosts you plan to onboard.

Prior knowledge

  • Basic familiarity with DQL billing events. For more information, see Where to view your costs if you're new to dt.system.events.

Forecast DPS costs for new resources

1. Check Account Management first

For simple cases (for example, you want to roughly double your current Full-Stack Monitoring footprint), Account Management may already give you enough to work with.

  1. Go to Subscription > Overview > Cost and usage details, and find your current Full-Stack Monitoring spend.
  2. Apply a simple multiplier based on how much you're scaling. For example, if you're adding 20% more hosts to an existing fleet, your Full-Stack Monitoring cost will increase by approximately 20%.

If you need a more precise estimate (for example, because the new hosts are a different size than your current fleet, or you need a number to put in a budget request), continue to the next step.

2. Estimate incremental cost for new hosts

Replace 200 on the fieldsAdd new_hosts line with the number of hosts you plan to onboard.

fetch dt.system.events, from: -30d
| filter event.kind == "BILLING_USAGE_EVENT"
| filter event.type == "Full-Stack Monitoring"
| dedup event.id
| summarize total_gib_hours = sum(billed_gibibyte_hours), by: {dt.entity.host}
| summarize
current_host_count = count(),
avg_daily_gib_per_host = avg(total_gib_hours) / 30.0
| fieldsAdd new_hosts = 200
| fieldsAdd incremental_daily_gib_hours = new_hosts * avg_daily_gib_per_host
| fieldsAdd incremental_daily_cost_usd = incremental_daily_gib_hours / 100000.0 * 1000
| fieldsAdd incremental_monthly_cost_usd = incremental_daily_cost_usd * 30
| fieldsAdd incremental_annual_cost_usd = incremental_daily_cost_usd * 365
| fields current_host_count, avg_daily_gib_per_host, new_hosts,
incremental_daily_gib_hours, incremental_daily_cost_usd,
incremental_monthly_cost_usd, incremental_annual_cost_usd

The result is a single row: the first three fields describe your existing fleet, and the latter three are the incremental cost estimate.

Fleet baseline:

current_host_countavg_daily_gib_per_hostnew_hosts

1,240

1.61

200

Incremental cost estimate:

incremental_daily_cost_usdincremental_monthly_cost_usdincremental_annual_cost_usd

$3.22

$96.50

$1,174.30

incremental_annual_cost_usd is your planning number. Add it to your current Full-Stack Monitoring run rate (which you found in Calculate your daily burn rate) to get the combined projected annual cost.

avg_daily_gib_per_host is your fleet average. If the new hosts are a different profile (for example, large database servers instead of small app pods), the estimate will be off. In that case, add a tag filter before the first summarize to scope the average to hosts of the same type:

| filter dt.entity.host.tags contains "type:database"

| dedup event.id is mandatory in every billing query. Dynatrace refreshes metering records when correcting measurements. Without it, the same consumption period is counted multiple times and figures appear 10–30% higher than they are.

Congratulations!

You now have a repeatable process for estimating the cost of new infrastructure before it lands in your bill. Specifically, you can:

  • Use Account Management for quick scale-up estimates.
  • Derive a per-host average from your existing fleet with a single DQL query.
  • Project the incremental cost at daily, monthly, and annual cadence.
  • Scope the estimate to a specific host profile using tag filters.

Next steps

  • Add the incremental annual cost to your run-rate projection. For more information, see Forecast costs with run-rate projections.
  • If your fleet is already showing unexpected growth, investigate the source. For more information, see Trace a cost spike to its root cause.
  • Set a capability-scoped budget alert to be notified when your new hosts push costs past a threshold. For more information, see Budget alerts.

Related topics

  • Use the built-in forecast
  • Forecast costs with run-rate projections
  • Budget alerts
  • Trace a cost spike to its root cause
Related tags
Dynatrace Platform