AzureDiagnostics

存储使用 Azure 诊断模式的 Azure 服务的资源日志。 资源日志描述 Azure 资源的内部操作。

每个 Azure 服务的资源日志具有一组唯一的列。 AzureDiagnostics 表包含 Azure 服务最常用的列。 如果资源日志包含一列,但该列在 AzureDiagnostics 表中尚不存在,则会在第一次收集数据时添加该列。 如果达到 500 列的最大数量,则任何其他列的数据都会添加到动态列中。

使用特定资源模式的 Azure 服务会将数据存储在特定于该服务的表中,而不会使用 AzureDiagnostics 表。 有关差异的详细信息,请参阅 Azure 资源日志。 有关使用 Azure 诊断的服务,请参阅使用 Azure 诊断模式的资源

备注

AzureDiagnostics 表是 Azure Monitor 管道在 Azure 资源首次开始以 Azure 诊断模式发送日志时专门创建的自定义日志表。 与其他表不同,AzureDiagnostics 表不能通过 ARM 模板或表 API 来创建。 因此,在创建表格之前,无法修改表的默认保留值。

AdditionalFields 列

与其他表不同的是,AzureDiagnostics 更容易超过日志分析工作区中任何表的 500 列限制,这是因为能够向该表发送数据的 Azure 资源种类繁多。 为确保数据不会因活动列数超过 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 附加字段
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 是一个应始终缩小到尽可能小的窗口的列。 在 AzureDiagnostics 的情况下,应在查询顶部使用 ResourceType 列围绕正在查询的资源类型添加额外的筛选器。
  • 在查询大量数据时,有时对 AdditionalFields 整体进行筛选会比解析更为有效。 例如,对于大量数据,AzureDiagnostics | where AdditionalFields has "Perf2Sec" 通常比 AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)) 更有效。

使用 Azure 诊断模式的资源

以下服务的资源日志使用 Azure 诊断模式,并会将数据发送到 Azure 诊断表。 有关此配置的详细信息,请参阅 Azure 资源日志

备注

所有其他资源会将数据发送到资源专用表。

服务名称 资源类型
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servers/databases
MicrosoftAzureCosmosDB microsoft.documentdb/databaseaccounts
Azure 防火墙 microsoft.network/azurefirewalls
Azure 应用程序网关服务 microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
Azure Front Door (Azure 前门) microsoft.cdn/profiles
LNMAgentService 微软网络/网络安全组
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
servicebus Microsoft.EventHub/命名空间
AzureFrontdoor microsoft.network/frontdoors
AzureKeyVault microsoft.keyvault/vaults
AzureDataLake microsoft.datalakestore/accounts
ApiManagement microsoft.apimanagement/service
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances
ASAzureRP Microsoft 分析服务/服务器
MicrosoftOrcasBreadthServers microsoft.dbformysql/flexibleservers
servicebus microsoft.servicebus/namespaces
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
微软自动化 microsoft.automation/automationaccounts
交通管理器 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 诊断模式或特定资源模式

以下服务的资源日志使用 Azure 诊断模式或特定资源模式,具体取决于诊断设置配置。 在使用特定资源模式时,这些资源不会向 AzureDiagnostics 表发送数据。 有关此配置的详细信息,请参阅 Azure 资源日志

服务名称 资源类型
API 管理服务 Microsoft.ApiManagement(微软API管理)
Azure Cosmos DB(Azure 宇宙数据库) Microsoft.DocumentDB/数据库账户
数据工厂(V2) Microsoft.DataFactory
恢复服务保管库(备份) Microsoft.RecoveryServices/vaults
防火墙 Microsoft.Network/azureFirewalls

AzureDiagnostics 表的列

类型​​ 描述
action_id_s 字符串
action_name_s 字符串
action_s 字符串
ActivityId_g Guid
附加字段
AdHocOrScheduledJob_s 字符串
application_name_s 字符串
审计_模式_版本_d 双精度
平均CPU使用百分比_s 字符串
平均_时间_秒 字符串
后端主机名_s 字符串
来电者 字符串
callerId_s 字符串
呼叫者IP地址 字符串
calls_s 字符串
类别 字符串
client_ip_s 字符串
clientInfo_s 字符串
clientIP_s 字符串
客户IP_s 字符串
客户IP地址_s 字符串
clientPort_d 双精度
code_s 字符串
collectionName_s 字符串
条件_目的IP_s 字符串
目标端口范围条件_s 字符串
无条件_s 字符串
条件_协议_s 字符串
conditions_sourceIP_s 字符串
条件_源端口范围_秒 字符串
CorrelationId 字符串
count_executions_d 双精度
cpu_time_d 双精度
database_name_s 字符串
数据库主体名称_s 字符串
DatabaseName_s 字符串
db_id_s 字符串
direction_s 字符串
dop_d 双精度
持续时间_d 双精度
持续时间_毫秒_d 双精度
持续时间(ms) Bigint
ElasticPoolName_s 字符串
endTime_t 日期时间
环境设置 字符串
错误代码_s 字符串
错误信息_s 字符串
错误等级_s 字符串
event_class_s 字符串
event_s 字符串
event_subclass_s 字符串
event_time_t 日期时间
EventName_s 字符串
执行类型_d 双精度
executionInfo_endTime_t 日期时间
executionInfo_exitCode_d 双精度
executionInfo_startTime_t 日期时间
host_s 字符串
httpMethod_s 字符串
httpStatus_d 双精度
httpStatusCode_d 双精度
httpStatusCode_s 字符串
httpVersion_s 字符串
id_s 字符串
identity_claim_appid_g Guid
身份声明_ip地址_s 字符串
instanceId_s 字符串
区间结束时间_d 双精度
时间间隔起始时间_d 双精度
ip_s 字符串
列权限标识 字符串
isAccessPolicyMatch_b 布尔值
JobDurationInSecs_s 字符串
JobFailureCode_s 字符串
JobId_g Guid
jobId_s 字符串
任务操作_s 字符串
作业操作子类型_s 字符串
作业开始日期时间_s 字符串
JobStatus_s 字符串
JobUniqueId_g Guid
级别 字符串
log_bytes_used_d 双精度
logical_io_reads_d 双精度
logical_io_writes_d 双精度
LogicalServerName_s 字符串
macAddress_s 字符串
匹配连接_d 双精度
最大CPU时间_d 双精度
max_dop_d 双精度
最大持续时间_d 双精度
max_log_bytes_used_d(最大日志字节使用量_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 (最大时间_秒) 字符串
平均时间秒 字符串
消息 字符串
最小时间(秒) 字符串
msg_s 字符串
num_physical_io_reads_d (物理I/O读取数_d) 双精度
对象_id_d 双精度
对象名称_s 字符串
操作名称 字符串
操作版本 字符串
partitionKey_s 字符串
physical_io_reads_d 双精度
plan_id_d 双精度
policy_s 字符串
policyMode_s 字符串
primaryIPv4Address_s 字符串
优先级_d 双精度
properties_enabledForDeployment_b 布尔值
启用磁盘加密的属性_b 布尔值
启用模板部署的属性_b 布尔值
properties_s 字符串
properties_sku_Family_s 字符串
properties_sku_Name_s 字符串
properties_tenantId_g Guid
query_hash_s 字符串
query_id_d 双精度
查询最大使用内存_d 双精度
query_plan_hash_s 字符串
query_time_d 双精度
querytext_s 字符串
接收字节_d 双精度
Region_s 字符串
requestCharge_s 字符串
requestQuery_s 字符串
requestResourceId_s 字符串
requestResourceType_s 字符串
requestUri_s 字符串
保留存储兆字节数_s 字符串
资源 字符串
资源_动作名称_s 字符串
resource_location_s 字符串
资源_originRunId_s 字符串
resource_resourceGroupName_s 字符串
resource_runId_s 字符串
资源_subscriptionId_g Guid
resource_triggerName_s 字符串
资源_工作流ID_g Guid
resource_workflowName_s 字符串
ResourceGroup 字符串
_资源ID 字符串 与记录关联的资源的唯一标识符
资源提供者 字符串
资源提供者 字符串
资源类型 字符串
资源类型 字符串
响应行数_d 双精度
resultCode_s 字符串
结果描述 字符串
结果描述 字符串
子任务结果说明 字符串
结果描述_错误作业_s 字符串
结果信息_s 字符串
结果签名 字符串
结果类型 字符串
结果类型 字符串
根本原因分析_s 字符串
routingRuleName_s 字符串
rowcount_d 双精度
规则名称_s 字符串
RunbookName_s 字符串
RunOn_s 字符串
schema_name_s 字符串
sentBytes_d 双精度
sequence_group_id_g Guid
序列号_d 双精度
服务器主体SID_s 字符串
session_id_d 双精度