Giter Club home page Giter Club logo

finops-toolkit's Introduction

🧰 FinOps toolkit

Quick links: Β  Read the docs Β  How to contribute Β  Give feedback

The FinOps toolkit is an open-source collection of customizable tools and resources to help you adopt and implement FinOps capabilities that automate and extend the Microsoft Cloud. The toolkit aims to include:

  • Starter kits that help you get up and running.
  • Automation scripts to streamline cost management and optimization at scale.
  • Advanced solutions to facilitate building custom capabilities.
  • Learning resources and best practices about how to implement FinOps.

🧰 Learn about the tools


πŸ‘©β€πŸ’» Contributing

There are many ways to participate. From reporting bugs and requesting features to reviewing or even making code changes. See the contribution guide ➑️


Michael Flanakin
Michael Flanakin

🌟 πŸ’» πŸ‘€ πŸ“– πŸ§‘β€πŸ« πŸ“£
Arthur Clares
Arthur Clares

🌟 πŸ’» πŸ‘€ πŸ“– πŸ§‘β€πŸ« πŸ“£
Sonia Cuff
Sonia Cuff

🌟 πŸ“£
maggar
maggar

🌟 πŸ€”
Brett Wilson
Brett Wilson

πŸ’» πŸ‘€ πŸ“–
Seif Bassem
Seif Bassem

πŸ’»
Anthony Romano
Anthony Romano

πŸ’» πŸ‘€ πŸ“–
Nicolas Teyan
Nicolas Teyan

πŸ’» πŸ“–
Sacha Narinx
Sacha Narinx

πŸ’» πŸ‘€ πŸ“–
jamelachahbar
jamelachahbar

πŸ’»
Saad Mahmood
Saad Mahmood

πŸ’»
Divyadeep Dayal
Divyadeep Dayal

πŸ’»
Arjen Huitema
Arjen Huitema

πŸ’»
Bill Anderson
Bill Anderson

πŸ“–
HΓ©lder Pinto
HΓ©lder Pinto

πŸ“– πŸ›
Yuan Zhang
Yuan Zhang

πŸ’»
ymehdimsft
ymehdimsft

πŸ’»
srilatha inavolu
srilatha inavolu

πŸ’» πŸ‘€
soumyananda
soumyananda

πŸ’» πŸ‘€
Chris Bowman
Chris Bowman

πŸ›
Mubarak Tanseer
Mubarak Tanseer

πŸ›
Ben Shy
Ben Shy

πŸ’» πŸ‘€
Trey Morgan
Trey Morgan

πŸ’»
Travis Silvers
Travis Silvers

πŸ‘€
Travis Silvers
Travis Silvers

πŸ‘€
vijayaj4
vijayaj4

πŸ’»
pskulkarni
pskulkarni

πŸ’»
Ankur Sharma
Ankur Sharma

πŸ‘€
lkshck
lkshck

πŸ›
Slavik N
Slavik N

πŸ‘€
SREENADHA REDDY VANKIREDDY
SREENADHA REDDY VANKIREDDY

πŸ‘€
Adam Andersson
Adam Andersson

πŸ›
Irena Jurica
Irena Jurica

πŸ‘€
renanalmeidjr
renanalmeidjr

πŸ›
elvismangarae
elvismangarae

πŸ›
erincon01
erincon01

πŸ‘€ πŸ’¬
NavidKhan8
NavidKhan8

πŸ›
Maik van der Gaag
Maik van der Gaag

πŸ›
Rodney
Rodney

πŸ‘€
Graham
Graham

πŸ›
psilantropy
psilantropy

πŸ›
Marc Samendinger
Marc Samendinger

πŸ“–
Patric K.
Patric K.

πŸ›
ripadrao
ripadrao

πŸ“–
Pedro Sousa
Pedro Sousa

πŸ“–
Kevin De La Rosa
Kevin De La Rosa

πŸ“–



βš–οΈ Legal stuff

Code of conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Data collection

Usage of FinOps toolkit templates and modules is tracked by using a defaultTelemetry deployment. Microsoft may use this information to improve our products and services. You may turn off the telemetry by using the enableDefaultTelemetry parameter on any Bicep module. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

NOTE: You can review what is included in this telemetry in the Azure portal by viewing the details for any pid-00f1n0b5-* deployments under the Deployments section of the corresponding scope (e.g., resource group, subscription).

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

License

Copyright Β© Microsoft Corporation. All rights reserved.

Licensed under the MIT license.

finops-toolkit's People

Contributors

allcontributors[bot] avatar arjenhuitema avatar aromano2 avatar arthurclares avatar flanakin avatar helderpinto avatar microsoft-github-operations[bot] avatar microsoftopensource avatar msamendinger avatar msbrett avatar nteyan avatar sebassem avatar ymehdimsft avatar yuanzhang9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

finops-toolkit's Issues

[Power BI] Create a SQL Azure Hybrid Benefit page in the Cost summary report

πŸ“ Scenario

As a SQL admin, I need to review my AHB usage in order to determine if I'm maximizing my existing licenses

πŸ’Ž Solution

Create a new Azure Hybrid Benefit report for SQL Server licenses.

ℹ️ Additional context

The main issue here is that SQL and Windows usage data is inconsistent. Consider creating a proposal for the SQL and/or VM teams to emit usage in a consistent manner. Another possible workaround is to manipulate data in Data factory, but this is less ideal.

Update docs based on revised plans

⚠️ Problem

In an effort to accelerate timelines, we are merging with https://github.com/MSBrett/ccm_lite for the v0.1 release.

πŸ› οΈ Solution

Update docs based on revised plans for the 0.1 release.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Hubs] Managed exports – Create exports on behalf of customers

πŸ“ Scenario

As a hub admin, I need to automate CM export creation in order to minimize administrative overhead

πŸ’Ž Solution

Create a msexports_Setup pipeline in ADF to manage Cost Management data exports automatically. Use config\settings.json to store the list of exports that will be managed.

πŸ“— Documentation updates

  1. Remove steps 2 and 3 (create and run exports) in Create a new hub.
  2. Add the following paragraph before the info message under the "Access the cost data from custom tools" bullet in Get started with hubs.

    Data is ingested into the msexports container and transformed when moved into the ingestion container. Do not use the msexports container for anything other than Cost Management exports. If manipulating data, please do that in the ingestion container after the transform pipeline completes. Don't remove or rename columns, as that can break Power BI reports.

  3. Remove the comment about needing to setup Cost Management exports on the FinOps hub template description.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Enable tag inheritance during deployment

πŸ“ Scenario

As a FinOps practitioner, I need to enable tag inheritance in order to streamline cost allocation and chargeback

πŸ’Ž Solution

Create a template that enables tag inheritance for an EA billing account, MCA billing profile, or EA/MCA subscription.

Also add this as an option to the export and FinOps hub with exports templates.

[Bicep Registry] Scheduled action bicep module for RBAC scopes

πŸ“ Scenario

As a FinOps practitioner, I need to deploy scheduled actions as part of my templates in order to automate onboarding for new projects

πŸ’Ž Solution

Publish scheduled action modules to the Bicep Registry for each supported scope.

ℹ️ Additional context

Bicep requires separate files per deployment scope. Since this would require excessive duplication of code, we'll introduce a simple templating language optimized for enabling multi-scope deployment modules that support native Bicep tooling.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Hubs] Support for large datasets

πŸš€ Goal

Support large datasets (up to 500 GB/mo) with up to 5 years of historical data that refreshes when changed.

πŸ“‹ Tasks

Queryable data store (discuss link pending)

Stretch

No tasks being tracked yet.

πŸ™‹β€β™€οΈ Ask for the community

We'd love to get your feedback! Please leave any questions, comments, or change requests in the release discussions linked from each task list above. We'll try to close each of those out before we finalize the release.

Document branching strategy

⚠️ Problem

Everyone is currently working out of main but that will eventually cause issues when features have interim PRs that are not ready to roll out yet.

πŸ› οΈ Solution

Document a branching strategy where devs work out of their own branches/forks, then commit back to a feature branch, which then gets merged into a dev branch. When the release is ready, we'll merge dev to main.

ℹ️ Additional context

This should be done before closing any PRs that will not be included in the first release.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments if you'd like to share any thoughts to improve the plans.

[Power BI] Create an Inventory page in the Cost summary report

πŸ“ Scenario

As a DevOps team/leadership, I need to understand how many resources are deployed by type in order to <TODO: What is the goal? Why is this needed?>

⭐ This is a requested feature, but we could use more context on how and why it would be used. Please leave comments.

πŸ’Ž Solution

Create an Inventory page that provides a breakdown by resource type.

ℹ️ Additional context

Consider writing a proposal to offer a built-in view inside of Cost Management for the same, if applicable.

Merge Actual and Amortized datasets

πŸ“ Scenario

As a FinOps practitioner, I need to monitor both actual and amortized costs using a single, consolidated dataset in order to produce chargeback reports and reconcile invoices without duplicating data

πŸ’Ž Solution

Change amortization to be applied as separate rows, like Cost Management cost allocation, which would allow data to be either amortized or actual based on whether a filter is applied. Amortization would be the default since that is the more common scenario across the organization. (Only the people paying the invoice require the actual, billed charges.)

ℹ️ Additional context

Consider writing a proposal to change how Cost Management provides amortized data. If the data was generated the same way cost allocation is generated, then this workaround wouldn't be needed and organizations would be able to reduce their data storage costs.

Interim normalized schema spec

⚠️ Problem

EA, MOSA, MCA, CSP, and classic Internal subscriptions all use different schemas. FOCUS is not available yet, so we need an interim schema.

πŸ› οΈ Solution

Standardize a cost data schema that can be used until FOCUS is finalized.

The following changes have been scoped out for now to minimize changes compared to the Cost Management connector:

  • Rename AccountOwnerId to ClassicAccountOwnerId
  • Rename AccountName to ClassicAccountName
  • Rename BenefitId/Name to CommitmentId/Name
  • Rename BillingCurrencyCode to Currency
  • Rename ConsumedService to ResourceProvider = ConsumedService || (parse from ResourceId)
  • Rename CostInBillingCurrency to Cost
  • Rename CustomerTenantId to CustomerId
  • Rename CustomerName to CustomerName
  • Rename MeterCategory to ServiceName
  • Rename MeterSubCategory to ServiceTier
  • Rename PartnerTenantId to PartnerId
  • Rename ProductOrderId to OfferId
  • Rename ProductOrderName to OfferName
  • Rename ResellerMpnId to ResellerId
  • Add ResourceGroupId = ResourceGroupName == null ? null : (parse from ResourceId)
  • Add ResourceLocationId and ResourceLocationName for internal ID and English display names
  • Add ResourceTypeName (display names from Azure portal)
  • Add ServiceLevel = Allowed: OnPremises, Infrastructure, Platform, Software, Other
  • Add Hybrid Benefit columns from Power BI reports: HybridBenefitStatus, HybridBenefitVCPUs, CPUHours, CPUs, ImageType, InstanceName, SKU, UsageType, VMProperties, vCPUs
  • Add unique name columns from Power BI reports: BenefitNameUnique, ResourceGroupNameUnique, ResourceNameUnique, SubscriptionNameUnique
  • Add utilization and savings columns from Power BI reports: BenefitSavings, BenefitType, BenefitUtilizationAmount, BenefitUtilizationPotential, DiscountSavings, NegotiatedSavings, OnDemandCost
  • Consider merging ServiceInfo1 and ServiceInfo2 into AdditionalInfo
  • Only show column PartnerEarnedCreditRate/Applied if available
  • FOCUS: Rename ServiceFamily to ServiceCategory + add mapping to allowed values
  • Consolidation of actual and amortized cost into a single dataset
  • Consider a way to opt in to localized strings

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Cost optimization workbook

πŸ“ Scenario

As a FinOps practitioner, I need a central cost optimization hub in order to drive cost optimization within my organization

πŸ’Ž Solution

Create a Cost optimization workbook that summarizes potential savings opportunities.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Hubs] Historical data backfill – Preload historical data when a scope is added

πŸ“ Scenario

As a FinOps practitioner, I need to backfill historical cost data in order to report on past data and monthly trends in the initial release

πŸ’Ž Solution

Update the ms-cm-exports_Setup pipeline in ADF to handle data ingestion for historical data. Reuse the same exports to ensure data is placed in the same folder. Refer to config\settings.json for data retention settings.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Power BI] Create a Tags page in the Cost summary report

πŸ“ Scenario

As a FinOps practitioner, I need to break costs down by tag in order to identify tagging gaps and perform chargeback

πŸ’Ž Solution

Create a Tags page in Power BI that helps understand what tag keys are applied, offers drilldown into the tag values, and also what resources are missing tags.

ℹ️ Additional context

Consider creating a proposal for a built-in view in Cost Management for this, given the in-portal experience would likely be a better place for DevOps teams to discover and resolve tag gaps.

Hubs v0.1 – Power BI on CM exports

πŸš€ Goal

Create an ARM template that configures a new Cost Management export to ADLS and generates a Power BI report that can work against that dataset. The template should also include a Data Factory pipeline to delete old files when data is exported each day.

πŸ“‹ Tasks

v0.0.1 - finops-hub template (discuss)

  1. Area: Documentation
  2. Area: ARM
  3. Area: Power BI
    flanakin
  4. Area: Documentation
    flanakin
  5. Area: Power BI
    flanakin
  6. Area: ARM Area: Documentation
    flanakin
  7. Area: ARM Area: Data factory
    aromano2
  8. Area: Documentation
    flanakin
  9. Area: DevOps
    flanakin
  10. Area: ARM
    aromano2
  11. Area: Data factory
    MSBrett
  12. Area: ARM Area: PowerShell
    flanakin
  13. Area: ARM Type: Bug πŸ›
    flanakin
  14. Area: ARM Area: Data factory Area: PowerShell
    flanakin
  15. Area: ARM Area: Data factory
    flanakin
  16. 1 of 1
    Area: Power BI Solution: FinOps hubs Status: πŸ”¬ Code review
    flanakin
  17. 13 of 13
    Area: Documentation Solution: FinOps hubs Status: πŸ”„οΈ In progress Type: Cleanup
    flanakin
  18. 2 of 2
    Area: ARM Solution: FinOps hubs
    flanakin

v0.0.2 - Self-managed exports (discuss)

  1. Area: Documentation Good first issue πŸ† Micro PR πŸ”¬ Solution: FinOps hubs Status: πŸ“¦ Pending release Type: Bug πŸ›
    flanakin
  2. Area: Power BI Solution: FinOps hubs Status: πŸ“¦ Pending release
    flanakin
  3. Solution: FinOps hubs Status: πŸ“¦ Pending release Type: Bug πŸ›
    flanakin
  4. Area: ARM Area: Data factory Solution: FinOps hubs Status: πŸ”„οΈ In progress
    MSBrett
  5. Area: Data factory Status: πŸ”„οΈ In progress
    MSBrett
  6. Area: PowerShell Type: Feature πŸ’Ž
    MSBrett

v0.0.3 - Additional datasets (discuss)

  1. Area: Data factory Solution: FinOps hubs Type: Feature πŸ’Ž

v0.1 - FOCUS schema (discuss)

  1. Area: Data factory Area: Documentation Status: ✍️ Spec in progress
    flanakin
  2. Area: Data factory Status: ✍️ Spec in progress
  3. Area: Data factory Type: Feature πŸ’Ž

Stretch

  1. Area: Power BI Needs: Information
  2. Solution: FinOps hubs Type: Feature πŸ’Ž
    yuanzhang9

πŸ™‹β€β™€οΈ Ask for the community

We'd love to get your feedback! Please leave any questions, comments, or change requests in the release discussions at the bottom of each task list above. We'll try to close each of those out before we finalize the release.

[Power BI] Partner-earned credit report

πŸ“ Scenario

As a CSP partner, I need to view partner-earned credit in order to understand how much I'm earning from my customers

πŸ’Ž Solution

Create a separate Power BI report focused on partner-earned credit (PEC) scenarios.

Validate GitHub automation

Issues

  • 1. #Triage when new issues are created -- open issue !#Information !#Spec in progress !#Spec review !#Ready !#In progress !#Code review !assigned > #Triage @flanakin
  • 2. #Triage > #Info when comment includes "#needs-info" in a comment -- open issue "#needs-info" comment from @ankur-ms/@flanakin/@tsilvers-ms > #Info -#Triage @author
  • 2a1. +#Attention when no activity -- @1am: open issues inactive for 14d #Info -Attention > #Attention + reply
  • 2b. -#Attention when activity -- issue comment #Attention > -#Attention
  • 2a2. #Attention > Close when no activity -- @1am: open issues inactive for 14d #Info #Attention > Close #NoActivity + reply
  • 2b1. #Duplicate > Close when no activity -- @1am: open issues inactive for 7d #Duplicate > Close + reply
  • 3. #Info > #Triage when author comments -- open issue comment from author #Info > -#Info #Triage @flanakin
  • 4. -#Triage when "#approved" comment -- open issue "#approved" comment from @ankur-ms/@flanakin/@tsilvers-ms #Triage > -#Triage @none
    - [ ] No tags
    - [ ] "#ADF" > #Data factory
    - [ ] "#ARM" > #ARM
    - [ ] "#PBI" > #Power BI
  • 6. #Spec in progress > #Spec review when "Spec review:" PR created -- open issues #Spec in progress +#Spec review > -#Spec in progress
  • 7. #Spec review > #Ready when "Spec review:" PR closes -- open issues #Spec review +#Ready > -Spec review
  • 8. #Ready > #In progress when dev assigned -- open issues #Ready @ankur-ms/tsilvers-ms > -#Ready #In progress
  • 9. #In progress > #Code review when dev creates PR -- new PR #In progress > issue+#Code review +#(copy Area|Breaking|GFI|HW|Micro|Type from issue)
    -- Issues #In progress +#Code review > -#In progress
  • 10. #Code review > #Pending release when PR closes linked issue -- open issues closed #Code review > -#Code review #Pending release
  • 11. #Pending release > #Released when issue is included in a release -- closed issue "Released in v" comment #Pending release > -#Pending release #Released

Pull requests

  • 1. (New) > #Review when opened -- new/updated PR =main > #Review @ankur-ms @tsilvers-ms @flanakin +reviewers
  • 3a. #Attenton > #Review when PR updated -- author updated PR #Attention > -#Attention #Review
  • 3c. #Attenton > #Review when PR comment updated -- author PR comment #Attention > -#Attention #Review
  • 4. #Review > Close???

Update Power BI data sources to use parquet

⚠️ Problem

CSV is slower to process, so we're switching to parquet for data storage.

πŸ› οΈ Solution

Switch Power BI to ingest data in parquet format.

β›” Blocking issues

  1. Area: Data factory
    MSBrett

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Power BI] Cost estimation Power BI report

πŸ“ Scenario

As a FinOps practitioner, I need to estimate the cost of my hub instance in order to plan for future spending

πŸ’Ž Solution

Create a Power BI report that looks at hub configuration settings and available data size to report on historical and estimate future monthly spending.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Toolkit v1.0 – Basic Cost Management automation

πŸ“ Scenario

As a FinOps practitioner, I need to automate the deployment of Cost Management resources in order to streamline onboarding

πŸš€ Goal

Publish modules to the Bicep Registry for all Cost Management features to simplify template creation.

πŸ“‹ Tasks

v0.1 – Basics (discuss)

  1. Area: ARM Help wanted ✨ Solution: Bicep Registry Status: πŸ”„οΈ In progress Type: Feature πŸ’Ž
  2. Area: ARM Status: πŸ”¬ Code review Type: Feature πŸ’Ž
    flanakin
  3. 39 of 76
    Solution: FinOps hubs Status: πŸ”„οΈ In progress Type: Release πŸš€
    flanakin

v0.2 – Bicep modules for billing accounts (discuss)

v0.3 – Scripts for resources (discuss)

v0.4 – Scripts for read-only APIs (discuss)

πŸ™‹β€β™€οΈ Ask for the community

We'd love to get your feedback! Please leave any questions, comments, or change requests in the release discussions at the bottom of each task list above. We'll try to close each of those out before we finalize the release.

[Power BI] Move all dataset processing from PBI to the data layer

⚠️ Problem

Custom columns require more work to copy between reports for manual upgrades. Avoid using custom columns when possible.

πŸ› οΈ Solution

Move the following calculated columns to be defined in the query:

  • CommitmentNameUnique
  • SubscriptionNameUnique
  • ResourceNameGroupUnique
  • ResourceNameUnique
  • CommitmentSavings
  • CommitmentType
  • CommitmentUtilizationAmount
  • CommitmentUtilizationPotential
  • DiscountSavings
  • Month
  • NegotiatedSavings
  • OnDemandCost
  • RetailCost
  • RetailPrice

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Add containers and settings to storage

⚠️ Problem

Settings must be saved to storage in order to have exports dynamically created.

πŸ› οΈ Solution

  • Update the finops-hub template and hub.bicep module to accept exportScopes.
  • Pre-create the config, ms-cm-exports, and ingestion storage containers in the hub.bicep module.
  • Save the config/settings.json file in the hub.bicep module.

ℹ️ Additional context

See finops-hub template and hub module specs.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Document end-to-end setup for initial release

⚠️ Problem

Docs cover a few specific topics, which are good, but they don't explain:

  • What FinOps toolkit is.
  • Who it's built for.
  • Why they'd use it.
  • How the end-to-end setup process works.
  • What will get deployed (in a simple visual)
  • How to customize it and what not to customize.

πŸ› οΈ Solution

Add more complete documentation for consumers.

πŸ™‹β€β™€οΈ Ask for the community

Check out the docs and let us know what you think is missing or would like to see added.

Export expiration handling

πŸ“ Scenario

As a FinOps hub admin, I need to be notified before my exports expire in order to ensure cost management activiites are not interupted

πŸ’Ž Solution

Enable an option to either notify admins or auto-renew exports.

Transform CM exports to a normalized schema

πŸ“ Scenario

As a FinOps practitioner, I need to normalize cost data to a standard schema in order to **manage costs from **

πŸ’Ž Solution

Normalize cost data to an interim schema (since FOCUS is not available yet) that aligns to the current Cost Managment connector schema.

πŸ“— Documentation updates

  1. Change the transform step in the data processing page to:

    The msexports_Transform pipeline transforms the raw data to the normalized schema and saves it in parquet format to the ingestion container. For details about the transformation, see the dev docs.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Do you have preferences on what should be covered in the normalized schema?
  3. Leave comments to help us solidify the vision.

Test

## πŸ› Problem

prob

## πŸ‘£ Repro steps

repro

## πŸ€” Expected

expected

## πŸ“· Screenshots

screens

## ℹ️ Additional context

add'l

Update Build-Bicep to account for scope differences

⚠️ Problem

Bicep-Build.ps1 does not account for different scopes in text strings in README.md or metadata.json. These must be manually updated.

πŸ› οΈ Solution

  • Move core BRM files to a template folder.
  • Create a metadata file that contains details that change:
    • Name
    • Description (can change per scope)
    • Version
  • Update the build script to copy template files and update them based on the metadata.
    • Validate summary is <= 120 characters.
    • Allow formatting strings with the scope type.
    • For tenant scope, use "billing account" since we don't actually support tenant scope.
    • Prefix the README.md with the name, summary, and description.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Automate storage account data reader role assignment

πŸ“ Scenario

As a FinOps hub admin, I need to automate assignment of the Storage Account Data Reader role in order to streamline Power BI setup

πŸ’Ž Solution

Create a template that assigns the Storage Account Data Reader role. Consider making this an optional part of the finops-hub template.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Time-based scheduling for exports

πŸ“ Scenario

As a FinOps practitioner, I need to have data p ushed at specific times in order to have a complete dataset when presenting to leadership

πŸ’Ž Solution

Configure a data factory pipeline to manually run exports at specific times rather than waiting for exports to be run on their schedule.

Implement a hard limit for budgets

πŸ“ Scenario

As a FinOps practitioner, I need to stop all charges when a budget is exceeded in order to control costs

πŸ’Ž Solution

Create a template that can deploy an action group with script to shut down and/or delete resources.
-OR-
Add the ability to monitor cost and trigger custom actions in FinOps hubs.

Pipeline to dedupe and convert to parquet

πŸ“ Scenario

As a FinOps practitioner, I need to dedupe CM exports in order to directly link Power BI to ADLS as a data source

πŸ’Ž Solution

Create an ms-cm-exports_Transform pipeline to copy data from the ms-cm-exports container to the ingestion container in parquet format and overwrite old exports.
Start from https://github.com/MSBrett/ccm_lite/blob/main/ARM/azuredeploy.json and copy relevant pieces of https://github.com/MSBrett/ccm_lite/blob/main/Deploy-EA.ps1, as appropriate.

πŸ™‹β€β™€οΈ Ask for the community

Let us know if there's anything you'd like to see changed.

Export template

πŸ“ Scenario

As a FinOps practitioner, I need to enable exports independently from the main FinOps toolkit deployment in order to handle scenarios where different accounts require different access

πŸ’Ž Solution

Create a separate export template in addition to the finops-hub-with-exports template.

Use FOCUS schema for cost details

πŸ“ Scenario

As a FinOps practitioner, I need to ingest data using a standard schema in order to support multiple clouds and account types

πŸ’Ž Solution

Create a data factory pipeline that transforms data to the FOCUS schema. Use a new container for data ingestion and move Cost Management exports into this container when transformed.

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Add @include directive for Bicep templating

⚠️ Problem

There are some common patterns that we'll use in multiple bicep files that could be error prone when repeated often or introduce maintenance burden when needing to update them.

πŸ› οΈ Solution

Add an option to include reusable files using our Bicep templating. Something like:

// @include ../../include/telemetry.bicep

Consider explicit directives for the most common scenarios, like telemetry.

// @telemetry 'unique-id'

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Automate Azure Quickstart Templates repo publishing

⚠️ Problem

Azure Quickstart Templates is the primary repository that FinOps toolkit releases will be published to. We need to minimize the effort needed to publish updates to ensure the process is as smooth and error-free as possible.

πŸ› οΈ Solution

Automate the AQT release process as much as possible to avoid manual, error-prone steps. If we can't automate the actual publishing, at least generate a ZIP file that can be used to manually publish.

β›” Blocked on modules other changes being committed so we can move modules into the finops-hub folder.

ℹ️ Additional context

See also: https://github.com/Azure/azure-quickstart-templates/blob/master/1-CONTRIBUTION-GUIDE/README.md#contribution-guide

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

[Power BI] Select a single currency by default

⚠️ Problem

When a hub has multiple currencies, Power BI shows them all together, which isn't valid. People have to select a single currency before the report can accurately render.

πŸ› οΈ Solution

Have the filter preset based on what currencies are available. Prefer the currency that is used the most.

Document telemetry

⚠️ Problem

The main readme must include an explicit note about telemetry collected and how to disable it.

πŸ› οΈ Solution

Add the data collection section to this repo.

πŸ™‹β€β™€οΈ Ask for the community

Let us know if there's anything specific you'd like to see in this space.

Publish v0.0.1 template to Azure Quickstart Templates

⚠️ Problem

Most people won't discover the toolkit from GitHub alone.

πŸ› οΈ Solution

Publish the toolkit templates to Azure Quickstart Templates.

β›” Blocking issues

  1. 1 of 1
    Area: Power BI Solution: FinOps hubs Status: πŸ”¬ Code review
    flanakin
  2. Area: ARM Area: PowerShell
    flanakin

ℹ️ Additional context

See also: https://github.com/Azure/azure-quickstart-templates/blob/master/1-CONTRIBUTION-GUIDE/README.md#contribution-guide

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Add an option to deploy the Power BI reports to storage

πŸ“ Scenario

As a FinOps hubs admin, I need to deploy and auto-configure PBIX files in order to streamline setup after each release

πŸ’Ž Solution

Add an option to templates that allow an admin to decide if they want files deployed or not. When files are deployed, they should be auto-configured to point to the correct storage account. Auth credentials should be provided on first-run. Update the pbix template output to point to the new files.

Document how to use Data Lake Storage outside of Power BI

⚠️ Problem

As a FinOps practitioner, I need to build custom reports outside of Power BI in order to meet my organizational reporting needs

πŸ› οΈ Solution

Document tools and services that can be connected with Data Lake Storage.

Save deployment parameters file

πŸ“ Scenario

As a hub admin, I need to save my deployment parameters file in order to update my deployment in the future.

πŸ’Ž Solution

Save the deployment parameters file to the export storage account.

Enable tag inheritance at scale

πŸ“ Scenario

As a FinOps practitioner, I need to enable tag inheritance in order to facilitate chargeback reporting

πŸ’Ž Solution

Create templates to enable tag inheritance for EA billing accounts, MCA billing profiles, and EA/MCA subscriptions.

Consider blueprints as an option to automate application for all subscriptions.

Create basic Power BI reports

πŸ“ Scenario

As a FinOps practitioner, I need to view cost reports in order to understand my current cost details

πŸ’Ž Solution

Create cost summary and commitment discount Power BI reports to get a more complete picture of current costs.

ℹ️ Additional context

See reports docs for initial spec.

[Power BI] Currency conversion

πŸ“ Scenario

As a user in a global organization, I need to convert my billing currency to my personal local currency in order to understand and report on costs within my local geography

πŸ’Ž Solution

Cost details includes a separate column for cost in USD, but all the reports are using the Cost column. Add the ability to convert this USD column to any currency using a free or open-source currency conversion service.

ℹ️ Additional context

Microsoft has currency conversion rates available internally. Consider writing a proposal for how we'd like to see that exposed via Cost Management APIs.

Test bug from form

πŸ› Problem

problem goes here

πŸ‘£ Repro steps

      1. ...

πŸ€” Expected

expected this

πŸ“· Screenshots

[ o ]

ℹ️ Additional context

More to say...

[Hubs] Connector datasets – Add data parity with the Cost Management Power BI connector

πŸ“ Scenario

As a FinOps practitioner, I need to report on many datasets in order to show a complete picture of my costs

πŸ’Ž Solution

Add support for the following datasets based on what's currently available in the Cost Management connector for Power BI:

  • Balance summary (EA only)
  • Budgets
  • Actual cost
  • Pricesheets
  • Reservation charges
  • Shared reservation recommendations
  • Scoped reservatios recommendations

πŸ™‹β€β™€οΈ Ask for the community

We could use your help:

  1. Please vote this issue up (πŸ‘) to prioritize it.
  2. Leave comments to help us solidify the vision.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.