Cost Allocation is exclusively available for Dynatrace SaaS environments with a Dynatrace Platform Subscription (DPS) licensing agreement that was signed after April 2023.
Dynatrace Cost Allocation lets you allocate Dynatrace DPS usage to customer-defined cost centers, products, or both. This gives you a transparent and detailed account of each cost center’s Dynatrace expenditures, helping your organization optimize its budgets.
You can customize the use of these fields to fit your company's organizational framework:
Costs can be allocated to customer-defined cost centers, products, or both.
Data is collected from all OneAgent deployments and Kubernetes pods (whether Full-Stack Monitoring or application-only monitoring) where Cost Allocation has been configured.
Data can be
The figure below shows how different components in a given Dynatrace environment can be assigned to different cost centers and products.
The parameter that assigns a host to a specific cost center or product.
Sometimes used as a synonym for "host tag."
A specific cost center within your organization. This is defined according to your organizational structure. Costs in Dynatrace can be allocated to specific cost centers.
A single product, or group of products, offered by your organization. Costs in Dynatrace can be allocated to specific products.
In order to access Cost Allocation data, a user needs certain permissions as described in the table below.
Cost Allocation is supported where OneAgent is deployed, whether on a physical host, Kubernetes node, Kubernets pod, or cloud server.
You can use Cost Allocation with the following Dynatrace capabilities:
Host Monitoring:
Application Security:
We're continuously extending Cost Allocation support to cover additional Dynatrace capabilities. For complete details regarding your licensing agreement, please contact your Dynatrace account manager. For more details about specific capabilities, see Monitoring consumption per capability.
This section describes how to set up Cost Allocation in your Dynatrace environment.
required
Cost Allocation is configured at the host level. One host can be allocated to a maximum of one cost center and one product. For tips on how to allocate shared costs, where a single host is used by multiple cost centers or products, see Handling shared costs.
Cost Allocation is "opt-in"; you need to explicitly define the cost centers and products to which costs are allocated. Up to 250 cost centers and 250 products can be defined.
The definitions are managed in two separate allow lists, which you can configure either via Account Management or via the Dynatrace API:
Changes to the allow lists are not applied retroactively. If you remove a cost center or product from its allow list, historical reports will still show the usage and costs associated with the value before it was removed.
To find the two allow lists, go to Account Management > Subscription > Cost management. The allow lists are visible in the Cost center allow list and Product allow list sections.
To add a new cost center or product, select Cost center and follow the steps.
required
Use host tags to configure Cost Allocation on the host. You can add, modify, or remove host tags. This section describes each of the different ways that you can configure Cost Allocation.
OneAgent version 1.291+
When you install OneAgent on a new host, you can use tags to add this host to an existing host group.
In the Install OneAgent page, go to Optional parameters > Tags.
Select Add tag.
Enter the Key and Value as appropriate:
dt.cost.costcenter
or dt.cost.product
.Select Add.
Continue to install OneAgent.
Past tracked consumption cannot be changed or reassigned. If you modify host tags, all existing data about already-recorded costs (related to that host tag and that host) will be lost.
Before you reassign existing host tags, you might want to export the existing data via the Dynatrace Platform Subscription API - GET cost allocation.
Before changing the values for dt.cost.costcenter
or dt.cost.product
, add or remove the target values in the Cost Allocation allow lists.
This will ensure that no usage values are unassigned during the transition.
Note that updates to the allow list will take a couple of minutes to go into effect.
To modify existing tags, follow the steps in Add host tags. The new values will overwrite the existing values.
Removing host tags is irreversible. If you modify host tags, all existing data about already-recorded costs (related to that host tag and that host) will be lost.
The dt.cost.costcenter
and dt.cost.product
values can be removed from the OneAgent configuration whenever necessary.
Run the following command to remove Cost Allocation host tags.
First, identify the cost center or product from which the host should be removed. You've already defined cost centers and hosts in Identify allowed cost centers and products.
Execute oneagentctl
with the --remove-host-tag
option.
This option has two forms:
--remove-host-tag=dt.cost.costcenter=<cost-center>
--remove-host-tag=dt.cost.product=<product>
Verify that host tags are removed.
Use the --get-host-tags
and --get-host-properties
commands and review the output.
Restart OneAgent with the --restart-service
command.
optional
This section describes how to set cost center and product attributes for Kubernetes deployments in host-based and container-based deployments.
The Kubernetes-specific usage of dt.cost.costcenter
and dt.cost.product
is described in Security context and Cost Allocation.
Pass the configuration via the args
parameter in the DynaKube parameters for Dynatrace Operator.
The code block provides a snippet from the configuration file to show the usage of --set-host-tag=dt.cost.costcenter=<cost-center>
and --set-host-tag=dt.cost.product=<product>
.
spec:apiUrl: https://<environment-id>.live.dynatrace.com/apioneAgent:cloudNativeFullStack:args:- --set-host-tag=dt.cost.costcenter=it_services- --set-host-tag=dt.cost.product=fin_app
Use Kubernetes Metadata Enrichment to configure Cost Allocation for Kubernetes application-only monitoring environments.
Kubernetes Metadata Enrichment settings do not apply to Kubernetes clusters that have a cluster-specific rule set.
To configure the data enrichment on the Kubernetes cluster level, go to Kubernetes > [Kubernetes Cluster] > Settings > Enrichment rules.
To add or modify global enrichment settings:
Go to Settings > Cloud and virtualization > Kubernetes enrichment rules.
Select Add rule.
In the Metadata type dropdown, select Annotation
or Label
.
In the Source field, enter the appropriate annotation or label key. Follow Kubernetes conventions as described below.
source
must follow the pattern (prefix/)?name
and be 75 characters or fewer.prefix
must follow the pattern [a-z0-9]([-a-z0-9]*[a-z0-9])?(.[a-z0-9]([-a-z0-9]*[a-z0-9])?)
.name
must follow the pattern (\[A-Za-z0-9]\[-A-Za-z0-9\_.]\*)?\[A-Za-z0-9]
and be 63 characters or fewer.Select the Target, whether dt.cost.costcenter
or dt.cost.product
.
Select Save changes.
Wait for up to 45 minutes and restart your pod(s).
To remove global enrichment settings:
This section provides best practices for setting up Cost Allocation.
How you name your cost centers and products is up to you. We recommend
Values can be provided as text or numerical strings.
If you have both, we recommend to use both the text-based name and the ID, separated by a comma (,
) or slash (/
).
This lets you separate the name and ID after a data export.
Examples:
dt.cost.costcenter=BusinessUnit1/Bu1
dt.cost.product=AppName/AppID
dt.cost.costcenter=BusinessUnit2/Bu2
dt.cost.product=AppName/AppID
dt.cost.costcenter=BusinessUnit2/Bu2
dt.cost.product=AppName/AppID
If your host shares services, Cost Allocation doesn't support costs billed to separate cost centers or products. However, you can create a cost center or product for that host and then allocate its costs outside of Dynatrace.
dt.cost.product="Webpage_MobileApp"
for a host that should be allocated to both the webpage product and the mobile app product.DPS licensing consumption and related costs are based on 15-minute increments. Reports are generated daily, so you won't be able to see usage accrued in the previous <24 hours.
To analyze Cost Allocation data, you can
Cost Allocation data is stored in Dynatrace Grail as billing usage events. These events can be analyzed
Visit the Dynatrace DPS Cost Allocation community to see how other Dynatracers analyze their Cost Allocation data.
To analyze Cost Allocation data, you can use the pre-made dashboard. The dashboard is available
By default in the built-in environment.
As a JSON file, which you can upload to any other Dynatrace environment.
Copy the JSON contents from the code block below and save them to a file on your computer.
{"version": 16,"variables": [{"key": "Capability","type": "csv","visible": true,"input": "Full-Stack Monitoring,Infrastructure Monitoring,Foundation & Discovery,Runtime Vulnerability Analytics,Runtime Application Protection","multiple": false,"defaultValue": "Full-Stack Monitoring"},{"key": "Ratecard","type": "query","visible": false,"input": "data record(Ratecard = 0.01) // default is \"Full-Stack Monitoring\", 0.01 \n| fieldsAdd Ratecard = if($Capability == \"Full-Stack Monitoring\", toDouble($Price_Fullstack_Monitoring))\n| fieldsAdd Ratecard = if($Capability == \"Infrastructure Monitoring\", toDouble($Price_Infrastructure_Monitoring), else:Ratecard)\n| fieldsAdd Ratecard = if($Capability == \"Foundation & Discovery\", toDouble($Price_Foundation_Discovery), else:Ratecard)\n| fieldsAdd Ratecard = if($Capability == \"Runtime Vulnerability Analytics\", toDouble($Price_Runtime_Vulnerability_Analytics)/1024/1024, else:Ratecard)\n| fieldsAdd Ratecard = if($Capability == \"Runtime Application Protection\", toDouble($Price_Application_Protection)/1024/1024, else:Ratecard)\n| fields Ratecard","multiple": false},{"key": "Price_Fullstack_Monitoring","type": "text","visible": true,"defaultValue": "0.01"},{"key": "Price_Infrastructure_Monitoring","type": "text","visible": true,"defaultValue": "1"},{"key": "Price_Foundation_Discovery","type": "text","visible": true,"defaultValue": "0.00225"},{"key": "Price_Runtime_Vulnerability_Analytics","type": "text","visible": true,"defaultValue": "0.00225"},{"key": "Price_Application_Protection","type": "text","visible": true,"defaultValue": "0.00225"}],"tiles": {"0": {"type": "data","title": "Overview per product","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.product}\n|fieldsAdd `cost USD` = `usage` * toDouble($Ratecard)\n| sort `cost USD` desc\n| fieldsAdd dt.cost.product = if(isNull(dt.cost.product), \"unallocated\", else:dt.cost.product)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "table","visualizationSettings": {"thresholds": [{"id": 1,"field": "costs","title": "","isEnabled": true,"rules": [{"id": 0,"color": {"Default": "var(--dt-colors-charts-categorical-color-09-default, #649438)"},"comparator": "≤","label": "","value": 220},{"id": 1,"color": {"Default": "var(--dt-colors-charts-categorical-color-14-default, #d56b1a)"},"comparator": ">","label": "","value": 220},{"id": 2,"color": {"Default": "var(--dt-colors-charts-categorical-color-12-default, #cd3741)"},"comparator": "≥","label": "","value": 255}]}],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.product"],"categoryAxisLabel": "dt.cost.product","valueAxis": ["usage", "cost USD"],"valueAxisLabel": "usage,cost USD","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "dt.cost.product","prefixIcon": "","recordField": "dt.cost.product","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [["gibibyte"]],"lineWrapIds": [["count"]],"columnWidths": {"[\"dt.cost.product\"]": 196.96875,"[\"usage\"]": 91.11250305175781},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "usage" },"legend": "auto","displayedFields": ["dt.cost.product"],"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "usage", "rangeAxis": "" },{ "valueAxis": "cost USD", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.product"]},"unitsOverrides": [{"identifier": "costs","unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 2,"suffix": "USD","delimiter": true,"added": 1712838776597},{"identifier": null,"unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 2,"suffix": "USD","delimiter": false,"added": 1720435664184}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"1": {"type": "data","title": "Overview per costcenter","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.costcenter}\n| sort dt.cost.costcenter\n| fieldsAdd `cost USD` = `usage` * toDouble($Ratecard)\n| sort `cost USD` desc\n| fieldsAdd dt.cost.costcenter = if(isNull(dt.cost.costcenter), \"unallocated\", else:dt.cost.costcenter)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "table","visualizationSettings": {"thresholds": [{"id": 1,"field": "costs","title": "","isEnabled": true,"rules": [{"id": 0,"color": {"Default": "var(--dt-colors-charts-categorical-color-09-default, #649438)"},"comparator": "≤","label": "","value": 5},{"id": 1,"color": {"Default": "var(--dt-colors-charts-categorical-color-14-default, #d56b1a)"},"comparator": ">","label": "","value": 5},{"id": 2,"color": {"Default": "var(--dt-colors-charts-categorical-color-12-default, #cd3741)"},"comparator": ">","label": "","value": 9}]}],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.costcenter"],"categoryAxisLabel": "dt.cost.costcenter","valueAxis": ["usage", "cost USD"],"valueAxisLabel": "usage,cost USD","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "dt.cost.product","prefixIcon": "","recordField": "dt.cost.product","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [["gibibyte"]],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "usage" },"legend": "auto","displayedFields": ["dt.cost.costcenter"],"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "usage", "rangeAxis": "" },{ "valueAxis": "cost USD", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.costcenter"]},"unitsOverrides": [{"identifier": "costs","unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 2,"suffix": "$","delimiter": true,"added": 1712838812292}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"2": {"type": "data","title": "Top Costcenter","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.costcenter=if(isNull(dt.cost.costcenter), \"unallocated\", else:dt.cost.costcenter)}\n| sort `usage` desc\n| limit 1\n| fieldsKeep dt.cost.costcenter\n| fieldsRename `top costcenter`= dt.cost.costcenter","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "singleValue","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxisLabel": "top costcenter","valueAxisLabel": "","categoryAxis": ["top costcenter"],"valueAxis": [],"tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "top costcenter","prefixIcon": "","recordField": "top costcenter","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": {},"legend": "auto","displayedFields": [],"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [],"variant": "single","displayedFields": ["top costcenter"]}},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"5": {"type": "data","title": "Top Product","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.product=if(isNull(dt.cost.product), \"unallocated\", else:dt.cost.product)}\n| sort `usage` desc\n| limit 1\n| fieldsKeep dt.cost.product\n| fieldsRename `top product`= dt.cost.product","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "singleValue","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxisLabel": "top product","valueAxisLabel": "","categoryAxis": ["top product"],"valueAxis": [],"tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "top product","prefixIcon": "","recordField": "top product","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": {},"displayedFields": [],"legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [],"variant": "single","displayedFields": ["top product"]}},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"6": {"type": "data","title": "Top Costcenter","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.costcenter}\n| sort `usage` desc\n| limit 1\n| fieldsAdd `top costcenter`= `usage` * toDouble($Ratecard)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "singleValue","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.costcenter"],"categoryAxisLabel": "dt.cost.costcenter","valueAxis": ["usage", "top costcenter"],"valueAxisLabel": "usage,top costcenter","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "top costcenter","prefixIcon": "","recordField": "top costcenter","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "usage" },"displayedFields": ["dt.cost.costcenter"],"legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "usage", "rangeAxis": "" },{ "valueAxis": "top costcenter", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.costcenter"]},"unitsOverrides": [{"identifier": "top costcenter","unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 2,"suffix": "$","delimiter": true,"added": 1712838491820}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"7": {"type": "data","title": "Top Product","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| summarize sum(usage), alias: `usage`, by: { dt.cost.product}\n| sort `usage` desc\n| limit 1\n| fieldsAdd `top product`= `usage` * toDouble($Ratecard)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "singleValue","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.product"],"categoryAxisLabel": "dt.cost.product","valueAxis": ["usage", "top product"],"valueAxisLabel": "usage,top product","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "top product","prefixIcon": "","recordField": "top product","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "usage" },"displayedFields": ["dt.cost.product"],"legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "usage", "rangeAxis": "" },{ "valueAxis": "top product", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.product"]},"unitsOverrides": [{"identifier": "top product","unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 2,"suffix": "$","delimiter": true,"added": 1712838641069}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"11": {"type": "data","title": "","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours) \n| fieldsAdd costs = usage * toDouble($Ratecard)\n| makeTimeseries sum(costs), by:{event.type}","visualization": "lineChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"hiddenLegendFields": ["interval"],"fieldMapping": {"timestamp": "timeframe","leftAxisValues": ["sum(costs)"]},"categoricalBarChartSettings": {"categoryAxis": ["event.type"],"valueAxis": ["interval"],"categoryAxisLabel": "event.type","valueAxisLabel": "interval","tooltipVariant": "single"},"truncationMode": "middle","valueRepresentation": "absolute","xAxisLabel": "timeframe","xAxisIsLabelVisible": false,"leftYAxisSettings": {}},"singleValue": {"showLabel": true,"label": "billed_gibibyte_hours","prefixIcon": "","recordField": "billed_gibibyte_hours","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": true }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": [{"fields": ["sum(costs)"],"value": "sparkline","id": 1734615873508}]},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "event.type" },"displayedFields": ["event.type"],"legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [{ "valueAxis": "interval", "rangeAxis": "" }],"variant": "single","displayedFields": ["event.type"]},"unitsOverrides": [{"identifier": "sum(costs)","unitCategory": "currency","baseUnit": "usd","displayUnit": null,"decimals": 0,"suffix": "USD","delimiter": false,"added": 1713254980105}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false},"davis": {},"segments": { "tileSegmentsEnabled": false, "tileSegments": [] }},"15": {"type": "data","title": "Usage","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| makeTimeseries sum(usage), by:{event.type}\n","visualization": "areaChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"hiddenLegendFields": ["interval"],"fieldMapping": {"timestamp": "timeframe","leftAxisValues": ["sum(usage)"]},"categoricalBarChartSettings": {"categoryAxis": ["event.type"],"valueAxis": ["interval"],"categoryAxisLabel": "event.type","valueAxisLabel": "interval","tooltipVariant": "single"},"truncationMode": "middle","valueRepresentation": "absolute","xAxisLabel": "timeframe","xAxisIsLabelVisible": false,"leftYAxisSettings": {}},"singleValue": {"showLabel": true,"label": "billed_gibibyte_hours","prefixIcon": "","recordField": "billed_gibibyte_hours","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": true }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": [{"fields": ["sum(usage)"],"value": "sparkline","id": 1734617546639}]},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "event.type" },"legend": "auto","displayedFields": ["event.type"],"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [{ "valueAxis": "interval", "rangeAxis": "" }],"variant": "single","displayedFields": ["event.type"]},"unitsOverrides": [{"identifier": "interval","unitCategory": "time","baseUnit": "nanosecond","displayUnit": null,"decimals": 2,"suffix": "$","delimiter": false,"added": 1713254980105},{"identifier": "sum(billed_gibibyte_hours)","unitCategory": "data","baseUnit": "gibibyte","displayUnit": null,"decimals": 2,"suffix": "","delimiter": false,"added": 1720169506924}]},"querySettings": {"maxResultRecords": 10000,"defaultScanLimitGbytes": 5000,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false},"davis": {}},"16": {"type": "data","title": "Usage per Product","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| makeTimeseries sum(usage), alias: `unallocated`, by:{dt.cost.product}\n| fieldsAdd dt.cost.product = if(isNull(dt.cost.product), \"unallocated\", else:dt.cost.product)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "lineChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.product"],"categoryAxisLabel": "dt.cost.product","valueAxis": ["interval"],"valueAxisLabel": "interval","tooltipVariant": "single"},"hiddenLegendFields": ["interval"],"fieldMapping": {"timestamp": "timeframe","leftAxisValues": ["unallocated"]},"truncationMode": "middle","valueRepresentation": "absolute","xAxisLabel": "timeframe","xAxisIsLabelVisible": false,"leftYAxisSettings": {}},"singleValue": {"showLabel": true,"label": "dt.cost.costcenter","prefixIcon": "","recordField": "dt.cost.costcenter","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": true }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": [{"fields": ["unallocated"],"value": "sparkline","id": 1734617227642}]},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "dt.cost.product" },"legend": "auto","displayedFields": ["dt.cost.product"],"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [{ "valueAxis": "interval", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.product"]},"unitsOverrides": [{"identifier": "interval","unitCategory": "time","baseUnit": "nanosecond","displayUnit": null,"decimals": 2,"suffix": "","delimiter": false,"added": 1720169570984},{"identifier": "unassigned","unitCategory": "data","baseUnit": "gibibyte","displayUnit": null,"decimals": 2,"suffix": "","delimiter": false,"added": 1720169591630}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"17": {"type": "markdown","title": "","content": "# Showback Usage Details for $Capability and configured hosts\nThis value shows the sum of all cost allocation configured hosts"},"19": {"type": "data","title": "Usage per Product Top 15","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| summarize total= sum(coalesce(billed_host_hours, billed_gibibyte_hours)), by:{dt.cost.product}\n| sort `dt.cost.product` desc\n| limit 15\n| fieldsAdd dt.cost.product = if(isNull(dt.cost.product), \"unallocation\", else:dt.cost.product)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "donutChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.product"],"categoryAxisLabel": "dt.cost.product","valueAxis": ["total"],"valueAxisLabel": "total","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "dt.cost.product","prefixIcon": "","recordField": "dt.cost.product","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","legend": "auto","dataMappings": { "value": "total" },"displayedFields": ["dt.cost.product"],"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "total", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.product"]}},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"20": {"type": "data","title": "Usage per Cost-Center Top 15","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| summarize total= sum (coalesce (billed_host_hours, billed_gibibyte_hours)), by:{dt.cost.costcenter}\n| sort `dt.cost.costcenter` desc\n| limit 15\n| fieldsAdd dt.cost.costcenter = if(isNull(dt.cost.costcenter), \"unallocated\", else:dt.cost.costcenter)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "donutChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.costcenter"],"categoryAxisLabel": "dt.cost.costcenter","valueAxis": ["total"],"valueAxisLabel": "total","tooltipVariant": "single"},"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "dt.cost.costcenter","prefixIcon": "","recordField": "dt.cost.costcenter","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","legend": "auto","dataMappings": { "value": "total" },"displayedFields": ["dt.cost.costcenter"],"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "total", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.costcenter"]}},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"23": {"type": "data","title": "","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fields timestamp, usage=coalesce(billed_gibibyte_hours, billed_host_hours), dt.entity.host, dt.cost.costcenter, dt.cost.product, event.type\n| summarize hostname=takeLast(entityName(dt.entity.host)),dt.cost.costcenter=takeLast(dt.cost.costcenter), dt.cost.product=takeLast(dt.cost.product),`Usage (GiB/h)`= sum(usage), by:{dt.entity.host}\n| sort `Usage (GiB/h)` desc\n| fieldsAdd `cost USD`= `Usage (GiB/h)`* toDouble($Ratecard)\n| fieldsAdd dt.cost.costcenter = if(isNull(dt.cost.costcenter), \"unassigned\", else:dt.cost.costcenter)\n| fieldsAdd dt.cost.product = if(isNull(dt.cost.product), \"unassigned\", else:dt.cost.product)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "table","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxisLabel": "dt.entity.host,hostname,dt.cost.costcenter,dt.cost.product","valueAxisLabel": "Usage (GiB/h),cost USD","tooltipVariant": "single","categoryAxis": ["dt.entity.host", "hostname", "dt.cost.costcenter", "dt.cost.product"],"valueAxis": ["Usage (GiB/h)", "cost USD"]},"hiddenLegendFields": [],"truncationMode": "middle"},"singleValue": {"showLabel": true,"label": "timestamp","prefixIcon": "","recordField": "timestamp","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": { "[\"hostname\"]": 392.078125 },"sortBy": {"columnId": "[\"billed_gibibyte_hours\"]","direction": "descending"},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","legend": "auto","dataMappings": { "value": "Usage (GiB/h)" },"displayedFields": ["dt.entity.host","hostname","dt.cost.costcenter","dt.cost.product"],"colorMode": "color-palette","colorPalette": "blue"},"histogram": {"dataMappings": [{ "valueAxis": "Usage (GiB/h)", "rangeAxis": "" },{ "valueAxis": "cost USD", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.entity.host", "hostname", "dt.cost.costcenter", "dt.cost.product"]}},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"24": {"type": "markdown","title": "","content": "# $Capability per host usage and cost summary"},"28": {"type": "data","title": "Hosts without Cost Center or Product allocation","query": "fetch dt.entity.host\n| join [\n fetch dt.system.events\n | filter event.kind == \"BILLING_USAGE_EVENT\"\n | filterOut isNull(dt.cost.costcenter) or isNull(dt.cost.product)\n | dedup dt.entity.host\n], kind:leftOuter, on:{left[id] == right[dt.entity.host]}\n| filter isNull(right.dt.entity.host)\n| fields {id, alias:hostname}, entity.name, {right.dt.cost.costcenter, alias:dt.cost.costcenter}, {right.dt.cost.product, alias:dt.cost.product}","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "table","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxisLabel": "hostname,entity.name","valueAxisLabel": "","tooltipVariant": "single","categoryAxis": ["hostname", "entity.name"],"valueAxis": []},"truncationMode": "middle","hiddenLegendFields": []},"singleValue": {"showLabel": true,"label": "dt.entity.host","prefixIcon": "","recordField": "dt.entity.host","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"sortBy": {"columnId": "[\"Usage (GiB/h)\"]","direction": "descending"},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "categorical","dataMappings": { "value": "hostname" },"displayedFields": ["hostname", "entity.name"]},"histogram": {"dataMappings": [],"variant": "single","displayedFields": ["entity.name"]},"autoSelectVisualization": false},"querySettings": {"maxResultRecords": 10000,"defaultScanLimitGbytes": 5000,"maxResultMegaBytes": 1,"defaultSamplingRatio": 10,"enableSampling": false}},"29": {"type": "markdown","title": "","content": "# Total $Capability costs of configured hosts \nThis value shows the sum of all cost allocation configured hosts per time frame.\n"},"30": {"type": "data","title": "$Capability Hosts with not-allowlisted fields","query": "\nfetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| dedup dt.entity.host, sort: {timestamp desc}\n| filter dt.cost.costcenter == \"not-allowlisted\" or dt.cost.product == \"not-allowlisted\"\n| summarize count = count(), by:{dt.entity.host, dt.cost.costcenter, dt.cost.product}\n| fields hostname=entityName(dt.entity.host),dt.entity.host, dt.cost.costcenter, dt.cost.product","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "table","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["hostname", "dt.entity.host", "dt.cost.costcenter", "dt.cost.product"],"categoryAxisLabel": "hostname,dt.entity.host,dt.cost.costcenter,dt.cost.product","valueAxis": [],"valueAxisLabel": "","tooltipVariant": "single"},"truncationMode": "middle","xAxisLabel": "timestamp","xAxisIsLabelVisible": false,"valueRepresentation": "absolute","hiddenLegendFields": [],"leftYAxisSettings": {}},"singleValue": {"showLabel": true,"label": "dt.entity.host","prefixIcon": "","recordField": "dt.entity.host","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": false }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": []},"honeycomb": {"shape": "hexagon","legend": { "hidden": false, "position": "auto" },"colorMode": "color-palette","colorPalette": "categorical","dataMappings": { "value": "hostname" },"displayedFields": ["hostname", "dt.entity.host", "dt.cost.costcenter", "dt.cost.product"]},"histogram": {"dataMappings": [],"variant": "single","displayedFields": ["hostname", "dt.entity.host", "dt.cost.costcenter", "dt.cost.product"]},"autoSelectVisualization": false},"querySettings": {"maxResultRecords": 10000,"defaultScanLimitGbytes": 5000,"maxResultMegaBytes": 1,"defaultSamplingRatio": 10,"enableSampling": false}},"31": {"type": "markdown","title": "","content": "# Cost Details for $Capability and configured hosts\nThis value shows the cost sum of all cost allocation configured hosts"},"32": {"type": "data","title": "Usage per Cost Center","query": "fetch dt.system.events\n| filter event.kind == \"BILLING_USAGE_EVENT\"\n| filter event.type == $Capability\n| fieldsAdd usage = coalesce(billed_host_hours, billed_gibibyte_hours)\n| makeTimeseries sum(usage), alias: `unallocated`, by:{dt.cost.costcenter}\n| fieldsAdd dt.cost.costcenter = if(isNull(dt.cost.costcenter), \"unallocated\", else:dt.cost.costcenter)","davis": {"enabled": false,"davisVisualization": { "isAvailable": true }},"visualization": "lineChart","visualizationSettings": {"thresholds": [],"chartSettings": {"xAxisScaling": "analyzedTimeframe","gapPolicy": "connect","circleChartSettings": {"groupingThresholdType": "relative","groupingThresholdValue": 0,"valueType": "relative"},"categoryOverrides": {},"categoricalBarChartSettings": {"categoryAxis": ["dt.cost.costcenter"],"categoryAxisLabel": "dt.cost.costcenter","valueAxis": ["interval"],"valueAxisLabel": "interval","tooltipVariant": "single"},"hiddenLegendFields": ["interval"],"fieldMapping": {"timestamp": "timeframe","leftAxisValues": ["unallocated"]},"truncationMode": "middle","valueRepresentation": "absolute","xAxisLabel": "timeframe","xAxisIsLabelVisible": false,"leftYAxisSettings": {}},"singleValue": {"showLabel": true,"label": "dt.cost.costcenter","prefixIcon": "","recordField": "dt.cost.costcenter","autoscale": true,"alignment": "center","colorThresholdTarget": "value","trend": { "trendType": "auto", "isVisible": true }},"table": {"rowDensity": "condensed","enableSparklines": false,"hiddenColumns": [],"lineWrapIds": [],"columnWidths": {},"columnTypeOverrides": [{"fields": ["unallocated"],"value": "sparkline","id": 1734617227551}]},"honeycomb": {"shape": "hexagon","dataMappings": { "value": "dt.cost.costcenter" },"legend": "auto","displayedFields": ["dt.cost.costcenter"],"colorMode": "color-palette","colorPalette": "categorical"},"histogram": {"dataMappings": [{ "valueAxis": "interval", "rangeAxis": "" }],"variant": "single","displayedFields": ["dt.cost.costcenter"]},"unitsOverrides": [{"identifier": "interval","unitCategory": "time","baseUnit": "nanosecond","displayUnit": null,"decimals": 2,"suffix": "","delimiter": false,"added": 1720169570984},{"identifier": "unassigned","unitCategory": "data","baseUnit": "gibibyte","displayUnit": null,"decimals": 2,"suffix": "","delimiter": false,"added": 1720169591630}]},"querySettings": {"maxResultRecords": 1000,"defaultScanLimitGbytes": 500,"maxResultMegaBytes": 100,"defaultSamplingRatio": 10,"enableSampling": false}},"33": {"type": "markdown","title": "","content": "Dashboard version: 1.3\n\nDisclaimer: \nThis is an example dashboard to show what can be done with our DPS Cost Allocation feature\n[DPS Cost Allocation Feature](https://docs.dynatrace.com/docs/manage/dynatrace-platform-subscription/cost-allocation)\nPlease ensure the above listed pricing variables match with your rate card pricing."},"34": {"type": "markdown","title": "","content": "# General hosts with missing Cost Allocation information\nAll hosts in the following list have not been configured for cost allocation"}},"layouts": {"0": { "x": 12, "y": 37, "w": 12, "h": 6 },"1": { "x": 0, "y": 37, "w": 12, "h": 6 },"2": { "x": 0, "y": 31, "w": 12, "h": 3 },"5": { "x": 12, "y": 31, "w": 12, "h": 3 },"6": { "x": 0, "y": 34, "w": 12, "h": 3 },"7": { "x": 12, "y": 34, "w": 12, "h": 3 },"11": { "x": 0, "y": 45, "w": 24, "h": 6 },"15": { "x": 0, "y": 4, "w": 24, "h": 5 },"16": { "x": 0, "y": 24, "w": 24, "h": 5 },"17": { "x": 0, "y": 2, "w": 24, "h": 2 },"19": { "x": 11, "y": 9, "w": 13, "h": 6 },"20": { "x": 0, "y": 9, "w": 11, "h": 6 },"23": { "x": 0, "y": 52, "w": 24, "h": 6 },"24": { "x": 0, "y": 51, "w": 24, "h": 1 },"28": { "x": 0, "y": 60, "w": 24, "h": 5 },"29": { "x": 0, "y": 43, "w": 24, "h": 2 },"30": { "x": 0, "y": 15, "w": 24, "h": 4 },"31": { "x": 0, "y": 29, "w": 24, "h": 2 },"32": { "x": 0, "y": 19, "w": 24, "h": 5 },"33": { "x": 0, "y": 0, "w": 24, "h": 2 },"34": { "x": 0, "y": 58, "w": 24, "h": 2 }},"importedWithCode": false,"settings": {}}
In Dynatrace, go to the target environment and open Dashboards.
Select Upload and use the file browser to locate the JSON file that you just saved.
The pre-made dashboard is now visible in Dashboards.
The costs shown in the demo dashboard are based on manual cost assignments as provided in the DQL query. They are not automatically cross-checked with your rate card.
This section provides various DQL queries that you can use to achieve specific use cases.
fetch dt.system.events| filter event.kind == "BILLING_USAGE_EVENT"
fetch dt.system.events| filter event.kind == "BILLING_USAGE_EVENT"| summarize count = count(), by:{event.type,dt.cost.costcenter}
If you want to view Cost Allocation data in a separate tool, such as Excel or Power BI, you can export the data.
DPS licensing consumption and related costs are based on 15-minute increments. Reports are generated daily, so you won't be able to see usage accrued in the previous <24 hours.
You can export Cost Allocation data via
In Account Management, you can download some or all Cost Allocation data from your current DPS subscription.
All Cost Allocation data can be retrieved via the Account Management API.
Before using the API, you need to generate an Account Management API Token as described in Authentication for the Account Management API. Additionally, your user will need the permission View usage and consumption: account-uac-read.
Use the following API call to retrieve Cost Allocation data. Parameters are described in Dynatrace Platform Subscription API - GET cost allocation.
GET /v1/subscriptions/{subscription-uuid}/cost-allocation?field={field}\&environment-id={environment-id}
An example response is provided in the code block below.
{"records": [{ "date": "2024-04-01", "capability": "FULLSTACK_MONITORING","key": "department-A", "costs": 10, "usage": 2000 },{ "date": "2024-04-01", "capability": "FULLSTACK_MONITORING","key": "department-B", "costs": 40, "usage": 8000 },{ "date": "2024-04-01", "capability": "LOGS", "key": "department-A", "costs": 70, "usage": 700 },{ "date": "2024-04-01", "capability": "LOGS", "key": "department-B", "costs": 20, "usage": 200 },{ "date": "2024-04-01", "capability": "FULLSTACK_MONITORING", "key": "department-E", "costs": 10, "usage": 2000 },{ "date": "2024-04-01", "capability": "FULLSTACK_MONITORING", "key": "department-F", "costs": 50, "usage": 10000 },{ "date": "2024-04-01", "capability": "FULLSTACK_MONITORING", "key": null, "costs": 60, "usage": 12000 },{ "date": "2024-04-01", "capability": "LOGS", "key": null, "costs": 10, "usage": 100 },{ "date": "2024-04-02", "capability": "FULLSTACK_MONITORING", "key": "department-A", "costs": 10, "usage": 2000 },{ "date": "2024-04-02", "capability": "FULLSTACK_MONITORING", "key": "department-B", "costs": 40, "usage": 8000 },{ "date": "2024-04-02", "capability": "FULLSTACK_MONITORING", "key": "department-C", "costs": 70, "usage": 14000 },{ "date": "2024-04-02", "capability": "LOGS", "key": null, "costs": 500, "usage": 5000 }// more daily records],"nextPageKey": "...","environmentId": "tenant-A","field": "COSTCENTER"}
If you can't find Cost Allocation data:
Make sure you have a Dynatrace Platform Service (DPS) SaaS license.
Check your OneAgent version. Cost Allocation is supported for versions 1.291+.
Confirm that host tags are in the allow list.
Did you perform a restart? When in doubt, restart OneAgent or your Kubernetes pod(s). Then wait up to 30 minutes and try again.