Condividi tramite


Informazioni sui costi di monitoraggio per informazioni dettagliate sui contenitori

Questo articolo fornisce indicazioni sui prezzi per informazioni dettagliate sui contenitori per comprendere come:

  • Misurare i costi dopo l'abilitazione di Informazioni dettagliate sui contenitori per uno o più contenitori.
  • Controllare la raccolta dei dati e ridurre i costi.

Suggerimento

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

Il modello di prezzi di Monitoraggio di Azure si basa principalmente sulla quantità di dati inseriti in gigabyte al giorno nell'area di lavoro Log Analytics. Il costo di un'area di lavoro Log Analytics non si basa solo sul volume di dati raccolti, dipende anche dal piano selezionato e dal tempo scelto per archiviare i dati generati dai cluster.

Nota

Vedere Stimare i costi di Monitoraggio di Azure per stimare i costi per Informazioni dettagliate sui contenitori prima di abilitarlo.

I tipi di dati seguenti raccolti da un cluster Kubernetes con informazioni dettagliate sui contenitori influenzano i costi e possono essere personalizzati in base all'utilizzo:

  • Perf, Inventory, InsightsMetrics e KubeEvents possono essere controllati tramite le impostazioni di ottimizzazione dei costi
  • Log dei contenitori Stdout e stderr da ogni contenitore monitorato in ogni spazio dei nomi Kubernetes nel cluster tramite l'agente ConfigMap
  • Variabili di ambiente del contenitore da ogni contenitore monitorato nel cluster
  • Processi/pod Kubernetes completati nel cluster che non richiedono il monitoraggio
  • Raschiatura attiva delle metriche di Prometheus
  • Raccolta di log delle risorse dei log dei nodi principali di Kubernetes nel cluster servizio Azure Kubernetes (servizio Azure Kubernetes) per analizzare i dati di log generati dai componenti principali, ad esempio kube-apiserver e kube-controller-manager.

Controllare l'inserimento per ridurre i costi

Si consideri uno scenario in cui le diverse business unit dell'organizzazione condividono l'infrastruttura Kubernetes e un'area di lavoro Log Analytics. Ogni business unit è separata da uno spazio dei nomi Kubernetes. È possibile visualizzare la quantità di dati inseriti in ogni area di lavoro usando il runbook Utilizzo dati. Il runbook è disponibile nella scheda Report .

Screenshot che mostra l'elenco a discesa Visualizza cartelle di lavoro.

Questa cartella di lavoro consente di visualizzare l'origine dei dati senza dover creare una propria libreria di query da ciò che viene condiviso nella documentazione. In questa cartella di lavoro è possibile visualizzare grafici che presentano dati fatturabili, ad esempio:

  • Totale dati fatturabili inseriti in GB per soluzione.
  • Dati fatturabili inseriti dai log contenitore (log applicazioni).
  • I dati dei log dei contenitori fatturabili vengono inseriti dallo spazio dei nomi Kubernetes.
  • I dati dei contenitori fatturabili vengono inseriti separati in base al nome del cluster.
  • Dati di log dei contenitori fatturabili inseriti dalla voce di origine del log.
  • Dati di diagnostica fatturabili inseriti dai log dei nodi principali di diagnostica.

Screenshot che mostra la cartella di lavoro Utilizzo dati.

Per informazioni sulla gestione dei diritti e delle autorizzazioni per la cartella di lavoro, vedere Controllo di accesso.

Determinazione della causa radice dell'inserimento dati

I dati di Container Insights sono principalmente costituiti da contatori delle metriche (Perf, Inventario, InsightsMetrics e metriche personalizzate) e log (ContainerLog). In base all'utilizzo e alle dimensioni del cluster, potrebbero essere necessari requisiti e requisiti di monitoraggio diversi.

Passando alla sezione Per tabella della cartella di lavoro Utilizzo dati, è possibile visualizzare la suddivisione delle dimensioni delle tabelle per Informazioni dettagliate sui contenitori.

Screenshot che mostra la suddivisione Per tabella nella cartella di lavoro Utilizzo dati.

Se la maggior parte dei dati proviene da una di queste tabelle seguenti:

  • Perf
  • InsightsMetrics
  • ContainerInventory
  • ContainerNodeInventory
  • KubeNodeInventory
  • KubePodInventory
  • KubePVInventory
  • KubeServices
  • KubeEvents

È possibile modificare l'inserimento usando le impostazioni di ottimizzazione dei costi e/o la migrazione al componente aggiuntivo per le metriche prometheus

In caso contrario, la maggior parte dei dati appartiene alla tabella ContainerLog ed è possibile seguire la procedura seguente per ridurre i costi di ContainerLog.

Riduzione dei costi di ContainerLog

Dopo aver completato l'analisi per determinare quali origini generano i dati che superano i requisiti, è possibile riconfigurare la raccolta dati. Per altre informazioni sulla configurazione della raccolta di variabili stdout, stderr e di ambiente, vedere Configurare le impostazioni di raccolta dati dell'agente.

Gli esempi seguenti illustrano le modifiche che è possibile applicare al cluster modificando il file ConfigMap per controllare i costi.

  1. Disabilitare i log stdout in tutti gli spazi dei nomi del cluster modificando il codice seguente nel file ConfigMap per il servizio Azure Container insights che esegue il pull delle metriche:

    [log_collection_settings]       
       [log_collection_settings.stdout]          
          enabled = false
    
  2. Disabilitare la raccolta dei log stderr dallo spazio dei nomi di sviluppo. Un esempio è dev-test. Continuare a raccogliere log stderr da altri spazi dei nomi, ad esempio prod e default, modificando il codice seguente nel file ConfigMap:

    Nota

    La raccolta di log kube-system è disabilitata per impostazione predefinita. L'impostazione predefinita viene mantenuta. L'aggiunta dello dev-test spazio dei nomi all'elenco degli spazi dei nomi di esclusione viene applicata alla raccolta di log stderr.

    [log_collection_settings.stderr]          
       enabled = true          
          exclude_namespaces = ["kube-system", "dev-test"]
    
  3. Disabilitare la raccolta di variabili di ambiente nel cluster modificando il codice seguente nel file ConfigMap. Questa modifica si applica a tutti i contenitori in ogni spazio dei nomi Kubernetes.

    [log_collection_settings.env_var]
        enabled = false
    
  4. Per pulire i processi completati, specificare i criteri di pulizia nel file yaml di definizione del processo. Di seguito è riportato un esempio di definizione del processo con criteri di pulizia. Per altri dettagli, vedere la documentazione di Kubernetes.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi-with-ttl
    spec:
      ttlSecondsAfterFinished: 100
    

Dopo aver applicato una o più di queste modifiche alla configurazione Mappe applicarla al cluster con il comando kubectl apply -f <config3. map_yaml_file.yaml>. Ad esempio, eseguire il comando kubectl apply -f container-azm-ms-agentconfig.yaml per aprire il file nell'editor predefinito per modificarlo e quindi salvarlo.

Configurare Log di base

È possibile risparmiare sui costi di inserimento dati in ContainerLog nell'area di lavoro Log Analytics usata principalmente per il debug, la risoluzione dei problemi e il controllo come log di base. Per altre informazioni, incluse le limitazioni dei log di base, vedere Configurare i log di base in Monitoraggio di Azure. ContainerLogV2 è la versione configurata dei log di base usati da Container Insights. ContainerLogV2 include record di log dettagliati basati su testo.

Per configurare i log di base, è necessario trovarsi nello schema ContainerLogV2. Per altre informazioni, vedere Abilitare lo schema ContainerLogV2.

Raschiatura delle metriche prometheus

Nota

Questa sezione descrive la raccolta di metriche di Prometheus nell'area di lavoro Log Analytics. Queste informazioni non si applicano se si usa Managed Prometheus per raschiare le metriche di Prometheus.

Se si raccolgono le metriche di Prometheus nell'area di lavoro Log Analytics, assicurarsi di limitare il numero di metriche raccolte dal cluster:

  • Assicurarsi che la frequenza di raschiatura sia impostata in modo ottimale. Il valore predefinito è 60 secondi. È possibile aumentare la frequenza a 15 secondi, ma è necessario assicurarsi che le metriche che si stanno raschiando vengano pubblicate a tale frequenza. In caso contrario, molte metriche duplicate verranno raschiate e inviate all'area di lavoro Log Analytics a intervalli che aggiungono ai costi di inserimento e conservazione dei dati, ma sono di minore valore.
  • Informazioni dettagliate sui contenitori supporta elenchi di esclusione e inclusione in base al nome della metrica. Ad esempio, se si stanno raschiando le metriche kubedns nel cluster, centinaia di esse potrebbero essere raschiate per impostazione predefinita. Ma è molto probabile che si sia interessati solo a un subset delle metriche. Verificare che sia stato specificato un elenco di metriche da eliminare o escludere altri, ad eccezione di alcuni per risparmiare nel volume di inserimento dati. È facile abilitare lo scraping e non usare molte di queste metriche, che aggiungeranno solo addebiti alla fattura di Log Analytics.
  • Quando si eliminano le annotazioni dei pod, assicurarsi di filtrare in base allo spazio dei nomi in modo da escludere lo scarto di metriche dei pod dagli spazi dei nomi che non si usano. Un esempio è lo spazio dei dev-test nomi .

Dati raccolti dai cluster Kubernetes

Dati delle metriche

Informazioni dettagliate sui contenitori include un set predefinito di metriche ed elementi di inventario raccolti che vengono scritti come dati di log nell'area di lavoro Log Analytics. Tutte le metriche nella tabella seguente vengono raccolte ogni minuto.

Type Metrica
Metriche dei nodi cpuUsageNanoCores
cpuCapacityNanoCores
cpuAllocatableNanoCores
memoryRssBytes
memoryWorkingSetBytes
memoryCapacityBytes
memoryAllocatableBytes
restartTimeEpoch
used (disco)
free (disco)
used_percent (disco)
io_time (diskio)
writes (diskio)
reads (diskio)
write_bytes (diskio)
write_time (diskio)
iops_in_progress (diskio)
read_bytes (diskio)
read_time (diskio)
err_in (net)
err_out (net)
bytes_recv (net)
bytes_sent (net)
Kubelet_docker_operations (kubelet)
Metriche dei contenitori cpuUsageNanoCores
cpuRequestNanoCores
cpuLimitNanoCores
memoryRssBytes
memoryWorkingSetBytes
memoryRequestBytes
memoryLimitBytes
restartTimeEpoch

Inventario cluster

L'elenco seguente è costituito dai dati di inventario del cluster raccolti per impostazione predefinita:

  • KubePodInventory : 1 per pod al minuto
  • KubeNodeInventory: 1 per nodo al minuto
  • KubeServices: 1 per servizio al minuto
  • ContainerInventory: 1 per contenitore al minuto

Passaggi successivi

Per comprendere quali costi sono probabilmente basati su modelli di utilizzo recenti dei dati raccolti con Informazioni dettagliate sui contenitori, vedere Analizzare l'utilizzo in un'area di lavoro Log Analytics.