Como os dados são processados em hubs FinOps
Os hubs FinOps executam muitas atividades de processamento de dados para limpar, normalizar e otimizar dados. As seções a seguir mostram como os dados fluem do Gerenciamento de Custos para uma instância de hub.
Configuração do escopo
Um escopo é um nível dentro da hierarquia de recursos e contas da nuvem que fornece acesso a dados de custo, uso e carbono. Para hubs FinOps, normalmente recomendamos o uso de contas de cobrança do EA (Contrato Enterprise) ou perfis de cobrança do MCA (Contrato de Cliente da Microsoft), no entanto, qualquer escopo de nuvem é suficiente para análise básica. A principal preocupação é se os dados de preço e reserva são necessários, já que o Gerenciamento de Custos expõe apenas os dados das contas de faturamento do EA e dos perfis de faturamento do MCA.
Os hubs FinOps dão suporte à configuração de escopos configurando manualmente as exportações do Gerenciamento de Custos ou concedendo aos hubs FinOps acesso para gerenciar escopos em seu nome. Os escopos gerenciados são configurados no arquivo config/settings.json no armazenamento de hub. As informações descrevem o que acontece quando um novo escopo gerenciado é adicionado a esse arquivo. Escopos não gerenciados, em que as exportações do Gerenciamento de Custos são configuradas manualmente, não exigem outra configuração.
- O gatilho config_SettingsUpdated é executado quando o arquivo settings.json é atualizado.
- O pipeline config_ConfigureExports cria novas exportações para todos os novos escopos adicionados.
Ingestão de dados
A ingestão de dados pode ser dividida em duas partes:
- Exporta dados por push para o armazenamento.
- O Hubs processa e ingere dados.
Para escopos gerenciados, os hubs executam as seguintes etapas:
- Os gatilhos config_DailySchedule e config_MonthlySchedule são executados em seus respectivos agendamentos para iniciar a ingestão de dados.
- O pipeline config_StartExportProcess obtém as exportações aplicáveis para o agendamento que está em execução.
- O pipeline config_RunExportJobs executa cada uma das exportações selecionadas.
- O Gerenciamento de Custos exporta detalhes de custo bruto para o contêiner msexports . Saiba mais.
Depois que as exportações são executadas, gerenciadas ou não, os hubs executam as seguintes etapas:
- O pipeline msexports_ExecuteETL inicia o processo de extração, transformação e carregamento (ETL) quando os arquivos são adicionados ao armazenamento.
- O pipeline msexports_ETL_ingestion transforma os dados no formato parquet e os move para o contêiner de ingestão usando uma estrutura de arquivo escalonável. Saiba mais.
- O Power BI ou outras ferramentas leem dados do contêiner de ingestão .
Sobre a ingestão
Os hubs FinOps dependem de um caminho de pasta específico no contêiner de ingestão:
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
é o contêiner em que o pipeline de dados salva os dados.{dataset}
é o tipo de conjunto de dados exportado.{month}
é o ano e o mês dos dados exportados formatados comoyyyyMM
.{scope-id}
Espera-se que seja a ID de recurso totalmente qualificada do escopo do qual os dados são.
Se você precisar usar hubs para monitorar dados que não são do Azure, converta os dados em FOCUS e solte-os no contêiner de ingestão. Observe que esse processo não foi testado explicitamente na versão mais recente. Se você tiver algum problema, crie um problema.
Sobre as exportações
Os hubs FinOps usam exportações do Gerenciamento de Custos para obter dados de custo. O Gerenciamento de Custos controla a estrutura de pastas dos dados exportados no contêiner msexports . Um caminho típico se parece com:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
A partir da versão 0.4, os hubs FinOps não dependem de caminhos de arquivo. Os hubs utilizam o arquivo de manifesto para identificar o escopo, o conjunto de dados, o mês etc. A única parte importante do caminho para hubs é o contêiner, que deve ser msexports.
Aviso
- Não exporte dados para o contêiner de ingestão. Os CSVs exportados devem ser publicados no contêiner msexports para serem processados pelo mecanismo de hubs.
- Para ingerir dados personalizados, salve arquivos parquet alinhados ao FOCUS no contêiner de ingestão para que os relatórios do Power BI do kit de ferramentas FinOps funcionem conforme o esperado.
Os manifestos de exportação podem ser alterados com as versões da API. Aqui está um exemplo com a versão 2023-07-01-preview
da API:
{
"exportConfig": {
"exportName": "<export-name>",
"resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
"dataVersion": "<dataset-version>",
"apiVersion": "<api-version>",
"type": "<dataset-type>",
"timeFrame": "OneTime|TheLastMonth|MonthToDate",
"granularity": "Daily"
},
"deliveryConfig": {
"partitionData": true,
"dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
"fileFormat": "Csv",
"containerUri": "<storage-resource-id>",
"rootFolderPath": "<path>"
},
"runInfo": {
"executionType": "Scheduled",
"submittedTime": "2024-02-03T18:33:03.1032074Z",
"runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-01-31T00:00:00"
},
"blobs": [
{
"blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
"byteCount": ###
}
]
}
Os hubs FinOps usam as seguintes propriedades:
exportConfig.resourceId
para identificar o escopo.exportConfig.type
para identificar o tipo de conjunto de dados.exportConfig.dataVersion
para identificar a versão do conjunto de dados.runInfo.startDate
para identificar o mês exportado.
Os hubs FinOps dão suporte aos seguintes tipos de conjunto de dados, versões e versões de API:
- CustoFoco:
1.0
,1.0-preview(v1)
- Folha de preços:
2023-05-01
- Detalhes da Reserva:
2023-03-01
- Recomendações de reserva:
2023-05-01
- ReservationTransactions:
2023-05-01
- Versões da API:
2023-07-01-preview
Hubs FinOps v0.4-0.5
As informações a seguir descrevem como os dados são processados nos hubs FinOps v0.4-0.5.
Configuração do escopo na v0.4-0.5
- O gatilho config_SettingsUpdated é executado quando o arquivo settings.json é atualizado.
- O pipeline config_ConfigureExports cria novas exportações para todos os novos escopos adicionados.
Ingestão de dados na v0.4-0.5
Para escopos gerenciados:
- Os gatilhos config_DailySchedule e config_MonthlySchedule são executados em seus respectivos agendamentos para iniciar a ingestão de dados.
- O pipeline config_ExportData obtém as exportações aplicáveis para o agendamento que está em execução.
- O pipeline config_RunExports executa cada uma das exportações selecionadas.
- O Gerenciamento de Custos exporta detalhes de custo bruto para o contêiner msexports . Para obter mais informações, consulte Sobre exportações na v04-05.
Após a conclusão das exportações, para escopos gerenciados e não gerenciados:
- O pipeline msexports_ExecuteETL inicia o processo de extração, transformação e carregamento (ETL) quando os arquivos são adicionados ao armazenamento.
- O pipeline msexports_ETL_ingestion transforma os dados em um esquema padrão e salva os dados brutos no formato parquet no contêiner de ingestão. Para obter mais informações, consulte Sobre a ingestão na v04-05.
- O Power BI lê os dados de custo do contêiner de ingestão .
Sobre a ingestão na v0.4-0.5
Os hubs FinOps dependem de um caminho de pasta específico no contêiner de ingestão:
ingestion/{dataset}/{yyyy}/{mm}/{scope-id}
ingestion
é o contêiner em que o pipeline de dados salva os dados.{dataset}
é o tipo de conjunto de dados exportado.{month}
é o ano e o mês dos dados exportados formatados comoyyyyMM
.{scope-id}
Espera-se que seja a ID de recurso totalmente qualificada do escopo do qual os dados são.
Se você precisar usar hubs para monitorar dados que não são do Azure, converta os dados em FOCUS e solte-os no contêiner de ingestão. Esse processo não foi testado explicitamente na versão mais recente. Se você tiver algum problema, crie um problema.
Sobre as exportações na v0.4-0.5
Os hubs FinOps usam exportações do Gerenciamento de Custos para obter dados de custo. O Gerenciamento de Custos controla a estrutura de pastas dos dados exportados no contêiner msexports . Um caminho típico se parece com:
{container}/{path}/{date-range}/{export-name}/{export-time}/{guid}/{file}
A partir da versão 0.4, os hubs FinOps não dependem de caminhos de arquivo. Os hubs utilizam o arquivo de manifesto para identificar o escopo, o conjunto de dados, o mês e assim por diante. A única parte importante do caminho para hubs é o contêiner, que deve ser msexports.
Observação
Não exporte dados para o contêiner de ingestão. Os CSVs exportados devem ser publicados no contêiner msexports para serem processados pelo mecanismo de hubs.
Para ingerir dados personalizados, salve arquivos parquet alinhados ao FOCUS no contêiner de ingestão para que os relatórios do Power BI do kit de ferramentas FinOps funcionem conforme o esperado.
Os manifestos de exportação podem ser alterados com as versões da API. Aqui está um exemplo com a versão 2023-07-01-preview
da API:
{
"exportConfig": {
"exportName": "<export-name>",
"resourceId": "/<scope>/providers/Microsoft.CostManagement/exports/<export-name>",
"dataVersion": "<dataset-version>",
"apiVersion": "<api-version>",
"type": "<dataset-type>",
"timeFrame": "OneTime|TheLastMonth|MonthToDate",
"granularity": "Daily"
},
"deliveryConfig": {
"partitionData": true,
"dataOverwriteBehavior": "CreateNewReport|OverwritePreviousReport",
"fileFormat": "Csv",
"containerUri": "<storage-resource-id>",
"rootFolderPath": "<path>"
},
"runInfo": {
"executionType": "Scheduled",
"submittedTime": "2024-02-03T18:33:03.1032074Z",
"runId": "af754a8e-30fc-4ef3-bfc6-71bd1efb8598",
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-01-31T00:00:00"
},
"blobs": [
{
"blobName": "<path>/<export-name>/<date-range>/<export-time>/<guid>/<file-name>.csv",
"byteCount": ###
}
]
}
Os hubs FinOps usam as seguintes propriedades:
exportConfig.resourceId
para identificar o escopo.exportConfig.type
para identificar o tipo de conjunto de dados.exportConfig.dataVersion
para identificar a versão do conjunto de dados.runInfo.startDate
para identificar o mês exportado.
Os hubs FinOps dão suporte aos seguintes tipos de conjunto de dados, versões e versões de API:
- CustoFoco:
1.0
,1.0-preview(v1)
- Folha de preços:
2023-05-01
- Detalhes da Reserva:
2023-03-01
- Recomendações de reserva:
2023-05-01
- ReservationTransactions:
2023-05-01
- Versões da API:
2023-07-01-preview
Hubs FinOps v0.2-0.3
As etapas a seguir descrevem o processo de exportação e processamento de dados de custo usando as versões 0.2 a 0.3 dos hubs FinOps:
- O Gerenciamento de Custos exporta detalhes de custo bruto para o contêiner msexports . Para obter mais informações, consulte Sobre exportações.
- O pipeline msexports_ExecuteETL inicia o processo de extração, transformação e carregamento (ETL) quando os arquivos são adicionados ao armazenamento.
- O pipeline msexports_ETL_ingestion salva os dados exportados no formato parquet no contêiner de ingestão. Para obter mais informações, consulte Sobre exportações.
- O Power BI lê os dados de custo do contêiner de ingestão .
Os hubs FinOps 0.2-0.3 usam o caminho de exportação para determinar o escopo e o mês exportados. Esse ponto é importante, pois as atualizações no caminho podem interromper os pipelines de dados. Para evitar esse problema, recomendamos atualizar para os hubs FinOps 0.4. O caminho esperado deve imitar:
msexports/{scope-id}/{export-name}/{date-range}/{export-time}/{guid}/{file}
msexports
é o contêiner especificado na exportação.{scope-id}
é o caminho da pasta especificado na exportação.Os hubs 0.3 e anteriores usam isso para identificar de qual escopo os dados estão vindo. Recomendamos usar a ID do escopo, mas qualquer valor pode ser usado. Exemplos de IDs de escopo incluem:
Tipo de escopo Valor de exemplo Subscription /subscriptions/###
Grupo de recursos /subscriptions/###/resourceGroups/###
Conta de cobrança /providers/Microsoft.Billing/billingAccounts/###
Perfil de faturamento /providers/Microsoft.Billing/billingAccounts/###/billingProfiles/###
{export-name}
é o nome da exportação.Os hubs ignoram essa pasta.
{date-range}
são os dados do intervalo de datas que estão sendo exportados.Os hubs 0.3 e anteriores usam isso para identificar o mês. O formato para esta pasta é
yyyyMMdd-yyyyMMdd
. Em vez disso, o Hubs 0.4 usa o manifesto.{export-time}
é um carimbo de data/hora de quando a exportação foi executada.Os hubs ignoram isso. O formato para esta pasta é
yyyyMMddHHmm
.{guid}
é um GUID exclusivo e nem sempre está presente.Os hubs ignoram isso. O Gerenciamento de Custos nem sempre inclui essa pasta. A inclusão ou não depende da versão da API usada para criar a exportação.
{file}
é um manifesto ou dados exportados.A versão 0.3 e anteriores ignoram os arquivos de manifesto e monitoram apenas os arquivos *.csv . Em uma versão futura, os hubs monitorarão o manifesto.
Hubs FinOps v0.1
As etapas a seguir descrevem o processo de exportação e processamento de dados de custo usando hubs FinOps versão 0.1:
- O Gerenciamento de Custos exporta detalhes de custo bruto para o contêiner msexports .
- O pipeline msexports_transform salva os dados brutos no formato parquet no contêiner de ingestão.
- O Power BI lê os dados de custo do contêiner de ingestão .