Analizzare l'utilizzo in un'area di lavoro Log Analytics

I costi di Monitoraggio di Azure possono variare in modo significativo in base al volume di dati raccolti nell'area di lavoro Log Analytics. Questo volume è interessato dal set di soluzioni che usano l'area di lavoro e dalla quantità di dati raccolti da ogni soluzione. Questo articolo fornisce indicazioni sull'analisi dei dati raccolti per facilitare il controllo dei costi di inserimento dei dati. Consente di determinare la causa dell'utilizzo superiore al previsto. Consente anche di stimare i costi man mano che si monitorano più risorse e si configurano diverse funzionalità di Monitoraggio di Azure.

Suggerimento

Per strategie per ridurre i costi di Monitoraggio di Azure, vedere Ottimizzazione dei costi e Monitoraggio di Azure.

Cause per un utilizzo superiore al previsto

Ogni area di lavoro Log Analytics viene addebitata come servizio separato e contribuisce alla fatturazione per la sottoscrizione di Azure. La quantità di inserimento dati può essere considerevole, a seconda di:

  • Set di informazioni dettagliate e servizi abilitati e la relativa configurazione.
  • Numero e tipo di risorse monitorate.
  • Volume di dati raccolti da ogni risorsa monitorata.

Un aumento imprevisto di uno di questi fattori può comportare un aumento degli addebiti per la conservazione dei dati. Il resto di questo articolo fornisce metodi per rilevare tale situazione e quindi analizzare i dati raccolti per identificare e attenuare l'origine dell'aumento dell'utilizzo.

Inviare un avviso quando la raccolta dati è elevata

Per evitare fatture impreviste, è consigliabile ricevere una notifica proattiva ogni volta che si verifica un utilizzo eccessivo. La notifica consente di risolvere eventuali potenziali anomalie prima della fine del periodo di fatturazione.

L'esempio seguente è una regola di avviso di ricerca log che invia un avviso se il volume di dati fatturabile inserito nelle ultime 24 ore è maggiore di 50 GB. Modificare l'impostazione Logica di avviso per usare una soglia diversa in base all'utilizzo previsto nell'ambiente. È anche possibile aumentare la frequenza per controllare l'utilizzo più volte ogni giorno, ma questa opzione comporterà un addebito maggiore per la regola di avviso.

Impostazione Valore
Scope
Ambito di destinazione Selezionare l'area di lavoro Log Analytics.
Condizione
Query Usage | where IsBillable | summarize DataGB = sum(Quantity / 1000)
Misura Misura: DataGB
Tipo di aggregazione: Totale
Granularità aggregazione: 1 giorno
Logica degli avvisi Operatore: Maggiore di
Valore soglia: 50
Frequenza di valutazione: 1 giorno
Azioni Selezionare o aggiungere un gruppo di azioni per notificare quando viene superata la soglia.
Dettagli
Gravità Avviso
Nome regola di avviso Volume di dati fatturabile maggiore di 50 GB in 24 ore.

Analisi dell'utilizzo in Monitoraggio di Azure

Avviare l'analisi con gli strumenti esistenti in Monitoraggio di Azure. Questi strumenti non richiedono alcuna configurazione e spesso forniscono le informazioni necessarie con un minimo sforzo. Se è necessaria un'analisi più approfondita dei dati raccolti rispetto alle funzionalità di Monitoraggio di Azure esistenti, usare una delle query di log seguenti in Log Analytics.

Log Analytics Workspace Insights

Log Analytics Workspace Insights offre una rapida comprensione dei dati nell'area di lavoro. Ad esempio, è possibile determinare quanto riportato di seguito:

  • Tabelle di dati che inseriscono la maggior parte del volume di dati nella tabella principale.
  • Risorse principali che contribuiscono ai dati.
  • Tendenza dell'inserimento dati.

Vedere la scheda Utilizzo per una suddivisione dell'inserimento per soluzione e tabella. Queste informazioni consentono di identificare rapidamente le tabelle che contribuiscono alla maggior parte del volume di dati. La scheda mostra anche la tendenza della raccolta dati nel tempo. È possibile determinare se la raccolta dati aumenta costantemente nel tempo o aumenta improvvisamente in risposta a una modifica della configurazione.

Selezionare Query aggiuntive per le query predefinite che consentono di comprendere ulteriormente i modelli di dati.

Uso e costi stimati

Il grafico Inserimento dati per soluzione nella pagina Utilizzo e costi stimati per ogni area di lavoro mostra il volume totale di dati inviati e la quantità di dati inviati da ogni soluzione nei 31 giorni precedenti. Queste informazioni consentono di determinare tendenze, ad esempio se un aumento è dovuto all'utilizzo complessivo dei dati o all'utilizzo di una determinata soluzione.

Esecuzione di query sui volumi di dati dalla tabella Usage

Analizzare la quantità di dati fatturabili raccolti da un particolare servizio o soluzione. Queste query usano la tabella Usage che raccoglie i dati di utilizzo per ogni tabella nell'area di lavoro.

Nota

La clausola con TimeGenerated è solo per garantire che l'esperienza di query nel portale di Azure esempe oltre le 24 ore predefinite. Quando si usa il tipo di StartTime dati Utilizzo e EndTime si rappresentano i bucket di tempo per i quali vengono presentati i risultati.

Volume di dati fatturabile per tipo nell'ultimo mese

Usage 
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000. by bin(StartTime, 1d), DataType 
| render columnchart

Volume di dati fatturabile per soluzione e tipo nell'ultimo mese

Usage 
| where TimeGenerated > ago(32d)
| where StartTime >= startofday(ago(31d)) and EndTime < startofday(now())
| where IsBillable == true
| summarize BillableDataGB = sum(Quantity) / 1000 by Solution, DataType
| sort by Solution asc, DataType asc

Esecuzione diretta di query sul volume di dati dagli eventi

Se è necessaria un'analisi più approfondita dei dati raccolti, è possibile usare query di log in Log Analytics . Ogni tabella in un'area di lavoro Log Analytics include le colonne standard seguenti che consentono di analizzare i dati fatturabili:

  • _IsBillable identifica i record per i quali è previsto un addebito per l'inserimento. Usare questa colonna per filtrare i dati non fatturabili.
  • _BilledSize fornisce le dimensioni in byte del record.

Volume di dati fatturabile per eventi specifici

Se si ritiene che un tipo di dati specifico stia raccogliendo dati eccessivi, è possibile analizzare i dati in tale tabella per determinare record specifici che aumentano. Questo esempio filtra gli ID evento specifici nella Event tabella e quindi fornisce un conteggio per ogni ID. È possibile modificare questa query usando le colonne di altre tabelle.

Event
| where TimeGenerated > startofday(ago(31d)) and TimeGenerated < startofday(now()) 
| where EventID == 5145 or EventID == 5156
| where _IsBillable == true
| summarize count(), Bytes=sum(_BilledSize) by EventID, bin(TimeGenerated, 1d)

Volume di dati per risorse di Azure, gruppo di risorse o sottoscrizione

È possibile analizzare la quantità di dati fatturabili raccolti da una determinata risorsa o un set di risorse. Queste query usano le colonne _ResourceId e _SubscriptionId per i dati delle risorse ospitate in Azure.

Avviso

Usare le query di ricerca con moderazione perché le analisi tra i tipi di dati richiedono un utilizzo intensivo delle risorse da eseguire. Se non sono necessari risultati per sottoscrizione, gruppo di risorse o nome della risorsa, usare la tabella Utilizzo come nelle query precedenti.

Volume di dati fatturabile per ID risorsa per l'ultimo giorno completo

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId 
| sort by BillableDataBytes nulls last

Volume di dati fatturabile per gruppo di risorse per l'ultimo giorno completo

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _ResourceId, _BilledSize, _IsBillable
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _ResourceId
| extend resourceGroup = tostring(split(_ResourceId, "/")[4] )
| summarize BillableDataBytes = sum(BillableDataBytes) by resourceGroup 
| sort by BillableDataBytes nulls last

Può essere utile analizzare _ResourceId:

| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/" 
    resourceGroup "/providers/" provider "/" resourceType "/" resourceName   

Volume di dati fatturabile per sottoscrizione per l'ultimo giorno completo

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, _SubscriptionId
| where _IsBillable == true 
| summarize BillableDataBytes = sum(_BilledSize) by _SubscriptionId 
| sort by BillableDataBytes nulls last

Suggerimento

Per le aree di lavoro con volumi di dati di grandi dimensioni, l'esecuzione di query come quelle illustrate in questa sezione, che eseguono query su grandi volumi di dati non elaborati, potrebbe essere necessario limitare a un singolo giorno. Per tenere traccia delle tendenze nel tempo, è consigliabile configurare un report di Power BI e usare l'aggiornamento incrementale per raccogliere i volumi di dati per ogni risorsa una volta al giorno.

Volume dati per computer

È possibile analizzare la quantità di dati fatturabili raccolti da una macchina virtuale o da un set di macchine virtuali. La tabella Utilizzo non ha la granularità per visualizzare i volumi di dati per macchine virtuali specifiche, quindi queste query usano l'operatorefind per cercare tutte le tabelle che includono un nome computer. Il tipo di utilizzo viene omesso perché questa query è solo per l'analisi delle tendenze dei dati.

Avviso

Usare le query di ricerca con moderazione perché le analisi tra i tipi di dati richiedono un utilizzo intensivo delle risorse da eseguire. Se non sono necessari risultati per sottoscrizione, gruppo di risorse o nome della risorsa, usare la tabella Utilizzo come nelle query precedenti.

Volume di dati fatturabile per computer per l'ultimo giorno intero

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _BilledSize, _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize BillableDataBytes = sum(_BilledSize) by  computerName 
| sort by BillableDataBytes desc nulls last

Numero di eventi fatturabili per computer per l'ultimo giorno completo

find where TimeGenerated between(startofday(ago(1d))..startofday(now())) project _IsBillable, Computer, Type
| where _IsBillable == true and Type != "Usage"
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| summarize eventCount = count() by computerName  
| sort by eventCount desc nulls last

Esecuzione di query per i volumi di dati esclusi i tipi di dati liberi noti

La query seguente restituirà il volume di dati mensile in GB, escludendo tutti i tipi di dati che dovrebbero essere gratuiti dagli addebiti per l'inserimento dati:

let freeTables = dynamic([
"AppAvailabilityResults","AppSystemEvents","ApplicationInsights","AzureActivity","AzureNetworkAnalyticsIPDetails_CL",
"AzureNetworkAnalytics_CL","AzureTrafficAnalyticsInsights_CL","ComputerGroup","DefenderIoTRawEvent","Heartbeat",
"MAApplication","MAApplicationHealth","MAApplicationHealthIssues","MAApplicationInstance","MAApplicationInstanceReadiness",
"MAApplicationReadiness","MADeploymentPlan","MADevice","MADeviceNotEnrolled","MADeviceReadiness","MADriverInstanceReadiness",
"MADriverReadiness","MAProposedPilotDevices","MAWindowsBuildInfo","MAWindowsCurrencyAssessment",
"MAWindowsCurrencyAssessmentDailyCounts","MAWindowsDeploymentStatus","NTAIPDetails_CL","NTANetAnalytics_CL",
"OfficeActivity","Operation","SecurityAlert","SecurityIncident","UCClient","UCClientReadinessStatus",
"UCClientUpdateStatus","UCDOAggregatedStatus","UCDOStatus","UCDeviceAlert","UCServiceUpdateStatus","UCUpdateAlert",
"Usage","WUDOAggregatedStatus","WUDOStatus","WaaSDeploymentStatus","WaaSInsiderStatus","WaaSUpdateStatus"]);
Usage 
| where DataType !in (freeTables) 
| where TimeGenerated > ago(30d) 
| summarize MonthlyGB=sum(Quantity)/1000

Per cercare i dati che potrebbero non avere IsBillable correttamente impostati (e che potrebbero comportare una fatturazione errata o, in particolare, sotto fatturazione), usare questa query nell'area di lavoro:

let freeTables = dynamic([
"AppAvailabilityResults","AppSystemEvents","ApplicationInsights","AzureActivity","AzureNetworkAnalyticsIPDetails_CL",
"AzureNetworkAnalytics_CL","AzureTrafficAnalyticsInsights_CL","ComputerGroup","DefenderIoTRawEvent","Heartbeat",
"MAApplication","MAApplicationHealth","MAApplicationHealthIssues","MAApplicationInstance","MAApplicationInstanceReadiness",
"MAApplicationReadiness","MADeploymentPlan","MADevice","MADeviceNotEnrolled","MADeviceReadiness","MADriverInstanceReadiness",
"MADriverReadiness","MAProposedPilotDevices","MAWindowsBuildInfo","MAWindowsCurrencyAssessment",
"MAWindowsCurrencyAssessmentDailyCounts","MAWindowsDeploymentStatus","NTAIPDetails_CL","NTANetAnalytics_CL",
"OfficeActivity","Operation","SecurityAlert","SecurityIncident","UCClient","UCClientReadinessStatus",
"UCClientUpdateStatus","UCDOAggregatedStatus","UCDOStatus","UCDeviceAlert","UCServiceUpdateStatus","UCUpdateAlert",
"Usage","WUDOAggregatedStatus","WUDOStatus","WaaSDeploymentStatus","WaaSInsiderStatus","WaaSUpdateStatus"]);
Usage 
| where DataType !in (freeTables) 
| where TimeGenerated > ago(30d) 
| where IsBillable == false 
| summarize MonthlyPotentialUnderbilledGB=sum(Quantity)/1000 by DataType

Esecuzione di query per i tipi di dati comuni

Se si rileva un numero eccessivo di dati fatturabili per un determinato tipo di dati, potrebbe essere necessario eseguire una query per analizzare i dati in tale tabella. Le query seguenti forniscono esempi per alcuni tipi di dati comuni:

Soluzione Sicurezza

SecurityEvent 
| summarize AggregatedValue = count() by EventID
| order by AggregatedValue desc nulls last

Soluzione Gestione log

Usage 
| where Solution == "LogManagement" and iff(isnotnull(toint(IsBillable)), IsBillable == true, IsBillable == "true") == true 
| summarize AggregatedValue = count() by DataType
| order by AggregatedValue desc nulls last

Tipo di dati Perf

Perf 
| summarize AggregatedValue = count() by CounterPath
Perf 
| summarize AggregatedValue = count() by CounterName

Tipo di dati Event

Event 
| summarize AggregatedValue = count() by EventID
Event 
| summarize AggregatedValue = count() by EventLog, EventLevelName

Tipo di dati Syslog

Syslog 
| summarize AggregatedValue = count() by Facility, SeverityLevel
Syslog 
| summarize AggregatedValue = count() by ProcessName

Tipo di dati AzureDiagnostics

AzureDiagnostics 
| summarize AggregatedValue = count() by ResourceProvider, ResourceId

Dati di Application Insights

Esistono due approcci per analizzare la quantità di dati raccolti per Application Insights, a seconda che si disponga di un'applicazione classica o basata sull'area di lavoro. Usare la _BilledSize proprietà disponibile per ogni evento inserito per le risorse classiche e basate sull'area di lavoro. È anche possibile usare informazioni aggregate nella tabella systemEvents per le risorse classiche.

Nota

Le query sulle tabelle di Application Insights, ad eccezione SystemEventsdi , funzioneranno sia per una risorsa basata sull'area di lavoro che per quella classica di Application Insights. La compatibilità con le versioni precedenti consente di continuare a usare nomi di tabella legacy. Per una risorsa basata sull'area di lavoro, aprire Log nel menu dell'area di lavoro Log Analytics. Per una risorsa classica, aprire Log nel menu di Application Insights .

Le operazioni di dipendenza generano la maggior parte del volume di dati negli ultimi 30 giorni (basato sull'area di lavoro o classica)

dependencies
| where timestamp >= startofday(ago(30d))
| summarize sum(_BilledSize) by operation_Name
| render barchart  

Volume di dati giornaliero per tipo per questa risorsa di Application Insights per gli ultimi 7 giorni (solo versione classica)

systemEvents
| where timestamp >= startofday(ago(7d)) and timestamp < startofday(now())
| where type == "Billing"
| extend BillingTelemetryType = tostring(dimensions["BillingTelemetryType"])
| extend BillingTelemetrySizeInBytes = todouble(measurements["BillingTelemetrySize"])
| summarize sum(BillingTelemetrySizeInBytes) by BillingTelemetryType, bin(timestamp, 1d)  

Per esaminare le tendenze del volume di dati per le risorse di Application Insights basate sull'area di lavoro, usare una query che include tutte le tabelle di Application Insights. Le query seguenti usano i nomi di tabella specifici per le risorse basate sull'area di lavoro.

Volume di dati giornaliero per tipo per tutte le risorse di Application Insights in un'area di lavoro per 7 giorni

union AppAvailabilityResults,
      AppBrowserTimings,
      AppDependencies,
      AppExceptions,
      AppEvents,
      AppMetrics,
      AppPageViews,
      AppPerformanceCounters,
      AppRequests,
      AppSystemEvents,
      AppTraces
| where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now())
| summarize sum(_BilledSize) by _ResourceId, bin(TimeGenerated, 1d)

Per esaminare le tendenze del volume di dati solo per una singola risorsa di Application Insights, aggiungere la riga seguente prima summarize nella query precedente:

| where _ResourceId contains "<myAppInsightsResourceName>"

Suggerimento

Per le aree di lavoro con volumi di dati di grandi dimensioni, l'esecuzione di query come quella precedente, che esegue query su grandi volumi di dati non elaborati, potrebbe dover essere limitata a un singolo giorno. Per tenere traccia delle tendenze nel tempo, è consigliabile configurare un report di Power BI e usare l'aggiornamento incrementale per raccogliere i volumi di dati per ogni risorsa una volta al giorno.

Informazioni sui nodi che inviano dati

Se non si dispone di dati eccessivi da una determinata origine, potrebbe essere disponibile un numero eccessivo di agenti che inviano dati.

Numero di nodi dell'agente che inviano un heartbeat ogni giorno nell'ultimo mese

Heartbeat 
| where TimeGenerated > startofday(ago(31d))
| summarize nodes = dcount(Computer) by bin(TimeGenerated, 1d)    
| render timechart

Avviso

Usare le query di ricerca con moderazione perché le analisi tra i tipi di dati richiedono un utilizzo intensivo delle risorse da eseguire. Se non sono necessari risultati per sottoscrizione, gruppo di risorse o nome della risorsa, usare la tabella Utilizzo come nelle query precedenti.

Numero di nodi che inviano dati nelle ultime 24 ore

find where TimeGenerated > ago(24h) project Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodes = dcount(computerName)

Volume di dati inviato da ogni nodo nelle ultime 24 ore

find where TimeGenerated > ago(24h) project _BilledSize, Computer
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName

Nodi fatturati dal piano tariffario legacy per nodo

Il piano tariffario legacy per nodo fattura per i nodi con granularità oraria. Non conta anche i nodi che inviano solo un set di tipi di dati di sicurezza. Per ottenere un elenco di computer che verranno fatturati come nodi se l'area di lavoro si trova nel piano tariffario legacy per nodo, cercare i nodi che inviano tipi di dati fatturati perché alcuni tipi di dati sono gratuiti. In questo caso, usare il campo più a sinistra del nome di dominio completo.

Le query seguenti restituiscono il numero di computer con dati fatturati all'ora. Il numero di unità nella fattura è espresso in unità di mesi di nodo, rappresentato dalla billableNodeMonthsPerDay query. Se nell'area di lavoro è installata la soluzione Gestione aggiornamenti, aggiungere i tipi di dati Update e UpdateSummary all'elenco nella where clausola .

find where TimeGenerated >= startofday(ago(7d)) and TimeGenerated < startofday(now()) project Computer, _IsBillable, Type, TimeGenerated
| where Type !in ("SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent")
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| where _IsBillable == true
| summarize billableNodesPerHour=dcount(computerName) by bin(TimeGenerated, 1h)
| summarize billableNodesPerDay = sum(billableNodesPerHour)/24., billableNodeMonthsPerDay = sum(billableNodesPerHour)/24./31.  by day=bin(TimeGenerated, 1d)
| sort by day asc

Nota

Una certa complessità nell'algoritmo di fatturazione effettivo quando viene usata la destinazione della soluzione non è rappresentata nella query precedente.

Conteggi dei nodi di sicurezza e automazione

Numero di nodi di sicurezza distinti

union
(
    Heartbeat
    | where (Solutions has 'security' or Solutions has 'antimalware' or Solutions has 'securitycenter')
    | project Computer
),
(
    ProtectionStatus
    | where Computer !in (Heartbeat | project Computer)
    | project Computer
)
| distinct Computer
| project lowComputer = tolower(Computer)
| distinct lowComputer
| count

Numero di nodi di automazione distinti

 ConfigurationData 
 | where (ConfigDataType == "WindowsServices" or ConfigDataType == "Software" or ConfigDataType =="Daemons") 
 | extend lowComputer = tolower(Computer) | summarize by lowComputer 
 | join (
     Heartbeat 
       | where SCAgentChannel == "Direct"
       | extend lowComputer = tolower(Computer) | summarize by lowComputer, ComputerEnvironment
 ) on lowComputer
 | summarize count() by ComputerEnvironment | sort by ComputerEnvironment asc

Dati in arrivo in ritardo

Se si osserva un inserimento dati elevato segnalato usando Usage record, ma non si osservano gli stessi risultati sommati _BilledSize direttamente sul tipo di dati, è possibile che i dati in arrivo siano in ritardo. Questa situazione si verifica quando i dati vengono inseriti con timestamp obsoleti.

Ad esempio, un agente potrebbe avere un problema di connettività e inviare dati accumulati quando si riconnette. Oppure un host potrebbe avere un tempo non corretto. Entrambi gli esempi possono causare una discrepanza apparente tra i dati inseriti segnalati dal tipo di dati Usage e una query sommando _BilledSize sui dati non elaborati per un determinato giorno specificato da TimeGenerated, il timestamp in cui è stato generato l'evento.

Per diagnosticare i problemi di dati in arrivo in ritardo, usare la colonna _TimeReceived e la colonna TimeGenerated . La _TimeReceived proprietà è l'ora in cui il record è stato ricevuto dal punto di inserimento di Monitoraggio di Azure nel cloud di Azure.

L'esempio seguente è in risposta a volumi di dati inseriti elevati dei dati W3CIISLog il 2 maggio 2021, per identificare i timestamp su questi dati inseriti. L'istruzione where TimeGenerated > datetime(1970-01-01) è inclusa per fornire l'indicazione dell'interfaccia utente di Log Analytics per esaminare tutti i dati.

W3CIISLog
| where TimeGenerated > datetime(1970-01-01)
| where _TimeReceived >= datetime(2021-05-02) and _TimeReceived < datetime(2021-05-03) 
| where _IsBillable == true
| summarize BillableDataMB = sum(_BilledSize)/1.E6 by bin(TimeGenerated, 1d)
| sort by TimeGenerated asc 

Passaggi successivi

  • Per informazioni sul modo in cui vengono calcolati i dati in un'area di lavoro Log Analytics e diverse opzioni di configurazione per ridurre gli addebiti, vedere i dettagli sui prezzi dei log di Monitoraggio di Azure.
  • Vedere Costi e utilizzo di Monitoraggio di Azure per una descrizione dei diversi tipi di addebiti di Monitoraggio di Azure e come analizzarli nella fattura di Azure.
  • Vedere Procedure consigliate di Monitoraggio di Azure - Gestione costi per le procedure consigliate per la configurazione e la gestione di Monitoraggio di Azure per ridurre al minimo gli addebiti.
  • Vedere Trasformazioni della raccolta dati in Monitoraggio di Azure (anteprima) per informazioni sull'uso delle trasformazioni per ridurre la quantità di dati raccolti in un'area di lavoro Log Analytics filtrando record e colonne indesiderati.