Dela via


OpenTelemetry Guest OS Metrics (förhandsversion)

På Microsoft använder vi öppna standarder genom implementering och stöd för OpenTelemetry-mått som lagras i Azure Monitor Workspaces (AMW), med Prometheus Query Language (PromQl) vårt grundläggande måttfrågespråk för alla AMW-mått.

Innan du läser den här artikeln rekommenderar vi att användarna först förstår skillnaden mellan prestandaräknare för värdoperativsystem och gästoperativsystem på virtuella datorer.

Den här artikeln handlar om prestandaräknare för gästoperativsystem som användarna måste välja att samla in, antingen via Azure Monitor Agent med DCR, VM Insights med DCR eller användarinsamlade med OTelCollector som en del av OTel-instrumentationsbibliotek. Användare rekommenderas att lagra alla mått i den måttoptimerade Azure Monitor-arbetsytan, där de är billigare och snabbare att fråga än i Log Analytics-arbetsytor.

Den här artikeln ger användarna följande information:

OpenTelemetry Gästoperativsystems prestandaräknare är för närvarande i offentlig förhandsversion.

Prestandaräknare

Både Windows och Linux ger användarna mått på OPERATIVSYSTEM-nivå som rör CPU-användning, minnesförbrukning, disk-I/O, nätverk med mera för att diagnostisera prestandaproblem. Du kan enkelt se ett exempel på din lokala dator just nu med hjälp av Prestandaövervakaren (perfmon) i Windows eller med hjälp av perf-kommandot på Linux.

Det totala antalet tillgängliga os-prestandaräknare är dynamiskt, med Windows som tillhandahåller ~1846 OS-prestandaräknare som standard och flera fler tillgängliga baserat på den lokala datorns tillgängliga maskinvara, programvara och spårningspunktshändelser.

En delmängd av OpenTelemetry Metrics kallas systemmått. Systemmått är i stort sett ett annat namn för prestandaräknare. De är en standard med öppen källkod för konsekvent namngivning och formatering av prestandaräknare och lägger inte till några nya prestandaräknare för operativsystemet.

Fördelar med OpenTelemetry

Observerbarhet mellan operativsystem OpenTelemetry-semantikkonventionen för systemmått effektiviserar användarupplevelsen mellan operativsystem genom att konvergera Prestandaräknare för Windows och Linux till en konsekvent namngivningskonvention och måttdatamodell. Detta gör det enklare för användare att hantera sina virtuella datorer/noder i sin flotta med en enda uppsättning frågor som används för antingen Windows- eller Linux OS-avbildningar. Samma konfiguration som kod (ARM/Bicep-mallar, Terraform osv.) med samma PromQl-frågor kan användas för alla värdresurser som använder OpenTelemetry-systemmått.

Fler prestandaräknare OpenTelemetry Collector Host Metrics Receiver samlar in många fler prestandaräknare än vad Azure Monitor för närvarande gör tillgängliga för insamling via DCR med Log Analytics-arbetsytan som mål. Till exempel kan användarna nu övervaka processoranvändning per process, disk-I/O, minnesanvändning med mera.

Färre prestandaräknare I många scenarier har befintliga prestandaräknare förenklats till ett enda OTel-systemmått med måttdimensioner (resursattribut) som förenklar användarupplevelsen.

Processortiden i olika tillstånd kan till exempel visas som följande tre prestandaräknare i Windows:

  • \Processorinformation(_Total )% processortid
  • \Processorinformation(_Total)% privilegierad tid
  • \Processorinformation (_Total)% användartid eller som följande sju prestandaräknare i Linux:
  • Cpu/användning_användare
  • CPU/användning_system
  • Cpu/usage_idle
  • Cpu/användning_aktiv
  • Cpu/usage_nice
  • Cpu/usage_iowait
  • Cpu/användning_irq

I OpenTelemetry blir alla dessa räknare en enda prestandaräknare: system.cpu.time och den tid som spenderas i varje tillstånd (till exempel användare, system, inaktiv) kan nu hittas genom att helt enkelt filtrera på dimensionstillståndet.

Fördelar med Azure Monitor-arbetsyta

Mått som lagras i Azure Monitor-arbetsytor är billigare och snabbare att köra frågor mot än när de lagras i Log Analytics-arbetsytor, på grund av att de olika datamodellerna stöder dessa olika datalager.

Utöver dessa allmänna fördelar upplever användarna inte längre mismatchar i scheman mellan tabellerna Perf och Insights. VM Insights (v2) som skickas till AMW använder en delmängd av OpenTelemetry-systemmåtten som vi gör tillgängliga för användare, vilket ger sömlös kompatibilitet mellan användarkohorter. Stora företag med programteam som använder en blandning av VM Insights och icke-VM Insights Prestandaräknare för gästoperativsystem kan använda samma PromQl-frågor, instrumentpaneler och aviseringar för samma OTel-mått.

Namn på prestandaräknare

Följande prestandaräknare samlas in av azure monitor-agenten för virtuella Windows- och Linux-datorer. Standardsamplingsfrekvensen är 60 sekunder, men den här frekvensen kan ändras när du skapar eller uppdaterar datainsamlingsregeln.

OTel Prestandaindex Typ Enhet Aggregation Monoton Mått Description
system.cpu.användning Mätare 1 N/A FALSE cpu: Logiskt CPU-nummer som börjar på 0 (värden: Alla Str)
tillstånd: Uppdelning av CPU-användning efter typ (värden: inaktiv, avbrott, trevlig, softirq, stjäla, system, användare, vänta)
Skillnad i system.cpu.time sedan den senaste mätningen per logisk CPU, dividerat med den förflutna tiden (0–1).
system.cpu.time Summa s Kumulativ TRUE cpu: Logiskt CPU-nummer som börjar på 0 (värden: Alla Str)
tillstånd: Uppdelning av CPU-användning efter typ (värden: inaktiv, avbrott, trevlig, softirq, stjäla, system, användare, vänta)
Totalt antal sekunder varje logisk processor spenderade på varje läge.
system.cpu.physical.count Summa {cpu} Kumulativ FALSE (ingen) Antal tillgängliga fysiska processorer.
system.cpu.logical.count Summa {cpu} Kumulativ FALSE cpu: Logiskt CPU-nummer som börjar på 0 (värden: Alla Str) Antal tillgängliga logiska processorer.
system.cpu.load_average,5 m Mätare {tråd} N/A FALSE (ingen) Genomsnittlig CPU-belastning över 5 minuter.
system.cpu.medellast.1m Mätare {tråd} N/A FALSE (ingen) Genomsnittlig CPU-belastning över 1 minut.
system.cpu.load_average,15 m Mätare {tråd} N/A FALSE (ingen) Genomsnittlig CPU-belastning över 15 minuter.
system.cpu.frekvens Mätare Hz N/A FALSE (ingen) Aktuell frekvens för CPU-kärnan i Hz.
process.uptime Mätare s N/A FALSE (ingen) Hur länge processen har körts.
process.threads Summa {trådar} Kumulativ FALSE (ingen) Antal processtrådar.
process.signals_pending Summa {signaler} Kumulativ FALSE (ingen) Antal väntande signaler för processen (endast Linux).
process.paging.faults Summa {fel} Kumulativ TRUE typ: Typ av fel (värden: större, mindre) Antal sidfel som processen har gjort (endast Linux).
process.öppna_filbeskrivare Summa {count} Kumulativ FALSE (ingen) Antal filbeskrivningar som används av processen.
process.minne.virtuell Summa Vid Kumulativ FALSE (ingen) Storlek på virtuellt minne.
process.minne.användning Mätare 1 N/A FALSE (ingen) Procentandel av det totala fysiska minne som används av processen.
processen.minnesanvändning Summa Vid Kumulativ FALSE (ingen) Mängden fysiskt minne som används.
system.disk.weighted_io_time Summa s Kumulativ FALSE enhet: Namnet på disken (värden: Alla Str) Tidsperiod då disken var aktiv multiplicerad med kölängden.
system.disk.väntande_operationer Summa {operations} Kumulativ FALSE enhet: Namnet på disken (värden: Alla Str) Köstorlek för väntande I/O-åtgärder.
system.disk.operationer Summa {operations} Kumulativ TRUE enhet: Namnet på disken (värden: Alla Str)
riktning: Flödesriktning (värden: läsa, skriva)
Antal diskåtgärder.
system.disk.drifttid Summa s Kumulativ TRUE enhet: Namnet på disken (värden: Alla Str)
riktning: Flödesriktning (värden: läsa, skriva)
Tid som ägnas åt diskoperationer.
system.disk.merged Summa {operations} Kumulativ TRUE enhet: Namnet på disken (värden: Alla Str)
riktning: Flödesriktning (värden: läsa, skriva)
Diskläsningar/skrivningar sammanfogade i enskilda fysiska åtgärder.
system.disk.io_time Summa s Kumulativ TRUE enhet: Namnet på disken (värden: Alla Str) Tid som disken spenderat i aktiverat tillstånd.
system.disk.io Summa Vid Kumulativ TRUE enhet: Namnet på disken (värden: Alla Str)
riktning: Flödesriktning (värden: läsa, skriva)
Överförda diskbyte.
process.handles Summa {count} Kumulativ FALSE (ingen) Antal öppna handtag (endast Windows).
process.disk.operationer Summa {operations} Kumulativ TRUE riktning: Flödesriktning (värden: läsa, skriva) Diskåtgärder som utförs av processen.
process.disk.io Summa Vid Kumulativ TRUE riktning: Flödesriktning (värden: läsa, skriva) Överförda diskbyte.
processorn.cpu.användning Mätare 1 N/A FALSE state: Uppdelning av CPU-användning (värden: system, användare, väntan) Procentandel av den totala CPU-tid som använts av processen sedan senaste skrapningen (0–1).
processens CPU-tid Summa s Kumulativ TRUE state: Uppdelning av CPU-användning (värden: system, användare, väntan) Totalt antal CPU-sekunder uppdelade efter tillstånd.
process.context_switches Summa {count} Kumulativ TRUE typ: Typ av kontextväxel (värden: Valfri Str) Antalet gånger processen har kontextväxlats (endast Linux).
system.minnesanvändning Mätare 1 N/A FALSE state: Uppdelning av minnesanvändning (värden: buffrad, cachelagrad, inaktiv, kostnadsfri, slab_reclaimable, slab_unreclaimable, används) Procentandel minnesbyte som används.
systemets.minnes.användning Summa Vid Kumulativ FALSE state: Uppdelning av minnesanvändning (värden: buffrad, cachelagrad, inaktiv, kostnadsfri, slab_reclaimable, slab_unreclaimable, används) Byte av minne som används.
system.minne.sidstorlek Mätare Vid N/A FALSE (ingen) Systemets konfigurerade sidstorlek.
system.memory.gräns Summa Vid Kumulativ FALSE (ingen) Totalt antal byte minne tillgängligt.
system.linux.memory.dirty Summa Vid Kumulativ FALSE (ingen) Mängd smutsigt minne (/proc/meminfo).
system.linux.memory.available Summa Vid Kumulativ FALSE (ingen) Uppskattning av tillgängligt minne (endast Linux).
system.nätverkspaket Summa {paket} Kumulativ TRUE enhet: Nätverksgränssnittsnamn (värden: Alla Str)
riktning: Flödesriktning (värden: ta emot, överföra)
Antal överförda paket.
system.network.io Summa Vid Kumulativ TRUE (ingen) Byte som överförs och tas emot.
system.nätverk.fel Summa {errors} Kumulativ FALSE enhet: Nätverksgränssnittsnamn (värden: Alla Str)
riktning: Flödesriktning (värden: ta emot, överföra)
Antal fel som påträffas.
system.network.dropped Summa {paket} Kumulativ TRUE enhet: Nätverksgränssnittsnamn (värden: Alla Str)
riktning: Flödesriktning (värden: ta emot, överföra)
Antal borttagna paket.
system.network.conntrack.max Summa inlägg Kumulativ FALSE (ingen) Gräns för poster i conntrack-tabellen.
system.network.conntrack.count Summa inlägg Kumulativ FALSE (ingen) Antal poster i conntrack-tabellen.
system.nätverksanslutningar Summa {anslutningar} Kumulativ FALSE protokoll: Nätverksprotokoll (värden: tcp)
state: Anslutningstillstånd (värden: Alla Str)
Antal anslutningar.
systemets drifttid Mätare s N/A FALSE (ingen) Den tid som systemet har varit igång.
system.processes.created Summa {processer} Kumulativ TRUE (ingen) Totalt antal skapade processer.
system.processes.count Summa {processer} Kumulativ FALSE status: Processstatus (värden: blockerad, daemon, fristående, inaktiv, låst, föräldralös, växling, körning, viloläge, stoppad, system, okänd, zombies) Totalt antal processer i varje tillstånd.
system.paging.utilization - användning av systemindelning Mätare 1 N/A FALSE enhet: Sidfilnamn (värden: Alla Str)
tillstånd: Växlingsanvändningstyp (värden: cachelagrade, kostnadsfria, använda)
Växla (Unix) eller sidfilsanvändning (Windows).
system.paging.användning Summa Vid Kumulativ FALSE enhet: Sidfilnamn (värden: Alla Str)
tillstånd: Växlingsanvändningstyp (värden: cachelagrade, kostnadsfria, använda)
Användning av swapfil (Unix) eller sidfil (Windows).
system.paging.operations (systemets sidhanteringsoperationer) Summa {operations} Kumulativ TRUE riktning: Sidflöde (värden: page_in, page_out)
typ: Feltyp (värden: större, mindre)
Paging-operationer.
system.paging.fel Summa {fel} (ingen) TRUE typ: Feltyp (värden: större, mindre) Antal sidfel.
system.filsystem.användning Mätare 1 N/A FALSE enhet: Filsystemidentifierare
läge: Monteringsläge (värden: ro, rw)
monteringspunkt: Sökväg
typ: Filsystemstyp (värden: ext4, tmpfs osv.)
Del av filsystemsbyte som används.
systemat.filsystem.användning Summa Vid Kumulativ FALSE enhet: Filsystemidentifierare
läge: Monteringsläge
monteringspunkt: Sökväg
typ: Filsystemstyp
tillstånd: Användningstyp (värden: kostnadsfri, reserverad, använd)
Filsystembyte som används.
system.filesystem.inodes.usage Summa {inodes} Kumulativ FALSE enhet: Filsystemidentifierare
läge: Monteringsläge
monteringspunkt: Sökväg
typ: Filsystemstyp
tillstånd: Användningstyp (värden: kostnadsfri, reserverad, använd)
Inoder i filsystemet som används.