This page describes how the AppEngine Functions DPS capability is consumed and billed. For an overview of the capability, including its main features, see AppEngine Functions (Serverless Functions) overview (DPS).
Billable consumption of AppEngine functions occurs when:
Please note that invocation of AppEngine Functions can trigger the ingest (and therefore implicitly the retention) of additional data or the execution of a DQL query.
The unit of measure for consumption of AppEngine Functions is an invocation. In this context, 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.
You can use DQL to filter for events, for example with event.type == "AppEngine Functions - Small"
, to find Appengine invocations, as shown in the examples below.
The following DQL query provides an overview of daily AppEngine Function 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 AppEngine Functions:
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
You can also track your usage in Account Management. Go to Account Management > Subscription > Overview > Cost and usage details > Usage summary and select the AppEngine Functions - Small capability.
You can query metrics via the Environment API - Metrics API v2.