Monitoraggio di CRI-O
Il sensore « CRI-O » viene distribuito e installato automaticamente dopo l'installazione dell'agente « Instana ».
Introduzione
Instana rileva e monitora automaticamente i contenitori CRI-O per fornirti informazioni in tempo reale su metadati (etichette), metriche e tutte le tecnologie supportate in esecuzione all'interno di ciascun contenitore rilevato.
Oltre a monitorare lo stato di salute di ciascun container e a ricevere avvisi in caso di problemi, puoi anche attivare il rilevamento dei servizi per sfruttare tutte le informazioni relative ai tuoi container.
Informazioni sul supporto
Per assicurarti che il sensore CRI-O sia compatibile con la tua configurazione attuale, consulta le seguenti sezioni delle informazioni di supporto:
Versioni supportate e politica di assistenza
La tabella seguente riporta l'ultima versione supportata e la politica di assistenza:
| Tecnologia | Politica di assistenza | Versione con tecnologia all'avanguardia | Ultima versione supportata |
|---|---|---|---|
| CRI-O | 45 giorni | 1.36.1 | 1.36.1 |
Per ulteriori informazioni sulla politica di assistenza, consultare la sezione "Strategia di assistenza per i sensori".
Prerequisiti
Per il monitoraggio di CRI-O, assicurarsi che siano soddisfatti i seguenti requisiti di versione:
- Instana versione: 1.2.19 o successive
- Sensore CRI-O: 1.0.15 o versioni successive
Configurazione del monitoraggio dell' CRI-O
L'agente monitora in modo nativo CRI-O e la configurazione è facoltativa.
Configurazione della frequenza di polling
È possibile configurare la frequenza con cui l' Instana interroga CRI-O per raccogliere dati e metriche utilizzando il poll_rate parametro nel file configuration.yaml dell'agent, come mostrato nell'esempio seguente:
com.instana.plugin.crio:
poll_rate: 1 # values are in seconds. Default value is 1 second.
Raccolta di metriche
Per visualizzare una panoramica dell'utilizzo della CPU e della memoria dei tuoi container, attiva l'opzione "Panoramica delle metriche" sulla mappa dell'infrastruttura. È inoltre possibile utilizzare la funzione Dynamic Focus per identificare e isolare parti dell'infrastruttura nel contesto dei container.
Per impostazione predefinita, le metriche CRI-O vengono raccolte ogni 10 secondi. Questo intervallo può essere configurato nel file di configurazione agent <agent_install_dir>/etc/instana/configuration.yml:
com.instana.plugin.crio:
stats:
interval: 10
Nella dashboard del container di CRI-O vengono visualizzate le metriche relative alla configurazione e alle prestazioni del container.
Metti in pausa i contenitori
Il contenitore pause è un contenitore che contiene il namespace di rete per il pod. Kubernetes crea contenitori in pausa per acquisire l'indirizzo IP del rispettivo pod e configurare lo spazio dei nomi di rete per tutti i contenitori che si uniscono a quel pod.
I contenitori Infra (pausa) sono esclusi dal monitoraggio infra per impostazione predefinita per i motivi seguenti:
- Il numero di contenitori monitorati in un ambiente viene raddoppiato quando vengono inclusi. L'esclusione può ridurre i costi di monitoraggio dell' Instana.
- Il monitoraggio dei contenitori di pausa non fornisce molte informazioni sul livello dell'infrastruttura perché agiscono come contenitori di supporto della rete sidecar.
Dati di configurazione
| Configurazione | Descrizione |
|---|---|
| ID | L'ID del contenitore |
| Nome | Il nome contenitore |
| Immagine | Il nome dell'immagine " CRI-O " |
| IP | L'indirizzo IP del container |
| Creato | Data e ora di creazione del contenitore |
| Versione CRI-O | Numero di versione del runtime di CRI-O |
Metriche di prestazioni
Per raccogliere i dati sulle prestazioni, eseguire il runc comando.
La tabella seguente riassume i dati relativi all'utilizzo della CPU e della memoria:
| Metrica | Descrizione | Punto di dati |
|---|---|---|
| % totale CPU | Percentuale totale di utilizzo della CPU | Totale delle chiavi restituite nell'oggettocpu.usage |
| Utilizzo della memoria | Utilizzo totale memoria | Chiave di utilizzo restituita nell'oggettomemory.raw |
| % utilizzo memoria | Utilizzo totale della memoria in percentuale | Calcolato in basememory.total aglimemory.usage oggetti |
Raccolta delle metriche della CPU
CRI-O I sensori gestiscono la raccolta dei dati e indirizzano l'analisi della CPU del cgroup all'agente. Il parser legge i file di statistiche della CPU dai rispettivi percorsi delle directory dei cgroup.
Al termine dell'analisi, il sensore " CRI-O " restituisce un oggetto CPU contenente le metriche della CPU.
I passaggi seguenti descrivono la procedura per la raccolta e l'analisi delle metriche della CPU in CRI-O :
Identificazione dei percorsi delle directory dei cgroup: l'agente identifica la versione del cgroup ( v1 o v2 ) e i rispettivi percorsi delle directory dei cgroup in base al processo del sistema operativo:
- cgroup v2:
/proc/1/root/sys/fs/cgroupecgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/cpuecgroupPath
- cgroup v2:
Analisi delle statistiche della CPU per le directory dei cgroup ( v2 e v1 ): il parser legge i file relativi alla CPU dai rispettivi percorsi delle directory dei cgroup.
Per le directory cgroup v2 :
La tabella seguente elenca le metriche relative all'utilizzo e alla limitazione che vengono ricavate dal
cpu.statfile presente nell'oggetto CPU:Metriche Descrizione v2 Origine Metriche di utilizzo Utilizzo totale della CPU (in nanosecondi) total=usage_usec* 1000cpu.statfilePer utilizzo della CPU percpu= 0 (il cgroup v2 non fornisce direttamente i dati sull'utilizzo per CPU)cpu.statfileTempo CPU utente user=user_usec* 1000 (in nanosecondi) Vedi la nota seguentecpu.statfileTempo CPU sistema kernel=system_usec* 1000 (in nanosecondi) Vedi la nota seguentecpu.statfileMetriche di limitazione Numero di periodi periods=nr_periodscpu.statfileNumero di periodi con limitazione throttledPeriods=nr_throttledcpu.statfileTempo di limitazione throttledTime=throttled_usec* 1000 (in nanosecondi)cpu.statfileNota: siauser_usecchesystem_usecdevono essere disponibili per l'analisi sintattica. Se uno dei due non è disponibile, il tempo di CPU corrispondente viene impostato su0.Per le directory cgroup v1 :
La tabella seguente elenca le metriche di utilizzo e di limitazione per l' v1 e cgroup nell'oggetto CPU:
Metriche Descrizione v1 Origine Metriche di utilizzo Utilizzo totale della CPU (in nanosecondi) totalcpuacct.usagefilePer utilizzo della CPU percpucpuacct.usage_percpuImposta un elenco di valori dal fileTempo CPU utente user=user* 1000000 (ns)cpuacct.statfileTempo CPU sistema kernel=system* 1000000 (ns)cpuacct.statfileMetriche di limitazione Numero di periodi periods=nr_periodscpu.statfileNumero di periodi con limitazione throttledPeriods=nr_throttledcpu.statfileTempo di limitazione throttledTime=throttled_timecpu.statfile
Aggiornamento e restituzione delle metriche della CPU:
La tabella seguente fornisce una mappatura completa delle metriche della CPU ai relativi oggetti di origine:
Metriche CPU Oggetto di origine Metriche sull'utilizzo della CPU cpu.usageoggettocpuTotalUsageNanosecondscpu.usage.totalcpuSystemUsageNanosecondscpu.usage.kernelcpuUserUsageNanosecondscpu.usage.usercpuTotalUsagecpuTotalUsageNanosecondsdelta (tempo totale di utilizzo della CPU del container in un intervallo di tempo) /system delta(tempo totale di CPU disponibile del sistema)cpuUserUsagecpuUserUsageNanosecondsdelta (tempo di utilizzo della CPU del container in modalità utente in un intervallo di tempo) /system delta(tempo totale di CPU disponibile del sistema)cpuSystemUsagecpuSystemUsageNanosecondsdelta (tempo di utilizzo della CPU del container in modalità sistema o kernel in un intervallo di tempo) / (system delta(tempo totale di CPU disponibile del sistema))Metriche di limitazione cpu.throttlingoggettothrottlingCountcpu.throttling.throttledPeriodsthrottlingTimecpu.throttling.throttledTimeVisualizzazione delle metriche della CPU nell'interfaccia utente di Instana dal backend:
La tabella seguente riassume le metriche della CPU visualizzate nell'interfaccia utente di Instana :
Metriche CPU Descrizione Valore di origine Total(cpu.total_usage)Utilizzo totale CPU cpuTotalUsageKernel(cpu.system_usage)Utilizzo CPU di sistema cpuSystemUsageUser(cpu.user_usage)Utilizzo della CPU da parte dell'utente cpuUserUsageThrottling Count(cpu.throttling_count)Numero di periodi con limitazione throttlingCountThrottling Time(cpu.throttling_time)Tempo di limitazione throttlingTime
Raccolta delle metriche relative alla memoria
CRI-O I sensori gestiscono la raccolta dei dati e indirizzano l'analisi della memoria del cgroup all'agente. Il parser di memoria legge i file di memoria dai rispettivi percorsi delle directory dei cgroup. Al termine dell'analisi, il sensore " CRI-O " restituisce un oggetto di memoria contenente le metriche relative alla memoria.
I passaggi seguenti descrivono la procedura per la raccolta e l'analisi delle metriche relative alla memoria in CRI-O :
Identificazione dei percorsi delle directory dei cgroup: l'agente identifica la versione del cgroup ( v1 o v2 ) e i rispettivi percorsi delle directory dei cgroup in base al processo del sistema operativo:
- cgroup v2:
/proc/1/root/sys/fs/cgroupecgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/memoryecgroupPath
- cgroup v2:
Analisi delle statistiche di memoria per le directory dei cgroup: il parser legge i file di memoria dai rispettivi percorsi delle directory dei cgroup.
Per le directory cgroup v2 :
La tabella seguente fornisce una mappatura completa delle metriche di memoria ai rispettivi file sorgente:
Metriche della memoria File di origine Memoria di base File di memoria di base usagememory.stat(file+anon)limitmemory.maxmaxmemory.peakMemoria di swap File di swap usagememory.swap.currentlimitmemory.swap.maxmaxmemory.swap.peakCampo di memoria grezza ( memory.raw)memory.statfileactiveAnonactive_anonactiveFileactive_fileinactiveAnoninactive_anoninactiveFileinactive_filetotalCachetotal_cachetotalRsstotal_rssCampi di memoria ( memory)memory.statfilecachefilerssanonNota: Per garantire la compatibilità con v1, la memoria di swap complessiva viene calcolata sommando la memoria di base e la memoria di swap: swap.usage = Utilizzo della memoria di base + swap.usage. swap.limit = Limite di memoria di base + swap.limit swap.max = 0Per le directory cgroup v1 :
La tabella seguente fornisce una mappatura completa delle metriche di memoria ai rispettivi file sorgente:
Metriche della memoria File di origine Memoria di base File di memoria di base usagememory.usage_in_bytesmaxmemory.max_usage_in_byteslimitmemory.limit_in_bytesfailcntmemory.failcntMemoria di swap File di swap usagememory.memsw.usage_in_bytesmaxmemory.memsw.max_usage_in_byteslimitmemory.memsw.limit_in_bytesfailcntmemory.memsw.failcntMemoria del kernel File Kmemory usagememory.kmem.usage_in_bytesmaxmemory.kmem.max_usage_in_byteslimitmemory.kmem.limit_in_bytesfailcntmemory.kmem.failcntMemoria del kernel TCP File Kmemory TCP usagememory.kmem.tcp.usage_in_bytesmaxmemory.kmem.tcp.max_usage_in_byteslimitmemory.kmem.tcp.limit_in_bytesfailcntmemory.kmem.tcp.failcntCampi di memoria grezza settori affini, come v2 da memory.statCampi di memoria ( memory)memory.statfilecachecachersstotal_rss
Aggiornamento e restituzione delle metriche di memoria:
La tabella seguente mette in relazione le metriche di memoria con i rispettivi oggetti di origine:
Metrica della memoria Oggetto di origine Metriche sull'utilizzo della memoria memory.usageoggettousagememory.usage.usagemaxUsagememory.usage.maxlimitmemory.usage.limitMetriche grezze della memoria memory.rawoggettoactiveAnonmemory.raw.activeAnonactiveFilememory.raw.activeFileinactiveAnonmemory.raw.inactiveAnoninactiveFilememory.raw.inactiveFileMetriche della memoria memoryoggettototalCachememory.cachetotalRssmemory.rssVisualizzazione delle metriche di memoria nell'interfaccia utente di Instana dal backend:
Nell'interfaccia utente di Instana vengono visualizzate le seguenti metriche relative alla memoria:
Metrica Valore di origine Memory Total RSS%(memory.total_rss_percent)total_rss/limitActive anonymous(memory.active_anon)activeAnonActive cache(memory.active_file)activeFileInactive anonymous(memory.inactive_anon)inactiveAnonInactive cache(memory.inactive_file)inactiveFileUsage(memory.usage)usageRSS(memory.total_rss)totalRssCache(memory.total_cache)totalCache
Raccolta delle metriche di I/O a livello di blocco
CRI-O I sensori gestiscono la raccolta delle metriche e indirizzano l'analisi del cgroup blk-io all'agente. Il parser Block IO legge i file di statistiche blk-io dai rispettivi percorsi delle directory dei cgroup. Al termine dell'analisi, il sensore " CRI-O " restituisce un oggetto Blkio contenente le statistiche di I/O.
I passaggi seguenti descrivono la procedura per la raccolta e l'analisi delle metriche di I/O a livello di blocco in CRI-O :
Identificazione dei percorsi delle directory dei cgroup: l'agente identifica la versione del cgroup ( v1 o v2 ) e i rispettivi percorsi delle directory dei cgroup in base al processo del sistema operativo:
- cgroup v2:
/proc/1/root/sys/fs/cgroup+cgroupPath - cgroup v1:
/proc/1/root/sys/fs/cgroup/blkio+cgroupPath
- cgroup v2:
Analisi delle statistiche di I/O a livello di blocco per le directory dei cgroup: il parser legge i file relativi all'I/O a livello di blocco dai rispettivi percorsi delle directory dei cgroup.
Per le directory cgroup v2 :
Legge
io.statil file e restituisce 2 elenchi contenenti le voci delle statistiche di I/OioServiceBytesRecursiveelenco: Elenco dei byte dei servizi di I/OioServicedRecursiveelenco: Elenco delle operazioni di I/O gestite
Mappa l'operazione grezza nel file
io.statall'operazione canonica:rbytes/rios: Leggiwbytes/wios: Scrivi
Nota: l'operazionerbytes/wbytesaggiunge la voce IOStatIoServiceBytesRecursiveall'elenco dei valori. L'operazionerios/wiosaggiunge la voce IOStatIoServicedRecursiveall'elenco con i relativi valori.Per le directory cgroup v1 :
- Analizza il
blkio.io_service_bytesfile e imposta direttamente le statistiche di I/O in byte del servizio. (ioServiceBytesRecursiveelenco) - Analizza il
blkio.io_servicedfile e imposta direttamente le statistiche di I/O gestite (ioServicedRecursiveelenco)
- Analizza il
Mappatura dei numeri di dispositivo principali e secondari ai rispettivi campi negli oggetti IO stat.
Restituzione all'agente di un oggetto Blkio contenente due elenchi di voci relative alle statistiche di I/O, con i campi major, minor, operazione e valori:
Elenca Descrizione ioServiceBytesRecursiveElenco dei byte di servizio I/O ioServicedRecursiveElenco delle interfacce I/O gestite Aggregando i valori
totalReadtotalWriteeIOServiceBytesRecursivedall'elenco:Elenca Origine totalReadioServiceBytesRecursive.ioStat.value(Somma tutti i valori letti)totalWriteioServiceBytesRecursive.ioStat.value(Somma tutti i valori di scrittura)Visualizzazione delle metriche di I/O a blocchi nell'interfaccia utente di Instana dal backend: La tabella seguente illustra le metriche di I/O a blocchi visualizzate nell'interfaccia utente di Instana :
Metrica Valore di origine Leggi ( blkio.blk_read)totalReadScrivi ( blkio.blk_write)totalWrite
Indicatori sanitari
Per ogni sensore, c'è una knowledgebase curata delle firme di integrità che vengono valutate continuamente rispetto alle metriche in ingresso e vengono utilizzate per generare problemi o incidenti a seconda dell'impatto dell'utente.
Gli eventi predefiniti generano problemi o incidenti in base al mancato rispetto delle condizioni di integrità delle entità, mentre gli eventi personalizzati generano problemi o incidenti in base alle soglie di una singola metrica di una determinata entità.
Per informazioni sull'evento integrato per il sensore CRI-O , vedi il Riferimento agli eventi integrati.
Widget dei registri
Il sensore " CRI-O " non supporta nativamente la raccolta dei log. Instana Si consiglia di seguire le istruzioni riportate nelle guide "Raccolta dei log di Kubernetes " e " Red Hat OpenShift " per implementare il Collector di OpenTelemetry e raccogliere i log dai container di CRI-O. Per associare i log a specifici contenitori di CRI-O, aggiungere l'attributo container.runtime come indicato nelle istruzioni riportate nel link.