使用 Azure Monitor 指标资源管理器 以图形格式查看弹性消耗计划函数应用的成本相关数据。
在Azure 门户中,访问您的函数应用。
在左侧面板中,向下滚动到 “监视 ”并选择“ 指标”。
在指标中,选择按需函数执行计数和总和用于聚合。 此选择将所选时间段内执行计数的总和添加到图表中。
选择 “添加指标 ”并添加 “按需函数执行单位”、“ 始终就绪函数执行计数”、“ 始终就绪函数执行单位”和 “始终就绪单位 ”到图表。
生成的图表包含所选时间范围内所有弹性消耗执行指标的总计,在本示例中为自定义时间范围。
由于按需函数执行单位数大于按需函数执行计数,并且应用中没有 始终就绪的实例 ,因此图表只显示按需函数执行单位。
此图表显示 16 分钟期间总共消耗了 35.4 亿 On Demand Function Execution Units ,以 MB 毫秒为单位。 若要转换为 GB 秒,请除以 1,024,000。 在此示例中,函数应用消耗了 3,540,000,000 / 1,024,000 = 3,457.03 GB 秒。 可以将此值与Functions 定价页上的按需执行时间当前价格相乘,以计算这 16 分钟的费用,前提是你已用完所有免费执行时间的赠送额度。 可将该相同计算用于“始终就绪函数执行单元”指标和“始终就绪执行时间”计费计量成本,还可用于“始终就绪单元”指标和“始终就绪基准”计费计量成本,从而得出始终就绪实例的 GB-秒成本。
若要计算按需总执行成本,请获取同一时间段的按需函数执行计数总和,转换为数百万,然后在 Functions 定价页上乘以按需总执行价格。 例如,上述示例中的 2,100 次执行将转换为 0.0021 百万次执行。 可以使用相同的计算与 Always Ready 函数执行计数指标和 Always Ready 总执行次数计费表一起使用,以确定由 Always Ready 实例处理的执行成本。
Azure CLI 提供了用于检索指标的命令。 可以在本地或使用 Azure Cloud Shell 在门户中执行 CLI 命令。 例如,以下 az monitor metrics list 命令返回以前使用的同一时间段的每小时数据。
请确保将 <AZURE_SUBSCRIPTION_ID> 替换为运行命令的 Azure 订阅 ID,将 <RESOURCE_GROUP_NAME> 替换为资源组名称,并将 <FUNCTION_APP_NAME> 替换为函数应用名称。
az monitor metrics list --resource /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME> --metric OnDemandFunctionExecutionUnits,OnDemandFunctionExecutionCount,AlwaysReadyFunctionExecutionUnits,AlwaysReadyUnits,AlwaysReadyFunctionExecutionCount --aggregation Total --interval PT1H --start-time 2025-10-24T16:24:00Z --end-time 2025-10-24T16:33:00Z
此命令返回类似于以下示例的 JSON 有效负载:
{
"cost": 40,
"interval": "PT1H",
"namespace": "Microsoft.Web/sites",
"resourceregion": "westus2",
"timespan": "2025-10-24T16:24:00Z/2025-10-24T16:33:00Z",
"value": [
{
"displayDescription": "On Demand Function Execution Units. For Flex Consumption FunctionApps only.",
"errorCode": "Success",
"id": "/subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/OnDemandFunctionExecutionUnits",
"name": {
"localizedValue": "On Demand Function Execution Units",
"value": "OnDemandFunctionExecutionUnits"
},
"resourceGroup": "rg-eventhubs-demo",
"timeseries": [
{
"data": [
{
"timeStamp": "2025-10-24T16:24:00Z",
"total": 3540992000.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
},
{
"displayDescription": "On Demand Function Execution Count. For Flex Consumption FunctionApps only.",
"errorCode": "Success",
"id": "/subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/OnDemandFunctionExecutionCount",
"name": {
"localizedValue": "On Demand Function Execution Count",
"value": "OnDemandFunctionExecutionCount"
},
"resourceGroup": "rg-eventhubs-demo",
"timeseries": [
{
"data": [
{
"timeStamp": "2025-10-24T16:24:00Z",
"total": 2102.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
},
{
"displayDescription": "Always Ready Function Execution Units. For Flex Consumption FunctionApps only.",
"errorCode": "Success",
"id": "/subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyFunctionExecutionUnits",
"name": {
"localizedValue": "Always Ready Function Execution Units",
"value": "AlwaysReadyFunctionExecutionUnits"
},
"resourceGroup": "rg-eventhubs-demo",
"timeseries": [
{
"data": [
{
"timeStamp": "2025-10-24T16:24:00Z",
"total": 0.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
},
{
"displayDescription": "Always Ready Units. For Flex Consumption FunctionApps only.",
"errorCode": "Success",
"id": "/subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyUnits",
"name": {
"localizedValue": "Always Ready Units",
"value": "AlwaysReadyUnits"
},
"resourceGroup": "rg-eventhubs-demo",
"timeseries": [
{
"data": [
{
"timeStamp": "2025-10-24T16:24:00Z",
"total": 0.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
},
{
"displayDescription": "Always Ready Function Execution Count. For Flex Consumption FunctionApps only.",
"errorCode": "Success",
"id": "/subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyFunctionExecutionCount",
"name": {
"localizedValue": "Always Ready Function Execution Count",
"value": "AlwaysReadyFunctionExecutionCount"
},
"resourceGroup": "rg-eventhubs-demo",
"timeseries": [
{
"data": [
{
"timeStamp": "2025-10-24T16:24:00Z",
"total": 0.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
}
]
}
此特定响应显示,从 2025-10-24T16:24:00Z 到 2025-10-24T16:33:00Z,应用消耗了 3,540,992,000 MB 毫秒(3458.00 GB-秒)的按需函数执行单位,以及 2,102 次执行(0.0021 百万次执行)的按需函数执行计数。
Azure PowerShell 提供了用于检索指标的命令。 可以从本地命令环境或使用 Azure Cloud Shell 直接从门户使用 Azure PowerShell。 例如,以下 Get-AzMetric 命令返回以前使用的同一时间段的每小时数据。
请确保将 <AZURE_SUBSCRIPTION_ID> 替换为运行命令的 Azure 订阅 ID,将 <RESOURCE_GROUP_NAME> 替换为资源组名称,并将 <FUNCTION_APP_NAME> 替换为函数应用名称。
Get-AzMetric -ResourceId /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME> -MetricName OnDemandFunctionExecutionUnits,OnDemandFunctionExecutionCount,AlwaysReadyFunctionExecutionUnits,AlwaysReadyUnits,AlwaysReadyFunctionExecutionCount -AggregationType Total -TimeGrain 01:00:00 -StartTime 2025-10-24T16:24:00Z -EndTime 2025-10-24T16:33:00Z
此命令返回类似于以下示例的输出:
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/OnDemandFunctionExecutionUnits
Name :
LocalizedValue : On Demand Function Execution Units
Value : OnDemandFunctionExecutionUnits
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/OnDemandFunctionExecutionCount
Name :
LocalizedValue : On Demand Function Execution Count
Value : OnDemandFunctionExecutionCount
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyFunctionExecutionUnits
Name :
LocalizedValue : Always Ready Function Execution Units
Value : AlwaysReadyFunctionExecutionUnits
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyUnits
Name :
LocalizedValue : Always Ready Units
Value : AlwaysReadyUnits
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/rg-eventhubs-demo/providers/Microsoft.Web/sites/func-wht2hopc4l7vi/providers/Microsoft.Insights/metrics/AlwaysReadyFunctionExecutionCount
Name :
LocalizedValue : Always Ready Function Execution Count
Value : AlwaysReadyFunctionExecutionCount
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Data 属性包含实际指标值。
使用 Azure Monitor 指标资源管理器可以图形格式查看消耗计划函数应用的成本相关数据。
在Azure 门户中,访问您的函数应用。
在左侧面板中,向下滚动到 “监视 ”并选择“ 指标”。
从指标中,选择函数执行计数和总和用于聚合。 此选择将所选时间段内执行计数的总和添加到图表中。
选择“添加指标”并重复步骤 2-4,将“函数执行单位”添加到图表中。
生成的图表包含所选时间范围内(在本例中为 2 小时)两个执行指标的总和。
由于执行单位数远大于执行计数,因此图表仅显示执行单位。
此图显示两小时时间段内总共消耗了 11.1 亿个 Function Execution Units(以“MB 毫秒”度量)。 若要转换为 GB 秒,请除以 1,024,000。 在此示例中,函数应用消耗了 1,110,000,000 / 1,024,000 = 1,083.98 GB 秒。 将此值乘以 Functions 定价页上当前执行时间的价格,从而得出这两个小时的成本,假设你已经使用了所有免费提供的执行时间。
Azure CLI 提供了用于检索指标的命令。 可以在本地或使用 Azure Cloud Shell 在门户中执行 CLI 命令。 例如,以下 az monitor metrics list 命令返回以前使用的同一时间段的每小时数据。
请务必将 <AZURE_SUBSCRIPTION_ID> 替换为运行该命令的 Azure 订阅 ID。
az monitor metrics list --resource /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption --metric FunctionExecutionUnits,FunctionExecutionCount --aggregation Total --interval PT1H --start-time 2019-09-11T21:46:00Z --end-time 2019-09-11T23:18:00Z
此命令返回类似于以下示例的 JSON 有效负载:
{
"cost": 0.0,
"interval": "1:00:00",
"namespace": "Microsoft.Web/sites",
"resourceregion": "centralus",
"timespan": "2019-09-11T21:46:00Z/2019-09-11T23:18:00Z",
"value": [
{
"id": "/subscriptions/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption/providers/Microsoft.Insights/metrics/FunctionExecutionUnits",
"name": {
"localizedValue": "Function Execution Units",
"value": "FunctionExecutionUnits"
},
"resourceGroup": "metrics-testing-consumption",
"timeseries": [
{
"data": [
{
"average": null,
"count": null,
"maximum": null,
"minimum": null,
"timeStamp": "2019-09-11T21:46:00+00:00",
"total": 793294592.0
},
{
"average": null,
"count": null,
"maximum": null,
"minimum": null,
"timeStamp": "2019-09-11T22:46:00+00:00",
"total": 316576256.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
},
{
"id": "/subscriptions/XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption/providers/Microsoft.Insights/metrics/FunctionExecutionCount",
"name": {
"localizedValue": "Function Execution Count",
"value": "FunctionExecutionCount"
},
"resourceGroup": "metrics-testing-consumption",
"timeseries": [
{
"data": [
{
"average": null,
"count": null,
"maximum": null,
"minimum": null,
"timeStamp": "2019-09-11T21:46:00+00:00",
"total": 33538.0
},
{
"average": null,
"count": null,
"maximum": null,
"minimum": null,
"timeStamp": "2019-09-11T22:46:00+00:00",
"total": 13040.0
}
],
"metadatavalues": []
}
],
"type": "Microsoft.Insights/metrics",
"unit": "Count"
}
]
}
此特定响应显示,从 2019-09-11T21:46 此 2019-09-11T23:18起,应用消耗了 1,110,000,000 MB 毫秒(1,083.98 GB 秒)。
Azure PowerShell 提供了用于检索指标的命令。 可以从本地命令环境或使用 Azure Cloud Shell 直接从门户使用 Azure PowerShell。 例如,以下 Get-AzMetric 命令返回以前使用的同一时间段的每小时数据。
请务必将 <AZURE_SUBSCRIPTION_ID> 替换为运行该命令的 Azure 订阅 ID。
Get-AzMetric -ResourceId /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption -MetricName FunctionExecutionUnits,FunctionExecutionCount -AggregationType Total -TimeGrain 01:00:00 -StartTime 2019-09-11T21:46:00Z -EndTime 2019-09-11T23:18:00Z
此命令返回类似于以下示例的输出:
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption/providers/Microsoft.Insights/metrics/FunctionExecutionUnits
Name :
LocalizedValue : Function Execution Units
Value : FunctionExecutionUnits
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Id : /subscriptions/<AZURE_SUBSCRIPTION_ID>/resourceGroups/metrics-testing-consumption/providers/Microsoft.Web/sites/metrics-testing-consumption/providers/Microsoft.Insights/metrics/FunctionExecutionCount
Name :
LocalizedValue : Function Execution Count
Value : FunctionExecutionCount
Type : Microsoft.Insights/metrics
Unit : Count
Data : {Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue,
Microsoft.Azure.Commands.Insights.OutputClasses.PSMetricValue…}
Timeseries : {Microsoft.Azure.Management.Monitor.Models.TimeSeriesElement}
Data 属性包含实际指标值。
Azure Monitor 可跟踪资源级指标,对于函数来说,就是跟踪函数应用指标。 Application Insights 集成会发出每个函数的指标。 下面是一个示例分析查询,可用于获取函数的平均持续时间:
在估算任何计划中运行函数的总体成本时,请记住,函数运行时将使用其他多个 Azure 服务,而每个服务单独计费。 估算函数应用的定价时,对于与其他 Azure 服务集成的任何触发器和绑定,需要创建这些附加的服务并为其付费。