Kommentar
Å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.
FinOps-hubbar samlar in rekommendationer från flera källor och matar in dem i den hanterade datauppsättningen Rekommendationer tillsammans med reservationsrekommendationer från Cost Management-exporter. Rekommendationer kommer från Azure Resource Graph med hjälp av en konfigurerbar uppsättning frågor som hämtar Azure Advisor rekommendationer och identifierar olika optimeringsscenarier baserat på resurskonfiguration. Frågor hanteras i enkla JSON-filer i lagring, vilket gör det enkelt att lägga till egna anpassade rekommendationer genom att ladda upp frågefiler till hubblagring.
Förutsättningar
Innan du börjar måste du ha:
- Distribuerade en FinOps-hubbinstans.
- Tilldela rollen Läsare till den hanterade identiteten för Data Factory på de hanteringsgrupper eller prenumerationer som du vill fråga. Den här behörigheten måste konfigureras separat från FinOps Hub-distributionen.
Hur rekommendationer bearbetas
Rekommendationspipelinen körs dagligen och bearbetar frågefiler som lagras i mappen config/querys i hubblagringen:
- Utlösaren queries_DailySchedule körs en gång per dag.
- Den queries_ExecuteETL pipelinen itererar genom alla frågefiler i lagringsmappen config/querys.
- Pipelinen queries_ETL_ingestion kör varje fråga mot Azure Resource Graph, deduplicerar resultat och sparar data som parquet i mappen ingestion/Recommendations.
- Om du använder Azure Data Explorer matas data in i tabellen
Recommendations_rawoch transformeras med hjälp av funktionenRecommendations_transform_v1_2().
Hubbrekommendationer kombineras med reservationsrekommendationer från Cost Management-exporter i samma rekommendationer för hanterad datauppsättning. Du kan skilja mellan källor med hjälp av x_SourceType kolumnen.
Inbyggda rekommendationer
FinOps-hubbar innehåller följande rekommendationer. De flesta är aktiverade som standard. Valfria rekommendationer kan generera brus för organisationer där de inte tillämpas och kan aktiveras under distributionen via den angivna mallparametern.
Compute
-
Virtuella datorer
- Frigör stoppade virtuella datorer.
- Migrera till hanterade diskar.
- Valfritt: Använd Azure Hybrid Benefit för Windows virtuella datorer. Aktiverad via alternativet
enableAHBRecommendations.
-
SQL Virtual Machines
- Valfritt: Använd Azure Hybrid Benefit för virtuella SQL-datorer. Aktiverad via alternativet
enableAHBRecommendations.
- Valfritt: Använd Azure Hybrid Benefit för virtuella SQL-datorer. Aktiverad via alternativet
-
Azure Kubernetes Service
- Valfritt: Använd Spot-VM:ar för AKS-kluster. Aktiverad via alternativet
enableSpotRecommendations.
- Valfritt: Använd Spot-VM:ar för AKS-kluster. Aktiverad via alternativet
Databaser
- Azure SQL Database
Hantering och styrning
- Azure Advisor
Networking
- Application Gateway
- DDoS-skydd
- ExpressRoute
- Lastbalanserare
- NAT-gateway
- Nätverksgränssnitt
- Nätverkssäkerhetsgrupper
- Offentliga IP-adresser
- VPN-gateway
Storage
- Hanterade diskar
- Lagringskonton
Webb
- App Service
Om du vill inaktivera en specifik standardrekommendering tar du bort dess frågefil från mappen config/querys i hubblagringen. Pipelinen bearbetar endast frågefiler som finns.
Lägga till anpassade rekommendationer
Du kan lägga till anpassade rekommendationer genom att ladda upp frågefiler till mappen config/querys i hubblagringen. Pipelinen hämtar nya frågefiler automatiskt vid nästa dagliga körning.
Namngivningskonvention för filer
Namnge frågefiler med formatet {dataset}-{provider}-{type}.json :
-
Datauppsättning – måldatauppsättningen (till exempel
Recommendations). -
Provider – Leverantören som tjänstens data gäller för (till exempel
Microsoft,Contoso). -
Type – Rekommendationstypidentifieraren med hjälp av PascalCase (till exempel
StoppedVMs,IdleCosmosDB).
Till exempel: Recommendations-Contoso-IdleCosmosDB.json
Frågefilformat
Varje frågefil är en JSON-fil med följande egenskaper:
{
"dataset": "Recommendations",
"provider": "Microsoft",
"query": "<Azure Resource Graph query>",
"queryEngine": "ResourceGraph",
"scope": "Tenant",
"source": "<descriptive source name>",
"type": "<unique type identifier>",
"version": "1.0"
}
| Fastighet | Description |
|---|---|
dataset |
Måste vara "Recommendations". |
provider |
Providernamn (till exempel "Microsoft"). |
query |
Den Azure Resource Graph fråga som ska köras på en enda rad. |
queryEngine |
Måste vara "ResourceGraph". |
scope |
Frågeomfång. Använd "Tenant" för att fråga efter alla prenumerationer som Data Factorys hanterade identitet har åtkomst till i klientorganisationen. Frågor mellan klientorganisationer stöds inte, men resurser som delegeras via Azure Lighthouse ingår i frågor om klientomfattning. |
source |
Beskrivande namn för rekommendationskällan (till exempel "Azure Advisor" eller "FinOps hubs"). |
type |
Programmatisk identifierare för den här rekommendationstypen. Använd ett {provider}-{name} format med alfanumeriska tecken och bindestreck (till exempel "Contoso-IdleCosmosDB"). Det här värdet används som en del av utdatafilens namn. |
version |
Schema-version Använd "1.0". |
Obligatoriska utdatakolumner
Frågan måste returnera följande kolumner:
| Column | Description |
|---|---|
ResourceId |
Resurs-ID (gemener). |
ResourceName |
Resursnamn (små bokstäver). |
SubAccountId |
Prenumerations-ID. |
SubAccountName |
Prenumerationsnamn. Anslut med resourcecontainers för att fylla i detta. |
x_RecommendationCategory |
Rekommendationskategori. Använd "Cost", "HighAvailability", "OperationalExcellence", "Performance"eller "Security". |
x_RecommendationDate |
Rekommendationsdatum (använd now() för frågor vid en viss tidpunkt). |
x_RecommendationDescription |
Kort beskrivning av problemet. |
x_RecommendationDetails |
JSON-sträng med ytterligare egenskaper. Inkludera x_RecommendationProvider, x_RecommendationSolution, x_RecommendationTypeIdoch x_ResourceType tillsammans med anpassade egenskaper som är specifika för rekommendationen. |
x_RecommendationId |
Unik identifierare för rekommendationen (till exempel resurs-ID + suffix). |
x_ResourceGroupName |
Resursgruppsnamn (med små bokstäver). |
Tips för att skriva frågor
Om du vill fylla i prenumerationsnamnet ansluter du med
resourcecontainersi slutet av frågan:| join kind=leftouter ( resourcecontainers | where type == 'microsoft.resources/subscriptions' | project SubAccountName=name, SubAccountId=subscriptionId ) on SubAccountId | project-away SubAccountId1Generera
x_RecommendationIdgenom att kombinera resurs-ID:t med ett beskrivande suffix (till exempelstrcat(tolower(id), '-idle')).Skapa
x_RecommendationDetailsmed hjälp avtostring(bag_pack(...))för att skapa en JSON-sträng. Omslutning itostring()krävs eftersom datapipelinen inte kan serialisera dynamiska objekt till Parquet; värdet måste vara en sträng. Du kan också användastrcat()för att skapa en JSON-sträng manuellt, menbag_pack()rekommenderas eftersom den hanterar utrymning automatiskt.Inkludera
x_RecommendationTypeIdsom ett stabilt GUID för att entydigt identifiera rekommendationstypen över olika körningar.
Du kan till exempel granska de inbyggda frågefilerna i källkoden FinOps toolkit.
Lämna feedback
Låt oss veta hur det går med en snabb granskning. Vi använder dessa granskningar för att förbättra och utöka FinOps-verktyg och -resurser.
Om du letar efter något specifikt kan du rösta på en befintlig eller skapa en ny idé. Dela idéer med andra för att få fler röster. Vi fokuserar på idéer med flest röster.
Relaterat innehåll
- Hanterad datauppsättning för rekommendationer
- Hur data bearbetas i FinOps-hubbar
- Bibliotek för bästa praxis