Egyéni metrikák betöltése Azure-erőforráshoz a REST API használatával
Ez a cikk bemutatja, hogyan küldhet egyéni metrikákat az Azure-erőforrásokhoz az Azure Monitor metrikáinak tárolójába a REST API-val. Amikor a metrikák az Azure Monitorban vannak, minden olyan műveletet elvégezhet velük, amelyet a standard metrikákkal végez. Létrehozhat például diagramokat és riasztásokat, és átirányíthatja a metrikákat más külső eszközökre.
Feljegyzés
A REST API csak egyéni metrikák küldését teszi lehetővé az Azure-erőforrások számára. Ha más környezetekben vagy a helyszínen lévő erőforrásokhoz szeretne metrikákat küldeni, használja az Application Insightst.
REST-kérések küldése egyéni metrikák betöltésére
Amikor egyéni metrikákat küld az Azure Monitornak, a metrikákban jelentett minden adatpontnak vagy értéknek tartalmaznia kell a következő információkat.
- Hitelesítési jogkivonat
- Tárgy
- Régió
- Időbélyeg
- Namespace
- Név
- Dimenziókulcsok
- Dimenzióértékek
- Metrikaértékek
Hitelesítés
Ahhoz, hogy egyéni metrikákat küldjön az Azure Monitornak, a metrikát beküldő entitásnak érvényes Microsoft Entra-jogkivonatra van szüksége a kérés Tulajdonos fejlécében. Az érvényes tulajdonosi jogkivonatok beszerzésének támogatott módjai a következők:
Felügyelt identitások az Azure-erőforrásokhoz. Egy felügyelt identitással engedélyeket adhat az erőforrásoknak bizonyos műveletek végrehajtásához. Ilyen például, ha egy erőforrás metrikákat bocsát ki magáról. Egy erőforrás vagy annak felügyelt identitása egy másik erőforráshoz is megadhat monitorozási metrikák közzétevői engedélyeit. Ezzel az engedéllyel a felügyelt identitás metrikákat is kibocsáthat más erőforrásokhoz.
Microsoft Entra szolgáltatásnév. Ebben a forgatókönyvben egy Microsoft Entra-alkalmazás vagy -szolgáltatás engedélyeket rendelhet egy Azure-erőforrás metrikáinak kibocsájtásához. A kérelem hitelesítéséhez az Azure Monitor a Microsoft Entra nyilvános kulcsokkal ellenőrzi az alkalmazás jogkivonatát. A meglévő Monitorozási metrikák közzétevője szerepkör már rendelkezik ezzel az engedéllyel. Az Azure Portalon érhető el.
A szolgáltatásnév attól függően, hogy milyen erőforrásokhoz bocsát ki egyéni metrikákat, a szükséges hatókörön belüli Monitorozási metrikák közzétevői szerepköre adható meg. Ilyen például egy előfizetés, egy erőforráscsoport vagy egy adott erőforrás.
Tipp.
Amikor egyéni metrikák kibocsátásához Microsoft Entra-jogkivonatot kér, győződjön meg arról, hogy az a célközönség vagy erőforrás, amely számára a jogkivonatot https://monitoring.azure.com/
kérik. Ügyeljen arra, hogy a záró perjelet is belefoglalja.
Engedélyezési jogkivonat lekérése
Miután létrehozta a felügyelt identitást vagy szolgáltatásnevet, és hozzárendelte a Monitorozási metrikák közzétevői engedélyeit, beszerezhet egy engedélyezési jogkivonatot.
Jogkivonat kérésekor adja meg a kívánt resource: https://monitoring.azure.com
értéket.
Hitelesítési jogkivonat lekérése az alábbi módszerek bármelyikével:
- parancssori felület
- REST API
- SDK
Jogkivonat kérésekor meg kell adnia egy paramétert resource
. A resource
paraméter a elérni kívánt erőforrás URL-címe.
A források között van többek között:
https://management.azure.com
https://api.loganalytics.io
https://monitoring.azure.com
Jogkivonat lekérése REST-kéréssel
Jogkivonat lekéréséhez használja a következő REST API-hívást. Ez a kérés ügyfél-azonosítót és ügyfélkulcsot használ a kérés hitelesítéséhez. Az ügyfélazonosítót és az ügyfél titkos kódját az alkalmazás Microsoft Entra-azonosítóval való regisztrálásakor kapja meg a rendszer. További információ: Alkalmazás regisztrálása engedélyezési jogkivonatok lekéréséhez és API-k használatához
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'
A válasz törzse a következő formátumban jelenik meg:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "https://monitoring.azure.com",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Mentse a hozzáférési jogkivonatot a válaszból a következő HTTP-kérésekben való használatra.
Tárgy
A tárgytulajdonság rögzíti, hogy az egyéni metrika melyik Azure-erőforrásazonosítóra vonatkozik. Ez az információ az API-hívás URL-címében van kódolva. Minden API csak egyetlen Azure-erőforrás metrikaértékét küldheti el.
Feljegyzés
Nem bocsáthat ki egyéni metrikákat egy erőforráscsoport vagy előfizetés erőforrás-azonosítójával.
Régió
A régiótulajdonság rögzíti azt az Azure-régiót, ahol a metrikákat kibocsátó erőforrás üzembe van helyezve. A metrikákat ugyanarra az Azure Monitor regionális végpontra kell kibocsátani, mint az erőforrás üzembe helyezésének régiója. Az USA nyugati régiójában üzembe helyezett virtuális gépek egyéni metrikáit például el kell küldeni a WestUS regionális Azure Monitor-végpontjának. A régió adatai az API-hívás URL-címében is kódolva lesznek.
Időbélyegző
Az Azure Monitornak küldött adatpontokat időbélyeggel kell megjelölni. Ez az időbélyeg rögzíti a metrikaérték mérésének vagy gyűjtésének dátumát és időpontját. Az Azure Monitor a metrikaadatokat az elmúlt 20, a jövőben pedig 5 perc időbélyeggel fogadja el. Az időbélyegnek ISO 8601 formátumban kell lennie.
Névtér
A névterek segítségével kategorizálhatók vagy csoportosíthatók a hasonló metrikák. A névterek használatával elszigetelheti a különböző elemzéseket vagy teljesítménymutatókat gyűjtő metrikák csoportjait. Lehet például egy contosomemorymetrics nevű névtér, amely nyomon követi az alkalmazást profilként használó memóriahasználati metrikákat. Egy másik névtér, a contosoapptransaction nyomon követheti az alkalmazás felhasználói tranzakcióinak összes mérőszámát.
Név
A névtulajdonság a jelentett metrika neve. A név általában elég leíró ahhoz, hogy segítsen azonosítani a mért értékeket. Ilyen például egy metrika, amely a virtuális gépen használt memóriabájtok számát méri. Lehet, hogy a metrika neve olyan, mint a használatban lévő memória bájtja.
Dimenziókulcsok
A dimenzió egy kulcs/érték pár, amely segít az összegyűjtött metrikával kapcsolatos egyéb jellemzők leírásában. A többi jellemző használatával további információkat gyűjthet a metrikáról, ami mélyebb elemzéseket tesz lehetővé.
A Használatban lévő memória bájtjai metrika például rendelkezhet egy Folyamat nevű dimenziókulcspel, amely rögzíti, hogy egy virtuális gépen az egyes folyamatok hány bájtnyi memóriát használnak fel. Ezzel a kulccsal szűrheti a metrikát, hogy lássa, mennyi memóriaspecifikus folyamat használja, vagy hogy a memóriahasználat alapján azonosítsa az első öt folyamatot.
A dimenziók nem kötelezőek, és nem minden metrika rendelkezik dimenziókkal. Az egyéni metrikák legfeljebb 10 dimenzióval rendelkezhetnek.
Dimenzióértékek
Metrikaadatpont jelentésekor a jelentett metrika minden dimenziókulcsához tartozik egy megfelelő dimenzióérték. Előfordulhat például, hogy jelenteni szeretné a ContosoApp által a virtuális gépen használt memóriát:
- A metrika neve a használatban lévő memóriabájt.
- A dimenziókulcs a Folyamat.
- A dimenzió értéke ContosoApp.exe lenne.
Metrikaérték közzétételekor dimenziókulcsonként csak egyetlen dimenzióértéket adhat meg. Ha ugyanazt a memóriakihasználtságot gyűjti össze több folyamat esetében a virtuális gépen, több metrikaértéket is jelenthet az adott időbélyeghez. Minden metrikaérték más dimenzióértéket adna meg a Folyamat dimenziókulcshoz.
Bár a dimenziók megadása nem kötelező, ha egy metrikaoszlop dimenziókulcsokat határoz meg, a megfelelő dimenzióértékek kötelezőek.
Metrika értékei
Az Azure Monitor az összes metrikát 1 perces részletességi időközönként tárolja. Egy adott perc alatt előfordulhat, hogy egy metrikát többször is mintát kell venni. Ilyen például a processzorkihasználtság. Vagy előfordulhat, hogy egy metrikát számos különálló eseményhez, például a bejelentkezési tranzakció késéséhez kell mérni.
Az Azure Monitorban kibocsátandó és fizetendő nyers értékek számának korlátozásához helyileg előaggregálja és adja ki az összesített értékeket:
- Min: A minimálisan megfigyelt érték az összes mintából és mérésből a perc során.
- Max: Az összes minta és mérés maximális megfigyelt értéke a perc során.
- Összeg: Az összes megfigyelt érték összegzése az összes mintából és mérésből a perc során.
- Darabszám: A perc során vett minták és mérések száma.
Feljegyzés
Az Azure Monitor nem támogatja az egységek egyéni metrikákhoz való meghatározását.
Ha például egy perc alatt négy bejelentkezési tranzakció történt az alkalmazásba, az eredményként kapott késések a következők lehetnek:
1. tranzakció | 2. tranzakció | 3. tranzakció | 4. tranzakció |
---|---|---|---|
7 ms | 4 ms | 13 ms | 16 ms |
Ezután az eredményként kapott metrika-közzététel az Azure Monitorban a következő lesz:
- Min: 4
- Max: 16
- Összeg: 40
- Darabszám: 4
Ha az alkalmazás nem tudja előre összesíteni a helyi adatokat, és azonnal ki kell adnia minden különálló mintát vagy eseményt a gyűjtéskor, akkor kibocsáthatja a nyers mértékértékeket. Például minden alkalommal, amikor bejelentkezési tranzakció történik az alkalmazásban, egy metrikát csak egyetlen méréssel tesz közzé az Azure Monitorban. Tehát egy 12 ezredmásodpercet igénybe vett bejelentkezési tranzakció esetén a metrika-közzététel a következő lenne:
- Min: 12
- Max: 12
- Összeg: 12
- Darabszám: 1
Ezzel a folyamattal több értéket is kibocsáthat ugyanarra a metrikára/dimenziókombinációra egy adott percben. Az Azure Monitor ezután egy adott percre kibocsátja az összes nyers értéket, és összesíti azokat.
Minta egyéni metrika-kiadvány
Az alábbi példában hozzon létre egy egyéni metrikát memória bájtok használatban a virtuális gép memóriaprofilja metrikanévtér alatt. A metrika egyetlen, Folyamat nevű dimenzióval rendelkezik. Az időbélyeg esetében a metrikaértékek két folyamathoz lesznek kibocsátva.
Tárolja a következő JSON-t egy custommetric.json nevű fájlban a helyi számítógépen. Frissítse az időparamétert úgy, hogy az az elmúlt 20 percben legyen. 20 percnél régebbi metrika nem helyezhető el az áruházban.
{
"time": "2024-01-07T11:25:20-7:00",
"data": {
"baseData": {
"metric": "Memory Bytes in Use",
"namespace": "Memory Profile",
"dimNames": [
"Process"
],
"series": [
{
"dimValues": [
"ContosoApp.exe"
],
"min": 10,
"max": 89,
"sum": 190,
"count": 4
},
{
"dimValues": [
"SalesApp.exe"
],
"min": 10,
"max": 23,
"sum": 86,
"count": 4
}
]
}
}
}
Küldje el a következő HTTP POST-kérést a következő változók használatával:
location
: Annak az erőforrásnak az üzembehelyezési régiója, amely számára metrikákat bocsát ki.resourceId
: Annak az Azure-erőforrásnak az erőforrás-azonosítója, amely alapján nyomon követi a metrikát.accessToken
: Az engedélyezési jogkivonat lekérése lépésből beszerzett engedélyezési jogkivonat .curl -X POST 'https://<location>.monitoring.azure.com/<resourceId>/metrics' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <accessToken>' \ -d @custommetric.json
A metrikák megtekintése
Jelentkezzen be az Azure Portalra.
A bal oldali menüben válassza a Figyelés lehetőséget.
A Monitorozás lapon válassza a Metrikák lehetőséget.
Módosítsa az összesítési időszakot az Utolsó órára.
A Hatókör legördülő listában válassza ki a metrikát küldő erőforrást.
A Metrika Namespace legördülő listában válassza a Memóriaprofil lehetőséget.
A Metrika legördülő listában válassza a Használatban lévő memória bájtok lehetőséget.
Hibaelhárítás
Ha hibaüzenetet kap a folyamat egy részével, vegye figyelembe a következő hibaelhárítási információkat:
- Ha nem tud metrikákat kiadni egy előfizetésen, erőforráscsoporton vagy erőforráson, ellenőrizze, hogy az alkalmazás vagy szolgáltatásnév rendelkezik-e a Hozzáférés-vezérlés (IAM) szolgáltatáshoz hozzárendelt Monitorozási metrikák közzétevői szerepkörével.
- Ellenőrizze, hogy a dimenziónevek száma megegyezik-e az értékek számával.
- Ellenőrizze, hogy metrikákat bocsát-e ki a megfelelő Regionális Azure Monitor-végpontra. Ha például az erőforrás az USA nyugati régiójában van üzembe helyezve, metrikákat kell kibocsátania az USA nyugati régiójának végpontjához.
- Ellenőrizze, hogy az időbélyeg az elmúlt 20 percen belül van-e.
- Ellenőrizze, hogy az időbélyeg ISO 8601 formátumban van-e.
- Ellenőrizze, hogy a metrika neve érvényes-e. Például nem tartalmazhat szóközöket.