Azure 監視 REST API のチュートリアル

この記事では、コードが Azure Monitor REST API リファレンスを使用できるように、認証を実行する方法について説明します。

Azure Monitor API では、使用可能な既定のメトリック定義、ディメンション値、メトリック値をプログラムによって取得できます。 データは、Azure SQL Database、Azure Cosmos DB、Azure Data Lake など、別のデータ ストアに保存し、 そこで、必要に応じて追加の分析を実行できます。

Azure Monitor API では、さまざまなメトリック データ ポイントを処理するだけでなく、アラート規則の一覧表示、アクティビティ ログの表示などを行うこともできます。 使用可能な操作の一覧については、「Microsoft Azure Monitor REST API リファレンス」を参照してください。

Azure Monitor 要求の認証

Azure Monitor API に対して実行されるすべてのタスクが、Azure Resource Manager 認証モデルを使用します。 したがって、すべての要求を Azure Active Directory (Azure AD) で認証する必要があります。 クライアント アプリケーションを認証する 1 つの方法が、Azure AD サービス プリンシパルを作成し、認証 (JWT) トークンを取得することです。

次のサンプル スクリプトは、PowerShell を使用して、Azure AD サービス プリンシパルを作成しています。 さらに詳細なチュートリアルについては、「リソースにアクセスするためのサービス プリンシパルを Azure PowerShell で作成する」のドキュメントを参照してください。 Azure portal を使用してサービス プリンシパルを作成することもできます。

$subscriptionId = "{azure-subscription-id}"
$resourceGroupName = "{resource-group-name}"

# Authenticate to a specific Azure subscription.
Connect-AzAccount -SubscriptionId $subscriptionId

# Password for the service principal
$pwd = "{service-principal-password}"
$secureStringPassword = ConvertTo-SecureString -String $pwd -AsPlainText -Force

# Create a new Azure AD application
$azureAdApplication = New-AzADApplication `
                        -DisplayName "My Azure Monitor" `
                        -HomePage "https://localhost/azure-monitor" `
                        -IdentifierUris "https://localhost/azure-monitor" `
                        -Password $secureStringPassword

# Create a new service principal associated with the designated application
New-AzADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId

# Assign Reader role to the newly created service principal
New-AzRoleAssignment -RoleDefinitionName Reader `
                          -ServicePrincipalName $azureAdApplication.ApplicationId.Guid

Azure Monitor API を照会するには、クライアント アプリケーションは、前に作成したサービス プリンシパルを使用して認証する必要があります。 次に示す PowerShell スクリプトの例は、Microsoft Authentication Library (MSAL) を使って認証トークンを取得する 1 つの方法です。

$ClientID           = "{client_id}"
$loginURL           = "https://login.microsoftonline.com"
$tenantdomain       = "{tenant_id}"
$CertPassWord       = "{password_for_cert}"
$certPath           = "C:\temp\Certs\testCert_01.pfx"
 
[string[]] $Scopes  = "https://graph.microsoft.com/.default"
 
Function Load-MSAL {
    if ($PSVersionTable.PSVersion.Major -gt 5)
    { 
        $core = $true
        $foldername =  "netcoreapp2.1"
    }
    else
    { 
        $core = $false
        $foldername = "net45"
    }
 
    # Download MSAL.Net module to a local folder if it does not exist there
    if ( ! (Get-ChildItem $HOME/MSAL/lib/Microsoft.Identity.Client.* -erroraction ignore) ) {
        install-package -Source nuget.org -ProviderName nuget -SkipDependencies Microsoft.Identity.Client -Destination $HOME/MSAL/lib -force -forcebootstrap | out-null
    }
   
    # Load the MSAL assembly -- needed once per PowerShell session
    [System.Reflection.Assembly]::LoadFrom((Get-ChildItem $HOME/MSAL/lib/Microsoft.Identity.Client.*/lib/$foldername/Microsoft.Identity.Client.dll).fullname) | out-null
  }
  
Function Get-GraphAccessTokenFromMSAL {
 
    Load-MSAL
 
    $global:app = $null
 
    $x509cert = [System.Security.Cryptography.X509Certificates.X509Certificate2] (GetX509Certificate_FromPfx -CertificatePath $certPath -CertificatePassword $CertPassWord)
    write-host "Cert = {$x509cert}"
 
    $ClientApplicationBuilder = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder]::Create($ClientID)
        [void]$ClientApplicationBuilder.WithAuthority($("$loginURL/$tenantdomain"))
        [void]$ClientApplicationBuilder.WithCertificate($x509cert)
    $global:app = $ClientApplicationBuilder.Build()
 
    [Microsoft.Identity.Client.AuthenticationResult] $authResult  = $null
    $AquireTokenParameters = $global:app.AcquireTokenForClient($Scopes)
    try {
        $authResult = $AquireTokenParameters.ExecuteAsync().GetAwaiter().GetResult()
    }
    catch {
        $ErrorMessage = $_.Exception.Message
        Write-Host $ErrorMessage
    }
     
    return $authResult
}
 
function GetX509Certificate_FromPfx($CertificatePath, $CertificatePassword){
    #write-host "Path: '$CertificatePath'"
    
    if(![System.IO.Path]::IsPathRooted($CertificatePath))
    {
        $LocalPath = Get-Location
        $CertificatePath = "$LocalPath\$CertificatePath"
    }
 
    #Write-Host "Looking for '$CertificatePath'"
 
    $certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($CertificatePath, $CertificatePassword)
     
    Return $certificate
}
 
$myvar = Get-GraphAccessTokenFromMSAL
Write-Host "Access Token: " $myvar.AccessToken
 

PowerShell で .pfx ファイルから証明書を読み込むと、証明書を証明書ストアにインストールする必要がなく、管理者が証明書を管理しやすくなります。 ただし、クライアント コンピューターでは、ユーザーがファイルとそのパスワード、および認証方法まで見つけてしまう可能性があるので、この手順を行わないでください。 クライアント資格情報フローは、管理者だけがコンピューターにアクセスできる種類のシナリオのために、バックエンド サービスでのみ実行することが意図されています。

認証後、Azure Monitor REST API に対してクエリを実行できます。 便利なクエリは次の 2 つです。

  • リソースのメトリック定義を一覧表示する。
  • メトリック値を取得する。

注意

Azure REST API を使用した認証に関する追加情報については、「Azure REST API リファレンス」を参照してください。

メトリック定義の取得

Azure Monitor メトリック定義 REST API を使用すると、サービスで使用できるメトリックの一覧にアクセスできます。

メソッド: GET

要求 URI: {subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}{resourceType}{resourceName}/providers/microsoft.insights/metricDefinitions?api-version={apiVersion}

Azure Storage アカウントのメトリック定義を取得する場合、要求は次の例のようになります。

$request = "https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricDefinitions?api-version=2018-01-01"


Invoke-RestMethod -Uri $request ` 
                  -Headers $authHeader `
                  -Method Get `
                  -OutFile ".\contosostorage-metricdef-results.json" `
                  -Verbose

Note

以前のバージョンのメトリック定義 API ではディメンションがサポートされていませんでした。 API バージョン "2018-01-01" 以降を使用することをお勧めします。

結果として得られる JSON 応答本文は次の例のようになります (2 番目のメトリックがディメンションを持つことに注意してください)。

{
    "value": [
        {
            "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/UsedCapacity",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/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": "PT6H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT12H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ]
        },
        {
            "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/Transactions",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/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": "PT15M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT30M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT6H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT12H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ],
            "dimensions": [
                {
                    "value": "ResponseType",
                    "localizedValue": "Response type"
                },
                {
                    "value": "GeoType",
                    "localizedValue": "Geo type"
                },
                {
                    "value": "ApiName",
                    "localizedValue": "API name"
                }
            ]
        },
        ...
    ]
}

ディメンション値を取得する

使用可能なメトリック定義が判明した後で、一部のメトリックにディメンションがある場合があります。 メトリックのクエリを実行する前に、ディメンションの値の範囲を調べることができます。 これらのディメンション値に基づいて、メトリックのクエリの実行中にメトリックをフィルター処理するか、分割するかを選択できます。 Azure Monitor Metrics REST API を使用し、特定のメトリック ディメンションで考えられるすべての値を見つけます。

すべてのフィルター処理の要求にメトリックの名前 value (localizedValue ではありません) を使用します。 フィルターが指定されていない場合は、既定のメトリックが返されます。 この API の使用法では、1 つのディメンションでのみ、ワイルドカード フィルターを使用できます。 ディメンション値要求とメトリック データ要求の主な違いは、"resultType=metadata" クエリ パラメーターを指定することです。

Note

Azure Monitor REST API を使用してディメンション値を取得するには、"2019-07-01" 以降の API バージョンを使用します。

メソッド: GET

要求 URI: {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=metadataapi-version={apiVersion}

たとえば、指定した時間範囲内の間は GeoType ディメンションが Primary で、Transactions メトリックの API Name ディメンションに対して生成されたディメンション値のリストを取得する場合、要求は次のようになります。

$filter = "APIName eq '*' and GeoType eq 'Primary'"
$request = "https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics?metricnames=Transactions&timespan=2018-03-01T00:00:00Z/2018-03-02T00:00:00Z&resultType=metadata&`$filter=GeoType eq 'Primary' and ApiName eq '*'&api-version=2019-07-01"
Invoke-RestMethod -Uri $request `
    -Headers $authHeader `
    -Method Get `
    -OutFile ".\contosostorage-dimension-values.json" `
    -Verbose

結果として得られる JSON 応答本文は次の例のようになります。

{
  "timespan": "2018-03-01T00:00:00Z/2018-03-02T00:00:00Z",
  "value": [
    {
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/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 を使用してメトリック値を取得します。

すべてのフィルター処理の要求にメトリックの名前 value (localizedValue ではありません) を使用します。 ディメンション フィルターが指定されていない場合、ロール アップされた集計メトリックが返されます。 特定のディメンション値を持つ複数の時系列をフェッチするには、"&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'" などの両方のディメンション値を指定するフィルター クエリ パラメーターを指定します。 特定のディメンションのあらゆる値に対して時系列を返すには、"&$filter=ApiName eq '*'" のような * フィルターを使用します。 Top クエリ パラメーターと OrderBy クエリ パラメーターを使用すると、返される時系列の数を制限し、順序付けできます。

Note

Azure Monitor REST API を使用して多次元のメトリック値を取得するには、"2019-07-01" 以降の API バージョンを使用します。

メソッド: GET

要求 URI: {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}

たとえば、5 分の範囲内の Transactions の数を基準にして、GeotType が Primary である上位 3 つの API を降順で取得する場合、要求は次のようになります。

$filter = "APIName eq '*' and GeoType eq 'Primary'"
$request = "https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics?metricnames=Transactions&timespan=2018-03-01T02:00:00Z/2018-03-01T02:05:00Z&`$filter=apiname eq 'GetBlobProperties'&interval=PT1M&aggregation=Total&top=3&orderby=Total desc&api-version=2019-07-01"
Invoke-RestMethod -Uri $request `
    -Headers $authHeader `
    -Method Get `
    -OutFile ".\contosostorage-metric-values.json" `
    -Verbose

結果として得られる JSON 応答本文は次の例のようになります。

{
  "cost": 0,
  "timespan": "2018-03-01T02:00:00Z/2018-03-01T02:05:00Z",
  "interval": "PT1M",
  "value": [
    {
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/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": "2017-09-19T02:00:00Z",
              "total": 2
            },
            {
              "timeStamp": "2017-09-19T02:01:00Z",
              "total": 1
            },
            {
              "timeStamp": "2017-09-19T02:02:00Z",
              "total": 3
            },
            {
              "timeStamp": "2017-09-19T02:03:00Z",
              "total": 7
            },
            {
              "timeStamp": "2017-09-19T02:04:00Z",
              "total": 2
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

ARMClient の使用

他のアプローチは、お使いの Windows マシンで ARMClient を使用することです。 ARMClient では、Azure AD 認証 (および結果の JWT トークン) が自動的に処理されます。 次の手順は、ARMClient を使用してメトリック データを取得する方法を簡単に示しています。

  1. ChocolateyARMClient をインストールします。
  2. ターミナル ウィンドウで、「armclient.exe login」と入力します。 これにより Azure にサインインするよう求められます。
  3. armclient GET [your_resource_id]/providers/microsoft.insights/metricdefinitions?api-version=2016-03-01」と入力します。
  4. armclient GET [your_resource_id]/providers/microsoft.insights/metrics?api-version=2016-09-01」と入力します。

たとえば、特定のロジック アプリのメトリック定義を取得するためには、次のコマンドを実行します。

armclient GET /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Logic/workflows/ContosoTweets/providers/microsoft.insights/metricDefinitions?api-version=2016-03-01

リソース ID の取得

REST API を使用すると、使用可能なメトリック定義、粒度、および関連する値について理解しやすくなります。 この情報は、Azure 管理ライブラリを使用するときに役立ちます。

前のコードの場合、使用するリソース ID は、目的の Azure リソースへの完全パスです。 たとえば、Azure Web アプリに対してクエリを実行する場合、リソース ID は次のようになります。

/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{site-name}/

次の一覧は、さまざまな Azure リソースのリソース ID 形式の例をいくつか示しています。

  • Azure IoT Hub: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iot-hub-name}
  • Elastic SQL pool: /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 仮想マシン スケール セット: /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}

リソース ID を取得する別の方法があります。 Azure Resource Explorer を使用し、Azure portal で目的のリソースを表示し、PowerShell または Azure CLI を使用します。

Azure Resource Explorer

目的のリソースのリソース ID を見つける 1 つの方法として便利なのは、 Azure リソース エクスプローラー ツールを使用することです。 目的のリソースに移動すると、次のスクリーンショットのように ID が表示されます。

Azure Resource Explorer を示すスクリーンショット。

Azure portal

Azure ポータルからリソース ID を取得することもできます。 これを行うには、目的のリソースに移動し、[プロパティ] を選択します。 リソース ID は、次のスクリーンショットのように [プロパティ] セクションに表示されます。

Azure portal の [プロパティ] ペインに表示されているリソース ID を示すスクリーンショット。

Azure PowerShell

リソース ID は、Azure PowerShell コマンドレットを使用して取得することもできます。 たとえば Azure ロジック アプリのリソース ID を取得するには、次の例のように、Get-AzureLogicApp コマンドレットを実行します。

Get-AzLogicApp -ResourceGroupName azmon-rest-api-walkthrough -Name contosotweets

結果は次の例のようになります。

Id             : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Logic/workflows/ContosoTweets
Name           : ContosoTweets
Type           : Microsoft.Logic/workflows
Location       : centralus
ChangedTime    : 8/21/2017 6:58:57 PM
CreatedTime    : 8/18/2017 7:54:21 PM
AccessEndpoint : https://prod-08.centralus.logic.azure.com:443/workflows/f3a91b352fcc47e6bff989b85446c5db
State          : Enabled
Definition     : {$schema, contentVersion, parameters, triggers...}
Parameters     : {[$connections, Microsoft.Azure.Management.Logic.Models.WorkflowParameter]}
SkuName        :
AppServicePlan :
PlanType       :
PlanId         :
Version        : 08586982649483762729

Azure CLI

Azure CLI を使用して Azure Storage アカウントのリソース ID を取得するには、次の例で示すように、az storage account show コマンドを実行します。

az storage account show -g azmon-rest-api-walkthrough -n contosotweets2017

結果は次の例のようになります。

{
  "accessTier": null,
  "creationTime": "2017-08-18T19:58:41.840552+00:00",
  "customDomain": null,
  "enableHttpsTrafficOnly": false,
  "encryption": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/contosotweets2017",
  "identity": null,
  "kind": "Storage",
  "lastGeoFailoverTime": null,
  "location": "centralus",
  "name": "contosotweets2017",
  "networkAcls": null,
  "primaryEndpoints": {
    "blob": "https://contosotweets2017.blob.core.windows.net/",
    "file": "https://contosotweets2017.file.core.windows.net/",
    "queue": "https://contosotweets2017.queue.core.windows.net/",
    "table": "https://contosotweets2017.table.core.windows.net/"
  },
  "primaryLocation": "centralus",
  "provisioningState": "Succeeded",
  "resourceGroup": "azmon-rest-api-walkthrough",
  "secondaryEndpoints": null,
  "secondaryLocation": "eastus2",
  "sku": {
    "name": "Standard_GRS",
    "tier": "Standard"
  },
  "statusOfPrimary": "available",
  "statusOfSecondary": "available",
  "tags": {},
  "type": "Microsoft.Storage/storageAccounts"
}

Note

Azure Logic Apps はまだ Azure CLI 経由では利用できません。 このため、上記の例では Azure Storage アカウントが示されています。

アクティビティ ログ データの取得

メトリック定義と関連する値だけでなく、Azure Monitor REST API を使用して Azure リソースに関連する他の興味深い分析情報を取得することもできます。 たとえば、アクティビティ ログ データにクエリを実行できます。 次のサンプル要求では、Azure Monitor REST API を使用し、アクティビティ ログにクエリを実行します。

フィルターを使用してアクティビティ ログを取得します。

GET https://management.azure.com/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/providers/microsoft.insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2018-01-21T20:00:00Z' and eventTimestamp le '2018-01-23T20:00:00Z' and resourceGroupName eq 'MSSupportGroup'

フィルターと選択を使用してアクティビティ ログを取得します。

GET https://management.azure.com/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/providers/microsoft.insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2015-01-21T20:00:00Z' and eventTimestamp le '2015-01-23T20:00:00Z' and resourceGroupName eq 'MSSupportGroup'&$select=eventName,id,resourceGroupName,resourceProviderName,operationName,status,eventTimestamp,correlationId,submissionTimestamp,level

選択を使用してアクティビティ ログを取得します。

GET https://management.azure.com/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/providers/microsoft.insights/eventtypes/management/values?api-version=2015-04-01&$select=eventName,id,resourceGroupName,resourceProviderName,operationName,status,eventTimestamp,correlationId,submissionTimestamp,level

フィルターや選択を使用せずにアクティビティ ログを取得します。

GET https://management.azure.com/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/providers/microsoft.insights/eventtypes/management/values?api-version=2015-04-01

トラブルシューティング

429、503、または 504 エラーが発生する場合は、1 分後に API を再試行してください。

次のステップ