Standard Function Calls is a DPS capability for running the backend of your app, written in TypeScript and executed within the Dynatrace JavaScript runtime. Consumption is measured in invocations.
This page explains how Standard Function Calls consumption is calculated, what's included, and how to track and manage your usage.
Invoking a Standard Function Call can trigger the ingest (and therefore implicitly the retention) of additional data or the execution of a DQL query.
The unit of measure for Standard Function Calls consumption is an invocation, using the Standard Function Calls rate card item.
Dynatrace defines one invocation as each minute (or part thereof) of execution time for a single function call. One function call will consume either one or two invocations:
The total consumption is calculated by multiplying the number of invocations by your rate card price per invocation.
Billable consumption of Standard Function Calls occurs when:
Notebooks,
Dashboards,
Workflows, or directly via API.For an overview of how Standard Function Calls, AI Units, and query consumption work together, see Agentic AppEngine overview (DPS).
A single execution of a Standard Function Call, whether invoked directly, in a custom app, as part of a workflow, or by agentic AI.
The billable unit of measure for Standard Function Calls. One function call consumes one invocation per minute (or part thereof) of execution time, up to two invocations.
The following examples show how agentic AI can generate AI Function Standard Calls without any AI Units being consumed.
If your own agent calls a tool through the MCP server to run a predefined query, for example fetch logs | filter loglevel == "ERROR":
execute-dql). This is billed as a Standard Function Call and query consumption.No AI invocation is involved, so no AI Units are consumed.
If your own agent calls a tool through the MCP server to run a forecast, for example to answer "Is CPU usage predicted to exceed 80%?":
timeseries-forecast). This is billed as a Standard Function Call.No AI invocation is involved, so no AI Units are consumed.
Dynatrace provides several ways to monitor and analyze your Standard Function Calls consumption.
You can also track your usage in Account Management. Go to Account Management > Subscription > Overview > Cost and usage details > Usage summary and select the Standard Function Calls capability.
Billing usage events (billing_usage_event) are system events emitted by Dynatrace that capture already-calculated, billable usage for DPS capabilities. They are the most reliable source for building cost dashboards and allocation reports.
You can use DQL to filter for events, for example with event.type == "AppEngine Functions - Small", to find Standard Function Call invocations, as shown in the examples below.
The following DQL query provides an overview of daily Standard Function Call invocations by function type:
fetch dt.system.events, scanLimitGBytes: -1| filter event.type == "AppEngine Functions - Small" AND event.kind == "BILLING_USAGE_EVENT" AND (billing_type == "BILLABLE" OR isNull(billing_type))| fieldsAdd data = if(matchesPhrase(function.type, "AD_HOC"), "Ad-hoc", else: if(matchesPhrase(function.type, "ACTION"), "Actions", else: if(matchesPhrase(function.type, "STANDARD"), "App functions")))| summarize billed_invocations = takeAny(billed_invocations), by:{timestamp=bin(timestamp, 1d), event.id,data}| summarize invocations = sum(if(billed_invocations,billed_invocations,else:1)), by:{data, timestamp}| sort timestamp desc, invocations desc
The following DQL query provides details on users and apps using Standard Function Calls:
fetch dt.system.events, scanLimitGBytes: -1| filter event.type == "AppEngine Functions - Small" AND event.kind == "BILLING_USAGE_EVENT" AND (billing_type == "BILLABLE" OR isNull(billing_type))| summarize billed_invocations = takeAny(billed_invocations), by:{startHour = bin(timestamp, 1h), event.id, user.email, caller.app.id}| summarize Invocations = sum(if(billed_invocations,billed_invocations,else:1)), by:{User = user.email, Calling_App = caller.app.id}| sort Invocations desc
When a Standard Function Call is invoked by agentic AI, it has a specific billing usage event that identifies it as such. These events share the same billing unit (invocations), but AI Function Standard Calls carry additional fields for tracing the call back to the AI request that triggered it.
For the complete field reference, see AI Function Standard Call billing usage in the Semantic Dictionary.
| Field | Description |
|---|---|
|
Filter on the appropriate value depending on which invocations you want to query. |
| The number of billed invocations for the AI Function Standard Call, metered and billed like a Standard Function Call. |
| The tool invoked, for example |
|
|
|
|
| Identify the MCP session and conversation the call belongs to. For details, see AI Units billing usage. |
| Set when a Workflow triggered the call: the workflow definition and the specific run. |
The following DQL query summarizes AI Function Standard Call invocations by tool and caller type.
fetch dt.system.events, scanLimitGBytes: -1| filter event.kind == "BILLING_USAGE_EVENT"| filter event.type == "AI Function Standard Call"| summarize standard_calls = sum(billed_invocations), by:{tool, caller.type}
You can query metrics via the Environment API - Metrics API v2.
The same way as any other Standard Function Call: by the number of billed invocations. The only difference is that the billing usage event is recorded under event.type == "AI Function Standard Call" instead of AppEngine Functions - Small, and carries additional fields (such as session_id and conversation_id) for tracing the call back to the AI request that triggered it.