Den här arkitekturen beskriver en lösning som ger realtidsövervakning och observerbarhet för system och slutanvändarens telemetridata. Den fokuserar på ett användningsfall för mediebranschen.
Grafana är ett varumärke som tillhör respektive företag. Inget godkännande understås av användningen av det här märket.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Dataflöde
I det observerbara systemet som visas i diagrammet strömmas rå telemetri till Azure Blob Storage via HTTP och anslutningsappar. Råtelemetri bearbetas, transformeras, normaliseras och sparas i Azure Data Explorer för analys. System som Grafana och Azure Metrics Advisor läser data från Data Explorer och ger insikter till slutanvändare.
Mer specifikt är det här elementen i systemet i diagrammet:
- Instrumentering. Instrumentation sker via avsökningar eller agenter som är installerade i system för att övervaka data. Dessa agenter finns i olika former. I en video-på-begäran-strömningsplattform kan ett företag till exempel använda öppna standarder dash.js för att samla in kvalitetsupplevelsemått från kunder.
- Intag. Den här råtelemetrin kan komma direkt från slutklienter via HTTP-anrop. Du kan också ladda upp den via tredjepartssystem till beständiga lagrings- och datasjöar som Blob Storage. Blog Storage stöder möjligheten att anropa en Azure-funktion när en ny fil laddas upp. Du kan använda den här utlösarmekanismen för att flytta rådatametri till strukturerade informationslager.
- Transformering och beständighet. Du kan behöva ett transformeringssystem för att normalisera dina data. En Azure Functions-app transformerar data efter behov och skriver dem sedan till Datautforskaren. Datautforskaren är perfekt för stordataanalys eftersom den är utformad för höga prestanda och dataflöde på stora datamängder.
- Övervakning. Azure Managed Grafana stöder integrering med Data Explorer. Du kan använda dra och släpp-funktionerna i Grafana för att snabbt skapa instrumentpaneler och diagram. Grafana passar bra för medieövervakning eftersom det ger uppdatering under minuten av instrumentpaneler och kan även användas för aviseringar.
- Avvikelseidentifiering. Grafana-instrumentpanelen har stöd för manuell övervakning i NOC. Men med en stor datauppsättning och en användarbas fördelad över geografiska områden och med olika enheter blir manuell identifiering av problem via diagram och aviseringsregler som har hårdkodade tröskelvärden ineffektiv. Du kan använda AI för att lösa det här problemet. Tjänster som Metrics Advisor använder maskininlärningsalgoritmer för att automatiskt förstå och identifiera avvikelser baserat på tidsseriedata. Dessutom har Kusto-dataplattformen inbyggda funktioner för avvikelseidentifiering som står för säsongs- och baslinjetrender i data.
Komponenter
- DataUtforskaren är en hanterad dataanalystjänst för realtidsanalys av stora mängder data. Datautforskaren är ett bra verktyg för att hantera stora datamängder som kräver hög hastighet och dataflöde för datahämtning. Den här arkitekturen använder Data Explorer för att lagra och fråga efter datauppsättningar för analys.
- Blob Storage används för att lagra rå telemetri. Den här telemetrin kan komma från dina program och tjänster eller från tredjepartsleverantörer. Data kan behandlas som tillfälliga om du inte behöver utföra mer analys senare. Data från Blob Storage matas in i Data Explorer-kluster.
- Azure Event Grid är ett system för händelseleverans. Den används för att lyssna på händelser som publiceras av Blob Storage. Med Azure Storage-händelser kan program reagera på händelser som att skapa och ta bort blobar. En Azure-funktion prenumererar på händelser som publiceras av Event Grid.
- Azure Event Hubs är en datainmatningstjänst i realtid som du kan använda för att mata in miljontals händelser per sekund från valfri källa. Händelsehubbar representerar ytterdörren, som ofta kallas händelseingestor, för en händelsepipeline. En händelse-ingestor är en komponent eller tjänst som finns mellan händelseutgivare och händelsekonsumenter. Den frikopplar produktionen av en händelseström från förbrukningen av händelserna.
- Azure Functions är en serverlös lösning som används för att parsa och transformera data som matas in via HTTP- och blobslutpunkter och skriva till Data Explorer-klustret.
- Azure Managed Grafana ansluter enkelt till Data Explorer. I den här arkitekturen genererar den diagram och instrumentpaneler som visualiserar telemetridata. Azure Managed Grafana ger djup integrering med Microsoft Entra-ID så att du kan implementera rollbaserad åtkomst till instrumentpaneler och vyer.
- Metrics Advisor är en del av Azure Applied AI Services. Den använder AI för att utföra dataövervakning och avvikelseidentifiering i tidsseriedata. Metrics Advisor automatiserar processen med att tillämpa modeller på data och tillhandahåller en uppsättning API:er och en webbaserad arbetsyta för datainmatning, avvikelseidentifiering och diagnostik. Du kan använda den även om du inte har någon kunskap om maskininlärning.
Alternativ
Azure Data Factory och Azure Synapse Analytics tillhandahåller verktyg och arbetsytor för att skapa ETL-arbetsflöden och möjlighet att spåra och försöka jobb igen från ett grafiskt gränssnitt. Observera att Både Data Factory och Azure Synapse har en minsta fördröjning på cirka 5 minuter från inmatningstiden till beständigheten. Den här fördröjningen kan vara acceptabel i ditt övervakningssystem. I så fall rekommenderar vi att du överväger dessa alternativ.
Information om scenario
Organisationer distribuerar ofta varierande och storskaliga tekniker för att lösa affärsproblem. Dessa system och slutanvändarenheter genererar stora uppsättningar telemetridata.
Den här arkitekturen baseras på ett användningsfall för mediebranschen. Medieströmning för live- och videouppspelning på begäran kräver nästan realtidsidentifiering av och svar på programproblem. För att stödja det här realtidsscenariot måste organisationer samla in en massiv telemetriuppsättning som kräver skalbar arkitektur. När data har samlats in behövs andra typer av analys, till exempel AI och avvikelseidentifiering, för att effektivt identifiera problem i en så stor datamängd.
När storskaliga tekniker distribueras genererar system- och slutanvändarenheter som interagerar med dem massiva uppsättningar telemetridata. I traditionella scenarier analyseras dessa data via ett informationslagersystem för att generera insikter som kan användas för hanteringsbeslut. Den här metoden kan fungera i vissa scenarier, men den är inte tillräckligt responsiv för användningsfall för strömmande media. För att lösa det här problemet krävs realtidsinformation för telemetridata som genereras från övervakningsservrar, nätverk och slutanvändarenheter som interagerar med dem. Övervakningssystem som fångar fel och fel är vanliga, men det är svårt att fånga dem i nära realtid. Det är fokus för den här arkitekturen.
I en inställning för liveuppspelning eller video på begäran genereras telemetridata från system och heterogena klienter (mobil, stationär dator och TV). Lösningen omfattar att ta rådata och associera kontexten med datapunkterna, till exempel dimensioner som geografi, slutanvändaroperativsystem, innehålls-ID och CDN-provider. Rådatatelemetrin samlas in, transformeras och sparas i Datautforskaren för analys. Du kan sedan använda AI för att förstå data och automatisera de manuella processerna för observation och aviseringar. Du kan använda system som Grafana och Metrics Advisor för att läsa data från Data Explorer för att visa interaktiva instrumentpaneler och utlösa aviseringar.
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, en uppsättning vägledande grundsatser som du kan använda för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Tillförlitlighet
Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Översikt över tillförlitlighetspelare.
Affärskritiska program måste fortsätta att köras även under störande händelser som Azure-region eller CDN-avbrott. Det finns två primära strategier och en hybridstrategi för att skapa redundans i systemet:
- Aktiv/aktiv. Duplicerad kod och funktioner körs. Båda systemen kan ta över vid ett fel.
- Aktiv/vänteläge. Endast en nod är aktiv/primär. Den andra är redo att ta över om den primära noden skulle gå ner.
- Blandad. Vissa komponenter/tjänster finns i den aktiva/aktiva konfigurationen och vissa är i aktiv/vänteläge.
Tänk på att inte alla Azure-tjänster har inbyggd redundans. Azure Functions kör till exempel bara en funktionsapp i en viss region. Geo-haveriberedskap i Azure Functions beskriver olika strategier som du kan implementera, beroende på hur dina funktioner utlöses (HTTP jämfört med pub/sub).
Inmatnings- och transformeringsfunktionsappen kan köras i aktivt/aktivt läge. Du kan köra Datautforskaren i både aktiva/aktiva och aktiva/väntelägeskonfigurationer.
Azure Managed Grafana stöder redundans för tillgänglighetszoner. En strategi för att skapa redundans mellan regioner är att konfigurera Grafana i varje region där ditt Data Explorer-kluster distribueras.
Kostnadsoptimering
Kostnadsoptimering handlar om att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.
Kostnaden för den här arkitekturen beror på antalet inkommande telemetrihändelser, din lagring av rådatatelemetri i Blob Storage och Data Explorer, en timkostnad för Azure Managed Grafana och en statisk kostnad för antalet tidsseriediagram i Metrics Advisor.
Du kan använda Priskalkylatorn för Azure för att beräkna dina kostnader per timme eller månad.
Prestandaeffektivitet
Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Mer information finns i Översikt över grundpelare för prestandaeffektivitet.
Beroende på skalan och frekvensen för inkommande begäranden kan funktionsappen vara en flaskhals av två huvudsakliga orsaker:
- Kallstart. Kallstart är en följd av serverlösa körningar. Den refererar till den schemaläggnings- och konfigurationstid som krävs för att starta en miljö innan funktionen börjar köras. Som mest är den tid som krävs några sekunder.
- Frekvens för begäranden. Anta att du har 1 000 HTTP-begäranden men bara en entrådad server för att hantera dem. Du kommer inte att kunna hantera alla 1 000 HTTP-begäranden samtidigt. Om du vill hantera dessa begäranden i tid måste du distribuera fler servrar. Du måste alltså skala vågrätt.
Vi rekommenderar att du använder Premium- eller Dedikerade SKU:er för att:
- Eliminera kallstart.
- Hantera krav för samtidiga begäranden genom att skala upp eller ned antalet service virtuella datorer.
Mer information finns i Välj en SKU för ditt Azure Data Explorer-kluster.
Distribuera det här scenariot
Information om hur du distribuerar det här scenariot finns i realtidsövervakning och observerbarhet för media på GitHub. Det här kodexemplet innehåller nödvändig infrastruktur som kod (IaC) för bootstrap-utveckling och Azure-funktioner för att mata in och transformera data från HTTP- och blobslutpunkter.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudsakliga författare:
- John Hauppa | Senior Technical Program Manager
- Uffaz Nathaniel | Huvudprogramtekniker
Övriga medarbetare:
- Mick Alberts | Teknisk författare
- Dilmurod Makhamadaliev | Programvarutekniker
- Omeed Musavi | Huvudansvarig programvarutekniker
- Ayo Mustapha | Teknisk programansvarig för huvudnamn
Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.
Nästa steg
- Kompletterande kodexempel
- Dokumentation om Azure Data Explorer
- Introduktion till Azure Data Explorer – Utbildning
- Introduktion till Azure Functions