다음을 통해 공유


Azure 모니터링 REST API 연습

이 문서에서는 Azure Monitor REST API 참조를 사용하는 방법을 보여 줍니다.

Azure Monitor API를 사용하여 메트릭 정의, 차원 값 및 메트릭 값을 검색하고 애플리케이션의 데이터를 사용하거나 분석을 위해 데이터베이스에 저장합니다. Azure Monitor API를 사용하여 경고 규칙을 나열하고 활동 로그를 볼 수도 있습니다.

Azure Monitor 요청 인증

Azure Monitor API를 사용하여 제출된 요청은 Azure Resource Manager 인증 모델을 사용합니다. 모든 요청이 Microsoft Entra ID에서 인증됩니다. 클라이언트 애플리케이션을 인증하는 한 가지 방법은 Microsoft Entra 서비스 주체를 만들고 인증 토큰을 검색하는 것입니다. Azure Portal, CLI 또는 PowerShell을 사용하여 Microsoft Entra 서비스 주체를 만들 수 있습니다. 자세한 내용은 권한 부여 토큰 요청 및 API 작업을 위한 앱 등록을 참조하세요.

토큰 검색

서비스 주체를 만든 후에는 액세스 토큰을 검색합니다. 토큰 요청에서 resource=https://management.azure.com을 지정합니다.

다음 방법 중 하나를 사용하여 인증 토큰을 가져옵니다.

  • CLI
  • REST API
  • SDK

토큰을 요청할 때 resource 매개 변수를 제공해야 합니다. resource 매개 변수는 액세스하려는 리소스의 URL입니다.

리소스에는 다음이 포함됩니다.

  • https://management.azure.com
  • https://api.loganalytics.io
  • https://monitoring.azure.com

REST 요청을 사용하여 토큰 가져오기

토큰을 가져오려면 다음 REST API 호출을 사용합니다. 이 요청은 클라이언트 ID와 클라이언트 암호를 사용하여 요청을 인증합니다. 클라이언트 ID와 클라이언트 암호는 Microsoft Entra ID로 애플리케이션을 등록할 때 획득됩니다. 자세한 내용은 권한 부여 토큰 요청 및 API 작업을 위한 앱 등록을 참조하세요.

curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'

응답 본문의 형식은 다음과 같습니다.

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "https://monitoring.azure.com",
    "access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}

토큰을 인증하고 검색한 후 'Authorization: Bearer <access token>' 헤더를 포함하여 Azure Monitor API 요청에서 액세스 토큰을 사용합니다.

참고 항목

Azure REST API를 사용한 작업에 대한 자세한 내용은 Azure REST API 참조를 확인하세요.

리소스 ID 검색

REST API를 사용하려면 대상 Azure 리소스의 리소스 ID가 필요합니다. 리소스 ID는 다음 패턴을 따라야 합니다.

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<provider>/<resource name>/

예를 들면 다음과 같습니다.

  • Azure IoT Hub: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Devices/IotHubs/<iot-hub-name>
  • 탄력적인 SQL 풀: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<pool-db>/elasticpools/<sql-pool-name>
  • Azure SQL Database(v12): /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<server-name>/databases/<database-name>
  • Azure Service Bus: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ServiceBus/<namespace>/<servicebus-name>
  • Azure Virtual Machine Scale Sets: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachineScaleSets/<vm-name>
  • Azure Virtual Machines: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines/<vm-name>
  • Azure Event Hubs: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>

Azure Portal, PowerShell 또는 Azure CLI를 사용하여 리소스 ID를 찾습니다.

포털에서 resourceID를 찾으려면 리소스의 개요 페이지에서 JSON 보기JSON 보기 링크가 강조 표시된 리소스의 개요 페이지를 보여 주는 스크린샷.를 선택합니다.

리소스 JSON 페이지가 표시됩니다. ID 오른쪽의 아이콘을 사용하여 리소스 ID를 복사할 수 있습니다.

리소스에 대한 리소스 JSON 페이지를 보여 주는 스크린샷.

API 엔드포인트

API 엔드포인트는 다음 패턴을 사용합니다.
/<resource URI>/providers/microsoft.insights/<metrics|metricDefinitions>?api-version=<apiVersion>
resource URI는 다음 구성 요소로 구성됩니다.
/subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/

Important

메트릭 또는 메트릭 정의를 검색하기 위해 API 호출을 수행할 때 리소스 URI 다음에 /providers/microsoft.insights/를 포함해야 합니다.

메트릭 정의 검색

Azure Monitor 메트릭 정의 REST API를 사용하여 서비스에 사용 가능한 메트릭 목록에 액세스합니다. 다음 요청 형식을 사용하여 메트릭 정의를 검색합니다.

GET /subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/providers/microsoft.insights/metricDefinitions?api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

예를 들어 다음 요청은 Azure Storage 계정에 대한 메트릭 정의를 검색합니다.

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricDefinitions?api-version=2018-01-01'
--header 'Authorization: Bearer eyJ0eXAiOi...xYz

다음 JSON은 예제 응답 본문입니다. 이 예제에서는 두 번째 메트릭에만 차원이 있습니다.

{
    "value": [
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/UsedCapacity",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Capacity",
            "name": {
                "value": "UsedCapacity",
                "localizedValue": "Used capacity"
            },
            "isDimensionRequired": false,
            "unit": "Bytes",
            "primaryAggregationType": "Average",
            "supportedAggregationTypes": [
                "Total",
                "Average",
                "Minimum",
                "Maximum"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                 ...
                {
                    "timeGrain": "PT12H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ]
        },
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/Transactions",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Transaction",
            "name": {
                "value": "Transactions",
                "localizedValue": "Transactions"
            },
            "isDimensionRequired": false,
            "unit": "Count",
            "primaryAggregationType": "Total",
            "supportedAggregationTypes": [
                "Total"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT5M",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "PT30M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ],
            "dimensions": [
                {
                    "value": "ResponseType",
                    "localizedValue": "Response type"
                },
                {
                    "value": "GeoType",
                    "localizedValue": "Geo type"
                },
                {
                    "value": "ApiName",
                    "localizedValue": "API name"
                }
            ]
        },
        ...
    ]
}

참고 항목

API "2018-01-01" 이후 버전을 사용하는 것이 좋습니다. 이전 버전의 메트릭 정의 API는 차원을 지원하지 않습니다.

차원 값 검색

사용 가능한 메트릭 정의를 검색한 후 메트릭의 차원에 대한 값 범위를 검색합니다. 차원 값을 사용하여 쿼리에서 메트릭을 필터링하거나 분할합니다. Azure Monitor 메트릭 REST API를 사용하여 지정된 메트릭 차원에 대해 가능한 모든 값을 찾습니다.

필터 정의에서 메트릭의 name.value 요소를 사용합니다. 필터를 지정하지 않은 경우 기본 메트릭이 반환됩니다. API를 사용하면 하나의 차원에 하나의 와일드카드 필터만 허용됩니다. "resultType=metadata" 쿼리 매개 변수를 사용하여 차원 값에 대한 요청을 지정합니다. resultType은 메트릭 값 요청에 대해 생략됩니다.

참고 항목

Azure Monitor REST API를 사용하여 차원 값을 검색하려면 API 버전 "2019-07-01" 이상을 사용하세요.

다음 요청 형식을 사용하여 차원 값을 검색합니다.

GET /subscriptions/<subscription-id>/resourceGroups/  
<resource-group-name>/providers/<resource-provider-namespace>/  
<resource-type>/<resource-name>/providers/microsoft.insights/  
metrics?metricnames=<metric>  
&timespan=<starttime/endtime>  
&$filter=<filter>  
&resultType=metadata  
&api-version=<apiVersion>   HTTP/1.1
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

다음 예제에서는 Transactions 메트릭의 API Name 차원에 대해 내보낸 차원 값의 목록을 검색합니다. 여기서 지정된 시간 범위에 대해 GeoType 차원 값이 Primary입니다.

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics  \
?metricnames=Transactions \
&timespan=2023-03-01T00:00:00Z/2023-03-02T00:00:00Z \
&resultType=metadata \
&$filter=GeoType eq \'Primary\' and ApiName eq \'*\' \
&api-version=2019-07-01'
-header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0e..meG1lWm9Y'

다음 JSON은 예제 응답 본문입니다.

{
  "timespan": "2023-03-01T00:00:00Z/2023-03-02T00:00:00Z",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "DeleteBlob"
            }
          ]
        },
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "SetBlobProperties"
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

메트릭 값 검색

메트릭 정의 및 차원 값을 검색한 후 메트릭 값을 검색합니다. Azure Monitor 메트릭 REST API를 사용하여 메트릭 값을 검색합니다.

필터 정의에서 메트릭의 name.value 요소를 사용합니다. 차원 필터가 지정되지 않은 경우 롤업되고 집계된 메트릭을 반환합니다.

여러 시계열

시계열은 지정된 차원 조합에 대해 시간별로 정렬되는 데이터 요소 집합입니다. 차원은 리소스 ID, 지역 또는 ApiName과 같은 데이터 요소를 설명하는 메트릭의 한 측면입니다.

  • 특정 차원 값이 있는 여러 시계열을 가져오려면 두 차원 값을 모두 지정하는 필터 쿼리 매개 변수(예: "&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'")를 지정합니다. 이 예제에서는 ApiNameListContainers인 시계열과 ApiNameGetBlobServiceProperties인 두 번째 시계열을 가져옵니다.
  • 지정된 차원의 모든 값에 대한 시계열을 반환하려면 * 필터(예: "&$filter=ApiName eq '*'")를 사용합니다. TopOrderBy 쿼리 매개 변수를 사용하여 반환되는 시계열 수를 제한하고 정렬합니다. 이 예제에서는 결과 집합의 모든 ApiName 값에 대한 시계열을 가져옵니다. 데이터가 반환되지 않으면 API는 빈 시계열 "timeseries": []를 반환합니다.

참고 항목

Azure Monitor REST API를 사용하여 다차원 메트릭 값을 검색하려면 API 버전 "2019-07-01" 이상을 사용하세요.

다음 요청 형식을 사용하여 메트릭 값을 검색합니다.

GET /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<resource-provider-namespace>/<resource-type>/<resource-name>/providers/microsoft.insights/metrics?metricnames=<metric>&timespan=<starttime/endtime>&$filter=<filter>&interval=<timeGrain>&aggregation=<aggreation>&api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

다음 예제에서는 GeoType 차원의 값이 Primary인 5분 범위 동안 내림차순으로 Transactions의 수로 상위 3개의 API를 검색합니다.

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics \
?metricnames=Transactions \
&timespan=2023-03-01T02:00:00Z/2023-03-01T02:05:00Z \
& $filter=apiname eq '\''GetBlobProperties'\'
&interval=PT1M \
&aggregation=Total  \
&top=3 \
&orderby=Total desc \
&api-version=2019-07-01"' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer yJ0eXAiOi...g1dCI6Ii1LS'

다음 JSON은 예제 응답 본문입니다.

{
  "cost": 0,
  "timespan": "2023-03-01T02:00:00Z/2023-03-01T02:05:00Z",
  "interval": "PT1M",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "GetBlobProperties"
            }
          ],
          "data": [
            {
              "timeStamp": "2023-09-19T02:00:00Z",
              "total": 2
            },
            {
              "timeStamp": "2023-09-19T02:01:00Z",
              "total": 1
            },
            {
              "timeStamp": "2023-09-19T02:02:00Z",
              "total": 3
            },
            {
              "timeStamp": "2023-09-19T02:03:00Z",
              "total": 7
            },
            {
              "timeStamp": "2023-09-19T02:04:00Z",
              "total": 2
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

한 번에 여러 리소스에 대한 메트릭 쿼리

일부 리소스 종류는 개별 리소스에 대한 메트릭 쿼리 외에도 단일 요청에서 여러 리소스에 대한 쿼리를 지원합니다. 이러한 API는 Azure 메트릭 탐색기에서 다중 리소스 환경을 지원합니다. 여러 메트릭에 대한 쿼리를 지원하는 리소스 종류 집합은 컨텍스트 블레이드의 범위 선택기에서 리소스 종류 드롭다운을 통해 Azure Monitor의 메트릭 블레이드에서 볼 수 있습니다. 자세한 내용은 다중 리소스 UX 설명서를 참조하세요.

여러 리소스와 개별 리소스에 대한 메트릭 쿼리 간에는 몇 가지 중요한 차이점이 있습니다.

  • 메트릭 다중 리소스 API는 리소스 ID 수준 대신 구독 수준에서 작동합니다. 이 제한은 이러한 API를 쿼리하는 사용자에게 구독 자체에 대한 모니터링 읽기 권한자 권한이 있어야 함을 의미합니다.
  • 메트릭 다중 리소스 API는 metricnamespace 쿼리 매개 변수 형식으로 지정해야 하는 쿼리당 단일 resourceType만 지원합니다.
  • 메트릭 다중 리소스 API는 region 쿼리 매개 변수 형식으로 지정해야 하는 쿼리당 단일 Azure 지역만 지원합니다.

여러 리소스에 대한 메트릭 쿼리 예제

다음 예제에서는 개별 메트릭 정의 요청을 보여 줍니다.

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01

다음 요청은 여러 리소스에 대한 동일한 메트릭 정의 요청을 보여 줍니다. 유일한 변경 내용은 리소스 ID 경로 대신 구독 경로가 사용되는 것이고 regionmetricNamespace 쿼리 매개 변수가 추가되었다는 것입니다.

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines

다음 예제에서는 개별 메트릭 요청을 보여 줍니다.

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01

다음은 여러 리소스에 대한 동일한 메트릭 요청입니다.

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines&$filter=Microsoft.ResourceId eq '*'

참고 항목

다중 리소스 메트릭 요청의 경우 Microsoft.ResourceId eq '*' 필터가 추가됩니다. * 필터는 구독 및 지역에 데이터가 있는 각 가상 머신 리소스에 대한 별도의 시계열을 반환하도록 API에 지시합니다. 필터가 없으면 API는 모든 VM의 평균 CPU를 집계하는 단일 시계열을 반환합니다. 각 리소스에 대한 시계열은 다음 샘플 반환 값에서 볼 수 있듯이 각 시계열 항목의 Microsoft.ResourceId 메타데이터 값으로 구분됩니다. 이 쿼리에서 검색한 resourceId가 없으면 빈 시계열 "timeseries": []가 반환됩니다.

{
    "timespan": "2023-06-25T22:35:00Z/2023-06-26T22:40:00Z",
    "interval": "PT6H",
    "value": [
        {
            "id": "subscriptions/12345678-abcd-98765432-abcdef012345/providers/Microsoft.Insights/metrics/Percentage CPU",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Percentage CPU",
                "localizedValue": "Percentage CPU"
            },
            "displayDescription": "The percentage of allocated compute units that are currently in use by the Virtual Machine(s)",
            "unit": "Percent",
            "timeseries": [
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 3.2618888888888886
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 4.696944444444445
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 6.19701388888889
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 2.630347222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 21.288999999999998
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM2"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 7.567069444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 5.111835883171071
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 10.078277777777778
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 8.399097222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 2.647
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/Common-TESTING/providers/Microsoft.Compute/virtualMachines/CommonVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 6.892319444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 3.5054305555555554
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 8.398817802503476
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 6.841666666666667
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 3.3850000000000002
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.compute/virtualmachines",
    "resourceregion": "eastus"
}

여러 리소스에 대한 메트릭 쿼리 문제 해결

  • "timeseries": []를 반환한 빈 시계열

    • 지정된 시간 범위 및 필터에 사용할 수 있는 데이터가 없는 경우 빈 시계열이 반환됩니다. 가장 일반적인 원인은 데이터를 포함하지 않는 시간 범위를 지정하는 것입니다. 시간 범위가 이후 날짜로 설정된 경우를 예로 들 수 있습니다.
    • 또 다른 일반적인 원인은 리소스와 일치하지 않는 필터를 지정하는 것입니다. 예를 들어 필터가 구독 및 지역 조합의 리소스에 없는 차원 값을 지정하면 "timeseries": []가 반환됩니다.
  • 와일드카드 필터
    Microsoft.ResourceId eq '*' 같은 와일드카드 필터를 사용하면 API가 구독 및 지역의 모든 resourceId에 대한 시계열을 반환합니다. 구독 및 지역 조합에 리소스가 없는 경우 빈 시계열이 반환됩니다. 와일드카드 필터가 없는 동일한 쿼리는 요청된 차원(예: 구독 및 지역)에 대해 요청된 메트릭을 집계하여 단일 시계열을 반환합니다.

  • 401 권한 부여 오류:
    개별 리소스 메트릭 API를 사용하려면 사용자에게 쿼리 중인 리소스에 대한 모니터링 읽기 권한자 권한이 있어야 합니다. 다중 리소스 메트릭 API는 구독 수준 API이므로 다중 리소스 메트릭 API를 사용하려면 쿼리된 구독에 대한 모니터링 읽기 권한자 권한이 있어야 합니다. 사용자에게 구독에서 모든 리소스에 대해 모니터링 읽기 권한자 역할이 있더라도 사용자에게 구독 자체에 대한 모니터링 읽기 권한자가 없으면 요청이 실패합니다.

다음 단계