FinOps hubs önerilerini yapılandırma

FinOps merkezleri, birden çok kaynaktan öneriler toplar ve bunları Cost Management dışa aktarımlarından gelen rezervasyon önerileriyle birlikte Öneriler yönetilen veri kümesine aktarır. Öneriler, Azure Danışmanı önerileri çeken ve kaynak yapılandırmasına dayalı çeşitli iyileştirme senaryolarını tanımlayan yapılandırılabilir bir sorgu kümesi kullanılarak Azure Kaynak Grafı kaynaktan alınır. Sorgular, depolamadaki basit JSON dosyalarında yönetilir ve bu da sorgu dosyalarını hub depolamaya yükleyerek kendi özel önerilerinizi eklemeyi kolaylaştırır.


Prerequisites

Başlamadan önce şunları yapmanız gerekir:

  • Bir FinOps hub örneğidağıtıldı.
  • Sorgulamak istediğiniz yönetim grupları veya abonelikler üzerinde Data Factory’nin yönetilen kimliğine Okuyucu rolünü atayın. Bu izin, FinOps hub dağıtımından ayrı olarak yapılandırılmalıdır.

Öneriler nasıl işlenir?

Öneriler işlem hattı günlük olarak çalışır ve hub depolama alanında yapılandırma/sorgular klasöründe depolanan sorgu dosyalarını işler:

  1. queries_DailySchedule tetikleyicisi günde bir kez çalışır.
  2. queries_ExecuteETL işlem hattı, yapılandırma/sorgu depolama klasöründeki tüm sorgu dosyalarında yinelenir.
  3. queries_ETL_ingestion işlem hattı, her sorguyu Azure Kaynak Grafı’ta çalıştırır, sonuçlardaki yinelenen kayıtları kaldırır ve verileri ingestion/Recommendations klasörüne Parquet biçiminde kaydeder.
  4. Azure Veri Gezgini kullanılıyorsa veriler Recommendations_raw tablosuna alınır ve Recommendations_transform_v1_2() işlevi kullanılarak dönüştürülür.

Hubs önerileri, Maliyet Yönetimi dışarı aktarmalarından alınan rezervasyon önerileriyle aynı Öneriler yönetilen veri kümesinde birleştirilir. Sütunu kullanarak x_SourceType kaynaklar arasında ayrım yapabilirsiniz.


Yerleşik öneriler

FinOps hub'ları aşağıdaki önerileri içerir. Çoğu varsayılan olarak etkindir. İsteğe bağlı öneriler, uygulamadıkları kuruluşlar için kirlilik oluşturabilir ve belirtilen şablon parametresi aracılığıyla dağıtım sırasında etkinleştirilebilir.

Compute

Databases

Yönetim ve İdare

Depolama

İnternet

Belirli bir varsayılan öneriyi devre dışı bırakmak için sorgu dosyasını hub depolamadaki config/queries klasöründen silin. İşlem hattı yalnızca mevcut olan sorgu dosyalarını işler.


Özel öneriler ekleme

Sorgu dosyalarını hub depolamadaki config/queries klasörüne yükleyerek özel öneriler ekleyebilirsiniz. İşlem hattı, bir sonraki günlük çalıştırmada yeni sorgu dosyalarını otomatik olarak işleme alır.

Dosya adlandırma kuralı

Sorgu dosyalarını şu biçimi kullanarak adlandırın {dataset}-{provider}-{type}.json :

  • Veri kümesi — Hedef veri kümesi (örneğin, Recommendations).
  • Provider — Hizmet verilerinin sağlayıcısı içindir (örneğin, Microsoft, Contoso).
  • Type — PascalCase kullanan öneri türü tanımlayıcısı (örneğin, , StoppedVMsIdleCosmosDB).

Örneğin: Recommendations-Contoso-IdleCosmosDB.json

Sorgu dosyası biçimi

Her sorgu dosyası, aşağıdaki özelliklere sahip bir JSON dosyasıdır:

{
  "dataset": "Recommendations",
  "provider": "Microsoft",
  "query": "<Azure Resource Graph query>",
  "queryEngine": "ResourceGraph",
  "scope": "Tenant",
  "source": "<descriptive source name>",
  "type": "<unique type identifier>",
  "version": "1.0"
}
Mülkiyet Description
dataset olmalıdır "Recommendations".
provider Sağlayıcı adı (örneğin, "Microsoft").
query Tek bir satırda yürütülecek Azure Kaynak Grafı sorgusu.
queryEngine olmalıdır "ResourceGraph".
scope Sorgu kapsamı. Kiracı içindeki, Data Factory yönetilen kimliğinin erişebildiği tüm abonelikleri sorgulamak için "Tenant" kullanın. Kiracılar arası sorgu desteklenmiyor, ancak Azure Lighthouse aracılığıyla yetkilendirilen kaynaklar kiracı kapsamındaki sorgulara dahil edilir.
source Öneri kaynağı için açıklayıcı ad (örneğin, "Azure Danışmanı" veya "FinOps hubs").
type Bu öneri türü için programlı tanımlayıcı. Yalnızca alfasayısal karakter ve kısa çizgi içeren bir {provider}-{name} biçim kullanın (örneğin, "Contoso-IdleCosmosDB"). Bu değer, çıkış dosyası adının bir parçası olarak kullanılır.
version Şema sürümü. "1.0" adresini kullanın.

Gerekli çıkış sütunları

Sorgunuz aşağıdaki sütunları döndürmelidir:

Column Description
ResourceId Kaynak kimliği (küçük harflerle).
ResourceName Kaynak adı (küçük harf).
SubAccountId Abonelik kimliği.
SubAccountName Abonelik adı. Bunu doldurmak için resourcecontainers ile katılın.
x_RecommendationCategory Öneri kategorisi. "Cost", "HighAvailability", "OperationalExcellence", "Performance" veya "Security" kullanın.
x_RecommendationDate Öneri tarihi (belirli bir zamandaki sorgular için now() kullanın).
x_RecommendationDescription Sorunun kısa açıklaması.
x_RecommendationDetails Ek özelliklere sahip JSON dizesi. Öneriye özgü özel özelliklerle birlikte x_RecommendationProvider, x_RecommendationSolution, x_RecommendationTypeId ve x_ResourceType ekleyin.
x_RecommendationId Önerinin benzersiz tanımlayıcısı (örneğin, kaynak kimliği + sonek).
x_ResourceGroupName Kaynak grubu adı (küçük harf).

Sorgu yazma ipuçları

  • Abonelik adını doldurmak için sorgunuzun sonunda resourcecontainers ile birleştirin:

    | join kind=leftouter (
        resourcecontainers
        | where type == 'microsoft.resources/subscriptions'
        | project SubAccountName=name, SubAccountId=subscriptionId
    ) on SubAccountId
    | project-away SubAccountId1
    
  • x_RecommendationId oluşturmak için kaynak kimliğini açıklayıcı bir son ekle birleştirin (örneğin, strcat(tolower(id), '-idle')).

  • Bir JSON dizesi üretmek için tostring(bag_pack(...)) kullanarak x_RecommendationDetails oluşturun. tostring() ile sarmalama gereklidir çünkü veri işlem hattı dinamik nesneleri Parquet biçimine serileştiremez; değer bir dize olmalıdır. JSON dizesini el ile oluşturmak için de kullanabilirsiniz strcat() , ancak bag_pack() kaçışı otomatik olarak işlediğinden önerilir.

  • x_RecommendationTypeId öğesini, öneri türünü çalıştırmalar arasında benzersiz olarak tanımlamak için sabit bir GUID olarak ekleyin.

Örnekler için FinOps araç seti kaynak kodu yerleşik sorgu dosyalarını gözden geçirin.


Görüş bildirin

Hızlı bir incelemeyle nasıl olduğumuzu bize bildirin. Bu incelemeleri FinOps araçlarını ve kaynaklarını geliştirmek ve genişletmek için kullanırız.

Belirli bir şey arıyorsanız mevcut bir fikir için oy verin veya yeni bir fikir oluşturun. Daha fazla oy almak için başkalarıyla fikir paylaşın. En çok oyu alan fikirlere odaklanıyoruz.