Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Azure Monitor-hanterad tjänst för Prometheus kan du samla in och analysera mått i stor skala. Prometheus-mått lagras i Azure Monitor-arbetsytor. Arbetsytan stöder analysverktyg som Azure Managed Grafana, Azure Monitor Metrics Explorer med PromQL och öppen källkod verktyg som PromQL och Grafana.
Den här artikeln innehåller metodtips för att organisera dina Azure Monitor-arbetsytor för att uppfylla din skala och växande datainmatning.
Designvillkor för topologi
En enda Azure Monitor-arbetsyta kan vara tillräcklig för många användningsfall. Vissa organisationer skapar flera arbetsytor för att bättre uppfylla sina krav. När du identifierar rätt kriterier för att skapa ytterligare arbetsytor skapar du det lägsta antalet arbetsytor som matchar dina krav, samtidigt som du optimerar för minimal administrativ hantering.
Följande är scenarier som kräver att en Azure Monitor-arbetsyta delas upp i flera arbetsytor:
| Scenarium | Bästa praxis | 
|---|---|
| Suveräna moln | När du arbetar med mer än ett nationellt moln skapar du en Azure Monitor-arbetsyta i varje moln. | 
| Efterlevnads- eller regelkrav | Om du omfattas av regler som kräver lagring av data i specifika regioner skapar du en Azure Monitor-arbetsyta per region enligt dina behov. | 
| Regional skalning | När du hanterar mått för regionalt olika organisationer, till exempel stora tjänster eller finansinstitut med regionala konton, skapar du en Azure Monitor-arbetsyta per region. | 
| Azure-användare | Skapa en Azure Monitor-arbetsyta i varje klientorganisation för flera Azure-klienter. Det går inte att köra frågor mot data mellan klienter. | 
| Distributionsmiljöer | Skapa en separat arbetsyta för var och en av dina distributionsmiljöer för att underhålla diskreta mått för utvecklings-, test-, förproduktions- och produktionsmiljöer. | 
| Tjänstbegränsningar och kvoter | Azure Monitor-arbetsytor har standardbegränsningar för inmatning, vilket kan ökas genom att öppna ett supportärende. Om du närmar dig gränsen eller uppskattar att du överskrider inmatningsgränsen kan du överväga att begära en ökning eller dela upp arbetsytan i två eller flera arbetsytor. | 
Tjänstbegränsningar och kvoter
Azure Monitor-arbetsytor har standardkvoter och begränsningar för mått på 1 miljon händelser som matas in per minut. När din användning växer och du behöver mata in fler mått kan du begära en ökning. Om dina kapacitetskrav är exceptionellt stora och dina datainmatningsbehov överskrider gränserna för en enskild Azure Monitor-arbetsyta bör du överväga att skapa flera Azure Monitor-arbetsytor. Använd azure monitor-arbetsytans plattformsmått för att övervaka användning och gränser. Mer information om gränser och kvoter finns i Tjänstbegränsningar och kvoter för Azure Monitor.
Överväg följande metodtips för att hantera gränser och kvoter för Azure Monitor-arbetsytor:
| Bästa praxis | Beskrivning | 
|---|---|
| Övervaka och skapa en avisering om inmatningsgränser och användning. | I Azure Portal navigerar du till din Azure Monitor-arbetsyta. Gå till Mått och kontrollera att måtten aktiv tidsserie % användning och händelser per minut inmatad % användning är under 100%. Ange en Azure Monitor-avisering för att övervaka användningen och utlöses när användningen är större än 80 % av gränsen. Mer information om övervakning av användning och gränser finns i Hur kan jag övervaka tjänstbegränsningar och kvoter. | 
| Begär en gränsökning när användningen överskrider 80 % av den aktuella gränsen. | När din Azure-användning växer kommer mängden data som matas in sannolikt att öka. Vi rekommenderar att du begär en ökning av gränserna om datainmatningen överskrider eller nära 80 % av inmatningsgränsen. Information om hur du begär en gränsökning finns i Begära en ökning av inmatningsgränsen. | 
| Beräkna den beräknade skalan. | När din användning växer och du matar in fler mått i din arbetsyta gör du en uppskattning av den beräknade skalan och tillväxttakten. Baserat på dina prognoser begär du en ökning av gränsen. | 
| Inmatning med Fjärrskrivning med azure monitor-containern för sidovagn. | Om du använder Azure Monitor-containern för sidovagn och fjärrskrivning för att mata in mått i en Azure Monitor-arbetsyta bör du överväga följande begränsningar: | 
| DCR/DCE-gränser. | Begränsningar gäller för datainsamlingsregler (DCR) och datainsamlingsslutpunkter (DCE) som skickar Prometheus-mått till din Azure Monitor-arbetsyta. Information om hur du övervakar dessa gränser finns i Visa och övervaka DCR-gränser. Det går inte att höja dessa gränser. Överväg att skapa ytterligare DCR:er och DCE:er för att distribuera inmatningsbelastningen över flera slutpunkter. Den här metoden hjälper till att optimera prestanda och säkerställa effektiv datahantering. Mer information om hur du skapar datainsamlingsslutpunkter och datainsamlingsregler finns i Så här skapar du en anpassad datainsamlingsslutpunkt (DCE) och en anpassad datainsamlingsregel (DCR) för en befintlig Azure Monitor-arbetsyta för att mata in Prometheus-mått. | 
Optimera prestanda för stora mängder data
Intag
Tänk på följande metodtips för att optimera inmatningen:
| Bästa praxis | Beskrivning | 
|---|---|
| Identifiera mått med hög kardinalitet. | Identifiera mått som har hög kardinalitet eller mått som genererar många tidsserier. Användningsinsikter för Azure Monitor-arbetsytor ger insikter om användning av mått och möjligheter till kostnadsoptimering genom att tillhandahålla information om tidsserier och händelseanvändning. När du har identifierat mått med hög kardinalitet optimerar du dem för att minska antalet tidsserier genom att släppa onödiga etiketter. | 
| Använd Prometheus-konfiguration för att optimera inmatning. | Azure Managed Prometheus tillhandahåller konfigurationsmappar som har inställningar som kan konfigureras och användas för att optimera inmatning. Mer information finns i ama-metrics-settings-configmap och ama-metrics-prometheus-config-configmap. Dessa konfigurationer har samma format som Prometheus-konfigurationsfilen. Information om hur du anpassar samlingen finns i Anpassa skrapning av Prometheus-mått i Azure Monitor-hanterad tjänst för Prometheus. Tänk till exempel på följande: scrape_intervaldu ochscrape_timeoutbaserat på måttens allvarlighetsgrad.metric_relabel_configsAnvänd för att släppa specifika etiketter från inmatning. Mer information finns i Prometheus-konfiguration. | 
Använd konfigurationskartan, ändra inställningarna efter behov och tillämpa konfigurationskartan på kube-systemnamnområdet för klustret. Om du använder fjärrinskrivning till och Azure Monitor-arbetsytan tillämpar du anpassningarna under inmatningen direkt i Prometheus-konfigurationen.
Frågor
Tänk på följande metodtips för att optimera frågor:
Använda inspelningsregler för att optimera frågeprestanda
Prometheus-inspelningsregler används för att förberäkna ofta använda eller beräkningsmässigt dyra frågor, vilket gör dem mer effektiva och snabbare att fråga. Inspelningsregler är särskilt användbara för mått med stora volymer där frågor mot rådata kan vara långsamma och resursintensiva. Mer information finns i Inspelningsregler. Azure Managed Prometheus är ett hanterat och skalbart sätt att skapa och uppdatera inspelningsregler med hjälp av Azure Managed Prometheus-regelgrupper.
När regelgrupperna har skapats läser Azure Managed Prometheus in och börjar utvärdera dem automatiskt. Fråga efter regelgrupper från Azure Monitor-arbetsytan som andra Prometheus-mått.
Inspelningsregler har följande fördelar:
- Förbättra frågeprestanda Inspelningsregler kan användas för att förberäkna komplexa frågor, vilket gör dem snabbare att fråga senare. Förberäkning av komplexa frågor minskar belastningen på Prometheus när dessa mått efterfrågas. 
- Effektivitet och minskad frågetid Inspelningsregler förberäknar frågeresultaten i förväg, vilket minskar den tid det tar att fråga efter data. Detta är särskilt användbart för instrumentpaneler med flera paneler eller mått med hög kardinalitet. 
- Enkelhet Inspelningsregler förenklar frågor i Grafana eller andra visualiseringsverktyg, eftersom de kan referera till förberäknade mått. 
I följande exempel visas en inspelningsregel som definierats i Azure Managed Prometheus-regelgruppen:
"record": "job:request_duration_seconds:avg ",
"expression": "avg(rate(request_duration_seconds_sum[5m])) by (job)",
"labels": {  "workload_type": "job"
                        },
"enabled": true
För mer komplexa mått skapar du inspelningsregler som aggregerar flera mått eller utför mer avancerade beräkningar. I följande exempel instance:node_cpu_utilisation:rate5m beräknar processoranvändningen när processorn inte är inaktiv
"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
Överväg följande metodtips för att optimera inspelningsregler:
| Bästa praxis | Beskrivning | 
|---|---|
| Identifiera mått med hög volym. | Fokusera på mått som efterfrågas ofta och har hög kardinalitet. | 
| Optimera regelutvärderingsintervallet. | Justera utvärderingsintervallet för dina inspelningsregler för att balansera mellan datas färskhet och beräkningsbelastning. | 
| Övervaka prestanda. | Övervaka frågeprestanda och justera inspelningsregler efter behov. | 
| Optimera regler genom att begränsa omfånget. | Om du vill göra inspelningsregler snabbare begränsar du dem i omfånget till ett specifikt kluster. Mer information finns i Begränsa regler till ett visst kluster. | 
Använda filter i frågor
Att optimera Prometheus-frågor med hjälp av filter innebär att förfina frågorna så att endast nödvändiga data returneras, vilket minskar mängden data som bearbetas och förbättrar prestandan. Följande är några vanliga tekniker för att förfina Prometheus-frågor.
| Bästa praxis | Beskrivning | 
|---|---|
| Använd etikettfilter. | Etikettfilter hjälper till att begränsa data till bara det du behöver. Prometheus tillåter filtrering med hjälp {label_name="label_value"}av syntax. Om du har ett stort antal mått i flera kluster är ett enkelt sätt att begränsa tidsserier att användaclusterfiltret.I stället för att till exempel fråga filtrerar container_cpu_usage_seconds_totaldu efter klustercontainer_cpu_usage_seconds_total{cluster="cluster1"}. | 
| Använd tidsintervallväljare. | Om du använder specifika tidsintervall kan du avsevärt minska mängden data som efterfrågas. I stället för att till exempel köra frågor mot alla datapunkter under de senaste sju dagarna http_requests_total{job="myapp"}frågar du efter den senaste timmen med hjälp avhttp_requests_total{job="myapp"}[1h]. | 
| Använd sammansättning och gruppering. | Sammansättningsfunktioner kan användas för att sammanfatta data, vilket kan vara effektivare än bearbetning av rådatapunkter. När du aggregerar data kan du använda byför att gruppera efter specifika etiketter ellerwithoutför att exkludera specifika etiketter.Du kan till exempel summera begäranden grupperade efter jobb: sum(rate(http_requests_total[5m])) by (job). | 
| Filtrera tidigt i frågan. | Om du vill begränsa datamängden från början använder du filter så tidigt som möjligt i din fråga. I stället för sum(rate(http_requests_total[5m])) by (job)filtrerar du först och aggregerar sedan enligt följande:sum(rate(http_requests_total{job="myapp"}[5m])) by (job). | 
| Undvik regex där det är möjligt. | Regex-filter kan vara kraftfulla men är också beräkningsmässigt dyra. Använd exakta matchningar när det är möjligt. I stället för http_requests_total{job=~"myapp.*"}använder du till exempelhttp_requests_total{job="myapp"}. | 
| Använd förskjutning för historiska data. | Om du jämför aktuella data med historiska data använder du offsetmodifieraren.Om du till exempel vill jämföra aktuella begäranden med begäranden från 24 timmar sedan använder du rate(http_requests_total[5m]) - rate(http_requests_total[5m] offset 24h). | 
| Begränsa datapunkter i diagram. | När du skapar diagram begränsar du antalet datapunkter för att förbättra renderingsprestandan. Använd stegparametern för att styra upplösningen. Till exempel i Grafana: Ange ett högre stegvärde för att minska datapunkter: http_requests_total{job="myapp"}[1h:10s]. | 
Parallella frågor
Att köra ett stort antal parallella frågor i Prometheus kan leda till flaskhalsar i prestanda och kan påverka stabiliteten på Prometheus-servern. Följ metodtipsen nedan om du vill hantera en stor mängd parallella frågor effektivt:
| Bästa praxis | Beskrivning | 
|---|---|
| Frågeinläsningsdistribution. | Distribuera frågebelastningen genom att sprida frågorna över olika tidsintervall eller Prometheus-instanser. | 
| Förskjutna frågor. | Schemalägg frågor så att de körs med olika intervall för att undvika toppar i samtidiga frågekörningar. | 
Om du fortfarande ser problem med att köra många parallella frågor skapar du ett supportärende för att begära en ökning av frågegränserna.
Aviseringar och inspelningsregler
Optimera aviseringar och inspelningsregler för hög skala
Prometheus-aviseringar och inspelningsregler kan definieras som Prometheus-regelgrupper. En regelgrupp kan innehålla upp till 20 aviseringar eller inspelningsregler. Skapa upp till 500 regelgrupper för varje arbetsyta för att hantera antalet aviseringar/regler som krävs. Om du vill höja den här gränsen öppnar du ett supportärende
När du definierar inspelningsreglerna bör du ta hänsyn till utvärderingsintervallet för att optimera antalet tidsserier per regel och prestanda för regelutvärderingar. Utvärderingsintervallen kan vara mellan 1 minut och 24 timmar. Standardvärdet är 1 minut.
Använd Resource Health för att visa frågor från inspelningsregelstatus
Konfigurera Resource Health för att visa hälsotillståndet för din Prometheus-regelgrupp i portalen. Med Resource Health kan du identifiera problem i dina inspelningsregler, till exempel felaktig konfiguration eller problem med frågebegränsning. Mer information om hur du konfigurerar Resource Health finns i Visa resurshälsotillstånd för dina Prometheus-regelgrupper.