AzureDiagnostics
Azure Diagnostics モードを使用する Azure サービスのリソース ログが格納されます。 リソース ログには、Azure リソースの内部操作が記述されています。
各 Azure サービスのリソース ログには、固有の列のセットがあります。 AzureDiagnostics テーブルには、Azure サービスによって使用される最も一般的な列が含まれています。 リソース ログに AzureDiagnostics テーブルにまだ存在しない列が含まれている場合は、データが初めて収集されたときにその列が追加されます。 500 列の最大数に達すると、追加の列のデータが動的列に追加されます。
リソース固有モードを使用する Azure サービスは、そのサービスに固有のテーブルにデータを格納し、AzureDiagnostics テーブルを使用しません。 違いの詳細については、 Azure リソース ログ を参照してください。 Azure Diagnostics を使用するサービスについては、「 Azure Diagnostics モードを使用したリソース 」を参照してください。
Note
AzureDiagnostics テーブルは、Azure リソースが初めて Azure Diagnostics モードでログの送信を開始するときに、Azure Monitor パイプラインによって排他的に作成されたカスタム ログ テーブルです。 他のテーブルとは異なり、ARM テンプレートまたはテーブル API を使用して AzureDiagnostics テーブルを作成することはできません。 そのため、作成前にテーブルの既定の保持値を変更することはできません。
AdditionalFields 列
他のテーブルとは異なり、 AzureDiagnostics は、このテーブルにデータを送信できるさまざまな Azure リソースがあるため、Log Analytics ワークスペース内の任意のテーブルに対して課される 500 列の制限を超える可能性がはるかに高くなります。 アクティブな列の数がこの 500 列の制限を超えたためにデータが失われないようにするために、AzureDiagnostics 列の作成は他のテーブルとは異なる方法で処理されます。
すべてのワークスペースの AzureDiagnostics テーブルには、少なくとも同じ 200 列が含まれています。 2021 年 1 月 19 日より前に作成されたワークスペースの場合、テーブルには、この日付より前に既に配置されていた列も含まれています。 データがまだ配置されていない列に送信される場合:
- 現在のワークスペースの AzureDiagnostics の列の合計数が 500 を超えない場合は、他のテーブルと同様に新しい列が作成されます。
- 列の合計数が 500 以上の場合、余分なデータは、プロパティとして AdditionalFields という動的プロパティ バッグ列に追加されます。
例
この動作を説明するために、ワークスペース内の AzureDiagnostics テーブルが (デプロイ日) の時点で次のようになります。
列 1 | 列 2 | 列 3 | ... | 列 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
AzureDiagnostics にデータを送信するリソースNewInfo1を呼び出すデータに新しいディメンションを追加します。 テーブルの列数は 500 未満であるため、この新しいディメンションのデータを含むイベントが初めて発生すると、テーブルに新しい列が追加されます。
列 1 | 列 2 | 列 3 | ... | 列 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
この新しいデータは、単純なクエリで返すことができます。
AzureDiagnostics | where NewInfo1_s == "xyz"
後日、別のリソースがデータを AzureDiagnostics に送信し、 NewInfo2 および NewInfo3 という名前の新しいディメンションを追加します。 テーブルはこのワークスペースで 500 列に達したため、新しいデータは AdditionalFields 列に入ります。
列 1 | 列 2 | 列 3 | ... | 列 498 | NewInfo1_s | AdditionalFields |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
このデータのクエリは引き続き実行できますが、KQL の動的プロパティ演算子のいずれかを使用してプロパティ バッグから抽出する必要があります。
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
AdditionalFields
列の使用に関するヒント
クエリの最初の句として常に時間でフィルター処理するなどのクエリのベスト プラクティスに従う必要がありますが、AdditionalFields を使用する場合は、他にもいくつかの推奨事項を考慮する必要があります。
- データに対してさらに操作を実行する前に、データを型キャストする必要があります。 たとえば、 Perf1Sec_i という名前の列があり、 AdditionalFields Perf2Sec と呼ばれるプロパティがあり、両方の値を追加して合計パフォーマンスを計算する場合は、次の
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
を使用できます。 - where句を使用して、パフォーマンスを大幅に向上させるために複雑なロジックを記述する前に、データ ボリュームをできるだけ小さくします。 TimeGenerated は、常に可能な限り小さいウィンドウに縮小する必要がある 1 つの列です。 AzureDiagnostics の場合は、ResourceType 列を使用してクエリを実行するリソースの種類に関するクエリの先頭に追加のフィルターを常に含める必要があります。
- 大量のデータに対してクエリを実行する場合、解析するのではなく、 AdditionalFields 全体でフィルターを実行する方が効率的な場合があります。 たとえば、大量のデータの場合、多くの場合、
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
はAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
よりも効率的です。
Azure Diagnostics モードを使用したリソース
次のサービスでは、リソース ログに Azure 診断モードを使用し、Azure Diagnostics テーブルにデータを送信します。 この構成の詳細については、 Azure リソース ログ を参照してください。
Note
他のすべてのリソースは、リソース固有のテーブルにデータを送信します。
サービス名 | resourceType |
---|---|
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/servers/databases |
MicrosoftAzureCosmosDB | microsoft.documentdb/databaseaccounts |
AzureFirewall | microsoft.network/azurefirewalls |
AzureApplicationGatewayService | microsoft.network/applicationgateways |
AKSCustomerData | microsoft.containerservice/managedclusters |
AzureFrontdoor | microsoft.cdn/profiles |
LNMAgentService | microsoft.network/networksecuritygroups |
MicrosoftOrcasBreadthServers | microsoft.dbforpostgresql/flexibleservers |
servicebus | microsoft.eventhub/namespaces |
AzureFrontdoor | microsoft.network/frontdoors |
AzureKeyVault | microsoft.keyvault/vaults |
AzureDataLake | microsoft.datalakestore/accounts |
ApiManagement | microsoft.apimanagement/service |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/managedinstances |
ASAzureRP | microsoft.analysisservices/servers |
MicrosoftOrcasBreadthServers | microsoft.dbformysql/flexibleservers |
servicebus | microsoft.servicebus/namespaces |
AzureIotHub | microsoft.devices/iothubs |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbforpostgresql/servers |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbformariadb/servers |
MicrosoftAutomation | microsoft.automation/automationaccounts |
TrafficManager | microsoft.network/trafficmanagerprofiles |
MicrosoftOrcasBreadthServers | microsoft.dbforpostgresql/servergroupsv2 |
AzureSearch。 | microsoft.search/searchservices |
AzureHybrid | microsoft.network/virtualnetworkgateways |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/managedinstances/databases |
PBIDedicatedRP | microsoft.powerbidedicated/capacities |
AzureHybrid | microsoft.network/vpngateways |
MicrosoftDatafactory | microsoft.datafactory/factories |
MicrosoftCognitiveServices | microsoft.cognitiveservices/accounts |
AzureRecoveryServices | microsoft.recoveryservices/vaults |
AzureBatch | microsoft.batch/batchaccounts |
AzureHybrid | microsoft.network/p2svpngateways |
MicrosoftSqlAzureTelemetryv2 | microsoft.dbformysql/servers |
AzureKeyVault | microsoft.keyvault/managedhsms |
NetMon | microsoft.network/publicipaddresses |
AzureDataLake | microsoft.datalakeanalytics/accounts |
MicrosoftStreamanalytics | microsoft.streamanalytics/streamingjobs |
servicebus | microsoft.relay/namespaces |
AzureIotDps | microsoft.devices/provisioningservices |
MicrosoftAzureCosmosDB | microsoft.documentdb/cassandraclusters |
MicrosoftAzureCosmosDB | microsoft.documentdb/mongoclusters |
AKSCustomerData | microsoft.containerservice/fleets |
PBIDedicatedRP | microsoft.powerbi/tenants/workspaces |
AzureFrontdoor | microsoft.cdn/cdnwebapplicationfirewallpolicies |
AzureHybrid | microsoft.network/expressroutecircuits |
MicrosoftAzureCosmosDB | microsoft.dbforpostgresql/flexibleservers |
NetMon | microsoft.network/publicipprefixes |
AzureCdn | microsoft.cdn/profiles/endpoints |
Azure Diagnostics モードまたはリソース固有モード
次のサービスでは、診断設定の構成に応じて、リソース ログに Azure 診断モードまたはリソース固有モードが使用されます。 リソース固有モードを使用する場合、これらのリソースは AzureDiagnostics テーブルにデータを送信しません。 この構成の詳細については、 Azure リソース ログ を参照してください。
サービス名 | resourceType |
---|---|
API Management サービス | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
データ ファクトリ (V2) | Microsoft.DataFactory |
Recovery Services コンテナー (バックアップ) | Microsoft.RecoveryServices/vaults |
ファイアウォール | Microsoft.Network/azureFirewalls |
AzureDiagnostics テーブルの列
列 | タイプ | 説明 |
---|---|---|
action_id_s | String | |
action_name_s | String | |
action_s | String | |
ActivityId_g | GUID | |
AdditionalFields | ||
AdHocOrScheduledJob_s | String | |
application_name_s | String | |
audit_schema_version_d | 倍精度浮動小数点型 | |
avg_cpu_percent_s | String | |
avg_mean_time_s | String | |
backendHostname_s | String | |
Caller_s | String | |
callerId_s | String | |
CallerIPAddress | String | |
calls_s | String | |
カテゴリ | String | |
client_ip_s | String | |
clientInfo_s | String | |
clientIP_s | String | |
clientIp_s | String | |
clientIpAddress_s | String | |
clientPort_d | 倍精度浮動小数点型 | |
code_s | String | |
collectionName_s | String | |
conditions_destinationIP_s | String | |
conditions_destinationPortRange_s | String | |
conditions_None_s | String | |
conditions_protocols_s | String | |
conditions_sourceIP_s | String | |
conditions_sourcePortRange_s | String | |
CorrelationId | String | |
count_executions_d | 倍精度浮動小数点型 | |
cpu_time_d | 倍精度浮動小数点型 | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | 倍精度浮動小数点型 | |
duration_d | 倍精度浮動小数点型 | |
duration_milliseconds_d | 倍精度浮動小数点型 | |
DurationMs | BigInt | |
ElasticPoolName_s | String | |
endTime_t | DateTime | |
Environment_s | String | |
error_code_s | String | |
error_message_s | String | |
errorLevel_s | String | |
event_class_s | String | |
event_s | String | |
event_subclass_s | String | |
event_time_t | DateTime | |
EventName_s | String | |
execution_type_d | 倍精度浮動小数点型 | |
executionInfo_endTime_t | DateTime | |
executionInfo_exitCode_d | 倍精度浮動小数点型 | |
executionInfo_startTime_t | DateTime | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | 倍精度浮動小数点型 | |
httpStatusCode_d | 倍精度浮動小数点型 | |
httpStatusCode_s | String | |
httpVersion_s | String | |
id_s | String | |
identity_claim_appid_g | GUID | |
identity_claim_ipaddr_s | String | |
instanceId_s | String | |
interval_end_time_d | 倍精度浮動小数点型 | |
interval_start_time_d | 倍精度浮動小数点型 | |
ip_s | String | |
is_column_permission_s | String | |
isAccessPolicyMatch_b | Bool | |
JobDurationInSecs_s | String | |
JobFailureCode_s | String | |
JobId_g | GUID | |
jobId_s | String | |
JobOperation_s | String | |
JobOperationSubType_s | String | |
JobStartDateTime_s | String | |
JobStatus_s | String | |
JobUniqueId_g | GUID | |
Level | String | |
log_bytes_used_d | 倍精度浮動小数点型 | |
logical_io_reads_d | 倍精度浮動小数点型 | |
logical_io_writes_d | 倍精度浮動小数点型 | |
LogicalServerName_s | String | |
macAddress_s | String | |
matchedConnections_d | 倍精度浮動小数点型 | |
max_cpu_time_d | 倍精度浮動小数点型 | |
max_dop_d | 倍精度浮動小数点型 | |
max_duration_d | 倍精度浮動小数点型 | |
max_log_bytes_used_d | 倍精度浮動小数点型 | |
max_logical_io_reads_d | 倍精度浮動小数点型 | |
max_logical_io_writes_d | 倍精度浮動小数点型 | |
max_num_physical_io_reads_d | 倍精度浮動小数点型 | |
max_physical_io_reads_d | 倍精度浮動小数点型 | |
max_query_max_used_memory_d | 倍精度浮動小数点型 | |
max_rowcount_d | 倍精度浮動小数点型 | |
max_time_s | String | |
mean_time_s | String | |
Message | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | 倍精度浮動小数点型 | |
object_id_d | 倍精度浮動小数点型 | |
object_name_s | String | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | 倍精度浮動小数点型 | |
plan_id_d | 倍精度浮動小数点型 | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | 倍精度浮動小数点型 | |
properties_enabledForDeployment_b | Bool | |
properties_enabledForDiskEncryption_b | Bool | |
properties_enabledForTemplateDeployment_b | Bool | |
properties_s | String | |
properties_sku_Family_s | String | |
properties_sku_Name_s | String | |
properties_tenantId_g | GUID | |
query_hash_s | String | |
query_id_d | 倍精度浮動小数点型 | |
query_max_used_memory_d | 倍精度浮動小数点型 | |
query_plan_hash_s | String | |
query_time_d | 倍精度浮動小数点型 | |
querytext_s | String | |
receivedBytes_d | 倍精度浮動小数点型 | |
Region_s | String | |
requestCharge_s | String | |
requestQuery_s | String | |
requestResourceId_s | String | |
requestResourceType_s | String | |
requestUri_s | String | |
reserved_storage_mb_s | String | |
リソース | String | |
resource_actionName_s | String | |
resource_location_s | String | |
resource_originRunId_s | String | |
resource_resourceGroupName_s | String | |
resource_runId_s | String | |
resource_subscriptionId_g | GUID | |
resource_triggerName_s | String | |
resource_workflowId_g | GUID | |
resource_workflowName_s | String | |
ResourceGroup | String | |
_ResourceId | String | レコードが関連付けられているリソースの一意識別子 |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | 倍精度浮動小数点型 | |
resultCode_s | String | |
ResultDescription | String | |
ResultDescription | String | |
resultDescription_ChildJobs_s | String | |
resultDescription_ErrorJobs_s | String | |
resultMessage_s | String | |
ResultSignature | String | |
ResultType | String | |
ResultType | String | |
rootCauseAnalysis_s | String | |
routingRuleName_s | String | |
rowcount_d | 倍精度浮動小数点型 | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | 倍精度浮動小数点型 | |
sequence_group_id_g | GUID | |
sequence_number_d | 倍精度浮動小数点型 | |
server_principal_sid_s | String | |
session_id_d | 倍精度浮動小数点型 |