メトリック、アラート、診断を使用して Azure Digital Twins を監視する

Azure Digital Twins と Azure Monitor の統合によって提供されるメトリックと診断情報を使って、Azure Digital Twins のリソースを監視できます。 メトリックは既定で有効になり、Azure サブスクリプション内の Azure Digital Twins リソースの状態に関する情報を提供します。 アラートは、メトリック データで特定の状態が見つかると事前に通知できます。 サービス インスタンスの診断ログを収集し、そのパフォーマンス、アクセス、その他のデータを監視することもできます。

これらの監視機能は、Azure Digital Twins サービスとそれに接続されているリソースの全体的な正常性を評価するのに役立ちます。 これらを使って、Azure Digital Twins インスタンスで起きていることを理解し、問題の根本原因を分析できます。Azure サポートに連絡する必要はありません。

これらには Azure portal からアクセスでき、Azure Digital Twins リソースの [監視] という見出しの下にグループ化されています。

Screenshot of the Azure portal showing the Monitoring options.

メトリックとアラート

Azure リソースのメトリックの表示に関する一般的な情報については、Azure Monitor のドキュメントの「メトリックス エクスプローラーでの作業開始」をご覧ください。 Azure メトリック用のアラートの構成に関する一般的な情報については、「新しいアラート ルールを作成する」をご覧ください。

このセクションの残りの部分では、各 Azure Digital Twins インスタンスによって追跡されるメトリックと、各メトリックがインスタンスの全体的な状態にどのように関連しているかについて説明します。

サービスの制限を追跡するためのメトリック

これらのメトリックを構成すると、ソリューションの一部の特性が公開されているサービスの制限に近づいているかどうかを追跡できます。

追跡を設定するには、Azure Monitor のアラート機能を使用します。 これらのメトリックのしきい値を定義すると、メトリックが公開されている制限の特定の割合に達したときにアラートを受け取ることができます。

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
TwinCount ツイン数 (プレビュー) Count 合計 Azure Digital Twins インスタンス内のツインの合計数。 インスタンスごとに許可されるツインの最大数に関するサービスの制限に近づいているかどうかを判断するには、このメトリックを使用します。 なし
ModelCount モデル数 (プレビュー) Count 合計 Azure Digital Twins インスタンス内のモデルの合計数。 インスタンスごとに許可されるモデルの最大数に関するサービスの制限に近づいているかどうかを判断するには、このメトリックを使用します。 なし

API 要求のメトリック

API 要求に関連するメトリック:

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
ApiRequests API 要求 Count 合計 Digital Twins の読み取り、書き込み、削除、およびクエリ操作に対して行われた API 要求の数。 認証
操作
プロトコル
状態コード、
Status Code クラス、
状態テキスト
ApiRequestsFailureRate API Requests Failure Rate (API 要求の失敗率) Percent Average インスタンスに対してサービスが受け取る API 要求のうち、Digital Twins の読み取り、書き込み、削除、クエリ操作に対して内部エラー (500) 応答コードを返す API 要求の割合。 認証
操作
プロトコル
状態コード、
Status Code クラス、
状態テキスト
ApiRequestsLatency API Requests Latency (API 要求の待機時間) ミリ秒 Average API 要求の応答時間。 この値は、Azure Digital Twins が要求を受け取ってから、サービスが Digital Twins の読み取り、書き込み、削除、クエリ操作の成功または失敗の結果を送信するまでの時間を指します。 認証
操作
Protocol

課金メトリック

課金に関連するメトリック:

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
BillingApiOperations Billing API Operations (課金 API 操作) Count 合計 Azure Digital Twins サービスに対して行われたすべての API 要求の数の課金メトリック。 測定 ID
BillingMessagesProcessed Billing Messages Processed (処理されたメッセージの課金) Count 合計 Azure Digital Twins から外部エンドポイントに送信されたメッセージ数の課金メトリック。

課金に対する 1 つのメッセージと見なされるには、ペイロードが 1 KB を超えないようにする必要があります。 この制限を超えるペイロードは、1 KB ごとに追加のメッセージとしてカウントされます (そのため、1 KB から 2 KB のメッセージは 2 つのメッセージ、2 KB から 3 KB のメッセージは 3 つのメッセージとしてカウントされます)。
この制限は、応答にも適用されます。たとえば、応答本文内で 1.5 KB を返す呼び出しは、2 件の操作として課金されます。
測定 ID
BillingQueryUnits Billing Query Units (課金クエリ単位) Count 合計 クエリを実行するために消費された、内部で計算されたサービス リソース使用量の測定値であるクエリ単位の数。 クエリ単位の測定に使用できるヘルパー API もあります: QueryChargeHelper クラス 測定 ID

Azure Digital Twins の課金方法の詳細については、「Azure Digital Twins の価格」を参照してください。

イングレスのメトリック

データのイングレスに関連するメトリック:

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
IngressEvents Ingress Events (イングレス イベント) Count 合計 Azure Digital Twins への受信デバイス テレメトリ イベントの数。 結果
IngressEventsFailureRate Ingress Events Failure Rate (イングレス イベント エラー率) Percent Average サービスが内部エラー (500) 応答コードを返す受信デバイス テレメトリ イベントの割合。 結果
IngressEventsLatency Ingress Events Latency (イングレス イベント待ち時間) ミリ秒 Average イベントが到着してから、Azure Digital Twins がそのイベントを送出できる状態になるまでの時間。その時点でサービスから成功または失敗の結果が送信されます。 結果

一括操作メトリック (ジョブ API から)

ジョブ API からの一括操作に関するメトリック:

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
ImportJobLatency Import Job Latency (インポート ジョブの待機時間) ミリ秒 Average インポート ジョブが完了するまでにかかった合計時間。 操作
認証
Protocol
ImportJobEntityCount Import Job Entity Count (インポート ジョブのエンティティ数) Count 合計 インポート ジョブによって処理されるツイン、モデル、またはリレーションシップの数。 操作
結果
DeleteJobLatency ジョブの待機時間の削除 ミリ秒 Average 削除ジョブが完了するまでにかかった合計時間。 操作
認証
Protocol
DeleteJobEntityCount Delete Job Entity Count Count 合計 削除ジョブの一部として削除されたモデル、ツイン、リレーションシップの数。 操作
結果

ルーティング メトリック

ルーティングに関連するメトリック:

メトリック メトリックの表示名 ユニット 集計の種類 説明 Dimensions
MessagesRouted Messages Routed (ルーティングされたメッセージ) Count 合計 エンドポイント Azure サービス (Event Hubs、Service Bus、Event Grid など) にルーティングされるメッセージの数。 エンドポイントの種類、
結果
RoutingFailureRate Routing Failure Rate (ルーティングの失敗率) Percent Average イベントが Azure Digital Twins からエンドポイントの Azure サービス (Event Hub、Service Bus、Event Grid など) にルーティングされるときにエラーが発生するイベントの割合。 エンドポイントの種類、
結果
RoutingLatency Routing Latency (ルーティングの待機時間) ミリ秒 Average イベントが Azure Digital Twins からルーティングされてから、エンドポイントの Azure サービス (Event Hub、Service Bus、Event Grid など) にポストされるまでの経過時間。 エンドポイントの種類、
結果

メトリック ディメンション

ディメンションは、メトリックに関する詳細を特定するのに役立ちます。 一部のルーティング メトリックでは、エンドポイントごとの情報が提供されます。 次の表に、これらのディメンションに可能な値を示します。

ディメンション
認証 OAuth
操作 (API 要求用) Microsoft.DigitalTwins/digitaltwins/delete,
Microsoft.DigitalTwins/digitaltwins/write,
Microsoft.DigitalTwins/digitaltwins/read,
Microsoft.DigitalTwins/eventroutes/read,
Microsoft.DigitalTwins/eventroutes/write,
Microsoft.DigitalTwins/eventroutes/delete,
Microsoft.DigitalTwins/models/read,
Microsoft.DigitalTwins/models/write,
Microsoft.DigitalTwins/models/delete,
Microsoft.DigitalTwins/query/action
エンドポイントの種類 Event Grid、
Event Hubs、
Service Bus
Protocol HTTPS
結果 成功
エラー
状態コード 200、404、500 など。
状態コード クラス 2xx、4xx、5xx など。
状態テキスト 内部サーバー エラー、見つかりませんなど。

診断ログ

有効にする方法など、Azure の診断設定に関する一般的な情報については、「Azure Monitor の診断設定」をご覧ください。 Log Analytics を使った診断ログのクエリについて詳しくは、「Azure Monitor の Log Analytics の概要」をご覧ください。

このセクションの残りの部分では、Azure Digital Twins が収集できる診断ログのカテゴリとそのスキーマについて説明します。

ログのカテゴリ

ここでは、Azure Digital Twins で収集されるログのカテゴリについて詳しく説明します。

ログのカテゴリ 説明
ADTModelsOperation モデルに関連するすべての API コールをログに記録する
ADTQueryOperation クエリに関連するすべての API コールをログに記録する
ADTEventRoutesOperation イベント ルートに関連するすべての API 呼び出しと、Azure Digital Twins から Event Grid、Event Hubs、Service Bus などのエンドポイント サービスへのイベントのエグレスをログする
ADTDigitalTwinsOperation 個々のツインに関連する API 呼び出しをすべてログに記録する

各ログ カテゴリは、書き込み、読み取り、削除、およびアクションの操作で構成されます。 これらのカテゴリは、次のように REST API 呼び出しにマップされます。

イベントの種類 REST API の操作
Write PUT と PATCH
Read GET
削除 DELETE
アクション POST

各カテゴリに記録される操作と対応する Azure Digital Twins REST API 呼び出しの一覧を次に示します。

Note

各ログ カテゴリには、複数の操作/REST API 呼び出しが含まれています。 次の表では、各ログ カテゴリがすべての操作/REST API 呼び出しにマップされています (次のログ カテゴリが表示されるまで)。

ログのカテゴリ 操作 REST API 呼び出しとその他のイベント
ADTModelsOperation Microsoft.DigitalTwins/models/write デジタル ツイン モデル更新 API
Microsoft.DigitalTwins/models/read デジタル ツイン モデルの ID による取得とリスト API
Microsoft.DigitalTwins/models/delete デジタル ツイン モデルの削除 API
Microsoft.DigitalTwins/models/action デジタル ツイン モデルの追加 API
ADTQueryOperation Microsoft.DigitalTwins/query/action ツインのクエリ API
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write イベント ルート追加 API
Microsoft.DigitalTwins/eventroutes/read イベント ルートの ID による取得とリスト API
Microsoft.DigitalTwins/eventroutes/delete イベント ルートの削除 API
Microsoft.DigitalTwins/eventroutes/action エンドポイント サービスにイベントを発行しようとしてエラーが発生した (API 呼び出しではない)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Digital Twins の追加、リレーションシップの追加、更新、コンポーネントの更新
Microsoft.DigitalTwins/digitaltwins/read Digital Twins の ID による取得、コンポーネントの取得、ID によるリレーションシップの取得、受信リレーションシップのリスト、リレーションシップのリスト
Microsoft.DigitalTwins/digitaltwins/delete Digital Twins の削除、リレーションシップの削除
Microsoft.DigitalTwins/digitaltwins/action Digital Twins のコンポーネント テレメトリの送信、テレメトリの送信

ログ スキーマ

各ログ カテゴリには、そのカテゴリ内のイベントの報告方法を定義するスキーマがあります。 個々のログ エントリはテキストとして保存され、形式は JSON BLOB となります。 ログおよび JSON 本文例内のフィールドは、以下の各種類のログに対して提供されます。

ADTDigitalTwinsOperationADTModelsOperation、および ADTQueryOperation は、一貫性のある API ログ スキーマを使用します。 ADTEventRoutesOperation はスキーマを拡張して、プロパティに endpointName フィールドを含めます。

API ログ スキーマ

このログ スキーマは、ADTDigitalTwinsOperationADTModelsOperationADTQueryOperation で一貫しています。 操作名を除きMicrosoft.DigitalTwins/eventroutes/action、同じスキーマも使用ADTEventRoutesOperationされます (そのスキーマの詳細については、次のセクション「エグレス ログ スキーマ」を参照してください)。

このスキーマには、Azure Digital Twins インスタンスへの API 呼び出しに関連する情報が含まれています。

API ログのフィールドおよびプロパティの説明を次に示します。

フィールド名 データ型 説明
Time DateTime このイベントが発生した日時 (UTC)
ResourceId String イベントが発生したリソースの Azure Resource Manager リソース ID
OperationName String イベント中に実行されるアクションの種類
OperationVersion String イベント中に使用される API バージョン
Category String 出力されるリソースの種類
ResultType String イベントの結果
ResultSignature String イベントの HTTP ステータス コード
ResultDescription String イベントに関する追加情報
DurationMs String イベントの実行にかかった時間 (ミリ秒)
CallerIpAddress String イベントのマスクされた発信元 IP アドレス
CorrelationId GUID イベントの一意識別子
ApplicationId GUID ベアラー認証で使用されるアプリケーション ID
Level int イベントのログ重大度
Location String イベントが発生したリージョン
RequestUri Uri イベント中に使用されるエンドポイント
TraceId String TraceIdW3C トレース コンテキストの一部として。 システム全体に分散されたトレースを一意に識別するために使用されるトレース全体の ID です。
SpanId String SpanIdW3C トレース コンテキストの一部として。 トレース内にあるこの要求の ID です。
ParentId String ParentIdW3C トレース コンテキストの一部として。 親 ID がない要求は、トレースのルートになります。
TraceFlags String TraceFlagsW3C トレース コンテキストの一部として。 サンプリング、トレース レベルなどのトレース フラグを制御します。
TraceState String TraceStateW3C トレース コンテキストの一部として。 さまざまな分散トレース システムにまたがる、その他のベンダー固有のトレース識別情報。

これらの種類のログの JSON 本文の例を次に示します。

ADTDigitalTwinsOperation
{
  "time": "2020-03-14T21:11:14.9918922Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/digitaltwins/write",
  "operationVersion": "2020-10-31",
  "category": "DigitalTwinOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": 8,
  "callerIpAddress": "13.68.244.*",
  "correlationId": "2f6a8e64-94aa-492a-bc31-16b9f0b16ab3",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/digitaltwins/factory-58d81613-2e54-4faa-a930-d980e6e2a884?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTModelsOperation
{
  "time": "2020-10-29T21:12:24.2337302Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/models/write",
  "operationVersion": "2020-10-31",
  "category": "ModelsOperation",
  "resultType": "Success",
  "resultSignature": "201",
  "resultDescription": "",
  "durationMs": "80",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "9dcb71ea-bb6f-46f2-ab70-78b80db76882",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/Models?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTQueryOperation
{
  "time": "2020-12-04T21:11:44.1690031Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/query/action",
  "operationVersion": "2020-10-31",
  "category": "QueryOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": "314",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "1ee2b6e9-3af4-4873-8c7c-1a698b9ac334",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/query?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTEventRoutesOperation

これは Microsoft.DigitalTwins/eventroutes/action 型ではない ADTEventRoutesOperation の JSON 本文の例になります (このスキーマの詳細については、次のセクション、「エグレス ログ スキーマ」を参照してください)。

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
    "operationName": "Microsoft.DigitalTwins/eventroutes/write",
    "operationVersion": "2020-10-31",
    "category": "EventRoutesOperation",
    "resultType": "Success",
    "resultSignature": "204",
    "resultDescription": "",
    "durationMs": 42,
    "callerIpAddress": "212.100.32.*",
    "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
    "identity": {
      "claims": {
        "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
      }
    },
    "level": "4",
    "location": "southcentralus",
    "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/EventRoutes/egressRouteForEventHub?api-version=2020-10-31",
    "properties": {},
    "traceContext": {
      "traceId": "95ff77cfb300b04f80d83e64d13831e7",
      "spanId": "b630da57026dd046",
      "parentId": "9f0de6dadae85945",
      "traceFlags": "01",
      "tracestate": "k1=v1,k2=v2"
    }
  },

エグレス ログ スキーマ

次の例は、Microsoft.DigitalTwins/eventroutes/action 操作名に固有の ADTEventRoutesOperation ログに対するスキーマです。 これらには、例外に関する詳細と、Azure Digital Twins インスタンスに接続されたエグレス エンドポイントに関する API 操作の詳細が含まれます。

フィールド名 データ型 説明
Time DateTime このイベントが発生した日時 (UTC)
ResourceId String イベントが発生したリソースの Azure Resource Manager リソース ID
OperationName String イベント中に実行されるアクションの種類
Category String 出力されるリソースの種類
ResultDescription String イベントに関する追加情報
CorrelationId GUID 顧客が指定したイベントの一意識別子
ApplicationId GUID ベアラー認証で使用されるアプリケーション ID
Level int イベントのログ重大度
Location String イベントが発生したリージョン
TraceId String TraceIdW3C トレース コンテキストの一部として。 システム全体に分散されたトレースを一意に識別するために使用されるトレース全体の ID です。
SpanId String SpanIdW3C トレース コンテキストの一部として。 トレース内にあるこの要求の ID です。
ParentId String ParentIdW3C トレース コンテキストの一部として。 親 ID がない要求は、トレースのルートになります。
TraceFlags String TraceFlagsW3C トレース コンテキストの一部として。 サンプリング、トレース レベルなどのトレース フラグを制御します。
TraceState String TraceStateW3C トレース コンテキストの一部として。 さまざまな分散トレース システムにまたがる、その他のベンダー固有のトレース識別情報。
EndpointName String Azure Digital Twins で作成されたエグレス エンドポイントの名前

これは、Microsoft.DigitalTwins/eventroutes/action 型の ADTEventRoutesOperation に対する JSON 本文です。

{
  "time": "2020-11-05T22:18:38.0708705Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/eventroutes/action",
  "operationVersion": "",
  "category": "EventRoutesOperation",
  "resultType": "",
  "resultSignature": "",
  "resultDescription": "Unable to send EventHub message to [myPath] for event Id [f6f45831-55d0-408b-8366-058e81ca6089].",
  "durationMs": -1,
  "callerIpAddress": "",
  "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "",
  "properties": {
    "endpointName": "myEventHub"
  },
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
},

次のステップ

Azure Monitor とその機能について詳しくは、Azure Monitor のドキュメントをご覧ください。