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.
Spravovaná služba Azure Monitor pro Prometheus umožňuje shromažďovat a analyzovat metriky ve velkém měřítku. Metriky Prometheus se ukládají do pracovních prostorů služby Azure Monitor. Pracovní prostor podporuje analytické nástroje, jako je Azure Managed Grafana a Průzkumník metrik Azure Monitoru s podporou jazyka PromQL, a také opensourcové nástroje, jako jsou PromQL a Grafana.
Tento článek obsahuje osvědčené postupy pro uspořádání pracovních prostorů služby Azure Monitor tak, aby odpovídaly vašemu škálování a rostoucímu objemu příjmu dat.
Kritéria návrhu topologie
Jeden pracovní prostor Azure Monitoru může být dostatečný pro mnoho případů použití. Některé organizace vytvářejí více pracovních prostorů, aby lépe splňovaly své požadavky. Při identifikaci správných kritérií pro vytváření dalších pracovních prostorů vytvořte nejnižší počet pracovních prostorů, které odpovídají vašim požadavkům, a současně optimalizujte minimální režii na správu.
Následující scénáře vyžadují rozdělení pracovního prostoru služby Azure Monitor do několika pracovních prostorů:
| Scénář | Nejlepší praxe |
|---|---|
| Suverénní mraky | Při práci s více než jedním suverénním cloudem vytvořte pracovní prostor Azure Monitoru v každém cloudu. |
| Dodržování předpisů nebo zákonné požadavky | Pokud podléháte předpisům, které vyžadují ukládání dat v konkrétních oblastech, vytvořte podle svých požadavků pracovní prostor služby Azure Monitor pro každou oblast. |
| Regionální škálování | Při správě metrik pro regionální organizace, jako jsou velké služby nebo finanční instituce s regionálními účty, vytvořte pracovní prostor služby Azure Monitor pro každou oblast. |
| Nájemci Azure | Pro více tenantů Azure vytvořte v každém tenantovi pracovní prostor služby Azure Monitor. Dotazování dat napříč tenanty není podporováno. |
| Prostředí nasazení | Vytvořte samostatný pracovní prostor pro každé prostředí nasazení, abyste zachovali samostatné metriky pro vývoj, testování, předprodukční a produkční prostředí. |
| Limity a kvóty služeb | Pracovní prostory služby Azure Monitor mají výchozí limity příjmu dat, které je možné zvýšit otevřením lístku podpory. Pokud se blížíte limitu nebo odhadnete, že překročíte limit příjmu dat, zvažte žádost o navýšení nebo rozdělení pracovního prostoru na dva nebo více pracovních prostorů. |
Limity a kvóty služeb
Pracovní prostory služby Azure Monitor mají výchozí kvóty a omezení pro metriky 1 milion přijatých událostí za minutu. S rostoucím využitím a potřebujete ingestovat další metriky, můžete požádat o zvýšení. Pokud jsou vaše požadavky na kapacitu mimořádně velké a vaše potřeby příjmu dat překračují limity jednoho pracovního prostoru služby Azure Monitor, zvažte vytvoření několika pracovních prostorů služby Azure Monitor. K monitorování využití a omezení použijte metriky platformy pracovního prostoru služby Azure Monitor. Další informace o omezeních a kvótách najdete v tématu Omezení a kvóty služby Azure Monitor.
Zvažte následující osvědčené postupy pro správu limitů a kvót pracovního prostoru služby Azure Monitor:
| Nejlepší praxe | Popis |
|---|---|
| Monitorujte a vytvořte upozornění na omezení a využití příjmu dat. | Na webu Azure Portal přejděte do svého pracovního prostoru služby Azure Monitor. Přejděte na Metriky a ověřte, že metriky % využití aktivní časové řady a % využití událostí za minutu ingestovaných jsou nižší než 100 %. Nastavte upozornění služby Azure Monitor, aby monitorovalo využití a aktivovalo se, když je využití větší než 80 % limitu. Další informace o monitorování využití a omezení najdete v tématu Jak můžu monitorovat limity a kvóty služby. |
| Pokud využití překročí 80 % aktuálního limitu, požádejte o navýšení limitu. | S rostoucím využitím Azure se pravděpodobně zvýší objem přijatých dat. Pokud příjem dat překročí nebo se blíží 80 % limitu příjmu dat, doporučujeme požádat o zvýšení limitů. Pokud chcete požádat o navýšení limitu, podívejte se na Žádost o zvýšení limitu ingesce. |
| Odhadněte předpokládané měřítko. | S tím, jak vaše využití roste a ingestujete do pracovního prostoru více metrik, proveďte odhad předpokládaného škálování a míry růstu. Na základě vašich projekcí požádejte o zvýšení limitu. |
| Příjem dat pomocí vzdáleného zápisu pomocí kontejneru Azure Monitor side-car | Pokud používáte sidecar kontejner služby Azure Monitor a funkci vzdáleného zápisu pro ingestování metrik do pracovního prostoru služby Azure Monitor, zvažte následující omezení: |
| Omezení DCR/DCE | Omezení se vztahují na pravidla shromažďování dat (DCR) a koncové body shromažďování dat (DCE), které odesílají metriky Prometheus do pracovního prostoru služby Azure Monitor. Pokud chcete tyto limity monitorovat, přečtěte si téma Zobrazení a monitorování limitů DCR. Tato omezení není možné zvýšit. Zvažte vytvoření dalších řadičů domény a DCE pro distribuci zatížení příjmu dat napříč několika koncovými body. Tento přístup pomáhá optimalizovat výkon a zajišťuje efektivní zpracování dat. Další informace o vytváření DCR a DCE najdete v tématu Vytvoření vlastního koncového bodu shromažďování dat (DCE) a vlastního pravidla shromažďování dat (DCR) pro existující pracovní prostor služby Azure Monitor pro ingestování metrik Prometheus. |
Optimalizace výkonu pro velké objemy dat
Příjem
Při optimalizaci příjmu dat zvažte následující osvědčené postupy:
| Nejlepší praxe | Popis |
|---|---|
| Identifikace metrik vysoké kardinality | Identifikujte metriky s vysokou kardinalitou nebo metrikami, které generují mnoho časových řad. Přehled využití metrik pracovního prostoru služby Azure Monitor poskytuje přehledy o využití metrik a příležitostech optimalizace nákladů tím, že poskytuje informace o časových řadách a využití událostí. Jakmile identifikujete metriky s vysokou kardinalitou, optimalizujte je, abyste snížili počet časových řad vyřazením nepotřebných popisků. |
| K optimalizaci příjmu dat použijte konfiguraci Prometheus. | Azure Managed Prometheus poskytuje mapy konfigurace, které mají nastavení, která je možné nakonfigurovat a použít k optimalizaci příjmu dat. Další informace najdete v tématu ama-metrics-settings-configmap a ama-metrics-prometheus-configmap. Tyto konfigurace se řídí stejným formátem jako konfigurační soubor Prometheus. Informace o přizpůsobení kolekce najdete v tématu Přizpůsobení výstřižků metrik Prometheus ve spravované službě Azure Monitor pro Prometheus. Představte si například následující: scrape_interval a scrape_timeout na základě závažnosti metrik.metric_relabel_configs k odstranění konkrétních popisků z příjmu. Další informace naleznete v tématu Konfigurace Prometheus. |
Použijte configmap, změňte nastavení podle potřeby a aplikujte configmap do oboru názvů kube-system pro váš cluster. Pokud používáte vzdálené zápisy do pracovního prostoru Azure Monitoru, použijte vlastní nastavení během příjmu dat přímo v konfiguraci Prometheus.
Dotazy
Při optimalizaci dotazů zvažte následující osvědčené postupy:
Optimalizace výkonu dotazů pomocí pravidel záznamu
Pravidla záznamu Prometheus se používají k předpočítání často používaných nebo výpočetně náročných dotazů, což je činí efektivnějšími a rychlejšími pro dotazování. Pravidla záznamu jsou zvlášť užitečná pro metriky s velkým objemem, kdy dotazování nezpracovaných dat může být pomalé a náročné na prostředky. Další informace najdete v tématu Pravidla záznamu. Azure Managed Prometheus poskytuje spravovaný a škálovatelný způsob, jak vytvářet a aktualizovat pravidla nahrávání pomocí skupin pravidel Azure Managed Prometheus.
Jakmile se skupiny pravidel vytvoří, Azure Managed Prometheus je automaticky načte a začne je vyhodnocovat. Dotazujte skupiny pravidel z pracovního prostoru Azure Monitoru jako jiné metriky Prometheus.
Pravidla nahrávání mají následující výhody:
Zlepšení výkonu dotazů Pravidla záznamu se dají použít k předběžnému dokončování složitých dotazů a jejich pozdější dotazování. Předkomputování složitých dotazů snižuje zatížení prometheus při dotazování těchto metrik.
Efektivita a kratší doba dotazování Pravidla záznamu předkomputují výsledky dotazu a zkracují dobu potřebnou k dotazování na data. To je užitečné zejména pro řídicí panely s několika panely nebo metrikami s vysokou kardinalitou.
Jednoduchost Pravidla záznamu zjednodušují dotazy v Grafana nebo jiných nástrojích pro vizualizaci, protože můžou odkazovat na předem výpočetní metriky.
Následující příklad ukazuje pravidlo záznamu definované ve skupině pravidel Azure Managed Prometheus:
"record": "job:request_duration_seconds:avg ",
"expression": "avg(rate(request_duration_seconds_sum[5m])) by (job)",
"labels": { "workload_type": "job"
},
"enabled": true
Pro složitější metriky vytvořte pravidla záznamu, která agregují více metrik nebo provádějí pokročilejší výpočty. V následujícím příkladu vypočítá využití procesoru v případě, instance:node_cpu_utilisation:rate5m že procesor není nečinný.
"record": "instance:node_cpu_utilisation:rate5m",
"expression": "1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))",
"labels": {
"workload_type": "job"
},
"enabled": true
Zvažte následující osvědčené postupy pro optimalizaci pravidel nahrávání:
| Nejlepší praxe | Popis |
|---|---|
| Identifikace metrik s vysokým objemem | Zaměřte se na metriky, které se často dotazují a mají vysokou kardinalitu. |
| Optimalizujte interval vyhodnocení pravidla. | Pokud chcete vyvážit mezi aktuálností dat a výpočetním zatížením, upravte interval vyhodnocení pravidel nahrávání. |
| Monitorování výkonu | Monitorujte výkon dotazů a upravte pravidla záznamu podle potřeby. |
| Optimalizujte pravidla omezením rozsahu. | Pokud chcete pravidla nahrávání zrychlit, omezte je v oboru na konkrétní cluster. Další informace najdete v tématu Omezení pravidel na konkrétní cluster. |
Použití filtrů v dotazech
Optimalizace dotazů Prometheus pomocí filtrů zahrnuje upřesnění dotazů tak, aby vracely pouze potřebná data, což snižuje množství zpracovávaných dat a zlepšuje výkon. Tady jsou některé běžné techniky pro upřesnění dotazů Prometheus.
| Nejlepší praxe | Popis |
|---|---|
| Použijte filtr štítků. | Filtry popisků pomáhají zúžit data jenom na to, co potřebujete. Prometheus umožňuje filtrování pomocí {label_name="label_value"} syntaxe. Pokud máte velký počet metrik napříč několika clustery, můžete snadno omezit časovou řadu pomocí cluster filtru.Například místo dotazování container_cpu_usage_seconds_total, filtrování podle clusteru container_cpu_usage_seconds_total{cluster="cluster1"}. |
| Použijte selektory časového rozsahu. | Použití konkrétních časových rozsahů může výrazně snížit množství dotazovaných dat. Například místo dotazování na všechny datové body za posledních 7 dnů http_requests_total{job="myapp"}, dotaz na poslední hodinu pomocí http_requests_total{job="myapp"}[1h]. |
| Použijte agregaci a seskupení. | Agregační funkce se dají použít k sumarizaci dat, což může být efektivnější než zpracování nezpracovaných datových bodů. Při agregaci dat použijte by pro seskupení podle konkrétních popisků nebo without pro vyloučení konkrétních popisků.Například součet požadavků seskupených podle úlohy: sum(rate(http_requests_total[5m])) by (job). |
| Vyfiltrujte v rané fázi dotazu. | Pokud chcete datovou sadu omezit od začátku, použijte filtry co nejdříve v dotazu. Například místo sum(rate(http_requests_total[5m])) by (job) nejprve filtrujte a poté agregujte následujícím způsobem: sum(rate(http_requests_total{job="myapp"}[5m])) by (job). |
| Pokud je to možné, vyhněte se regulárním výrazům. | Filtry regulárních výrazů mohou být výkonné, ale také výpočetně nákladné. Používejte přesné shody, kdykoli je to možné. Například místo http_requests_total{job=~"myapp.*"} použijte http_requests_total{job="myapp"}. |
| Pro historická data použijte offset. | Pokud porovnáváte aktuální data s historickými daty, použijte offset modifikátor.Pokud chcete například porovnat aktuální žádosti s požadavky před 24 hodinami, použijte rate(http_requests_total[5m]) - rate(http_requests_total[5m] offset 24h). |
| Omezení datových bodů v grafech | Při vytváření grafů omezte počet datových bodů, aby se zlepšil výkon vykreslování. K řízení rozlišení použijte parametr kroku. Například v Grafana: Nastavte vyšší hodnotu kroku pro snížení počtu datových bodů: http_requests_total{job="myapp"}[1h:10s]. |
Paralelní dotazy
Spuštění velkého počtu paralelních dotazů v systému Prometheus může vést k kritickým bodům výkonu a může ovlivnit stabilitu serveru Prometheus. Pokud chcete efektivně zpracovávat velký objem paralelních dotazů, postupujte podle následujících osvědčených postupů:
| Nejlepší praxe | Popis |
|---|---|
| Distribuce zatížení dotazu. | Distribuujte zatížení dotazu rozložením dotazů do různých časových intervalů nebo instancí Prometheus. |
| Rozsazené dotazy. | Naplánujte spouštění dotazů v různých intervalech, abyste se vyhnuli špičkám souběžných spouštění dotazů. |
Pokud stále dochází k problémům se spouštěním mnoha paralelních dotazů, vytvořte lístek podpory pro vyžádání zvýšení limitů dotazů.
Pravidla upozornění a záznamu
Optimalizace upozornění a pravidel záznamu pro velké škálování
Upozornění a pravidla záznamu Prometheus je možné definovat jako skupiny pravidel Prometheus. Jedna skupina pravidel může obsahovat až 20 upozornění nebo pravidla záznamu. Vytvořte pro každý pracovní prostor až 500 skupin pravidel, aby vyhovovaly počtu požadovaných upozornění a pravidel. Pokud chcete tento limit zvýšit, otevřete lístek podpory.
Při definování pravidel záznamu vezměte v úvahu interval vyhodnocení, abyste optimalizovali počet časových řad na pravidlo a výkon vyhodnocení pravidel. Intervaly vyhodnocení můžou být mezi 1 minutou a 24 hodinami. Výchozí hodnota je 1 minuta.
Použijte službu Resource Health ke zobrazení dotazů o stavu pravidla záznamu
Nastavte Resource Health tak, aby se na portálu zobrazil stav vaší skupiny pravidel Prometheus. Resource Health umožňuje detekovat problémy v pravidlech nahrávání, jako je nesprávná konfigurace nebo problémy s omezováním dotazů. Další informace o nastavení služby Resource Health najdete v tématu Zobrazení stavů prostředků skupin pravidel Prometheus.