メトリック、アラート、診断を使用して 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 リソースの [監視] という見出しの下にグループ化されています。
メトリックとアラート
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 要求の数。 | 認証、 操作、 プロトコル、 状態コード、 状態コード クラス、 状態テキスト |
ApiRequestsFailureRate | API Requests Failure Rate (API 要求の失敗率) | Percent | Average | インスタンスに対してサービスが受け取る API 要求のうち、Digital Twins の読み取り、書き込み、削除、クエリ操作に対して内部エラー (500) 応答コードを返す API 要求の割合。 | 認証、 操作、 プロトコル、 状態コード、 状態コード クラス、 状態テキスト |
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 | 削除ジョブのエンティティ数 | 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 |
アクション | 投稿 |
各カテゴリに記録される操作と対応する 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 本文例内のフィールドは、以下の各種類のログに対して提供されます。
ADTDigitalTwinsOperation
、ADTModelsOperation
、および ADTQueryOperation
は、一貫性のある API ログ スキーマを使用します。 ADTEventRoutesOperation
はスキーマを拡張して、プロパティに endpointName
フィールドを含めます。
API ログ スキーマ
このログ スキーマは、ADTDigitalTwinsOperation
、ADTModelsOperation
、ADTQueryOperation
で一貫しています。 同じスキーマが ADTEventRoutesOperation
にも使用されますが、操作名 Microsoft.DigitalTwins/eventroutes/action
の例外があります (このスキーマの詳細については、次のセクション、「エグレス ログ スキーマ」を参照してください)。
このスキーマには、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 | TraceId 、W3C トレース コンテキストの一部として。 システム全体に分散されたトレースを一意に識別するために使用されるトレース全体の ID です。 |
SpanId |
String | SpanId 、W3C トレース コンテキストの一部として。 トレース内にあるこの要求の ID です。 |
ParentId |
String | ParentId 、W3C トレース コンテキストの一部として。 親 ID がない要求は、トレースのルートになります。 |
TraceFlags |
String | TraceFlags 、W3C トレース コンテキストの一部として。 サンプリング、トレース レベルなどのトレース フラグを制御します。 |
TraceState |
String | TraceState 、W3C トレース コンテキストの一部として。 さまざまな分散トレース システムにまたがる、その他のベンダー固有のトレース識別情報。 |
これらの種類のログの JSON 本文の例を次に示します。
ADTDigitalTwinsOperation
{
"time": "2020-03-14T21:11:14.9918922Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "aaaa0000-bb11-2222-33cc-444444dddddd",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "cccc2222-dd33-4444-55ee-666666ffffff",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"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 | TraceId 、W3C トレース コンテキストの一部として。 システム全体に分散されたトレースを一意に識別するために使用されるトレース全体の ID です。 |
SpanId |
String | SpanId 、W3C トレース コンテキストの一部として。 トレース内にあるこの要求の ID です。 |
ParentId |
String | ParentId 、W3C トレース コンテキストの一部として。 親 ID がない要求は、トレースのルートになります。 |
TraceFlags |
String | TraceFlags 、W3C トレース コンテキストの一部として。 サンプリング、トレース レベルなどのトレース フラグを制御します。 |
TraceState |
String | TraceState 、W3C トレース コンテキストの一部として。 さまざまな分散トレース システムにまたがる、その他のベンダー固有のトレース識別情報。 |
EndpointName |
String | Azure Digital Twins で作成されたエグレス エンドポイントの名前 |
これは、Microsoft.DigitalTwins/eventroutes/action
型の ADTEventRoutesOperation
に対する JSON 本文です。
{
"time": "2020-11-05T22:18:38.0708705Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"identity": {
"claims": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
},
"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 のドキュメントをご覧ください。