Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I programmatically access Azure Functions usage metrics?

I would like to retrieve granular GB/sec usage data for my consumption based Azure Functions. How can I do this?

like image 560
Paul Batum Avatar asked Dec 13 '16 18:12

Paul Batum


1 Answers

The usage data is available through the Azure Monitor REST API. For a general overview of how to use this API, see here.

The relevant metric is FunctionExecutionUnits. This unit is in MB-milliseconds so to convert it into GB-seconds you need to divide the values by 1,024,000. Here is an example query retrieving per-minute usage data for a function app:

GET /subscriptions/<subid>/resourcegroups/<rg>/providers/Microsoft.Web/sites/<appname>/providers/microsoft.insights/metrics?api-version=2016-06-01&$filter=(name.value eq 'FunctionExecutionUnits') and timeGrain eq duration'PT1M' and startTime eq 2016-12-10T00:00:00Z and endTime eq 2016-12-10T00:05:00Z and (aggregationType eq 'Total')

You'll get back something like this:

{
  "value": [
    {
      "data": [
        {
          "timeStamp": "2016-12-10T00:00:00Z",
          "total": 0
        },
        {
          "timeStamp": "2016-12-10T00:01:00Z",
          "total": 140544
        },
        {
          "timeStamp": "2016-12-10T00:02:00Z",
          "total": 0
        },
        {
          "timeStamp": "2016-12-10T00:03:00Z",
          "total": 0
        },
        {
          "timeStamp": "2016-12-10T00:04:00Z",
          "total": 0
        }
      ],      
      "name": {
        "value": "FunctionExecutionUnits",
        "localizedValue": "Function Execution Units"
      },
      "type": "Microsoft.Insights/metrics",
      "unit": "0"
    }
  ]
}
like image 90
Paul Batum Avatar answered Nov 15 '22 04:11

Paul Batum