Megosztás:


OpenTelemetry vendég operációsrendszer-metrikák (előzetes verzió)

A Microsoftnál a Nyílt szabványokat az Azure Monitor Workspacesben (AMW) tárolt OpenTelemetria-metrikák bevezetésén és támogatásán keresztül fogadjuk el, a Prometheus Query Language (PromQl) használatával pedig az alapszintű metrikák lekérdezési nyelvét az összes AMW-metrikában.

A cikk elolvasása előtt javasoljuk, hogy a felhasználók először is megértsék a gazdagép operációs rendszere és a vendég operációs rendszer teljesítményszámlálói közötti különbséget a virtuális gépeken.

Ez a cikk azokról a vendég operációs rendszer teljesítményszámlálókról szól, amelyeket a felhasználóknak kifejezetten engedélyezniük kell az adatgyűjtéshez az Azure Monitor ügynökkel DCR használatával, a DCR-rel rendelkező VM Insights-szal vagy az OTel instrumentációs könyvtárak részeként az OTelCollectorral gyűjtve. A felhasználók számára ajánlott az összes metrikát a metrikákra optimalizált Azure Monitor-munkaterületen tárolni, ahol olcsóbban és gyorsabban kérdezhetők le, mint a Log Analytics-munkaterületeken.

Ez a cikk a következő információkat nyújtja a felhasználóknak:

Az OpenTelemetry vendég operációsrendszer-teljesítményszámlálói jelenleg nyilvános előzetes verzióban érhetők el.

Teljesítményszámlálók

Mind a Windows, mind a Linux operációsrendszer-szintű metrikákat biztosít a felhasználók számára a processzorhasználattal, a memóriahasználattal, a lemez I/O-jával, a hálózatkezeléssel és egyebekkel kapcsolatban a teljesítményproblémák diagnosztizálásához. A windowsos Teljesítményfigyelő (perfmon) vagy a Linux perf parancsával egyszerűen láthat példát a helyi gépen.

A rendelkezésre álló operációsrendszer-teljesítményszámlálók teljes száma dinamikus, a Windows alapértelmezés szerint ~1846 operációsrendszer-teljesítményszámlálót biztosít, és a helyi számítógépen elérhető hardverek, szoftverek és nyomkövetési pontok eseményei alapján több további elérhető.

Az OpenTelemetry Metrics egy részhalmazát rendszermetrikának nevezzük. A rendszermetrikák lényegében a teljesítményszámlálók másik neve; nyílt forráskódú szabvány van arra a teljesítményszámlálók konzisztens elnevezésére és formázására, és nem ad hozzá nettó új operációsrendszer-teljesítményszámlálókat.

Az OpenTelemetria előnyei

Operációs rendszerek közötti megfigyelhetőség Az OpenTelemetry szemantikai konvenciója a rendszermetrikák számára leegyszerűsíti az operációs rendszerek közötti végfelhasználói élményt úgy, hogy a Windows és Linux teljesítményszámlálókat egy konzisztens elnevezési konvencióra és metrikaadat-modellre egyesíti. Így a felhasználók egyszerűbben kezelhetik a virtuális gépeiket/ csomópontjaikat a flottájukban egyetlen lekérdezéskészlettel, amelyet Windows vagy Linux operációsrendszer-rendszerképekhez használnak. Az azonos PromQl-lekérdezéseket használó konfigurációs kód (ARM/Bicep-sablonok, Terraform stb.) bármely olyan üzemeltetési erőforráshoz használható, amely OpenTelemetriarendszer-metrikákat vezet be.

További teljesítményszámlálók Az OpenTelemetry Collector gazdagépmetrikák fogadója sokkal több teljesítményszámlálót gyűjt, mint amennyit az Azure Monitor jelenleg a DCR-en keresztül tesz elérhetővé a Log Analytics-munkaterülettel célként. A felhasználók például mostantól figyelhetik a folyamatonkénti processzorkihasználtságot, a lemez I/O-ját, a memóriahasználatot és egyebeket.

Kevesebb teljesítményszámláló Számos esetben a meglévő teljesítményszámlálók egyszerűsödtek egyetlen OTel-rendszermetriká, metrikaméretekkel (Resource Attributes) egyszerűsítve a felhasználói élményt.

A különböző állapotok processzorideje például a következő három teljesítményszámlálóként jeleníthető meg a Windowsban:

  • \Processzoradatok(_Total)% processzoridő
  • \Processzoradatok (_Total)% jogosultsági idő
  • \Processor Information(_Total)% Felhasználói idő vagy a következő hét teljesítményszámláló Linuxban:
  • Processzor/felhasználói_használat
  • CPU/rendszerhasználat
  • Processzor/usage_idle
  • Processzor/használat_aktív
  • Processzor/usage_nice
  • Processzor/usage_iowait
  • Processzor/usage_irq

Az OpenTelemetria esetében ezek a számlálók egyetlen teljesítményszámlálóvá válnak: system.cpu.time, és az egyes állapotokban (például felhasználó, rendszer, tétlen) töltött idő mostantól egyszerűen a dimenzióállapotra való szűréssel érhető el.

Az Azure Monitor-munkaterület előnyei

Az Azure Monitor-munkaterületeken tárolt metrikák olcsóbbak és gyorsabbak, mint a Log Analytics-munkaterületeken tárolt metrikák, mivel ezek a különböző adattárak különböző adatmodellek.

Az általános előnyök mellett a felhasználók már nem tapasztalnak eltéréseket a Perf és az Insights táblák közötti sémákban. Az AMW-nek küldött VM Insights (v2) az OpenTelemetry rendszer metrikáinak egy részét használja, amelyet elérhetővé teszünk a felhasználók számára, zökkenőmentes kompatibilitást biztosítva a felhasználói kohorszok között. A VM Insights és a nem VM Insights vendég operációs rendszer teljesítményszámlálóját használó alkalmazáscsapatokkal rendelkező nagyvállalatok ugyanazokat a PromQl-lekérdezéseket, irányítópultokat és riasztásokat használhatják ugyanazon OTel-metrikákhoz.

Teljesítményszámláló nevei

A windowsos és Linux rendszerű virtuális gépekhez készült Azure Monitor-ügynök a következő teljesítményszámlálókat gyűjti össze. Az alapértelmezett mintavételezési gyakoriság 60 másodperc, de ez a gyakoriság az adatgyűjtési szabály létrehozásakor vagy frissítésekor módosítható.

OTel teljesítményszámláló Típus Unit Aggregation Monoton Dimenziók Description
rendszer.cpu.kihasználtság Kijelző 1 N/A FALSE cpu: Logikai CPU-szám 0-tól kezdve (értékek: Bármely Str)
állapot: A CPU-használat típus szerinti lebontása (értékek: tétlenség, megszakítás, szép, softirq, lopás, rendszer, felhasználó, várakozás)
A system.cpu.time különbsége a logikai cpu-nkénti utolsó mérés óta, osztva az eltelt idővel (0–1).
system.cpu.time Összeg s Kumulatív TRUE cpu: Logikai CPU-szám 0-tól kezdve (értékek: Bármely Str)
állapot: A CPU-használat típus szerinti lebontása (értékek: tétlenség, megszakítás, szép, softirq, lopás, rendszer, felhasználó, várakozás)
Az egyes logikai processzorok által egyes módban töltött teljes másodpercek.
rendszer.cpu.fizikai.szám Összeg {processzor} Kumulatív FALSE (nincs) Az elérhető fizikai CPU-k száma.
rendszer.cpu.logikai.szám Összeg {processzor} Kumulatív FALSE cpu: Logikai CPU-szám 0-tól kezdve (értékek: Bármely Str) Az elérhető logikai CPU-k száma.
system.cpu.átlagos_terhelés.5 perc Kijelző {thread} N/A FALSE (nincs) Átlagos cpu-terhelés 5 perc alatt.
system.cpu.átlagos_terhelés.1m Kijelző {thread} N/A FALSE (nincs) Átlagos cpu-terhelés 1 perc alatt.
system.cpu.load_average.15m Kijelző {thread} N/A FALSE (nincs) Átlagos cpu-terhelés 15 perc alatt.
system.cpu.frequency Kijelző Hz N/A FALSE (nincs) A processzormag aktuális gyakorisága Hz-ben.
process.uptime Kijelző s N/A FALSE (nincs) A folyamat futásának ideje.
folyamat.szálak Összeg {threads} Kumulatív FALSE (nincs) Folyamatszálak száma.
process.várakozó_jelek Összeg {signals} Kumulatív FALSE (nincs) A folyamat függőben lévő jeleinek száma (csak Linux esetén).
folyamat.lapozás.hibák Összeg hibák Kumulatív TRUE Típus: A hiba típusa (értékek: fő, kisebb) A folyamat által végrehajtott oldalhibák száma (csak Linux esetén).
process.open_file_descriptors Összeg {count} Kumulatív FALSE (nincs) A folyamat által használt fájlleírók száma.
folyamat.memória.virtuális Összeg Mellett Kumulatív FALSE (nincs) Virtuális memória mérete.
memóriafolyamat kihasználtság Kijelző 1 N/A FALSE (nincs) A folyamat által használt teljes fizikai memória százalékos aránya.
folyamat.memória.használat Összeg Mellett Kumulatív FALSE (nincs) A használatban lévő fizikai memória mennyisége.
system.disk.weighted_io_time Összeg s Kumulatív FALSE eszköz: A lemez neve (értékek: Bármely Str) A lemezen eltöltött aktív idő megszorozva a várakozási sor hosszával.
rendszer.lemez.függő_műveletek Összeg {műveletek} Kumulatív FALSE eszköz: A lemez neve (értékek: Bármely Str) Függőben lévő I/O-műveletek várólista-mérete.
rendszer.lemez.műveletek Összeg {műveletek} Kumulatív TRUE eszköz: A lemez neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: olvasás, írás)
Lemezműveletek száma.
rendszer.lemez.működési_idő Összeg s Kumulatív TRUE eszköz: A lemez neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: olvasás, írás)
Lemezműveletekkel töltött idő.
rendszer.lemez.összevont Összeg {műveletek} Kumulatív TRUE eszköz: A lemez neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: olvasás, írás)
A lemez olvasási/írási műveletei egyetlen fizikai műveletbe egyesítve.
system.disk.io_time Összeg s Kumulatív TRUE eszköz: A lemez neve (értékek: Bármely Str) Az aktivált lemezen töltött idő.
system.disk.io Összeg Mellett Kumulatív TRUE eszköz: A lemez neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: olvasás, írás)
Átvitt lemezbájtok.
process.handles Összeg {count} Kumulatív FALSE (nincs) Nyitott fogantyúk száma (csak Windows esetén).
folyamat.lemez.műveletek Összeg {műveletek} Kumulatív TRUE irány: A folyamat iránya (értékek: olvasás, írás) A folyamat által végrehajtott lemezműveletek.
process.disk.io Összeg Mellett Kumulatív TRUE irány: A folyamat iránya (értékek: olvasás, írás) Átvitt lemezbájtok.
folyamat.cpu.kihasználtság Kijelző 1 N/A FALSE állapot: A processzorhasználat lebontása (értékek: rendszer, felhasználó, várakozás) A folyamat által az utolsó adatgyűjtés óta felhasznált teljes CPU-idő százaléka (0–1).
process.cpu.time Összeg s Kumulatív TRUE állapot: A processzorhasználat lebontása (értékek: rendszer, felhasználó, várakozás) A CPU használat összes másodperce lebontva állapotok szerint.
folyamat.környezetváltások Összeg {count} Kumulatív TRUE típus: A környezetkapcsoló típusa (értékek: Bármely Str) A folyamat kontekstválthatóságának száma (csak Linux alatt).
rendszer.memória.kihasználtság Kijelző 1 N/A FALSE állapot: A memóriahasználat lebontása (értékek: pufferelt, gyorsítótárazott, inaktív, szabad, visszanyerhető lap, nem visszanyerhető lap, használt) A használatban lévő memória bájtjainak százalékos aránya.
rendszer.memória.használat Összeg Mellett Kumulatív FALSE állapot: A memóriahasználat lebontása (értékek: pufferelt, gyorsítótárazott, inaktív, szabad, visszanyerhető lap, nem visszanyerhető lap, használt) Használatban lévő memória bájtok.
system.memory.oldalméret Kijelző Mellett N/A FALSE (nincs) A rendszer által konfigurált oldalméret.
rendszer.memória.korlát Összeg Mellett Kumulatív FALSE (nincs) Elérhető memória összes bájtja.
system.linux.memory.dirty (rendszer.linux.memória.koszos) Összeg Mellett Kumulatív FALSE (nincs) A piszkos memória mennyisége (/proc/meminfo).
rendszer.linux.memória.elérhető Összeg Mellett Kumulatív FALSE (nincs) A rendelkezésre álló memória becslése (csak Linux esetén).
rendszer.hálózat.csomagok Összeg {packets} Kumulatív TRUE eszköz: Hálózati adapter neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: fogadás, továbbítás)
Az átvitt csomagok száma.
system.network.io Összeg Mellett Kumulatív TRUE (nincs) Továbbított és fogadott bájtok.
rendszer.hálózat.hibák Összeg {errors} Kumulatív FALSE eszköz: Hálózati adapter neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: fogadás, továbbítás)
Az észlelt hibák száma.
rendszer.hálózat.elveszett Összeg {packets} Kumulatív TRUE eszköz: Hálózati adapter neve (értékek: Bármely Str)
irány: A folyamat iránya (értékek: fogadás, továbbítás)
Az eldobott csomagok száma.
system.network.conntrack.max Összeg {entries} Kumulatív FALSE (nincs) A conntrack táblázat bejegyzéseinek korlátja.
system.network.conntrack.count Összeg {entries} Kumulatív FALSE (nincs) A conntrack tábla bejegyzéseinek száma.
rendszer.hálózat.kapcsolatok Összeg {kapcsolatok} Kumulatív FALSE protokoll: Hálózati protokoll (értékek: tcp)
state: Connection state (values: Any Str)
Kapcsolatok száma.
system.uptime Kijelző s N/A FALSE (nincs) A rendszer futásának ideje.
rendszer.folyamatok.létrehozva Összeg {folyamatok} Kumulatív TRUE (nincs) Létrehozott folyamatok teljes száma.
system.processes.count Összeg {folyamatok} Kumulatív FALSE állapot: Folyamat állapota (értékek: blokkolva, démon, leválasztott, tétlen, zárolt, árva, lapozás, futás, alvó, leállt, rendszer, ismeretlen, zombik) Az egyes állapotokban lévő folyamatok teljes száma.
rendszer.lapozás.kihasználtság Kijelző 1 N/A FALSE eszköz: Lapfájl neve (értékek: Bármely Str)
állapot: Lapozási használat típusa (értékek: gyorsítótárazott, ingyenes, használt)
Swap (Unix) vagy pagefile (Windows) használat.
rendszer.lapozás.használat Összeg Mellett Kumulatív FALSE eszköz: Lapfájl neve (értékek: Bármely Str)
állapot: Lapozási használat típusa (értékek: gyorsítótárazott, ingyenes, használt)
Swap (Unix) vagy pagefile (Windows) használat.
rendszer.lapozás.műveletek Összeg {műveletek} Kumulatív TRUE irány: Oldalfolyam (értékek: page_in, page_out)
típus: Hibatípus (értékek: fő, kisebb)
Lapozási műveletek
rendszer.oldalazási.hibák Összeg hibák (nincs) TRUE típus: Hibatípus (értékek: fő, kisebb) Oldalhibák száma.
rendszer.fájlrendszer.kihasználtság Kijelző 1 N/A FALSE eszköz: Fájlrendszer azonosítója
mód: Csatlakoztatási mód (értékek: ro, rw)
mountpoint: Elérési út
típus: Fájlrendszer típusa (értékek: ext4, tmpfs stb.)
A használt fájlrendszer bájtjainak töredéke.
system.filesystem.usage Összeg Mellett Kumulatív FALSE eszköz: Fájlrendszer azonosítója
mód: Csatlakoztatási mód
mountpoint: Elérési út
Típus: Fájlrendszer típusa
state: Usage type (értékek: ingyenes, fenntartott, használt)
Használt fájlrendszer bájtok.
system.filesystem.inodes.usage Összeg {inodes} Kumulatív FALSE eszköz: Fájlrendszer azonosítója
mód: Csatlakoztatási mód
mountpoint: Elérési út
Típus: Fájlrendszer típusa
state: Usage type (értékek: ingyenes, fenntartott, használt)
Használt fájlrendszer-inódok.

Jótanács

Nyugodtan ossza meg visszajelzését az új teljesítményszámlálókkal vagy funkciókkal kapcsolatban, amelyeket látni szeretne a GitHub-közösségünkben vagy a Portál visszajelzésén keresztül.

Erőforrásattribútumok

Az OpenTelemetry Resource szemantikai konvenciója még fejlesztés alatt áll. Aktívan együttműködünk az OSS-közösséggel ennek az elnevezési konvenciónak a javítása és szabványosítása érdekében számos különböző forgatókönyv esetében – kérjük, ossza meg visszajelzését, hogy folyamatosan fejlesszük a felhasználói élményt.

Általánosságban elmondható, hogy az Azure Monitor Agent + Adatgyűjtési szabályok segítségével gyűjtött és az Azure Monitor-munkaterületekre küldött OpenTelemetry-metrikák dimenzióként automatikusan hozzáadva a következő felhőbeli erőforrás-attribútumokat az erőforrás-hatókörű lekérdezések támogatásához:

  • Microsoft.resourceid
  • Microsoft.subscriptionid
  • Microsoft.resourcegroupname
  • Microsoft.resourcetype
  • Microsoft.amwresourceid

Az OpenTelemetria folyamatonkénti metrikái saját, speciális erőforrásattribútum-készlettel rendelkeznek. A táblázatban azok az erőforrásattribútumok láthatók, amelyeket az Azure Monitor-ügynök automatikusan előléptet dimenzióként.

Név Description Értékek Enabled
folyamat.parancs A folyamat elindításához használt parancs (azaz a parancs neve). Linux-alapú rendszereken beállítható a nulladik karakterlánc a proc/[pid]/cmdline-ban. Windows rendszeren az első paraméterre lehet beállítani, amit a GetCommandLineW-ből nyerünk ki. Bármely Str true
process.executable.name A végrehajtható folyamat neve. Linux-alapú rendszereken beállítható a következő értékre: Nameproc/[pid]/status. Windows rendszeren beállítható az GetProcessImageFileNameW alapnévre. Bármely Str true
folyamatgazda A folyamatot birtokbavevő felhasználó felhasználóneve. Bármely Str true
process.pid Folyamatazonosító (PID). Bármely int true
process.cgroup a folyamathoz társított cgroup (csak Linux esetén). Bármely Str false
process.command_line A folyamat elindításához használt teljes parancs egyetlen sztring formájában, ami a teljes parancsot jelenti. Windows rendszeren a következő eredményre GetCommandLineWállítható be: . Ne állítsa be ezt, ha csak monitorozásra kell összeállítani; helyette process.command_args-t használjon. Bármely Str false
process.executable.path A végrehajtható folyamat teljes elérési útja. Linux-alapú rendszereken beállítható a cél proc/[pid]/exe. Windows rendszeren a következő eredményre GetProcessImageFileNameWállítható be: . Bármely Str false
process.parent_pid Szülőfolyamat-azonosító (PPID). Bármely int false

A process.command_line attribútum rendkívül hosszú, több ezer karakterből álló sztringeket tartalmazhat, így nem megfelelő normál metrikadimenzióként. Előfordulhat, hogy a termékcsapatnak küldött visszajelzésként küldött ügyfélfelhasználói forgatókönyvek alapján másképpen tudjuk felszínre juttatni ezt az attribútumot.

Következő lépések

Egyéni metrikák használata különböző szolgáltatásokból: