Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak odesílat vlastní metriky pro prostředky Azure do úložiště metrik Azure Monitor prostřednictvím rozhraní REST API. Když jsou metriky v Azure Monitor, můžete s nimi dělat všechny věci, které děláte se standardními metrikami. Můžete například generovat grafy a výstrahy a směrovat metriky do jiných externích nástrojů.
Poznámka:
Rozhraní REST API povoluje odesílání vlastních metrik pouze pro prostředky Azure. Pokud chcete odesílat metriky pro prostředky v jiných prostředích nebo v místním prostředí, použijte Application Insights.
Odeslat požadavky REST pro příjem vlastních metrik
Při odesílání vlastních metrik do Azure Monitor musí každý datový bod nebo hodnota hlášené v metrikách obsahovat následující informace.
- Ověřovací token
- Předmět
- Oblast
- Časová značka
- Namespace
- název
- Klíče dimenzí
- Hodnoty dimenzí
- Hodnoty metrik
Autentizace
K odeslání vlastních metrik do Azure Monitor potřebuje entita, která odesílá metriku, platný token Microsoft Entra v hlavičce požadavku Bearer. Podporované způsoby, jak získat platný nosný token, zahrnují:
Spravované identity pro prostředky Azure. Spravovanou identitu můžete použít k tomu, aby prostředky měly oprávnění k určitým operacím. Příkladem je povolení, aby prostředek mohl generovat metriky o sobě. Prostředku nebo jeho spravované identitě mohou být udělena oprávnění Monitoring Metrics Publisher k jinému prostředku. S tímto oprávněním může spravovaná identita také generovat metriky pro jiné prostředky.
Microsoft Entra principál služby. V tomto scénáři je možné přiřadit oprávnění Microsoft Entra aplikace nebo služby k vydávání metrik o prostředku Azure. Pokud chcete požadavek ověřit, Azure Monitor ověří token aplikace pomocí Microsoft Entra veřejných klíčů. Tato oprávnění už má existující role Monitoring Metrics Publisher. Je k dispozici na portálu Azure.
"V případě aplikace služby může být, podle prostředků, pro které generuje vlastní metriky, přidělena role Monitoring Metrics Publisher v požadovaném rozsahu." Příklady jsou předplatné, skupina prostředků nebo konkrétní prostředek.
Tip
Když požadujete token Microsoft Entra k generování vlastních metrik, ujistěte se, že cílová skupina nebo prostředek, pro který je token požadován, https://monitoring.azure.com/. Nezapomeňte zahrnout koncové lomítko.
Získání autorizačního tokenu
Po vytvoření spravované identity nebo služby principal a při přiřazení oprávnění Monitoring Metrics Publisher můžete získat autorizační token.
Při vyžádání tokenu zadejte resource: https://monitoring.azure.com.
Získejte autentizační token pomocí některé z následujících metod:
- CLI
- REST API
- sada SDK
Získejte token pomocí REST požadavku
Použijte následující volání REST API k získání tokenu. Tato žádost používá ID klienta a tajný klíč klienta k ověření žádosti. ID klienta a tajný klíč klienta se získávají při registraci aplikace v Microsoft Entra ID. Pro více informací se podívejte na Registrovat aplikaci pro žádost o autorizační tokeny a práci s API.
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={resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}'
Tělo odpovědi se zobrazí v následujícím formátu:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "{resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Uložte přístupový token z odpovědi pro použití v následujících požadavcích HTTP.
Předmět
Vlastnost předmětu zaznamenává, pro které Azure ID prostředku se vlastní metrika hlásí. Tyto informace jsou kódovány v adrese URL volání rozhraní API. Každé rozhraní API může odesílat hodnoty metrik pouze pro jeden prostředek Azure.
Poznámka:
Nemůžete vystavovat vlastní metriky ve vztahu k prostředku podle ID skupiny nebo předplatného.
Región
Vlastnost oblasti zachycuje oblast Azure, ve které je umístěn prostředek, pro který emitujete metriky. Metriky musí být odesílány na stejný regionální koncový bod Azure Monitor jako region, ve kterém je prostředek nasazen. Například vlastní metriky pro virtuální počítač nasazený v oblasti USA – západ musí být odeslány do regionálního Azure Monitor koncového bodu USA – západ. Informace o oblasti jsou také kódovány v adrese URL volání rozhraní API.
Časová značka
Každý datový bod odeslaný do Azure Monitor musí být označen časovým razítkem. Toto časové razítko zachycuje datum a čas, kdy se hodnota metriky měří nebo shromažďuje. Azure Monitor přijímá data metrik s časovými razítky až 20 minut zpětně a až 5 minut dopředu. Časové razítko musí být ve formátu ISO 8601.
Namespace
Jmenné prostory jsou způsob, jak kategorizovat nebo seskupovat podobné metriky. Prostřednictvím oborů názvů můžete dosáhnout izolace mezi skupinami metrik, které mohou sbírat různé poznatky nebo ukazatele výkonu. Můžete mít například obor názvů s názvem contosomemorymetrics, který sleduje metriky využití paměti, které profilují vaši aplikaci. Jiný obor názvů s názvem contosoapptransaction může sledovat všechny metriky o uživatelských transakcích ve vaší aplikaci.
Název
Vlastnost name je název metriky, která je hlášena. Název je obvykle dostatečně popisný, aby vám pomohl zjistit, co se měří. Příkladem je metrika, která měří počet bajtů paměti používaných na virtuálním počítači. Může mít název metriky, jako jsou bajty paměti, které se používají.
Klíče dimenzí
Dimenze je pár klíč/hodnota, který pomáhá popsat další charakteristiky metriky, která se shromažďuje. Pomocí dalších charakteristik můžete shromáždit další informace o metrice, což umožňuje podrobnější přehledy.
Metrika Využití bajtů paměti může mít například klíč dimenze s názvem Proces , který zachycuje, kolik bajtů paměti každý proces na virtuálním počítači spotřebuje. Pomocí tohoto klíče můžete metriku filtrovat, abyste viděli, kolik procesů specifických pro paměť používá, nebo abyste identifikovali prvních pět procesů podle využití paměti.
Dimenze jsou volitelné a ne všechny metriky mají dimenze. Vlastní metrika může mít až 10 dimenzí.
Hodnoty dimenzí
Když hlásíte datový bod metriky, pro každý klíč dimenze na hlášené metrice existuje odpovídající hodnota dimenze. Můžete například chtít nahlásit paměť, kterou ContosoApp používá na vašem virtuálním počítači:
- Název metriky by byl bajty paměti ve využití.
- Klíč dimenze by byl Proces.
- Hodnota dimenze by byla ContosoApp.exe.
Při publikování hodnoty metriky můžete zadat pouze jednu hodnotu dimenze na klíč dimenze. Pokud na virtuálním počítači shromáždíte stejné využití paměti pro více procesů, můžete pro toto časové razítko hlásit více hodnot metrik. Každá hodnota metriky by určila jinou hodnotu pro klíč dimenze Proces.
I když jsou dimenze volitelné, pokud příspěvek metriky definuje klíče dimenzí, jsou odpovídající hodnoty dimenzí povinné.
Hodnoty metriky
Azure Monitor ukládá všechny metriky v intervalech 1minutové granularitě. Během dané minuty může být potřeba metriku několikrát vzorkovat. Například podle využití procesoru. Nebo se může vyžadovat měření metriky u mnoha diskrétních událostí, jako jsou latence transakcí přihlašování.
Pokud chcete omezit počet nezpracovaných hodnot, za které musíte vygenerovat a platit v Azure Monitor, místně předaggujte a vygenerujte agregované hodnoty:
- Min: Minimální pozorovaná hodnota ze všech vzorků a měření během minuty.
- Max: Maximální pozorovaná hodnota ze všech vzorků a měření během minuty.
- Součet: Součet všech pozorovaných hodnot ze všech vzorků a měření během minuty.
- Počet: Počet vzorků a měření provedených během minuty.
Poznámka:
Azure Monitor nepodporuje definování Nits pro vlastní metriku.
Pokud například během minuty došlo k čtyř transakcím přihlašování do vaší aplikace, může být výsledná měřená latence pro každou z těchto transakcí:
| Transakce 1 | Transakce 2 | Transakce 3 | Transakce 4 |
|---|---|---|---|
| 7 ms | 4 ms | 13 ms | 16 ms |
Výsledná publikace metriky pro Azure Monitor by pak byla:
- Min: 4
- Max: 16
- Součet: 40
- Počet: 4
Pokud vaše aplikace nemůže předem oddělit místně a potřebuje vygenerovat každou diskrétní ukázku nebo událost okamžitě po kolekci, můžete vygenerovat nezpracované hodnoty měr. Například pokaždé, když v aplikaci dojde k přihlašovací transakci, publikujete metriku pro Azure Monitor pouze s jedním měřením. V případě přihlašovací transakce, která trvala 12 milisekund, by metrika byla publikována jako:
- Minimální: 12
- Maximálně: 12
- Součet: 12
- Počet: 1
V tomto procesu můžete během dané minuty vygenerovat více hodnot pro stejnou kombinaci metrik/dimenzí. Azure Monitor pak vezme všechny nezpracované hodnoty vygenerované za danou minutu a agreguje je.
Ukázkové vlastní publikování metrik
V následujícím příkladu vytvořte vlastní metriku nazvanou Použité bajty paměti v rámci oboru názvů metriky Profil paměti pro virtuální počítač. Metrika má jednu dimenzi s názvem Proces. Pro časové razítko se hodnoty metrik vygenerují pro dva procesy.
Do souboru s názvem custommetric.json na místním počítači uložte následující KÓD JSON. Aktualizujte parametr času tak, aby byl během posledních 20 minut. Metriku nemůžete umístit do úložiště, které je starší než 20 minut.
{
"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
}
]
}
}
}
Pomocí následujících proměnných odešlete následující požadavek HTTP POST:
location: Oblast nasazení prostředku, pro který generujete metriky.resourceId: ID prostředku Azure, pro kterou metriku sledujete.accessToken: Autorizační token získaný z kroku Získání autorizačního tokenu .curl -X POST 'https://<location>.monitoring.azure.com/<resourceId>/metrics' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <accessToken>' \ -d @custommetric.json
Zobrazení metrik
Přihlaste se k portálu Azure.
V nabídce vlevo vyberte Sledovat.
Na stránce Monitorování vyberte Metriky.
Změňte agregační období na poslední hodinu.
V rozevíracím seznamu Obor vyberte prostředek, pro který odešlete metriku.
V rozevíracím seznamu Obor názvů metrik vyberte Profil paměti.
V rozevíracím seznamu Metriky vyberte Používané paměťové bajty.
Řešení problémů
Pokud se zobrazí chybová zpráva s určitou částí procesu, zvažte následující informace o řešení potíží:
- Pokud nemůžete vydávat metriky pro předplatné, skupinu prostředků nebo prostředek, zkontrolujte, jestli má vaše aplikace nebo služební účet přiřazenou roli Monitoring Metrics Publisher v Řízení přístupu (IAM).
- Zkontrolujte, jestli počet názvů dimenzí odpovídá počtu hodnot.
- Ověřte, že odesíláte metriky na správný koncový bod pro Azure Monitor v daném regionu. Pokud je například váš prostředek nasazený v oblasti USA – západ, musíte generovat metriky do regionálního koncového bodu USA – západ.
- Zkontrolujte, jestli časové razítko spadá do posledních 20 minut.
- Zkontrolujte, jestli časové razítko je ve formátu ISO 8601.
Další kroky
Přečtěte si další informace o vlastních metrikách.