Dela via


AzureDiagnostics

Lagrar resursloggar för Azure-tjänster som använder Azure Diagnostics-läge. Resursloggar beskriver den interna driften av Azure-resurser.

Resursloggen för varje enskild Azure-tjänst har en unik uppsättning kolumner. Tabellen AzureDiagnostics innehåller de vanligaste kolumnerna som används av Azure-tjänster. Om en resurslogg innehåller en kolumn som inte redan finns i tabellen AzureDiagnostics läggs den kolumnen till första gången data samlas in. Om det maximala antalet på 500 kolumner uppnås läggs data för ytterligare kolumner till i en dynamisk kolumn.

Azure-tjänster som använder resursspecifikt läge lagrar data i en tabell som är specifik för tjänsten och som inte använder tabellen AzureDiagnostics. Mer information om skillnaderna finns i Azure-resursloggar. Se Resurser som använder Azure Diagnostics-läge för de tjänster som använder Azure Diagnostics.

Kommentar

Tabellen AzureDiagnostics är en anpassad loggtabell som skapats exklusivt av Azure Monitor-pipelinen första gången en Azure-resurs börjar skicka loggar i Azure Diagnostics-läge. Till skillnad från andra tabeller kan inte AzureDiagnostics-tabellen skapas via en ARM-mall eller ett API för tabeller. Därför går det inte att ändra tabellens standardvärden för kvarhållning innan den skapas.

Kolumnen AdditionalFields

Till skillnad från andra tabeller är AzureDiagnostics mycket mer känsligt för att överskrida den 500 kolumngräns som införts för en tabell på en Log Analytics-arbetsyta på grund av det breda utbudet av Azure-resurser som kan skicka data till den här tabellen. För att säkerställa att inga data går förlorade på grund av att antalet aktiva kolumner överskrider den här kolumngränsen på 500 hanteras skapande av AzureDiagnostics-kolumner på ett annat sätt än andra tabeller.

AzureDiagnostics-tabellen på varje arbetsyta innehåller minst samma 200 kolumner. För arbetsytor som skapades före den 19 januari 2021 innehåller tabellen även alla kolumner som redan fanns före detta datum. När data skickas till en kolumn som inte redan finns:

  • Om det totala antalet kolumner i AzureDiagnostics på den aktuella arbetsytan inte överstiger 500 skapas en ny kolumn precis som med andra tabeller.
  • Om det totala antalet kolumner är på eller över 500 läggs överskottsdata till i en dynamisk egenskapsuppsättningskolumn med namnet AdditionalFields som egenskap.

Exempel

För att illustrera det här beteendet kan du tänka dig att från och med (distributionsdatum) ser AzureDiagnostics-tabellen på vår arbetsyta ut så här:

Kolumn 1 Kolumn 2 Kolumn 3 ... Kolumn 498
abc Def 123 ... 456
... ... ... ... ...

En resurs som skickar data till AzureDiagnostics lägger sedan till en ny dimension till sina data som de kallar NewInfo1. Eftersom tabellen fortfarande har färre än 500 kolumner läggs en ny kolumn till i tabellen första gången en händelse inträffar som innehåller data för den här nya dimensionen:

Kolumn 1 Kolumn 2 Kolumn 3 ... Kolumn 498 NewInfo1_s
abc Def 123 ... 456 Xyz
... ... ... ... ... ...

Du kan returnera dessa nya data i en enkel fråga:

AzureDiagnostics | where NewInfo1_s == "xyz"

Vid ett senare tillfälle skickar en annan resurs data till AzureDiagnostics som lägger till nya dimensioner som kallas NewInfo2 och NewInfo3. Eftersom tabellen har nått 500 kolumner på den här arbetsytan hamnar de nya data i kolumnen AdditionalFields :

Kolumn 1 Kolumn 2 Kolumn 3 ... Kolumn 498 NewInfo1_s YtterligareFält
abc Def 123 ... 456 Xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

Du kan fortfarande fråga efter dessa data, men du måste extrahera dem från egenskapsväskan med någon av de dynamiska egenskapsoperatorerna i KQL:

AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"

Tips om hur du AdditionalFields använder kolumnen

Även om bästa praxis för frågor, till exempel att alltid filtrera efter tid som den första satsen i frågan, bör följas, finns det några andra rekommendationer som du bör överväga när du arbetar med AdditionalFields:

  • Du måste typomvandla data innan du genomför ytterligare åtgärder på den. Om du till exempel har en kolumn med namnet Perf1Sec_i och en egenskap i AdditionalFields med namnet Perf2Sec, och du vill beräkna total perf genom att lägga till båda värdena, kan du använda följande: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .....
  • Använd where-satser för att minska datavolymen så mycket som möjligt innan du skriver någon komplex logik för att avsevärt förbättra prestandan. TimeGenerated är en kolumn som alltid bör reduceras till minsta möjliga fönster. När det gäller AzureDiagnostics bör ett ytterligare filter alltid inkluderas överst i frågan kring de resurstyper som efterfrågas med hjälp av kolumnen ResourceType .
  • När du kör frågor mot stora mängder data är det ibland mer effektivt att göra ett filter på AdditionalFields som helhet i stället för att parsa dem. För stora datavolymer AzureDiagnostics | where AdditionalFields has "Perf2Sec" är det till exempel ofta effektivare än AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Resurser som använder Azure Diagnostics-läge

Följande tjänster använder Azure-diagnostikläge för sina resursloggar och skickar data till Azure Diagnostics-tabellen. Mer information om den här konfigurationen finns i Azure-resursloggar.

Kommentar

Alla andra resurser skickar data till resursspecifika tabeller.

Servicenamn resurstyp
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servrar/databaser
MicrosoftAzureCosmosDB Microsoft DocumentDB/databaskonton
Azure Firewall microsoft.network/azurefirewalls
AzureApplicationGatewayService microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
Azure Frontdoor microsoft.cdn/profiles
LNMAgentService microsoft.network/nätverkssäkerhetsgrupper
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
tjänstebuss microsoft.eventhub/namespaces
Azure Frontdoor 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
tjänstebuss microsoft.servicebus/namnområden
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
MicrosoftAutomation microsoft.automation/automationkonton
Trafikhanterare microsoft.network/trafficmanagerprofiles
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/servergroupsv2
AzureSearch microsoft.search/söktjänster
AzureHybrid microsoft.network/virtualnetworkgateways
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances/databases
PBIDedicatedRP microsoft.powerbidedicated/kapaciteter
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
tjänstebuss microsoft.relay/namespaces
AzureIotDps microsoft.devices/provisioningservices
MicrosoftAzureCosmosDB microsoft.documentdb/cassandraclusters
MicrosoftAzureCosmosDB microsoft.documentdb/mongoclusters
AKSCustomerData microsoft.containerservice/fleets
PBIDedicatedRP microsoft.powerbi/tenants/workspaces
Azure Frontdoor microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHybrid microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Azure Diagnostics-läge eller resursspecifikt läge

Följande tjänster använder antingen Azure-diagnostikläge eller resursspecifikt läge för sina resursloggar beroende på konfigurationen för diagnostikinställningar. När du använder resursspecifikt läge skickar dessa resurser inte data till AzureDiagnostics-tabellen. Mer information om den här konfigurationen finns i Azure-resursloggar.

Servicenamn resurstyp
API Management Services Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
Datafabriker (V2) Microsoft.DataFactory
Recovery Services-säkerhetsarkiv (säkerhetskopiering) Microsoft.RecoveryServices/säkerhetsvalv
Brandväggar Microsoft.Network/azureFirewalls

AzureDiagnostics-tabellkolumner

Kolumn Typ Beskrivning
action_id_s Sträng
action_name_s Sträng
action_s Sträng
ActivityId_g Guide
YtterligareFält
AdHocEllerSchemalagtJobb_s Sträng
application_name_s Sträng
audit_schema_version_d Dubbel
genomsnittlig_cpu_procent_s Sträng
avg_mean_time_s Sträng
backendHostname_s Sträng
Uppringares Sträng
callerId_s Sträng
Anroparens IP-adress Sträng
calls_s Sträng
Kategori Sträng
client_ip_s Sträng
clientInfo_s Sträng
clientIP_s Sträng
clientIp_s Sträng
clientIpAddress_s Sträng
clientPort_d Dubbel
code_s Sträng
collectionName_s Sträng
villkor_destinationIP_s Sträng
villkor_destinationPortRange_s Sträng
villkor_Inga_s Sträng
villkor_protokoll_s Sträng
villkor_källaIP_s Sträng
villkor_källportintervall_s Sträng
CorrelationId Sträng
räkna_verkställningar_d Dubbel
CPU-tid d Dubbel
database_name_s Sträng
databas_huvudnamn_s Sträng
DatabaseName_s Sträng
db_id_s Sträng
direction_s Sträng
dop_d Dubbel
varaktighet_d Dubbel
varaktighet_millisekunder_d Dubbel
VaraktighetMs BigInt
ElasticPoolName_s Sträng
endTime_t Datum/tid
Miljö_s Sträng
felkod_s Sträng
felmeddelande_s Sträng
errorLevel_s Sträng
event_class_s Sträng
event_s Sträng
event_subclass_s Sträng
event_time_t Datum/tid
EventNamn_s Sträng
exekveringstyp_d Dubbel
executionInfo_endTime_t Datum/tid
executionInfo_exitCode_d Dubbel
executionInfo_startTime_t Datum/tid
host_s Sträng
httpMethod_s Sträng
httpStatus_d Dubbel
httpStatusCode_d Dubbel
httpStatusCode_s Sträng
httpVersion_s Sträng
id_s Sträng
identity_claim_appid_g Guide
identitetspåstående_ipaddr_s Sträng
instanceId_s Sträng
intervall_sluttid_d Dubbel
interval_starttid_d Dubbel
ip_s Sträng
is_column_permission_s Sträng
isAccessPolicyMatch_b Bool
ArbetstidISekunder_s Sträng
JobFelKod_s Sträng
JobId_g Guide
jobId_s Sträng
JobOperation_s Sträng
JobOperationSubType_s Sträng
JobStartDateTime_s Sträng
JobbStatus_s Sträng
JobUniqueId_g Guide
Nivå Sträng
log_bytes_used_d Dubbel
logical_io_reads_d Dubbel
logical_io_writes_d Dubbel
LogiskServernamn_s Sträng
macAddress_s Sträng
matchedConnections_d Dubbel
max_cpu_time_d Dubbel
max_dop_d Dubbel
max_duration_d Dubbel
max_log_bytes_used_d Dubbel
max_logical_io_reads_d Dubbel
max_logical_io_writes_d Dubbel
max_antal_fysiska_io_läsningar_d Dubbel
max_physical_io_reads_d Dubbel
max_query_max_used_memory_d Dubbel
max_rowcount_d Dubbel
max_time_s Sträng
medeltid_s Sträng
Meddelande Sträng
min_tid_s Sträng
meddelande_s Sträng
num_physical_io_reads_d Dubbel
object_id_d Dubbel
objekt_namn_s Sträng
Operationsnamn Sträng
Versionsinformation för Operation Sträng
partitionKey_s Sträng
physical_io_reads_d Dubbel
plan_id_d Dubbel
policy_s Sträng
policyMode_s Sträng
primärIPv4Adress_s Sträng
priority_d Dubbel
egenskaper_aktiveradFörUtrustning_b Bool
egenskaper_aktiveradFörDiskkryptering_b Bool
egenskaper_aktiveradFörMallarDrift_b Bool
properties_s Sträng
properties_sku_Family_s Sträng
properties_sku_Name_s Sträng
properties_tenantId_g Guide
query_hash_s Sträng
query_id_d Dubbel
query_max_used_memory_d Dubbel
query_plan_hash_s Sträng
förfrågan_tid_d Dubbel
Förfrågantext_s Sträng
receivedBytes_d Dubbel
Region_s Sträng
requestCharge_s Sträng
requestQuery_s Sträng
requestResourceId_s Sträng
requestResourceType_s Sträng
requestUri_s Sträng
reserverat_lagringsutrymme_mb_s Sträng
Resurs Sträng
resurs_åtgärdsnamn_s Sträng
resource_location_s Sträng
resource_originRunId_s Sträng
resource_resourceGroupName_s Sträng
resource_runId_s Sträng
resource_abonnemangsId_g Guide
resurs_utlösarnamn_s Sträng
resource_workflowId_g Guide
resurs_arbetsflödesnamn_s Sträng
ResourceGroup Sträng
_Resurs-id Sträng En unik identifikator för resursen som posten är associerad med
Resursleverantör Sträng
Resursleverantör Sträng
Resurstyp Sträng
Resurstyp Sträng
response_rows_d Dubbel
resultatkod_s Sträng
Resultatbeskrivning Sträng
Resultatbeskrivning Sträng
resultatbeskrivning_barnjobb_s Sträng
resultatBeskrivning_Feljobb_s Sträng
resultatmeddelande_s Sträng
Resultatsignatur Sträng
Resultattyp Sträng
Resultattyp Sträng
grundorsaksanalys_s Sträng
routingRuleName_s Sträng
rowcount_d Dubbel
ruleName_s Sträng
RunbookName_s Sträng
RunOn_s Sträng
schema_name_s Sträng
sentBytes_d Dubbel
sekvens_grupp_id_g Guide
sequence_number_d Dubbel
server_principal_sid_s Sträng
session_id_d Dubbel