Skip to content

How It Works

High-Level view of processing tenant data and its processing.

View on the resources, their classification and states they go through within application.

View of tenant

Tenant contains all Azure resources that are organized in containers, those are: management groups, resource groups, subscriptions.

When we analyze tenant, resources are seen as following sets:

resources view

Example scenario, let's say there are 100 resources inside the tenant. There will be 20 resources that are either unsupported resource type or filtered out based on some other logic. This leaves 80 resources that will be analyzed and go through evaluation of our use cases. Out of those 80 resources, 30 resources will be identified by use cases, meaning there is some work to be done - action to take, against those 30 resources. As time goes by, we will monitor if actions are taken against the identified resources, if we determine that e.g. resource was resized or deleted, we will count it towards actions taken.

Execution Flow

Each scan consists of the following main stages:

resources view

Based on the flow, to provide results of our use cases and insights, we need to have access to read the data in Azure and Billing data.

Resource data we gather comes from these sources:

  • Resource Graph
  • Azure Resource Metrics
  • Fetching specific details about resource via Azure Resource Manager API
  • Cost Query API

We use the gathered data from different APIs to build our own data model for each resource.

Model enters use case and insights evaluation. Outputs from the evaluation are stored in the storage account.

If this is not the first time we have scanned your environment we will use previous results of identification to compute Actions Taken. Actions taken track actions and savings that were done to the resources.

Resource Stages

Every resource type that is supported can move between several states as pictured in the diagram below.

resources view

State Transition Remarks
Not Identified Initial state Every resource that is either not matching any use case - we can say, there is nothing to optimize or the resource is not supported
Identified Resource meets criteria for one or more use cases i.e. it is unused Resource stays identified as long as condition of the use case holds true
Monitoring Identified resource will be monitored automatically for any optimization changes Every scheduled scan i.e. daily will look for optimization changes on the identified resource, for some resources it can be simply checking if they still exist (unused resource can only be remediated by deletion) or if f.e. SKU has changed
Action Tracking Optimization Action was detected Examples of actions: Deletion, Re-Size, month-to-month cost has decreased
Report Action After optimization was done Reporting consists of evaluating how much money was saved and whether the resource is still matching any use case. If the resource was re-sized, it will go to Not Identified state.