From 0930b221f8a93f031a086f5bda4ac1c0976927c0 Mon Sep 17 00:00:00 2001 From: WKahnZA <50588165+WKahnZA@users.noreply.github.com> Date: Thu, 20 Oct 2022 10:52:59 +0200 Subject: [PATCH] Update Azure VM Size Optimization v9.workbook optimized parameters and fixed csv location --- .../Azure VM Size Optimization v9.workbook | 277 ++---------------- 1 file changed, 22 insertions(+), 255 deletions(-) diff --git a/OMSSolutions/vm-size-optimization/Azure VM Size Optimization v9.workbook b/OMSSolutions/vm-size-optimization/Azure VM Size Optimization v9.workbook index af9f001..d1bb3f8 100644 --- a/OMSSolutions/vm-size-optimization/Azure VM Size Optimization v9.workbook +++ b/OMSSolutions/vm-size-optimization/Azure VM Size Optimization v9.workbook @@ -13,7 +13,7 @@ "content": { "version": "KqlParameterItem/1.0", "crossComponentResources": [ - "value::all" + "{subscription}" ], "parameters": [ { @@ -60,7 +60,7 @@ "allowCustom": true }, "value": { - "durationMs": 5184000000 + "durationMs": 259200000 } }, { @@ -76,11 +76,6 @@ "crossComponentResources": [ "value::all" ], - "value": [ - "/subscriptions/5733bcb3-7fde-4caf-8629-41dc15e3b352", - "/subscriptions/45f9252d-e27e-4ed8-ab4e-dc5054de13fa", - "/subscriptions/2de20a16-20c6-41af-82cd-bceb39195d1c" - ], "typeSettings": { "resourceTypeFilter": { "microsoft.resources/subscriptions": true @@ -91,7 +86,11 @@ "showDefault": false }, "queryType": 1, - "resourceType": "microsoft.resourcegraph/resources" + "resourceType": "microsoft.resourcegraph/resources", + "value": [ + "/subscriptions/5733bcb3-7fde-4caf-8629-41dc15e3b352", + "/subscriptions/ebb79bc0-aa86-44a7-8111-cabbe0c43993" + ] }, { "id": "e81ff94e-69db-4938-8bd3-b69b4e7dbddf", @@ -104,11 +103,7 @@ "delimiter": ",", "query": "where type =~ 'microsoft.operationalinsights/workspaces'\r\n| summarize by id, name\r\n| project id", "crossComponentResources": [ - "value::all" - ], - "value": [ - "/subscriptions/2de20a16-20c6-41af-82cd-bceb39195d1c/resourceGroups/rg-shared-sc-weu/providers/Microsoft.OperationalInsights/workspaces/la-prod-sc-weu", - "/subscriptions/d1d8779d-38d7-4f06-91db-9cbc8de0176f/resourceGroups/SOC/providers/Microsoft.OperationalInsights/workspaces/CyberSecuritySOC" + "{subscription}" ], "typeSettings": { "resourceTypeFilter": { @@ -120,7 +115,10 @@ "showDefault": false }, "queryType": 1, - "resourceType": "microsoft.resourcegraph/resources" + "resourceType": "microsoft.resourcegraph/resources", + "value": [ + "/subscriptions/ebb79bc0-aa86-44a7-8111-cabbe0c43993/resourceGroups/CH1-OpsRG-Pri/providers/Microsoft.OperationalInsights/workspaces/CH1-LA" + ] }, { "id": "3b033277-2f8d-4db0-bfd1-e8c06c1ce531", @@ -131,18 +129,19 @@ "multiSelect": true, "quote": "'", "delimiter": ",", - "query": "Heartbeat\r\n| where TimeGenerated {TimeRange}\r\n| extend spltres=split(_ResourceId,'/')\r\n| where tostring(spltres[2]) in ({subscription:subid}) or '*' in ({subscription:subid})\r\n| project rg=tostring(spltres[4])\r\n| distinct rg\r\n| sort by rg asc", + "query": "resources\r\n| join kind=inner (\r\n resourcecontainers\r\n | where type == 'microsoft.resources/subscriptions'\r\n | project subscriptionId, subscriptionName = name)\r\n on subscriptionId\r\n| distinct resourceGroup", "crossComponentResources": [ - "{Workspace}" + "{subscription}" ], "typeSettings": { "additionalResourceOptions": [ "value::all" ], - "selectAllValue": "*" + "selectAllValue": "*", + "showDefault": false }, - "queryType": 0, - "resourceType": "microsoft.operationalinsights/workspaces", + "queryType": 1, + "resourceType": "microsoft.resourcegraph/resources", "value": [ "value::all" ] @@ -397,7 +396,6 @@ "version": "KqlParameterItem/1.0", "name": "VMSizeList", "type": 1, - "value": "let vmsize= datatable(Name:string,vcores:int,Ram:int,Disks:int) [ \"Basic_A0\",1,768,1, \"Basic_A1\",1,1792,2, \"Basic_A2\",2,3584,4, \"Basic_A3\",4,7168,8, \"Basic_A4\",8,14336,16, \"Standard_A0\",1,768,1, \"Standard_A1\",1,1792,2, \"Standard_A1_v2\",1,2048,2, \"Standard_A2\",2,3584,4, \"Standard_A2_v2\",2,4096,4, \"Standard_A2m_v2\",2,16384,4, \"Standard_A3\",4,7168,8, \"Standard_A4\",8,14336,16, \"Standard_A4_v2\",4,8192,8, \"Standard_A4m_v2\",4,32768,8, \"Standard_A5\",2,14336,4, \"Standard_A6\",4,28672,8, \"Standard_A7\",8,57344,16, \"Standard_A8_v2\",8,16384,16, \"Standard_A8m_v2\",8,65536,16, \"Standard_B12ms\",12,49152,16, \"Standard_B16ms\",16,65536,32, \"Standard_B1ls\",1,512,2, \"Standard_B1ms\",1,2048,2, \"Standard_B1s\",1,1024,2, \"Standard_B20ms\",20,81920,32, \"Standard_B2ms\",2,8192,4, \"Standard_B2s\",2,4096,4, \"Standard_B4ms\",4,16384,8, \"Standard_B8ms\",8,32768,16, \"Standard_D1_v2\",1,3584,4, \"Standard_D11_v2\",2,14336,8, \"Standard_D11_v2_Promo\",2,14336,8, \"Standard_D12_v2\",4,28672,16, \"Standard_D12_v2_Promo\",4,28672,16, \"Standard_D13_v2\",8,57344,32, \"Standard_D13_v2_Promo\",8,57344,32, \"Standard_D14_v2\",16,114688,64, \"Standard_D14_v2_Promo\",16,114688,64, \"Standard_D15_v2\",20,143360,64, \"Standard_D16_v3\",16,65536,32, \"Standard_D16_v4\",16,65536,32, \"Standard_D16d_v4\",16,65536,32, \"Standard_D16ds_v4\",16,65536,32, \"Standard_D16s_v3\",16,65536,32, \"Standard_D16s_v4\",16,65536,32, \"Standard_D2_v2\",2,7168,8, \"Standard_D2_v2_Promo\",2,7168,8, \"Standard_D2_v3\",2,8192,4, \"Standard_D2_v4\",2,8192,4, \"Standard_D2d_v4\",2,8192,4, \"Standard_D2ds_v4\",2,8192,4, \"Standard_D2s_v3\",2,8192,4, \"Standard_D2s_v4\",2,8192,4, \"Standard_D3_v2\",4,14336,16, \"Standard_D3_v2_Promo\",4,14336,16, \"Standard_D32_v3\",32,131072,32, \"Standard_D32_v4\",32,131072,32, \"Standard_D32d_v4\",32,131072,32, \"Standard_D32ds_v4\",32,131072,32, \"Standard_D32s_v3\",32,131072,32, \"Standard_D32s_v4\",32,131072,32, \"Standard_D4_v2\",8,28672,32, \"Standard_D4_v2_Promo\",8,28672,32, \"Standard_D4_v3\",4,16384,8, \"Standard_D4_v4\",4,16384,8, \"Standard_D48_v3\",48,196608,32, \"Standard_D48_v4\",48,196608,32, \"Standard_D48d_v4\",48,196608,32, \"Standard_D48ds_v4\",48,196608,32, \"Standard_D48s_v3\",48,196608,32, \"Standard_D48s_v4\",48,196608,32, \"Standard_D4d_v4\",4,16384,8, \"Standard_D4ds_v4\",4,16384,8, \"Standard_D4s_v3\",4,16384,8, \"Standard_D4s_v4\",4,16384,8, \"Standard_D5_v2\",16,57344,64, \"Standard_D5_v2_Promo\",16,57344,64, \"Standard_D64_v3\",64,262144,32, \"Standard_D64_v4\",64,262144,32, \"Standard_D64d_v4\",64,262144,32, \"Standard_D64ds_v4\",64,262144,32, \"Standard_D64s_v3\",64,262144,32, \"Standard_D64s_v4\",64,262144,32, \"Standard_D8_v3\",8,32768,16, \"Standard_D8_v4\",8,32768,16, \"Standard_D8d_v4\",8,32768,16, \"Standard_D8ds_v4\",8,32768,16, \"Standard_D8s_v3\",8,32768,16, \"Standard_D8s_v4\",8,32768,16, \"Standard_DS1_v2\",1,3584,4, \"Standard_DS11_v2\",2,14336,8, \"Standard_DS11_v2_Promo\",2,14336,8, \"Standard_DS11-1_v2\",2,14336,8, \"Standard_DS12_v2\",4,28672,16, \"Standard_DS12_v2_Promo\",4,28672,16, \"Standard_DS12-1_v2\",4,28672,16, \"Standard_DS12-2_v2\",4,28672,16, \"Standard_DS13_v2\",8,57344,32, \"Standard_DS13_v2_Promo\",8,57344,32, \"Standard_DS13-2_v2\",8,57344,32, \"Standard_DS13-4_v2\",8,57344,32, \"Standard_DS14_v2\",16,114688,64, \"Standard_DS14_v2_Promo\",16,114688,64, \"Standard_DS14-4_v2\",16,114688,64, \"Standard_DS14-8_v2\",16,114688,64, \"Standard_DS15_v2\",20,143360,64, \"Standard_DS2_v2\",2,7168,8, \"Standard_DS2_v2_Promo\",2,7168,8, \"Standard_DS3_v2\",4,14336,16, \"Standard_DS3_v2_Promo\",4,14336,16, \"Standard_DS4_v2\",8,28672,32, \"Standard_DS4_v2_Promo\",8,28672,32, \"Standard_DS5_v2\",16,57344,64, \"Standard_DS5_v2_Promo\",16,57344,64, \"Standard_E16_v3\",16,131072,32, \"Standard_E16_v4\",16,131072,32, \"Standard_E16-4ds_v4\",16,131072,32, \"Standard_E16-4s_v3\",16,131072,32, \"Standard_E16-4s_v4\",16,131072,32, \"Standard_E16-8ds_v4\",16,131072,32, \"Standard_E16-8s_v3\",16,131072,32, \"Standard_E16-8s_v4\",16,131072,32, \"Standard_E16d_v4\",16,131072,32, \"Standard_E16ds_v4\",16,131072,32, \"Standard_E16s_v3\",16,131072,32, \"Standard_E16s_v4\",16,131072,32, \"Standard_E2_v3\",2,16384,4, \"Standard_E2_v4\",2,16384,4, \"Standard_E20_v3\",20,163840,32, \"Standard_E20_v4\",20,163840,32, \"Standard_E20d_v4\",20,163840,32, \"Standard_E20ds_v4\",20,163840,32, \"Standard_E20s_v3\",20,163840,32, \"Standard_E20s_v4\",20,163840,32, \"Standard_E2d_v4\",2,16384,4, \"Standard_E2ds_v4\",2,16384,4, \"Standard_E2s_v3\",2,16384,4, \"Standard_E2s_v4\",2,16384,4, \"Standard_E32_v3\",32,262144,32, \"Standard_E32_v4\",32,262144,32, \"Standard_E32-16ds_v4\",32,262144,32, \"Standard_E32-16s_v3\",32,262144,32, \"Standard_E32-16s_v4\",32,262144,32, \"Standard_E32-8ds_v4\",32,262144,32, \"Standard_E32-8s_v3\",32,262144,32, \"Standard_E32-8s_v4\",32,262144,32, \"Standard_E32d_v4\",32,262144,32, \"Standard_E32ds_v4\",32,262144,32, \"Standard_E32s_v3\",32,262144,32, \"Standard_E32s_v4\",32,262144,32, \"Standard_E4_v3\",4,32768,8, \"Standard_E4_v4\",4,32768,8, \"Standard_E4-2ds_v4\",4,32768,8, \"Standard_E4-2s_v3\",4,32768,8, \"Standard_E4-2s_v4\",4,32768,8, \"Standard_E48_v3\",48,393216,32, \"Standard_E48_v4\",48,393216,32, \"Standard_E48d_v4\",48,393216,32, \"Standard_E48ds_v4\",48,393216,32, \"Standard_E48s_v3\",48,393216,32, \"Standard_E48s_v4\",48,393216,32, \"Standard_E4d_v4\",4,32768,8, \"Standard_E4ds_v4\",4,32768,8, \"Standard_E4s_v3\",4,32768,8, \"Standard_E4s_v4\",4,32768,8, \"Standard_E64_v3\",64,442368,32, \"Standard_E64_v4\",64,516096,32, \"Standard_E64-16ds_v4\",64,516096,32, \"Standard_E64-16s_v3\",64,442368,32, \"Standard_E64-16s_v4\",64,516096,32, \"Standard_E64-32ds_v4\",64,516096,32, \"Standard_E64-32s_v3\",64,442368,32, \"Standard_E64-32s_v4\",64,516096,32, \"Standard_E64d_v4\",64,516096,32, \"Standard_E64ds_v4\",64,516096,32, \"Standard_E64i_v3\",64,442368,32, \"Standard_E64is_v3\",64,442368,32, \"Standard_E64s_v3\",64,442368,32, \"Standard_E64s_v4\",64,516096,32, \"Standard_E8_v3\",8,65536,16, \"Standard_E8_v4\",8,65536,16, \"Standard_E80ids_v4\",80,516096,32, \"Standard_E80is_v4\",80,516096,32, \"Standard_E8-2ds_v4\",8,65536,16, \"Standard_E8-2s_v3\",8,65536,16, \"Standard_E8-2s_v4\",8,65536,16, \"Standard_E8-4ds_v4\",8,65536,16, \"Standard_E8-4s_v3\",8,65536,16, \"Standard_E8-4s_v4\",8,65536,16, \"Standard_E8d_v4\",8,65536,16, \"Standard_E8ds_v4\",8,65536,16, \"Standard_E8s_v3\",8,65536,16, \"Standard_E8s_v4\",8,65536,16, \"Standard_F1\",1,2048,4, \"Standard_F16\",16,32768,64, \"Standard_F16s\",16,32768,64, \"Standard_F16s_v2\",16,32768,32, \"Standard_F1s\",1,2048,4, \"Standard_F2\",2,4096,8, \"Standard_F2s\",2,4096,8, \"Standard_F2s_v2\",2,4096,4, \"Standard_F32s_v2\",32,65536,32, \"Standard_F4\",4,8192,16, \"Standard_F48s_v2\",48,98304,32, \"Standard_F4s\",4,8192,16, \"Standard_F4s_v2\",4,8192,8, \"Standard_F64s_v2\",64,131072,32, \"Standard_F72s_v2\",72,147456,32, \"Standard_F8\",8,16384,32, \"Standard_F8s\",8,16384,32, \"Standard_F8s_v2\",8,16384,16, \"Standard_HB120rs_v2\",120,480000,8, \"Standard_M128\",128,2048000,64, \"Standard_M128-32ms\",128,3891200,64, \"Standard_M128-64ms\",128,3891200,64, \"Standard_M128dms_v2\",128,3985408,64, \"Standard_M128ds_v2\",128,2097152,64, \"Standard_M128m\",128,3891200,64, \"Standard_M128ms\",128,3891200,64, \"Standard_M128ms_v2\",128,3985408,64, \"Standard_M128s\",128,2048000,64, \"Standard_M128s_v2\",128,2097152,64, \"Standard_M16-4ms\",16,448000,16, \"Standard_M16-8ms\",16,448000,16, \"Standard_M16ms\",16,448000,16, \"Standard_M192idms_v2\",192,4194304,64, \"Standard_M192ids_v2\",192,2097152,64, \"Standard_M192ims_v2\",192,4194304,64, \"Standard_M192is_v2\",192,2097152,64, \"Standard_M208ms_v2\",208,5836800,64, \"Standard_M208s_v2\",208,2918400,64, \"Standard_M32-16ms\",32,896000,32, \"Standard_M32-8ms\",32,896000,32, \"Standard_M32dms_v2\",32,896000,32, \"Standard_M32ls\",32,262144,32, \"Standard_M32ms\",32,896000,32, \"Standard_M32ms_v2\",32,896000,32, \"Standard_M32ts\",32,196608,32, \"Standard_M416-208ms_v2\",416,11673600,64, \"Standard_M416-208s_v2\",416,5836800,64, \"Standard_M416ms_v2\",416,11673600,64, \"Standard_M416s_v2\",416,5836800,64, \"Standard_M64\",64,1024000,64, \"Standard_M64-16ms\",64,1792000,64, \"Standard_M64-32ms\",64,1792000,64, \"Standard_M64dms_v2\",64,1835008,64, \"Standard_M64ds_v2\",64,1048576,64, \"Standard_M64ls\",64,524288,64, \"Standard_M64m\",64,1792000,64, \"Standard_M64ms\",64,1792000,64, \"Standard_M64ms_v2\",64,1835008,64, \"Standard_M64s\",64,1024000,64, \"Standard_M64s_v2\",64,1048576,64, \"Standard_M8-2ms\",8,224000,8, \"Standard_M8-4ms\",8,224000,8, \"Standard_M8ms\",8,224000,8, \"Standard_NV12s_v2\",12,229376,24, \"Standard_NV12s_v3\",12,114688,12, \"Standard_NV24s_v2\",24,458752,32, \"Standard_NV24s_v3\",24,229376,24, \"Standard_NV48s_v3\",48,458752,32, \"Standard_NV6s_v2\",6,114688,12 ];", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -420,7 +418,6 @@ "name": "VMPrice", "type": 1, "isGlobal": true, - "value": "let vmcost= datatable(skuname:string,sku:string,usagetype:string,unitPrice:double,reservationTerm:string) [ \"NVsv3_Type1\",\"NVsv3 Type1\",\"Reservation\",70761.0,\"3 Years\", \"NVsv3_Type1\",\"NVsv3 Type1\",\"Reservation\",34308.0,\"1 Year\", \"NVsv3_Type1\",\"NVsv3 Type1\",\"Consumption\",6.12,\"\", \"Standard_NV48s_v3\",\"NV48s v3\",\"Consumption\",5.563,\"\", \"Standard_NV48s_v3\",\"NV48s v3\",\"Reservation\",64328.0,\"3 Years\", \"Standard_NV48s_v3\",\"NV48s v3\",\"Reservation\",31190.0,\"1 Year\", \"Standard_NV24s_v3\",\"NV24s v3\",\"Consumption\",2.782,\"\", \"Standard_NV24s_v3\",\"NV24s v3\",\"Reservation\",15595.0,\"1 Year\", \"Standard_NV24s_v3\",\"NV24s v3\",\"Reservation\",32164.0,\"3 Years\", \"Standard_NV12s_v3\",\"NV12s v3\",\"Consumption\",1.391,\"\", \"Standard_NV12s_v3\",\"NV12s v3\",\"Reservation\",16082.0,\"3 Years\", \"Standard_NV12s_v3\",\"NV12s v3\",\"Reservation\",7797.0,\"1 Year\", \"Msv2MedMem Type1\",\"Msv2MedMem Type1\",\"Reservation\",95309.0,\"1 Year\", \"Msv2MedMem Type1\",\"Msv2MedMem Type1\",\"Consumption\",18.759,\"\", \"Msv2MedMem Type1\",\"Msv2MedMem Type1\",\"Reservation\",138033.0,\"3 Years\", \"Msv2_Type1\",\"Msv2 Type1\",\"Reservation\",529732.0,\"3 Years\", \"Msv2_Type1\",\"Msv2 Type1\",\"Reservation\",365768.0,\"1 Year\", \"Msv2_Type1\",\"Msv2 Type1\",\"Consumption\",71.99,\"\", \"Msmv2_Type1\",\"Msmv2 Type1\",\"Reservation\",731461.0,\"1 Year\", \"Msmv2_Type1\",\"Msmv2 Type1\",\"Reservation\",1059358.0,\"3 Years\", \"Msmv2_Type1\",\"Msmv2 Type1\",\"Consumption\",143.97,\"\", \"Msm_Type1\",\"Msm Type1\",\"Reservation\",196929.0,\"1 Year\", \"Msm_Type1\",\"Msm Type1\",\"Consumption\",38.759,\"\", \"Msm_Type1\",\"Msm Type1\",\"Reservation\",285207.0,\"3 Years\", \"Ms_Type1\",\"Ms Type1\",\"Consumption\",19.363,\"\", \"Ms_Type1\",\"Ms Type1\",\"Reservation\",98379.0,\"1 Year\", \"Ms_Type1\",\"Ms Type1\",\"Reservation\",142479.0,\"3 Years\", \"Msmv2MedMem Type1\",\"Mmsv2MedMem Type1\",\"Consumption\",38.143,\"\", \"Msmv2MedMem Type1\",\"Mmsv2MedMem Type1\",\"Reservation\",193796.0,\"1 Year\", \"Msmv2MedMem Type1\",\"Mmsv2MedMem Type1\",\"Reservation\",280671.0,\"3 Years\", \"Mdsv2MedMem_Type1\",\"Mdsv2MedMem Type1\",\"Reservation\",142530.0,\"3 Years\", \"Mdsv2MedMem_Type1\",\"Mdsv2MedMem Type1\",\"Reservation\",98414.0,\"1 Year\", \"Mdsv2MedMem_Type1\",\"Mdsv2MedMem Type1\",\"Consumption\",19.37,\"\", \"Mdsmv2MedMem _Type1\",\"Mdmsv2MedMem Type1\",\"Consumption\",38.754,\"\", \"Mdsmv2MedMem _Type1\",\"Mdmsv2MedMem Type1\",\"Reservation\",285166.0,\"3 Years\", \"Mdsmv2MedMem _Type1\",\"Mdmsv2MedMem Type1\",\"Reservation\",196901.0,\"1 Year\", \"Standard_M8ms\",\"M8ms\",\"Consumption\",2.028,\"\", \"Standard_M8ms\",\"M8ms\",\"Reservation\",10217.0,\"1 Year\", \"Standard_M8ms\",\"M8ms\",\"Reservation\",14912.0,\"3 Years\", \"Standard_M8-4ms\",\"M8-4ms\",\"Reservation\",10217.0,\"1 Year\", \"Standard_M8-4ms\",\"M8-4ms\",\"Reservation\",14912.0,\"3 Years\", \"Standard_M8-4ms\",\"M8-4ms\",\"Consumption\",2.028,\"\", \"Standard_M8-2ms\",\"M8-2ms\",\"Consumption\",2.028,\"\", \"Standard_M8-2ms\",\"M8-2ms\",\"Reservation\",14912.0,\"3 Years\", \"Standard_M8-2ms\",\"M8-2ms\",\"Reservation\",10217.0,\"1 Year\", \"Standard_M64s_v2\",\"M64s_v2\",\"Reservation\",43435.0,\"1 Year\", \"Standard_M64s_v2\",\"M64s_v2\",\"Reservation\",62912.0,\"3 Years\", \"Standard_M64s_v2\",\"M64s_v2\",\"Consumption\",8.525,\"\", \"Standard_M64s\",\"M64s\",\"Consumption\",8.803,\"\", \"Standard_M64s\",\"M64s\",\"Reservation\",44347.0,\"1 Year\", \"Standard_M64s\",\"M64s\",\"Reservation\",64722.0,\"3 Years\", \"Standard_M64ms_v2\",\"M64ms_v2\",\"Reservation\",98671.0,\"3 Years\", \"Standard_M64ms_v2\",\"M64ms_v2\",\"Reservation\",68123.0,\"1 Year\", \"Standard_M64ms_v2\",\"M64ms_v2\",\"Consumption\",13.371,\"\", \"Standard_M64ms\",\"M64ms\",\"Reservation\",88733.0,\"1 Year\", \"Standard_M64ms\",\"M64ms\",\"Reservation\",129503.0,\"3 Years\", \"Standard_M64ms\",\"M64ms\",\"Consumption\",13.645,\"\", \"Standard_M64m\",\"M64m\",\"Reservation\",88733.0,\"1 Year\", \"Standard_M64m\",\"M64m\",\"Reservation\",129503.0,\"3 Years\", \"Standard_M64m\",\"M64m\",\"Consumption\",13.645,\"\", \"Standard_M64ls\",\"M64ls\",\"Reservation\",48995.0,\"3 Years\", \"Standard_M64ls\",\"M64ls\",\"Reservation\",33571.0,\"1 Year\", \"Standard_M64ls\",\"M64ls\",\"Consumption\",6.664,\"\", \"M64ds_v2\",\"M64ds_v2\",\"Consumption\",8.803,\"\", \"M64ds_v2\",\"M64ds_v2\",\"Reservation\",64962.0,\"3 Years\", \"M64ds_v2\",\"M64ds_v2\",\"Reservation\",44850.0,\"1 Year\", \"M64dms_v2\",\"M64dms_v2\",\"Reservation\",69538.0,\"1 Year\", \"M64dms_v2\",\"M64dms_v2\",\"Reservation\",100721.0,\"3 Years\", \"M64dms_v2\",\"M64dms_v2\",\"Consumption\",13.649,\"\", \"Standard_M64-32ms\",\"M64-32ms\",\"Reservation\",129503.0,\"3 Years\", \"Standard_M64-32ms\",\"M64-32ms\",\"Reservation\",88733.0,\"1 Year\", \"Standard_M64-32ms\",\"M64-32ms\",\"Consumption\",13.645,\"\", \"Standard_M64-16ms\",\"M64-16ms\",\"Reservation\",88733.0,\"1 Year\", \"Standard_M64-16ms\",\"M64-16ms\",\"Reservation\",129503.0,\"3 Years\", \"Standard_M64-16ms\",\"M64-16ms\",\"Consumption\",13.645,\"\", \"Standard_M64\",\"M64\",\"Reservation\",64722.0,\"3 Years\", \"Standard_M64\",\"M64\",\"Consumption\",8.803,\"\", \"Standard_M64\",\"M64\",\"Reservation\",44347.0,\"1 Year\", \"Standard_M416s_v2\",\"M416s v2\",\"Reservation\",482894.0,\"3 Years\", \"Standard_M416s_v2\",\"M416s v2\",\"Consumption\",65.446,\"\", \"Standard_M416s_v2\",\"M416s v2\",\"Reservation\",333427.0,\"1 Year\", \"Standard_M416ms_v2\",\"M416ms v2\",\"Consumption\",130.88,\"\", \"Standard_M416ms_v2\",\"M416ms v2\",\"Reservation\",666787.0,\"1 Year\", \"Standard_M416ms_v2\",\"M416ms v2\",\"Reservation\",965691.0,\"3 Years\", \"Standard_M416is_v2\",\"M416is v2\",\"Reservation\",333427.0,\"1 Year\", \"Standard_M416is_v2\",\"M416is v2\",\"Consumption\",65.446,\"\", \"Standard_M416is_v2\",\"M416is v2\",\"Reservation\",482894.0,\"3 Years\", \"Standard_M416-208s_v2\",\"M416-208s_v2\",\"Reservation\",333427.0,\"1 Year\", \"Standard_M416-208s_v2\",\"M416-208s_v2\",\"Consumption\",65.446,\"\", \"Standard_M416-208s_v2\",\"M416-208s_v2\",\"Reservation\",482894.0,\"3 Years\", \"Standard_M416-208ms_v2\",\"M416-208ms_v2\",\"Reservation\",666787.0,\"1 Year\", \"Standard_M416-208ms_v2\",\"M416-208ms_v2\",\"Consumption\",130.88,\"\", \"Standard_M416-208ms_v2\",\"M416-208ms_v2\",\"Reservation\",965691.0,\"3 Years\", \"Standard_M416-104s_v2\",\"M416-104s_v2\",\"Consumption\",65.446,\"\", \"Standard_M416-104s_v2\",\"M416-104s_v2\",\"Reservation\",333427.0,\"1 Year\", \"Standard_M416-104s_v2\",\"M416-104s_v2\",\"Reservation\",482894.0,\"3 Years\", \"Standard_M416-104ms_v2\",\"M416-104ms_v2\",\"Consumption\",130.88,\"\", \"Standard_M416-104ms_v2\",\"M416-104ms_v2\",\"Reservation\",666787.0,\"1 Year\", \"Standard_M416-104ms_v2\",\"M416-104ms_v2\",\"Reservation\",965691.0,\"3 Years\", \"Standard_M32ts\",\"M32ts\",\"Reservation\",16780.0,\"1 Year\", \"Standard_M32ts\",\"M32ts\",\"Consumption\",3.331,\"\", \"Standard_M32ts\",\"M32ts\",\"Reservation\",24490.0,\"3 Years\", \"Standard_M32s\",\"M32s\",\"Reservation\",46331.0,\"3 Years\", \"Standard_M32s\",\"M32s\",\"Consumption\",4.4022,\"\", \"Standard_M32s\",\"M32s\",\"Reservation\",31745.0,\"1 Year\", \"Standard_M32ms_v2\",\"M32ms_v2\",\"Consumption\",7.974,\"\", \"Standard_M32ms_v2\",\"M32ms_v2\",\"Reservation\",40625.0,\"1 Year\", \"Standard_M32ms_v2\",\"M32ms_v2\",\"Reservation\",58842.0,\"3 Years\", \"Standard_M32ms\",\"M32ms\",\"Consumption\",8.113,\"\", \"Standard_M32ms\",\"M32ms\",\"Reservation\",40869.0,\"1 Year\", \"Standard_M32ms\",\"M32ms\",\"Reservation\",59647.0,\"3 Years\", \"Standard_M32ls\",\"M32ls\",\"Reservation\",17808.0,\"1 Year\", \"Standard_M32ls\",\"M32ls\",\"Consumption\",3.535,\"\", \"Standard_M32ls\",\"M32ls\",\"Reservation\",25990.0,\"3 Years\", \"M32dms_v2\",\"M32dms_v2\",\"Reservation\",59867.0,\"3 Years\", \"M32dms_v2\",\"M32dms_v2\",\"Consumption\",8.113,\"\", \"M32dms_v2\",\"M32dms_v2\",\"Reservation\",41333.0,\"1 Year\", \"Standard_M32-8ms\",\"M32-8ms\",\"Reservation\",59647.0,\"3 Years\", \"Standard_M32-8ms\",\"M32-8ms\",\"Consumption\",8.113,\"\", \"Standard_M32-8ms\",\"M32-8ms\",\"Reservation\",40869.0,\"1 Year\", \"Standard_M32-16ms\",\"M32-16ms\",\"Reservation\",40869.0,\"1 Year\", \"Standard_M32-16ms\",\"M32-16ms\",\"Reservation\",59647.0,\"3 Years\", \"Standard_M32-16ms\",\"M32-16ms\",\"Consumption\",8.113,\"\", \"Standard_M208s_v2\",\"M208s v2\",\"Consumption\",29.449,\"\", \"Standard_M208s_v2\",\"M208s v2\",\"Reservation\",150035.0,\"1 Year\", \"Standard_M208s_v2\",\"M208s v2\",\"Reservation\",217293.0,\"3 Years\", \"Standard_M208ms_v2\",\"M208ms v2\",\"Reservation\",434585.0,\"3 Years\", \"Standard_M208ms_v2\",\"M208ms v2\",\"Consumption\",58.898,\"\", \"Standard_M208ms_v2\",\"M208ms v2\",\"Reservation\",300071.0,\"1 Year\", \"Standard_M208-52s_v2\",\"M208-52s_v2\",\"Reservation\",217293.0,\"3 Years\", \"Standard_M208-52s_v2\",\"M208-52s_v2\",\"Reservation\",150035.0,\"1 Year\", \"Standard_M208-52s_v2\",\"M208-52s_v2\",\"Consumption\",29.449,\"\", \"Standard_M208-52ms_v2\",\"M208-52ms_v2\",\"Reservation\",434585.0,\"3 Years\", \"Standard_M208-52ms_v2\",\"M208-52ms_v2\",\"Consumption\",58.898,\"\", \"Standard_M208-52ms_v2\",\"M208-52ms_v2\",\"Reservation\",300071.0,\"1 Year\", \"Standard_M208-104s_v2\",\"M208-104s_v2\",\"Reservation\",150035.0,\"1 Year\", \"Standard_M208-104s_v2\",\"M208-104s_v2\",\"Consumption\",29.449,\"\", \"Standard_M208-104s_v2\",\"M208-104s_v2\",\"Reservation\",217293.0,\"3 Years\", \"Standard_M208-104ms_v2\",\"M208-104ms_v2\",\"Reservation\",434585.0,\"3 Years\", \"Standard_M208-104ms_v2\",\"M208-104ms_v2\",\"Reservation\",300071.0,\"1 Year\", \"Standard_M208-104ms_v2\",\"M208-104ms_v2\",\"Consumption\",58.898,\"\", \"Standard_M192is_v2\",\"M192is_v2\",\"Reservation\",152066.0,\"3 Years\", \"Standard_M192is_v2\",\"M192is_v2\",\"Reservation\",104987.0,\"1 Year\", \"Standard_M192is_v2\",\"M192is_v2\",\"Consumption\",20.607,\"\", \"Standard_M192ims_v2\",\"M192ims_v2\",\"Reservation\",212804.0,\"1 Year\", \"Standard_M192ims_v2\",\"M192ims_v2\",\"Consumption\",41.769,\"\", \"Standard_M192ims_v2\",\"M192ims_v2\",\"Reservation\",308229.0,\"3 Years\", \"M192ids_v2\",\"M192ids_v2\",\"Consumption\",21.162,\"\", \"M192ids_v2\",\"M192ids_v2\",\"Reservation\",156163.0,\"3 Years\", \"M192ids_v2\",\"M192ids_v2\",\"Reservation\",107816.0,\"1 Year\", \"M192idms_v2\",\"M192idms_v2\",\"Reservation\",215634.0,\"1 Year\", \"M192idms_v2\",\"M192idms_v2\",\"Consumption\",42.324,\"\", \"M192idms_v2\",\"M192idms_v2\",\"Reservation\",312328.0,\"3 Years\", \"Standard_M16s\",\"M16s\",\"Reservation\",23166.0,\"3 Years\", \"Standard_M16s\",\"M16s\",\"Reservation\",15873.0,\"1 Year\", \"Standard_M16s\",\"M16s\",\"Consumption\",3.151,\"\", \"Standard_M16ms\",\"M16ms\",\"Reservation\",20434.0,\"1 Year\", \"Standard_M16ms\",\"M16ms\",\"Consumption\",4.056,\"\", \"Standard_M16ms\",\"M16ms\",\"Reservation\",29823.0,\"3 Years\", \"Standard_M16-8ms\",\"M16-8ms\",\"Reservation\",29823.0,\"3 Years\", \"Standard_M16-8ms\",\"M16-8ms\",\"Consumption\",4.056,\"\", \"Standard_M16-8ms\",\"M16-8ms\",\"Reservation\",20434.0,\"1 Year\", \"Standard_M16-4ms\",\"M16-4ms\",\"Reservation\",20434.0,\"1 Year\", \"Standard_M16-4ms\",\"M16-4ms\",\"Reservation\",29823.0,\"3 Years\", \"Standard_M16-4ms\",\"M16-4ms\",\"Consumption\",4.056,\"\", \"Standard_M128s_v2\",\"M128s_v2\",\"Reservation\",125844.0,\"3 Years\", \"Standard_M128s_v2\",\"M128s_v2\",\"Consumption\",17.053,\"\", \"Standard_M128s_v2\",\"M128s_v2\",\"Reservation\",86883.0,\"1 Year\", \"Standard_M128s\",\"M128s\",\"Reservation\",129444.0,\"3 Years\", \"Standard_M128s\",\"M128s\",\"Reservation\",88693.0,\"1 Year\", \"Standard_M128s\",\"M128s\",\"Consumption\",17.606,\"\", \"Standard_M128ms_v2\",\"M128ms_v2\",\"Reservation\",255884.0,\"3 Years\", \"Standard_M128ms_v2\",\"M128ms_v2\",\"Reservation\",176664.0,\"1 Year\", \"Standard_M128ms_v2\",\"M128ms_v2\",\"Consumption\",34.675,\"\", \"Standard_M128ms\",\"M128ms\",\"Reservation\",259005.0,\"3 Years\", \"Standard_M128ms\",\"M128ms\",\"Consumption\",35.228,\"\", \"Standard_M128ms\",\"M128ms\",\"Reservation\",177466.0,\"1 Year\", \"Standard_M128m\",\"M128m\",\"Reservation\",259005.0,\"3 Years\", \"Standard_M128m\",\"M128m\",\"Reservation\",177466.0,\"1 Year\", \"Standard_M128m\",\"M128m\",\"Consumption\",35.228,\"\", \"M128ds_v2\",\"M128ds_v2\",\"Reservation\",129943.0,\"3 Years\", \"M128ds_v2\",\"M128ds_v2\",\"Consumption\",17.609,\"\", \"M128ds_v2\",\"M128ds_v2\",\"Reservation\",89714.0,\"1 Year\", \"M128dms_v2\",\"M128dms_v2\",\"Reservation\",259983.0,\"3 Years\", \"M128dms_v2\",\"M128dms_v2\",\"Consumption\",35.231,\"\", \"M128dms_v2\",\"M128dms_v2\",\"Reservation\",179495.0,\"1 Year\", \"Standard_M128-64ms\",\"M128-64ms\",\"Consumption\",35.228,\"\", \"Standard_M128-64ms\",\"M128-64ms\",\"Reservation\",259005.0,\"3 Years\", \"Standard_M128-64ms\",\"M128-64ms\",\"Reservation\",177466.0,\"1 Year\", \"Standard_M128-32ms\",\"M128-32ms\",\"Reservation\",177466.0,\"1 Year\", \"Standard_M128-32ms\",\"M128-32ms\",\"Consumption\",35.228,\"\", \"Standard_M128-32ms\",\"M128-32ms\",\"Reservation\",259005.0,\"3 Years\", \"Standard_M128\",\"M128\",\"Reservation\",88693.0,\"1 Year\", \"Standard_M128\",\"M128\",\"Reservation\",129444.0,\"3 Years\", \"Standard_M128\",\"M128\",\"Consumption\",17.606,\"\", \"Standard_HB120rs_v2\",\"HB120rs v2\",\"Reservation\",62441.0,\"3 Years\", \"Standard_HB120rs_v2\",\"HB120rs v2\",\"Reservation\",69372.0,\"5 Years\", \"Standard_HB120rs_v2\",\"HB120rs v2\",\"Consumption\",4.752,\"\", \"Standard_HB120rs_v2\",\"HB120rs v2\",\"Reservation\",31221.0,\"1 Year\", \"Fsv2 Type3\",\"Fsv2 Type3\",\"Reservation\",26675.0,\"1 Year\", \"Fsv2 Type3\",\"Fsv2 Type3\",\"Reservation\",50185.0,\"3 Years\", \"Fsv2 Type3\",\"Fsv2 Type3\",\"Consumption\",5.161,\"\", \"Fsv2_Type2\",\"Fsv2 Type2\",\"Consumption\",4.039,\"\", \"Fsv2_Type2\",\"Fsv2 Type2\",\"Reservation\",44774.0,\"3 Years\", \"Fsv2_Type2\",\"Fsv2 Type2\",\"Reservation\",22780.0,\"1 Year\", \"Standard_F8s_v2\",\"F8s v2\",\"Reservation\",2106.0,\"1 Year\", \"Standard_F8s_v2\",\"F8s v2\",\"Consumption\",0.408,\"\", \"Standard_F8s_v2\",\"F8s v2\",\"Reservation\",3849.0,\"3 Years\", \"Standard_F8s\",\"F8s\",\"Reservation\",4944.0,\"3 Years\", \"Standard_F8s\",\"F8s\",\"Consumption\",0.478,\"\", \"Standard_F8s\",\"F8s\",\"Reservation\",2616.0,\"1 Year\", \"Standard_F8\",\"F8\",\"Consumption\",0.478,\"\", \"Standard_F8\",\"F8\",\"Reservation\",4944.0,\"3 Years\", \"Standard_F8\",\"F8\",\"Reservation\",2616.0,\"1 Year\", \"Standard_F72s_v2\",\"F72s v2\",\"Reservation\",34643.0,\"3 Years\", \"Standard_F72s_v2\",\"F72s v2\",\"Reservation\",18957.0,\"1 Year\", \"Standard_F72s_v2\",\"F72s v2\",\"Consumption\",3.672,\"\", \"Standard_F64s_v2\",\"F64s v2\",\"Reservation\",30794.0,\"3 Years\", \"Standard_F64s_v2\",\"F64s v2\",\"Consumption\",3.264,\"\", \"Standard_F64s_v2\",\"F64s v2\",\"Reservation\",16851.0,\"1 Year\", \"Standard_F4s_v2\",\"F4s v2\",\"Consumption\",0.204,\"\", \"Standard_F4s_v2\",\"F4s v2\",\"Reservation\",1925.0,\"3 Years\", \"Standard_F4s_v2\",\"F4s v2\",\"Reservation\",1053.0,\"1 Year\", \"Standard_F4s\",\"F4s\",\"Consumption\",0.239,\"\", \"Standard_F4s\",\"F4s\",\"Reservation\",1308.0,\"1 Year\", \"Standard_F4s\",\"F4s\",\"Reservation\",2472.0,\"3 Years\", \"Standard_F48s_v2\",\"F48s v2\",\"Reservation\",22661.0,\"3 Years\", \"Standard_F48s_v2\",\"F48s v2\",\"Reservation\",12401.0,\"1 Year\", \"Standard_F48s_v2\",\"F48s v2\",\"Consumption\",2.448,\"\", \"Standard_F4\",\"F4\",\"Consumption\",0.239,\"\", \"Standard_F4\",\"F4\",\"Reservation\",1308.0,\"1 Year\", \"Standard_F4\",\"F4\",\"Reservation\",2472.0,\"3 Years\", \"Standard_F32s_v2\",\"F32s v2\",\"Reservation\",8425.0,\"1 Year\", \"Standard_F32s_v2\",\"F32s v2\",\"Consumption\",1.632,\"\", \"Standard_F32s_v2\",\"F32s v2\",\"Reservation\",15397.0,\"3 Years\", \"Standard_F2s_v2\",\"F2s v2\",\"Reservation\",962.0,\"3 Years\", \"Standard_F2s_v2\",\"F2s v2\",\"Reservation\",527.0,\"1 Year\", \"Standard_F2s_v2\",\"F2s v2\",\"Consumption\",0.102,\"\", \"Standard_F2s\",\"F2s\",\"Reservation\",654.0,\"1 Year\", \"Standard_F2s\",\"F2s\",\"Reservation\",1236.0,\"3 Years\", \"Standard_F2s\",\"F2s\",\"Consumption\",0.119,\"\", \"Standard_F2\",\"F2\",\"Consumption\",0.119,\"\", \"Standard_F2\",\"F2\",\"Reservation\",1236.0,\"3 Years\", \"Standard_F2\",\"F2\",\"Reservation\",654.0,\"1 Year\", \"Standard_F1s\",\"F1s\",\"Consumption\",0.0597,\"\", \"Standard_F16s_v2\",\"F16s v2\",\"Reservation\",4213.0,\"1 Year\", \"Standard_F16s_v2\",\"F16s v2\",\"Reservation\",7698.0,\"3 Years\", \"Standard_F16s_v2\",\"F16s v2\",\"Consumption\",0.816,\"\", \"Standard_F16s\",\"F16s\",\"Reservation\",5231.0,\"1 Year\", \"Standard_F16s\",\"F16s\",\"Reservation\",9888.0,\"3 Years\", \"Standard_F16s\",\"F16s\",\"Consumption\",0.955,\"\", \"Standard_F16\",\"F16\",\"Reservation\",9888.0,\"3 Years\", \"Standard_F16\",\"F16\",\"Consumption\",0.955,\"\", \"Standard_F16\",\"F16\",\"Reservation\",5231.0,\"1 Year\", \"Standard_F1\",\"F1\",\"Consumption\",0.0597,\"\", \"Esv4_Type1\",\"Esv4 Type1\",\"Reservation\",73081.0,\"3 Years\", \"Esv4_Type1\",\"Esv4 Type1\",\"Consumption\",7.318,\"\", \"Esv4_Type1\",\"Esv4 Type1\",\"Reservation\",37823.0,\"1 Year\", \"Esv3_Type3\",\"Esv3 Type3\",\"Consumption\",6.653,\"\", \"Esv3_Type3\",\"Esv3 Type3\",\"Reservation\",34329.0,\"1 Year\", \"Esv3_Type3\",\"Esv3 Type3\",\"Reservation\",68157.0,\"3 Years\", \"Esv3_Type2\",\"Esv3 Type2\",\"Reservation\",52822.0,\"3 Years\", \"Esv3_Type2\",\"Esv3 Type2\",\"Reservation\",26605.0,\"1 Year\", \"Esv3_Type2\",\"Esv3 Type2\",\"Consumption\",5.156,\"\", \"Esv3_Type1\",\"Esv3 Type1\",\"Reservation\",24030.0,\"1 Year\", \"Esv3_Type1\",\"Esv3 Type1\",\"Consumption\",4.657,\"\", \"Esv3_Type1\",\"Esv3 Type1\",\"Reservation\",47710.0,\"3 Years\", \"Edsv4_Type 1\",\"Edsv4 Type 1\",\"Consumption\",8.364,\"\", \"Edsv4_Type 1\",\"Edsv4 Type 1\",\"Reservation\",43226.0,\"1 Year\", \"Edsv4_Type 1\",\"Edsv4 Type 1\",\"Reservation\",83521.0,\"3 Years\", \"Standard_E8s_v4\",\"E8s v4\",\"Reservation\",3438.0,\"1 Year\", \"Standard_E8s_v4\",\"E8s v4\",\"Reservation\",6644.0,\"3 Years\", \"Standard_E8s_v4\",\"E8s v4\",\"Consumption\",0.665,\"\", \"Standard_E8s_v3\",\"E8s v3\",\"Reservation\",6275.0,\"3 Years\", \"Standard_E8s_v3\",\"E8s v3\",\"Reservation\",3115.0,\"1 Year\", \"Standard_E8s_v3\",\"E8s v3\",\"Consumption\",0.605,\"\", \"Standard_E8ds_v4\",\"E8ds v4\",\"Consumption\",0.76,\"\", \"Standard_E8ds_v4\",\"E8ds v4\",\"Reservation\",3930.0,\"1 Year\", \"Standard_E8ds_v4\",\"E8ds v4\",\"Reservation\",7593.0,\"3 Years\", \"Standard_E8d_v4\",\"E8d v4\",\"Reservation\",7593.0,\"3 Years\", \"Standard_E8d_v4\",\"E8d v4\",\"Reservation\",3930.0,\"1 Year\", \"Standard_E8d_v4\",\"E8d v4\",\"Consumption\",0.76,\"\", \"Standard_E8-4s_v4\",\"E8-4s v4\",\"Consumption\",0.665,\"\", \"Standard_E8-4s_v4\",\"E8-4s v4\",\"Reservation\",3438.0,\"1 Year\", \"Standard_E8-4s_v4\",\"E8-4s v4\",\"Reservation\",6644.0,\"3 Years\", \"Standard_E8-4s_v3\",\"E8-4s v3\",\"Reservation\",3115.0,\"1 Year\", \"Standard_E8-4s_v3\",\"E8-4s v3\",\"Reservation\",6275.0,\"3 Years\", \"Standard_E8-4s_v3\",\"E8-4s v3\",\"Consumption\",0.605,\"\", \"Standard_E8-4ds_v4\",\"E8-4ds v4\",\"Reservation\",3930.0,\"1 Year\", \"Standard_E8-4ds_v4\",\"E8-4ds v4\",\"Reservation\",7593.0,\"3 Years\", \"Standard_E8-4ds_v4\",\"E8-4ds v4\",\"Consumption\",0.76,\"\", \"Standard_E8-2s_v4\",\"E8-2s v4\",\"Reservation\",3438.0,\"1 Year\", \"Standard_E8-2s_v4\",\"E8-2s v4\",\"Reservation\",6644.0,\"3 Years\", \"Standard_E8-2s_v4\",\"E8-2s v4\",\"Consumption\",0.665,\"\", \"Standard_E8-2s_v3\",\"E8-2s v3\",\"Reservation\",6275.0,\"3 Years\", \"Standard_E8-2s_v3\",\"E8-2s v3\",\"Reservation\",3115.0,\"1 Year\", \"Standard_E8-2s_v3\",\"E8-2s v3\",\"Consumption\",0.605,\"\", \"Standard_E8-2ds_v4\",\"E8-2ds v4\",\"Reservation\",3930.0,\"1 Year\", \"Standard_E8-2ds_v4\",\"E8-2ds v4\",\"Consumption\",0.76,\"\", \"Standard_E8-2ds_v4\",\"E8-2ds v4\",\"Reservation\",7593.0,\"3 Years\", \"Standard_E80is_v4\",\"E80is v4\",\"Reservation\",66438.0,\"3 Years\", \"Standard_E80is_v4\",\"E80is v4\",\"Reservation\",34384.0,\"1 Year\", \"Standard_E80is_v4\",\"E80is v4\",\"Consumption\",6.653,\"\", \"Standard_E80ids_v4\",\"E80ids v4\",\"Reservation\",75929.0,\"3 Years\", \"Standard_E80ids_v4\",\"E80ids v4\",\"Consumption\",7.603,\"\", \"Standard_E80ids_v4\",\"E80ids v4\",\"Reservation\",39296.0,\"1 Year\", \"Standard_E8_v4\",\"E8 v4\",\"Consumption\",0.665,\"\", \"Standard_E8_v4\",\"E8 v4\",\"Reservation\",6644.0,\"3 Years\", \"Standard_E8_v4\",\"E8 v4\",\"Reservation\",3438.0,\"1 Year\", \"Standard_E8_v3\",\"E8 v3\",\"Reservation\",3115.0,\"1 Year\", \"Standard_E8_v3\",\"E8 v3\",\"Reservation\",6275.0,\"3 Years\", \"Standard_E8_v3\",\"E8 v3\",\"Consumption\",0.605,\"\", \"Standard_E64s_v4\",\"E64s v4\",\"Consumption\",5.322,\"\", \"Standard_E64s_v4\",\"E64s v4\",\"Reservation\",27507.0,\"1 Year\", \"Standard_E64s_v4\",\"E64s v4\",\"Reservation\",53150.0,\"3 Years\", \"Standard_E64s_v3\",\"E64s v3\",\"Reservation\",24922.0,\"1 Year\", \"Standard_E64s_v3\",\"E64s v3\",\"Reservation\",50200.0,\"3 Years\", \"Standard_E64s_v3\",\"E64s v3\",\"Consumption\",4.355,\"\", \"Standard_E64is_v3\",\"E64is v3\",\"Consumption\",4.376,\"\", \"Standard_E64i_v3\",\"E64i v3\",\"Consumption\",4.376,\"\", \"Standard_E64ds_v4\",\"E64ds v4\",\"Reservation\",60743.0,\"3 Years\", \"Standard_E64ds_v4\",\"E64ds v4\",\"Consumption\",6.083,\"\", \"Standard_E64ds_v4\",\"E64ds v4\",\"Reservation\",31437.0,\"1 Year\", \"Standard_E64d_v4\",\"E64d v4\",\"Reservation\",60743.0,\"3 Years\", \"Standard_E64d_v4\",\"E64d v4\",\"Consumption\",6.083,\"\", \"Standard_E64d_v4\",\"E64d v4\",\"Reservation\",31437.0,\"1 Year\", \"Standard_E64-32s_v4\",\"E64-32s v4\",\"Reservation\",27507.0,\"1 Year\", \"Standard_E64-32s_v4\",\"E64-32s v4\",\"Consumption\",5.322,\"\", \"Standard_E64-32s_v4\",\"E64-32s v4\",\"Reservation\",53150.0,\"3 Years\", \"Standard_E64-32s_v3\",\"E64-32s v3\",\"Reservation\",50200.0,\"3 Years\", \"Standard_E64-32s_v3\",\"E64-32s v3\",\"Reservation\",24922.0,\"1 Year\", \"Standard_E64-32s_v3\",\"E64-32s v3\",\"Consumption\",4.355,\"\", \"Standard_E64-32ds_v4\",\"E64-32ds v4\",\"Consumption\",6.083,\"\", \"Standard_E64-32ds_v4\",\"E64-32ds v4\",\"Reservation\",31437.0,\"1 Year\", \"Standard_E64-32ds_v4\",\"E64-32ds v4\",\"Reservation\",60743.0,\"3 Years\", \"Standard_E64-16s_v4\",\"E64-16s v4\",\"Consumption\",5.322,\"\", \"Standard_E64-16s_v4\",\"E64-16s v4\",\"Reservation\",27507.0,\"1 Year\", \"Standard_E64-16s_v4\",\"E64-16s v4\",\"Reservation\",53150.0,\"3 Years\", \"Standard_E64-16s_v3\",\"E64-16s v3\",\"Reservation\",50200.0,\"3 Years\", \"Standard_E64-16s_v3\",\"E64-16s v3\",\"Reservation\",24922.0,\"1 Year\", \"Standard_E64-16s_v3\",\"E64-16s v3\",\"Consumption\",4.355,\"\", \"Standard_E64-16ds_v4\",\"E64-16ds v4\",\"Reservation\",31437.0,\"1 Year\", \"Standard_E64-16ds_v4\",\"E64-16ds v4\",\"Consumption\",6.083,\"\", \"Standard_E64-16ds_v4\",\"E64-16ds v4\",\"Reservation\",60743.0,\"3 Years\", \"Standard_E64_v4\",\"E64 v4\",\"Consumption\",5.322,\"\", \"Standard_E64_v4\",\"E64 v4\",\"Reservation\",53150.0,\"3 Years\", \"Standard_E64_v4\",\"E64 v4\",\"Reservation\",27507.0,\"1 Year\", \"Standard_E64_v3\",\"E64 v3\",\"Reservation\",50200.0,\"3 Years\", \"Standard_E64_v3\",\"E64 v3\",\"Reservation\",24922.0,\"1 Year\", \"Standard_E64_v3\",\"E64 v3\",\"Consumption\",4.355,\"\", \"Standard_E4s_v4\",\"E4s v4\",\"Reservation\",3322.0,\"3 Years\", \"Standard_E4s_v4\",\"E4s v4\",\"Consumption\",0.333,\"\", \"Standard_E4s_v4\",\"E4s v4\",\"Reservation\",1719.0,\"1 Year\", \"Standard_E4s_v3\",\"E4s v3\",\"Reservation\",3138.0,\"3 Years\", \"Standard_E4s_v3\",\"E4s v3\",\"Consumption\",0.302,\"\", \"Standard_E4s_v3\",\"E4s v3\",\"Reservation\",1558.0,\"1 Year\", \"Standard_E4ds_v4\",\"E4ds v4\",\"Reservation\",3796.0,\"3 Years\", \"Standard_E4ds_v4\",\"E4ds v4\",\"Consumption\",0.38,\"\", \"Standard_E4ds_v4\",\"E4ds v4\",\"Reservation\",1965.0,\"1 Year\", \"Standard_E4d_v4\",\"E4d v4\",\"Reservation\",1965.0,\"1 Year\", \"Standard_E4d_v4\",\"E4d v4\",\"Reservation\",3796.0,\"3 Years\", \"Standard_E4d_v4\",\"E4d v4\",\"Consumption\",0.38,\"\", \"Standard_E48s_v4\",\"E48s v4\",\"Consumption\",3.992,\"\", \"Standard_E48s_v4\",\"E48s v4\",\"Reservation\",20631.0,\"1 Year\", \"Standard_E48s_v4\",\"E48s v4\",\"Reservation\",39863.0,\"3 Years\", \"Standard_E48s_v3\",\"E48s v3\",\"Consumption\",3.629,\"\", \"Standard_E48s_v3\",\"E48s v3\",\"Reservation\",37650.0,\"3 Years\", \"Standard_E48s_v3\",\"E48s v3\",\"Reservation\",18692.0,\"1 Year\", \"Standard_E48ds_v4\",\"E48ds v4\",\"Consumption\",4.562,\"\", \"Standard_E48ds_v4\",\"E48ds v4\",\"Reservation\",23578.0,\"1 Year\", \"Standard_E48ds_v4\",\"E48ds v4\",\"Reservation\",45557.0,\"3 Years\", \"Standard_E48d_v4\",\"E48d v4\",\"Reservation\",23578.0,\"1 Year\", \"Standard_E48d_v4\",\"E48d v4\",\"Reservation\",45557.0,\"3 Years\", \"Standard_E48d_v4\",\"E48d v4\",\"Consumption\",4.562,\"\", \"Standard_E48_v4\",\"E48 v4\",\"Reservation\",39863.0,\"3 Years\", \"Standard_E48_v4\",\"E48 v4\",\"Reservation\",20631.0,\"1 Year\", \"Standard_E48_v4\",\"E48 v4\",\"Consumption\",3.992,\"\", \"Standard_E48_v3\",\"E48 v3\",\"Consumption\",3.629,\"\", \"Standard_E48_v3\",\"E48 v3\",\"Reservation\",37650.0,\"3 Years\", \"Standard_E48_v3\",\"E48 v3\",\"Reservation\",18692.0,\"1 Year\", \"Standard_E4-2s_v4\",\"E4-2s v4\",\"Consumption\",0.333,\"\", \"Standard_E4-2s_v4\",\"E4-2s v4\",\"Reservation\",1719.0,\"1 Year\", \"Standard_E4-2s_v4\",\"E4-2s v4\",\"Reservation\",3322.0,\"3 Years\", \"Standard_E4-2s_v3\",\"E4-2s v3\",\"Reservation\",1558.0,\"1 Year\", \"Standard_E4-2s_v3\",\"E4-2s v3\",\"Reservation\",3138.0,\"3 Years\", \"Standard_E4-2s_v3\",\"E4-2s v3\",\"Consumption\",0.302,\"\", \"Standard_E4-2ds_v4\",\"E4-2ds v4\",\"Consumption\",0.38,\"\", \"Standard_E4-2ds_v4\",\"E4-2ds v4\",\"Reservation\",1965.0,\"1 Year\", \"Standard_E4-2ds_v4\",\"E4-2ds v4\",\"Reservation\",3796.0,\"3 Years\", \"Standard_E4_v4\",\"E4 v4\",\"Reservation\",1719.0,\"1 Year\", \"Standard_E4_v4\",\"E4 v4\",\"Consumption\",0.333,\"\", \"Standard_E4_v4\",\"E4 v4\",\"Reservation\",3322.0,\"3 Years\", \"Standard_E4_v3\",\"E4 v3\",\"Reservation\",3138.0,\"3 Years\", \"Standard_E4_v3\",\"E4 v3\",\"Consumption\",0.302,\"\", \"Standard_E4_v3\",\"E4 v3\",\"Reservation\",1558.0,\"1 Year\", \"Standard_E32s_v4\",\"E32s v4\",\"Consumption\",2.661,\"\", \"Standard_E32s_v4\",\"E32s v4\",\"Reservation\",13754.0,\"1 Year\", \"Standard_E32s_v4\",\"E32s v4\",\"Reservation\",26575.0,\"3 Years\", \"Standard_E32s_v3\",\"E32s v3\",\"Reservation\",25100.0,\"3 Years\", \"Standard_E32s_v3\",\"E32s v3\",\"Consumption\",2.419,\"\", \"Standard_E32s_v3\",\"E32s v3\",\"Reservation\",12461.0,\"1 Year\", \"Standard_E32ds_v4\",\"E32ds v4\",\"Consumption\",3.041,\"\", \"Standard_E32ds_v4\",\"E32ds v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_E32ds_v4\",\"E32ds v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_E32d_v4\",\"E32d v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_E32d_v4\",\"E32d v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_E32d_v4\",\"E32d v4\",\"Consumption\",3.041,\"\", \"Standard_E32-8s_v4\",\"E32-8s v4\",\"Reservation\",26575.0,\"3 Years\", \"Standard_E32-8s_v4\",\"E32-8s v4\",\"Consumption\",2.661,\"\", \"Standard_E32-8s_v4\",\"E32-8s v4\",\"Reservation\",13754.0,\"1 Year\", \"Standard_E32-8s_v3\",\"E32-8s v3\",\"Consumption\",2.419,\"\", \"Standard_E32-8s_v3\",\"E32-8s v3\",\"Reservation\",12461.0,\"1 Year\", \"Standard_E32-8s_v3\",\"E32-8s v3\",\"Reservation\",25100.0,\"3 Years\", \"Standard_E32-8ds_v4\",\"E32-8ds v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_E32-8ds_v4\",\"E32-8ds v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_E32-8ds_v4\",\"E32-8ds v4\",\"Consumption\",3.041,\"\", \"Standard_E32-16s_v4\",\"E32-16s v4\",\"Reservation\",13754.0,\"1 Year\", \"Standard_E32-16s_v4\",\"E32-16s v4\",\"Consumption\",2.661,\"\", \"Standard_E32-16s_v4\",\"E32-16s v4\",\"Reservation\",26575.0,\"3 Years\", \"Standard_E32-16s_v3\",\"E32-16s v3\",\"Reservation\",25100.0,\"3 Years\", \"Standard_E32-16s_v3\",\"E32-16s v3\",\"Reservation\",12461.0,\"1 Year\", \"Standard_E32-16s_v3\",\"E32-16s v3\",\"Consumption\",2.419,\"\", \"Standard_E32-16ds_v4\",\"E32-16ds v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_E32-16ds_v4\",\"E32-16ds v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_E32-16ds_v4\",\"E32-16ds v4\",\"Consumption\",3.041,\"\", \"Standard_E32_v4\",\"E32 v4\",\"Reservation\",13754.0,\"1 Year\", \"Standard_E32_v4\",\"E32 v4\",\"Consumption\",2.661,\"\", \"Standard_E32_v4\",\"E32 v4\",\"Reservation\",26575.0,\"3 Years\", \"Standard_E32_v3\",\"E32 v3\",\"Reservation\",12461.0,\"1 Year\", \"Standard_E32_v3\",\"E32 v3\",\"Consumption\",2.419,\"\", \"Standard_E32_v3\",\"E32 v3\",\"Reservation\",25100.0,\"3 Years\", \"Standard_E2s_v4\",\"E2s v4\",\"Reservation\",1661.0,\"3 Years\", \"Standard_E2s_v4\",\"E2s v4\",\"Consumption\",0.166,\"\", \"Standard_E2s_v4\",\"E2s v4\",\"Reservation\",860.0,\"1 Year\", \"Standard_E2s_v3\",\"E2s v3\",\"Reservation\",779.0,\"1 Year\", \"Standard_E2s_v3\",\"E2s v3\",\"Consumption\",0.151,\"\", \"Standard_E2s_v3\",\"E2s v3\",\"Reservation\",1569.0,\"3 Years\", \"Standard_E2ds_v4\",\"E2ds v4\",\"Reservation\",1898.0,\"3 Years\", \"Standard_E2ds_v4\",\"E2ds v4\",\"Consumption\",0.19,\"\", \"Standard_E2ds_v4\",\"E2ds v4\",\"Reservation\",982.0,\"1 Year\", \"Standard_E2d_v4\",\"E2d v4\",\"Reservation\",1898.0,\"3 Years\", \"Standard_E2d_v4\",\"E2d v4\",\"Consumption\",0.19,\"\", \"Standard_E2d_v4\",\"E2d v4\",\"Reservation\",982.0,\"1 Year\", \"Standard_E20s_v4\",\"E20s v4\",\"Reservation\",8596.0,\"1 Year\", \"Standard_E20s_v4\",\"E20s v4\",\"Consumption\",1.663,\"\", \"Standard_E20s_v4\",\"E20s v4\",\"Reservation\",16609.0,\"3 Years\", \"Standard_E20s_v3\",\"E20s v3\",\"Consumption\",1.6,\"\", \"Standard_E20ds_v4\",\"E20ds v4\",\"Reservation\",9824.0,\"1 Year\", \"Standard_E20ds_v4\",\"E20ds v4\",\"Consumption\",1.901,\"\", \"Standard_E20ds_v4\",\"E20ds v4\",\"Reservation\",18982.0,\"3 Years\", \"Standard_E20d_v4\",\"E20d v4\",\"Consumption\",1.901,\"\", \"Standard_E20d_v4\",\"E20d v4\",\"Reservation\",18982.0,\"3 Years\", \"Standard_E20d_v4\",\"E20d v4\",\"Reservation\",9824.0,\"1 Year\", \"Standard_E20_v4\",\"E20 v4\",\"Reservation\",8596.0,\"1 Year\", \"Standard_E20_v4\",\"E20 v4\",\"Consumption\",1.663,\"\", \"Standard_E20_v4\",\"E20 v4\",\"Reservation\",16609.0,\"3 Years\", \"Standard_E20_v3\",\"E20 v3\",\"Consumption\",1.6,\"\", \"Standard_E2_v4\",\"E2 v4\",\"Reservation\",860.0,\"1 Year\", \"Standard_E2_v4\",\"E2 v4\",\"Reservation\",1661.0,\"3 Years\", \"Standard_E2_v4\",\"E2 v4\",\"Consumption\",0.166,\"\", \"Standard_E2_v3\",\"E2 v3\",\"Reservation\",1569.0,\"3 Years\", \"Standard_E2_v3\",\"E2 v3\",\"Reservation\",779.0,\"1 Year\", \"Standard_E2_v3\",\"E2 v3\",\"Consumption\",0.151,\"\", \"Standard_E16s_v4\",\"E16s v4\",\"Reservation\",13288.0,\"3 Years\", \"Standard_E16s_v4\",\"E16s v4\",\"Reservation\",6877.0,\"1 Year\", \"Standard_E16s_v4\",\"E16s v4\",\"Consumption\",1.331,\"\", \"Standard_E16s_v3\",\"E16s v3\",\"Reservation\",6231.0,\"1 Year\", \"Standard_E16s_v3\",\"E16s v3\",\"Consumption\",1.21,\"\", \"Standard_E16s_v3\",\"E16s v3\",\"Reservation\",12550.0,\"3 Years\", \"Standard_E16ds_v4\",\"E16ds v4\",\"Reservation\",7859.0,\"1 Year\", \"Standard_E16ds_v4\",\"E16ds v4\",\"Consumption\",1.521,\"\", \"Standard_E16ds_v4\",\"E16ds v4\",\"Reservation\",15186.0,\"3 Years\", \"Standard_E16d_v4\",\"E16d v4\",\"Reservation\",7859.0,\"1 Year\", \"Standard_E16d_v4\",\"E16d v4\",\"Reservation\",15186.0,\"3 Years\", \"Standard_E16d_v4\",\"E16d v4\",\"Consumption\",1.521,\"\", \"Standard_E16-8s_v4\",\"E16-8s v4\",\"Reservation\",13288.0,\"3 Years\", \"Standard_E16-8s_v4\",\"E16-8s v4\",\"Reservation\",6877.0,\"1 Year\", \"Standard_E16-8s_v4\",\"E16-8s v4\",\"Consumption\",1.331,\"\", \"Standard_E16-8s_v3\",\"E16-8s v3\",\"Consumption\",1.21,\"\", \"Standard_E16-8s_v3\",\"E16-8s v3\",\"Reservation\",12550.0,\"3 Years\", \"Standard_E16-8s_v3\",\"E16-8s v3\",\"Reservation\",6231.0,\"1 Year\", \"Standard_E16-8ds_v4\",\"E16-8ds v4\",\"Reservation\",15186.0,\"3 Years\", \"Standard_E16-8ds_v4\",\"E16-8ds v4\",\"Consumption\",1.521,\"\", \"Standard_E16-8ds_v4\",\"E16-8ds v4\",\"Reservation\",7859.0,\"1 Year\", \"Standard_E16-4s_v4\",\"E16-4s v4\",\"Reservation\",6877.0,\"1 Year\", \"Standard_E16-4s_v4\",\"E16-4s v4\",\"Reservation\",13288.0,\"3 Years\", \"Standard_E16-4s_v4\",\"E16-4s v4\",\"Consumption\",1.331,\"\", \"Standard_E16-4s_v3\",\"E16-4s v3\",\"Consumption\",1.21,\"\", \"Standard_E16-4s_v3\",\"E16-4s v3\",\"Reservation\",6231.0,\"1 Year\", \"Standard_E16-4s_v3\",\"E16-4s v3\",\"Reservation\",12550.0,\"3 Years\", \"Standard_E16-4ds_v4\",\"E16-4ds v4\",\"Reservation\",15186.0,\"3 Years\", \"Standard_E16-4ds_v4\",\"E16-4ds v4\",\"Reservation\",7859.0,\"1 Year\", \"Standard_E16-4ds_v4\",\"E16-4ds v4\",\"Consumption\",1.521,\"\", \"Standard_E16_v4\",\"E16 v4\",\"Reservation\",6877.0,\"1 Year\", \"Standard_E16_v4\",\"E16 v4\",\"Consumption\",1.331,\"\", \"Standard_E16_v4\",\"E16 v4\",\"Reservation\",13288.0,\"3 Years\", \"Standard_E16_v3\",\"E16 v3\",\"Reservation\",12550.0,\"3 Years\", \"Standard_E16_v3\",\"E16 v3\",\"Reservation\",6231.0,\"1 Year\", \"Standard_E16_v3\",\"E16 v3\",\"Consumption\",1.21,\"\", \"Dsv4_Type1\",\"Dsv4 Type1\",\"Reservation\",55681.0,\"3 Years\", \"Dsv4_Type1\",\"Dsv4 Type1\",\"Consumption\",5.576,\"\", \"Dsv4_Type1\",\"Dsv4 Type1\",\"Reservation\",28817.0,\"1 Year\", \"Dsv3_Type3\",\"Dsv3 Type3\",\"Reservation\",26388.0,\"1 Year\", \"Dsv3_Type3\",\"Dsv3 Type3\",\"Consumption\",5.069,\"\", \"Dsv3_Type3\",\"Dsv3 Type3\",\"Reservation\",50738.0,\"3 Years\", \"Dsv3_Type2\",\"Dsv3 Type2\",\"Reservation\",26227.0,\"1 Year\", \"Dsv3_Type2\",\"Dsv3 Type2\",\"Reservation\",51634.0,\"3 Years\", \"Dsv3_Type2\",\"Dsv3 Type2\",\"Consumption\",4.562,\"\", \"Dsv3_Type1\",\"Dsv3 Type1\",\"Consumption\",4.055,\"\", \"Dsv3_Type1\",\"Dsv3 Type1\",\"Reservation\",45898.0,\"3 Years\", \"Dsv3_Type1\",\"Dsv3 Type1\",\"Reservation\",23313.0,\"1 Year\", \"Standard_DS5_v2\",\"DS5 v2\",\"Reservation\",5199.0,\"1 Year\", \"Standard_DS5_v2\",\"DS5 v2\",\"Reservation\",10109.0,\"3 Years\", \"Standard_DS5_v2\",\"DS5 v2\",\"Consumption\",1.099,\"\", \"Standard_DS4_v2\",\"DS4 v2\",\"Consumption\",0.55,\"\", \"Standard_DS4_v2\",\"DS4 v2\",\"Reservation\",5054.0,\"3 Years\", \"Standard_DS4_v2\",\"DS4 v2\",\"Reservation\",2599.0,\"1 Year\", \"Standard_DS4\",\"DS4\",\"Consumption\",0.643,\"\", \"Standard_DS4\",\"DS4\",\"Reservation\",7889.0,\"3 Years\", \"Standard_DS4\",\"DS4\",\"Reservation\",4078.0,\"1 Year\", \"Standard_DS3_v2\",\"DS3 v2\",\"Reservation\",1300.0,\"1 Year\", \"Standard_DS3_v2\",\"DS3 v2\",\"Reservation\",2527.0,\"3 Years\", \"Standard_DS3_v2\",\"DS3 v2\",\"Consumption\",0.275,\"\", \"Standard_DS3\",\"DS3\",\"Consumption\",0.322,\"\", \"Standard_DS3\",\"DS3\",\"Reservation\",3944.0,\"3 Years\", \"Standard_DS3\",\"DS3\",\"Reservation\",2039.0,\"1 Year\", \"Standard_DS2_v2\",\"DS2 v2\",\"Consumption\",0.137,\"\", \"Standard_DS2_v2\",\"DS2 v2\",\"Reservation\",650.0,\"1 Year\", \"Standard_DS2_v2\",\"DS2 v2\",\"Reservation\",1264.0,\"3 Years\", \"Standard_DS2\",\"DS2\",\"Reservation\",1020.0,\"1 Year\", \"Standard_DS2\",\"DS2\",\"Consumption\",0.161,\"\", \"Standard_DS2\",\"DS2\",\"Reservation\",1972.0,\"3 Years\", \"Standard_DS15i_v2\",\"DS15i v2\",\"Consumption\",1.794,\"\", \"Standard_DS15_v2\",\"DS15 v2\",\"Consumption\",1.794,\"\", \"Standard_DS14-8_v2\",\"DS14-8 v2\",\"Reservation\",7392.0,\"1 Year\", \"Standard_DS14-8_v2\",\"DS14-8 v2\",\"Reservation\",14653.0,\"3 Years\", \"Standard_DS14-8_v2\",\"DS14-8 v2\",\"Consumption\",1.435,\"\", \"Standard_DS14-4_v2\",\"DS14-4 v2\",\"Consumption\",1.435,\"\", \"Standard_DS14-4_v2\",\"DS14-4 v2\",\"Reservation\",7392.0,\"1 Year\", \"Standard_DS14-4_v2\",\"DS14-4 v2\",\"Reservation\",14653.0,\"3 Years\", \"Standard_DS14_v2\",\"DS14 v2\",\"Reservation\",14653.0,\"3 Years\", \"Standard_DS14_v2\",\"DS14 v2\",\"Consumption\",1.435,\"\", \"Standard_DS14_v2\",\"DS14 v2\",\"Reservation\",7392.0,\"1 Year\", \"Standard_DS14\",\"DS14\",\"Reservation\",22307.0,\"3 Years\", \"Standard_DS14\",\"DS14\",\"Consumption\",1.665,\"\", \"Standard_DS14\",\"DS14\",\"Reservation\",11581.0,\"1 Year\", \"Standard_DS13-4_v2\",\"DS13-4 v2\",\"Consumption\",0.718,\"\", \"Standard_DS13-4_v2\",\"DS13-4 v2\",\"Reservation\",7326.0,\"3 Years\", \"Standard_DS13-4_v2\",\"DS13-4 v2\",\"Reservation\",3696.0,\"1 Year\", \"Standard_DS13-2_v2\",\"DS13-2 v2\",\"Reservation\",3696.0,\"1 Year\", \"Standard_DS13-2_v2\",\"DS13-2 v2\",\"Reservation\",7326.0,\"3 Years\", \"Standard_DS13-2_v2\",\"DS13-2 v2\",\"Consumption\",0.718,\"\", \"Standard_DS13_v2\",\"DS13 v2\",\"Reservation\",3696.0,\"1 Year\", \"Standard_DS13_v2\",\"DS13 v2\",\"Consumption\",0.718,\"\", \"Standard_DS13_v2\",\"DS13 v2\",\"Reservation\",7326.0,\"3 Years\", \"Standard_DS13\",\"DS13\",\"Reservation\",5790.0,\"1 Year\", \"Standard_DS13\",\"DS13\",\"Reservation\",11153.0,\"3 Years\", \"Standard_DS13\",\"DS13\",\"Consumption\",0.832,\"\", \"Standard_DS12-2_v2\",\"DS12-2 v2\",\"Reservation\",3663.0,\"3 Years\", \"Standard_DS12-2_v2\",\"DS12-2 v2\",\"Reservation\",1848.0,\"1 Year\", \"Standard_DS12-2_v2\",\"DS12-2 v2\",\"Consumption\",0.359,\"\", \"Standard_DS12-1_v2\",\"DS12-1 v2\",\"Consumption\",0.359,\"\", \"Standard_DS12-1_v2\",\"DS12-1 v2\",\"Reservation\",1848.0,\"1 Year\", \"Standard_DS12-1_v2\",\"DS12-1 v2\",\"Reservation\",3663.0,\"3 Years\", \"Standard_DS12_v2\",\"DS12 v2\",\"Reservation\",3663.0,\"3 Years\", \"Standard_DS12_v2\",\"DS12 v2\",\"Consumption\",0.359,\"\", \"Standard_DS12_v2\",\"DS12 v2\",\"Reservation\",1848.0,\"1 Year\", \"Standard_DS12\",\"DS12\",\"Reservation\",5577.0,\"3 Years\", \"Standard_DS12\",\"DS12\",\"Consumption\",0.416,\"\", \"Standard_DS12\",\"DS12\",\"Reservation\",2895.0,\"1 Year\", \"Standard_DS11-1_v2\",\"DS11-1 v2\",\"Reservation\",1832.0,\"3 Years\", \"Standard_DS11-1_v2\",\"DS11-1 v2\",\"Consumption\",0.179,\"\", \"Standard_DS11-1_v2\",\"DS11-1 v2\",\"Reservation\",924.0,\"1 Year\", \"Standard_DS11_v2\",\"DS11 v2\",\"Consumption\",0.179,\"\", \"Standard_DS11_v2\",\"DS11 v2\",\"Reservation\",924.0,\"1 Year\", \"Standard_DS11_v2\",\"DS11 v2\",\"Reservation\",1832.0,\"3 Years\", \"Standard_DS11\",\"DS11\",\"Consumption\",0.208,\"\", \"Standard_DS11\",\"DS11\",\"Reservation\",2788.0,\"3 Years\", \"Standard_DS11\",\"DS11\",\"Reservation\",1448.0,\"1 Year\", \"Standard_DS1_v2\",\"DS1 v2\",\"Consumption\",0.0687,\"\", \"Standard_DS1\",\"DS1\",\"Reservation\",986.0,\"3 Years\", \"Standard_DS1\",\"DS1\",\"Reservation\",510.0,\"1 Year\", \"Standard_DS1\",\"DS1\",\"Consumption\",0.0804,\"\", \"Ddsv4_Type 1\",\"Ddsv4 Type 1\",\"Consumption\",6.563,\"\", \"Ddsv4_Type 1\",\"Ddsv4 Type 1\",\"Reservation\",33920.0,\"1 Year\", \"Ddsv4_Type 1\",\"Ddsv4 Type 1\",\"Reservation\",65541.0,\"3 Years\", \"Standard_D8s_v4\",\"D8s v4\",\"Consumption\",0.507,\"\", \"Standard_D8s_v4\",\"D8s v4\",\"Reservation\",2620.0,\"1 Year\", \"Standard_D8s_v4\",\"D8s v4\",\"Reservation\",5062.0,\"3 Years\", \"Standard_D8s_v3\",\"D8s v3\",\"Consumption\",0.48,\"\", \"Standard_D8s_v3\",\"D8s v3\",\"Reservation\",2328.0,\"1 Year\", \"Standard_D8s_v3\",\"D8s v3\",\"Reservation\",4541.0,\"3 Years\", \"Standard_D8ds_v4\",\"D8ds v4\",\"Reservation\",3084.0,\"1 Year\", \"Standard_D8ds_v4\",\"D8ds v4\",\"Reservation\",5958.0,\"3 Years\", \"Standard_D8ds_v4\",\"D8ds v4\",\"Consumption\",0.597,\"\", \"Standard_D8d_v4\",\"D8d v4\",\"Consumption\",0.597,\"\", \"Standard_D8d_v4\",\"D8d v4\",\"Reservation\",5958.0,\"3 Years\", \"Standard_D8d_v4\",\"D8d v4\",\"Reservation\",3084.0,\"1 Year\", \"Standard_D8_v4\",\"D8 v4\",\"Reservation\",2620.0,\"1 Year\", \"Standard_D8_v4\",\"D8 v4\",\"Reservation\",5062.0,\"3 Years\", \"Standard_D8_v4\",\"D8 v4\",\"Consumption\",0.507,\"\", \"Standard_D8_v3\",\"D8 v3\",\"Reservation\",2328.0,\"1 Year\", \"Standard_D8_v3\",\"D8 v3\",\"Consumption\",0.48,\"\", \"Standard_D8_v3\",\"D8 v3\",\"Reservation\",4541.0,\"3 Years\", \"Standard_D64s_v4\",\"D64s v4\",\"Reservation\",20958.0,\"1 Year\", \"Standard_D64s_v4\",\"D64s v4\",\"Reservation\",40495.0,\"3 Years\", \"Standard_D64s_v4\",\"D64s v4\",\"Consumption\",4.055,\"\", \"Standard_D64s_v3\",\"D64s v3\",\"Consumption\",3.84,\"\", \"Standard_D64s_v3\",\"D64s v3\",\"Reservation\",36329.0,\"3 Years\", \"Standard_D64s_v3\",\"D64s v3\",\"Reservation\",18620.0,\"1 Year\", \"Standard_D64ds_v4\",\"D64ds v4\",\"Reservation\",24669.0,\"1 Year\", \"Standard_D64ds_v4\",\"D64ds v4\",\"Reservation\",47666.0,\"3 Years\", \"Standard_D64ds_v4\",\"D64ds v4\",\"Consumption\",4.773,\"\", \"Standard_D64d_v4\",\"D64d v4\",\"Reservation\",24669.0,\"1 Year\", \"Standard_D64d_v4\",\"D64d v4\",\"Consumption\",4.773,\"\", \"Standard_D64d_v4\",\"D64d v4\",\"Reservation\",47666.0,\"3 Years\", \"Standard_D64-32s_v3\",\"D64-32s v3\",\"Consumption\",3.84,\"\", \"Standard_D64-16s_v3\",\"D64-16s v3\",\"Consumption\",3.84,\"\", \"Standard_D64_v4\",\"D64 v4\",\"Reservation\",40495.0,\"3 Years\", \"Standard_D64_v4\",\"D64 v4\",\"Reservation\",20958.0,\"1 Year\", \"Standard_D64_v4\",\"D64 v4\",\"Consumption\",4.055,\"\", \"Standard_D64_v3\",\"D64 v3\",\"Reservation\",36329.0,\"3 Years\", \"Standard_D64_v3\",\"D64 v3\",\"Reservation\",18620.0,\"1 Year\", \"Standard_D64_v3\",\"D64 v3\",\"Consumption\",3.84,\"\", \"Standard_D5_v2\",\"D5 v2\",\"Reservation\",10109.0,\"3 Years\", \"Standard_D5_v2\",\"D5 v2\",\"Consumption\",1.099,\"\", \"Standard_D5_v2\",\"D5 v2\",\"Reservation\",5199.0,\"1 Year\", \"Standard_D4s_v4\",\"D4s v4\",\"Consumption\",0.253,\"\", \"Standard_D4s_v4\",\"D4s v4\",\"Reservation\",1310.0,\"1 Year\", \"Standard_D4s_v4\",\"D4s v4\",\"Reservation\",2531.0,\"3 Years\", \"Standard_D4s_v3\",\"D4s v3\",\"Consumption\",0.24,\"\", \"Standard_D4s_v3\",\"D4s v3\",\"Reservation\",1164.0,\"1 Year\", \"Standard_D4s_v3\",\"D4s v3\",\"Reservation\",2271.0,\"3 Years\", \"Standard_D4ds_v4\",\"D4ds v4\",\"Reservation\",1542.0,\"1 Year\", \"Standard_D4ds_v4\",\"D4ds v4\",\"Consumption\",0.298,\"\", \"Standard_D4ds_v4\",\"D4ds v4\",\"Reservation\",2979.0,\"3 Years\", \"Standard_D4d_v4\",\"D4d v4\",\"Consumption\",0.298,\"\", \"Standard_D4d_v4\",\"D4d v4\",\"Reservation\",1542.0,\"1 Year\", \"Standard_D4d_v4\",\"D4d v4\",\"Reservation\",2979.0,\"3 Years\", \"Standard_D48s_v4\",\"D48s v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_D48s_v4\",\"D48s v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_D48s_v4\",\"D48s v4\",\"Consumption\",3.041,\"\", \"Standard_D48s_v3\",\"D48s v3\",\"Consumption\",2.88,\"\", \"Standard_D48s_v3\",\"D48s v3\",\"Reservation\",27247.0,\"3 Years\", \"Standard_D48s_v3\",\"D48s v3\",\"Reservation\",13965.0,\"1 Year\", \"Standard_D48ds_v4\",\"D48ds v4\",\"Reservation\",18502.0,\"1 Year\", \"Standard_D48ds_v4\",\"D48ds v4\",\"Consumption\",3.58,\"\", \"Standard_D48ds_v4\",\"D48ds v4\",\"Reservation\",35750.0,\"3 Years\", \"Standard_D48d_v4\",\"D48d v4\",\"Consumption\",3.58,\"\", \"Standard_D48d_v4\",\"D48d v4\",\"Reservation\",18502.0,\"1 Year\", \"Standard_D48d_v4\",\"D48d v4\",\"Reservation\",35750.0,\"3 Years\", \"Standard_D48_v4\",\"D48 v4\",\"Reservation\",30371.0,\"3 Years\", \"Standard_D48_v4\",\"D48 v4\",\"Consumption\",3.041,\"\", \"Standard_D48_v4\",\"D48 v4\",\"Reservation\",15719.0,\"1 Year\", \"Standard_D48_v3\",\"D48 v3\",\"Reservation\",27247.0,\"3 Years\", \"Standard_D48_v3\",\"D48 v3\",\"Consumption\",2.88,\"\", \"Standard_D48_v3\",\"D48 v3\",\"Reservation\",13965.0,\"1 Year\", \"Standard_D4_v4\",\"D4 v4\",\"Reservation\",2531.0,\"3 Years\", \"Standard_D4_v4\",\"D4 v4\",\"Reservation\",1310.0,\"1 Year\", \"Standard_D4_v4\",\"D4 v4\",\"Consumption\",0.253,\"\", \"Standard_D4_v3\",\"D4 v3\",\"Reservation\",1164.0,\"1 Year\", \"Standard_D4_v3\",\"D4 v3\",\"Consumption\",0.24,\"\", \"Standard_D4_v3\",\"D4 v3\",\"Reservation\",2271.0,\"3 Years\", \"Standard_D4_v2\",\"D4 v2\",\"Consumption\",0.55,\"\", \"Standard_D4_v2\",\"D4 v2\",\"Reservation\",2599.0,\"1 Year\", \"Standard_D4_v2\",\"D4 v2\",\"Reservation\",5054.0,\"3 Years\", \"Standard_D4\",\"D4\",\"Consumption\",0.643,\"\", \"Standard_D4\",\"D4\",\"Reservation\",4078.0,\"1 Year\", \"Standard_D4\",\"D4\",\"Reservation\",7889.0,\"3 Years\", \"Standard_D32s_v4\",\"D32s v4\",\"Reservation\",20248.0,\"3 Years\", \"Standard_D32s_v4\",\"D32s v4\",\"Reservation\",10479.0,\"1 Year\", \"Standard_D32s_v4\",\"D32s v4\",\"Consumption\",2.028,\"\", \"Standard_D32s_v3\",\"D32s v3\",\"Reservation\",18165.0,\"3 Years\", \"Standard_D32s_v3\",\"D32s v3\",\"Reservation\",9310.0,\"1 Year\", \"Standard_D32s_v3\",\"D32s v3\",\"Consumption\",1.92,\"\", \"Standard_D32ds_v4\",\"D32ds v4\",\"Reservation\",12335.0,\"1 Year\", \"Standard_D32ds_v4\",\"D32ds v4\",\"Consumption\",2.387,\"\", \"Standard_D32ds_v4\",\"D32ds v4\",\"Reservation\",23833.0,\"3 Years\", \"Standard_D32d_v4\",\"D32d v4\",\"Reservation\",23833.0,\"3 Years\", \"Standard_D32d_v4\",\"D32d v4\",\"Consumption\",2.387,\"\", \"Standard_D32d_v4\",\"D32d v4\",\"Reservation\",12335.0,\"1 Year\", \"Standard_D32-8s_v3\",\"D32-8s v3\",\"Consumption\",1.92,\"\", \"Standard_D32-16s_v3\",\"D32-16s v3\",\"Consumption\",1.92,\"\", \"Standard_D32_v4\",\"D32 v4\",\"Reservation\",10479.0,\"1 Year\", \"Standard_D32_v4\",\"D32 v4\",\"Reservation\",20248.0,\"3 Years\", \"Standard_D32_v4\",\"D32 v4\",\"Consumption\",2.028,\"\", \"Standard_D32_v3\",\"D32 v3\",\"Consumption\",1.92,\"\", \"Standard_D32_v3\",\"D32 v3\",\"Reservation\",9310.0,\"1 Year\", \"Standard_D32_v3\",\"D32 v3\",\"Reservation\",18165.0,\"3 Years\", \"Standard_D3_v2\",\"D3 v2\",\"Reservation\",1300.0,\"1 Year\", \"Standard_D3_v2\",\"D3 v2\",\"Consumption\",0.275,\"\", \"Standard_D3_v2\",\"D3 v2\",\"Reservation\",2527.0,\"3 Years\", \"Standard_D3\",\"D3\",\"Reservation\",3944.0,\"3 Years\", \"Standard_D3\",\"D3\",\"Consumption\",0.322,\"\", \"Standard_D3\",\"D3\",\"Reservation\",2039.0,\"1 Year\", \"Standard_D2s_v4\",\"D2s v4\",\"Consumption\",0.127,\"\", \"Standard_D2s_v4\",\"D2s v4\",\"Reservation\",1265.0,\"3 Years\", \"Standard_D2s_v4\",\"D2s v4\",\"Reservation\",655.0,\"1 Year\", \"Standard_D2s_v3\",\"D2s v3\",\"Reservation\",1135.0,\"3 Years\", \"Standard_D2s_v3\",\"D2s v3\",\"Consumption\",0.12,\"\", \"Standard_D2s_v3\",\"D2s v3\",\"Reservation\",582.0,\"1 Year\", \"Standard_D2ds_v4\",\"D2ds v4\",\"Reservation\",771.0,\"1 Year\", \"Standard_D2ds_v4\",\"D2ds v4\",\"Consumption\",0.149,\"\", \"Standard_D2ds_v4\",\"D2ds v4\",\"Reservation\",1490.0,\"3 Years\", \"Standard_D2d_v4\",\"D2d v4\",\"Reservation\",1490.0,\"3 Years\", \"Standard_D2d_v4\",\"D2d v4\",\"Consumption\",0.149,\"\", \"Standard_D2d_v4\",\"D2d v4\",\"Reservation\",771.0,\"1 Year\", \"Standard_D2_v4\",\"D2 v4\",\"Consumption\",0.127,\"\", \"Standard_D2_v4\",\"D2 v4\",\"Reservation\",1265.0,\"3 Years\", \"Standard_D2_v4\",\"D2 v4\",\"Reservation\",655.0,\"1 Year\", \"Standard_D2_v3\",\"D2 v3\",\"Consumption\",0.12,\"\", \"Standard_D2_v3\",\"D2 v3\",\"Reservation\",582.0,\"1 Year\", \"Standard_D2_v3\",\"D2 v3\",\"Reservation\",1135.0,\"3 Years\", \"Standard_D2_v2\",\"D2 v2\",\"Reservation\",1264.0,\"3 Years\", \"Standard_D2_v2\",\"D2 v2\",\"Consumption\",0.137,\"\", \"Standard_D2_v2\",\"D2 v2\",\"Reservation\",650.0,\"1 Year\", \"Standard_D2\",\"D2\",\"Reservation\",1020.0,\"1 Year\", \"Standard_D2\",\"D2\",\"Consumption\",0.161,\"\", \"Standard_D2\",\"D2\",\"Reservation\",1972.0,\"3 Years\", \"Standard_D16s_v4\",\"D16s v4\",\"Reservation\",5240.0,\"1 Year\", \"Standard_D16s_v4\",\"D16s v4\",\"Reservation\",10124.0,\"3 Years\", \"Standard_D16s_v4\",\"D16s v4\",\"Consumption\",1.014,\"\", \"Standard_D16s_v3\",\"D16s v3\",\"Reservation\",4655.0,\"1 Year\", \"Standard_D16s_v3\",\"D16s v3\",\"Consumption\",0.96,\"\", \"Standard_D16s_v3\",\"D16s v3\",\"Reservation\",9082.0,\"3 Years\", \"Standard_D16ds_v4\",\"D16ds v4\",\"Reservation\",6167.0,\"1 Year\", \"Standard_D16ds_v4\",\"D16ds v4\",\"Consumption\",1.193,\"\", \"Standard_D16ds_v4\",\"D16ds v4\",\"Reservation\",11917.0,\"3 Years\", \"Standard_D16d_v4\",\"D16d v4\",\"Reservation\",11917.0,\"3 Years\", \"Standard_D16d_v4\",\"D16d v4\",\"Consumption\",1.193,\"\", \"Standard_D16d_v4\",\"D16d v4\",\"Reservation\",6167.0,\"1 Year\", \"Standard_D16_v4\",\"D16 v4\",\"Consumption\",1.014,\"\", \"Standard_D16_v4\",\"D16 v4\",\"Reservation\",5240.0,\"1 Year\", \"Standard_D16_v4\",\"D16 v4\",\"Reservation\",10124.0,\"3 Years\", \"Standard_D16_v3\",\"D16 v3\",\"Reservation\",4655.0,\"1 Year\", \"Standard_D16_v3\",\"D16 v3\",\"Reservation\",9082.0,\"3 Years\", \"Standard_D16_v3\",\"D16 v3\",\"Consumption\",0.96,\"\", \"Standard_D15i_v2\",\"D15i v2\",\"Consumption\",1.794,\"\", \"Standard_D15_v2\",\"D15 v2\",\"Consumption\",1.794,\"\", \"Standard_D14_v2\",\"D14 v2\",\"Consumption\",1.435,\"\", \"Standard_D14_v2\",\"D14 v2\",\"Reservation\",14653.0,\"3 Years\", \"Standard_D14_v2\",\"D14 v2\",\"Reservation\",7392.0,\"1 Year\", \"Standard_D14\",\"D14\",\"Reservation\",11581.0,\"1 Year\", \"Standard_D14\",\"D14\",\"Consumption\",1.665,\"\", \"Standard_D14\",\"D14\",\"Reservation\",22307.0,\"3 Years\", \"Standard_D13_v2\",\"D13 v2\",\"Consumption\",0.718,\"\", \"Standard_D13_v2\",\"D13 v2\",\"Reservation\",3696.0,\"1 Year\", \"Standard_D13_v2\",\"D13 v2\",\"Reservation\",7326.0,\"3 Years\", \"Standard_D13\",\"D13\",\"Reservation\",11153.0,\"3 Years\", \"Standard_D13\",\"D13\",\"Reservation\",5790.0,\"1 Year\", \"Standard_D13\",\"D13\",\"Consumption\",0.832,\"\", \"Standard_D12_v2\",\"D12 v2\",\"Reservation\",3663.0,\"3 Years\", \"Standard_D12_v2\",\"D12 v2\",\"Reservation\",1848.0,\"1 Year\", \"Standard_D12_v2\",\"D12 v2\",\"Consumption\",0.359,\"\", \"Standard_D12\",\"D12\",\"Reservation\",2895.0,\"1 Year\", \"Standard_D12\",\"D12\",\"Reservation\",5577.0,\"3 Years\", \"Standard_D12\",\"D12\",\"Consumption\",0.416,\"\", \"Standard_D11_v2\",\"D11 v2\",\"Consumption\",0.179,\"\", \"Standard_D11_v2\",\"D11 v2\",\"Reservation\",924.0,\"1 Year\", \"Standard_D11_v2\",\"D11 v2\",\"Reservation\",1832.0,\"3 Years\", \"Standard_D11\",\"D11\",\"Reservation\",1448.0,\"1 Year\", \"Standard_D11\",\"D11\",\"Consumption\",0.208,\"\", \"Standard_D11\",\"D11\",\"Reservation\",2788.0,\"3 Years\", \"Standard_D1_v2\",\"D1 v2\",\"Consumption\",0.0687,\"\", \"Standard_D1\",\"D1\",\"Consumption\",0.0804,\"\", \"Standard_D1\",\"D1\",\"Reservation\",986.0,\"3 Years\", \"Standard_D1\",\"D1\",\"Reservation\",510.0,\"1 Year\", \"Standard_B8ms\",\"B8ms\",\"Reservation\",3951.0,\"3 Years\", \"Standard_B8ms\",\"B8ms\",\"Consumption\",0.399,\"\", \"Standard_B8ms\",\"B8ms\",\"Reservation\",2047.0,\"1 Year\", \"Standard_B4ms\",\"B4ms\",\"Consumption\",0.2,\"\", \"Standard_B4ms\",\"B4ms\",\"Reservation\",1024.0,\"1 Year\", \"Standard_B4ms\",\"B4ms\",\"Reservation\",1976.0,\"3 Years\", \"Standard_B2s\",\"B2s\",\"Reservation\",256.0,\"1 Year\", \"Standard_B2s\",\"B2s\",\"Reservation\",494.0,\"3 Years\", \"Standard_B2s\",\"B2s\",\"Consumption\",0.0499,\"\", \"Standard_B2ms\",\"B2ms\",\"Consumption\",0.0998,\"\", \"Standard_B2ms\",\"B2ms\",\"Reservation\",512.0,\"1 Year\", \"Standard_B2ms\",\"B2ms\",\"Reservation\",988.0,\"3 Years\", \"Standard_B20ms\",\"B20ms\",\"Reservation\",9879.0,\"3 Years\", \"Standard_B20ms\",\"B20ms\",\"Reservation\",5118.0,\"1 Year\", \"Standard_B20ms\",\"B20ms\",\"Consumption\",0.998,\"\", \"Standard_B1s\",\"B1s\",\"Consumption\",0.0125,\"\", \"Standard_B1s\",\"B1s\",\"Consumption\",0.0,\"\", \"Standard_B1s\",\"B1s\",\"Reservation\",64.0,\"1 Year\", \"Standard_B1s\",\"B1s\",\"Reservation\",124.0,\"3 Years\", \"Standard_B1ms\",\"B1ms\",\"Reservation\",247.0,\"3 Years\", \"Standard_B1ms\",\"B1ms\",\"Consumption\",0.025,\"\", \"Standard_B1ms\",\"B1ms\",\"Reservation\",128.0,\"1 Year\", \"Standard_B1ls\",\"B1ls\",\"Reservation\",62.0,\"3 Years\", \"Standard_B1ls\",\"B1ls\",\"Reservation\",32.0,\"1 Year\", \"Standard_B1ls\",\"B1ls\",\"Consumption\",0.00624,\"\", \"Standard_B16ms\",\"B16ms\",\"Consumption\",0.799,\"\", \"Standard_B16ms\",\"B16ms\",\"Reservation\",7903.0,\"3 Years\", \"Standard_B16ms\",\"B16ms\",\"Reservation\",4095.0,\"1 Year\", \"Standard_B12ms\",\"B12ms\",\"Reservation\",3071.0,\"1 Year\", \"Standard_B12ms\",\"B12ms\",\"Reservation\",5927.0,\"3 Years\", \"Standard_B12ms\",\"B12ms\",\"Consumption\",0.599,\"\", \"Standard_A8m_v2\",\"A8m v2\",\"Consumption\",0.524,\"\", \"Standard_A8_v2\",\"A8 v2\",\"Consumption\",0.4,\"\", \"Standard_A4m_v2\",\"A4m v2\",\"Consumption\",0.25,\"\", \"Standard_A4_v2\",\"A4 v2\",\"Consumption\",0.191,\"\", \"Standard_A2m_v2\",\"A2m v2\",\"Consumption\",0.119,\"\", \"Standard_A2_v2\",\"A2 v2\",\"Consumption\",0.0912,\"\", \"Standard_A1_v2\",\"A1 v2\",\"Consumption\",0.0432,\"\" ];", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -517,7 +514,6 @@ "version": "KqlParameterItem/1.0", "name": "RI1Y", "type": 1, - "value": "0.60", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -539,7 +535,6 @@ "version": "KqlParameterItem/1.0", "name": "RI3Y", "type": 1, - "value": "0.394", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -561,7 +556,6 @@ "version": "KqlParameterItem/1.0", "name": "VMPriceAll", "type": 1, - "value": "let VMPriceAll=externaldata (armskuname:string,skuname:string,type:string,unitprice:real,reservationterm:string, Location:string) [ h@\"https://storpubresnp39221944.blob.core.windows.net/price?sp=r&st=2022-09-09T10:29:38Z&se=2025-04-05T18:29:38Z&spr=https&sv=2021-06-08&sr=c&sig=ha%2BAdyShHNGMzfFs7S%2BheViNeW%2F8ECSaQcQY5reY5%2BU%3D\" ] with(format=\"csv\"); ", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -571,7 +565,7 @@ "rightValType": "static", "rightVal": "cloud", "resultValType": "static", - "resultVal": "let VMPriceAll=externaldata (armskuname:string,skuname:string,type:string,unitprice:real,reservationterm:string, Location:string) [ h@\"https://storpubresnp39221944.blob.core.windows.net/price?sp=r&st=2022-09-09T10:29:38Z&se=2025-04-05T18:29:38Z&spr=https&sv=2021-06-08&sr=c&sig=ha%2BAdyShHNGMzfFs7S%2BheViNeW%2F8ECSaQcQY5reY5%2BU%3D\" ] with(format=\"csv\"); " + "resultVal": "let VMPriceAll=externaldata (armskuname:string,skuname:string,type:string,unitprice:real,reservationterm:string, Location:string) [ h@\"https://storpubresnp39221944.blob.core.windows.net/price/azvmpriceall.csv?sp=r&st=2022-09-09T10:29:38Z&se=2025-04-05T18:29:38Z&spr=https&sv=2021-06-08&sr=c&sig=ha%2BAdyShHNGMzfFs7S%2BheViNeW%2F8ECSaQcQY5reY5%2BU%3D\" ] with(format=\"csv\"); " } }, { @@ -612,7 +606,8 @@ "typeSettings": { "additionalResourceOptions": [ "value::all" - ] + ], + "showDefault": false }, "timeContext": { "durationMs": 0 @@ -627,7 +622,6 @@ "version": "KqlParameterItem/1.0", "name": "FinalTable", "type": 1, - "value": "let workstart=8; let workend=17; let timezoneoffset=4; let vmsize= datatable(Name:string,vcores:int,Ram:int,Disks:int) [ \"Basic_A0\",1,768,1, \"Basic_A1\",1,1792,2, \"Basic_A2\",2,3584,4, \"Basic_A3\",4,7168,8, \"Basic_A4\",8,14336,16, \"Standard_A0\",1,768,1, \"Standard_A1\",1,1792,2, \"Standard_A1_v2\",1,2048,2, \"Standard_A2\",2,3584,4, \"Standard_A2_v2\",2,4096,4, \"Standard_A2m_v2\",2,16384,4, \"Standard_A3\",4,7168,8, \"Standard_A4\",8,14336,16, \"Standard_A4_v2\",4,8192,8, \"Standard_A4m_v2\",4,32768,8, \"Standard_A5\",2,14336,4, \"Standard_A6\",4,28672,8, \"Standard_A7\",8,57344,16, \"Standard_A8_v2\",8,16384,16, \"Standard_A8m_v2\",8,65536,16, \"Standard_B12ms\",12,49152,16, \"Standard_B16ms\",16,65536,32, \"Standard_B1ls\",1,512,2, \"Standard_B1ms\",1,2048,2, \"Standard_B1s\",1,1024,2, \"Standard_B20ms\",20,81920,32, \"Standard_B2ms\",2,8192,4, \"Standard_B2s\",2,4096,4, \"Standard_B4ms\",4,16384,8, \"Standard_B8ms\",8,32768,16, \"Standard_D1_v2\",1,3584,4, \"Standard_D11_v2\",2,14336,8, \"Standard_D11_v2_Promo\",2,14336,8, \"Standard_D12_v2\",4,28672,16, \"Standard_D12_v2_Promo\",4,28672,16, \"Standard_D13_v2\",8,57344,32, \"Standard_D13_v2_Promo\",8,57344,32, \"Standard_D14_v2\",16,114688,64, \"Standard_D14_v2_Promo\",16,114688,64, \"Standard_D15_v2\",20,143360,64, \"Standard_D16_v3\",16,65536,32, \"Standard_D16_v4\",16,65536,32, \"Standard_D16d_v4\",16,65536,32, \"Standard_D16ds_v4\",16,65536,32, \"Standard_D16s_v3\",16,65536,32, \"Standard_D16s_v4\",16,65536,32, \"Standard_D2_v2\",2,7168,8, \"Standard_D2_v2_Promo\",2,7168,8, \"Standard_D2_v3\",2,8192,4, \"Standard_D2_v4\",2,8192,4, \"Standard_D2d_v4\",2,8192,4, \"Standard_D2ds_v4\",2,8192,4, \"Standard_D2s_v3\",2,8192,4, \"Standard_D2s_v4\",2,8192,4, \"Standard_D3_v2\",4,14336,16, \"Standard_D3_v2_Promo\",4,14336,16, \"Standard_D32_v3\",32,131072,32, \"Standard_D32_v4\",32,131072,32, \"Standard_D32d_v4\",32,131072,32, \"Standard_D32ds_v4\",32,131072,32, \"Standard_D32s_v3\",32,131072,32, \"Standard_D32s_v4\",32,131072,32, \"Standard_D4_v2\",8,28672,32, \"Standard_D4_v2_Promo\",8,28672,32, \"Standard_D4_v3\",4,16384,8, \"Standard_D4_v4\",4,16384,8, \"Standard_D48_v3\",48,196608,32, \"Standard_D48_v4\",48,196608,32, \"Standard_D48d_v4\",48,196608,32, \"Standard_D48ds_v4\",48,196608,32, \"Standard_D48s_v3\",48,196608,32, \"Standard_D48s_v4\",48,196608,32, \"Standard_D4d_v4\",4,16384,8, \"Standard_D4ds_v4\",4,16384,8, \"Standard_D4s_v3\",4,16384,8, \"Standard_D4s_v4\",4,16384,8, \"Standard_D5_v2\",16,57344,64, \"Standard_D5_v2_Promo\",16,57344,64, \"Standard_D64_v3\",64,262144,32, \"Standard_D64_v4\",64,262144,32, \"Standard_D64d_v4\",64,262144,32, \"Standard_D64ds_v4\",64,262144,32, \"Standard_D64s_v3\",64,262144,32, \"Standard_D64s_v4\",64,262144,32, \"Standard_D8_v3\",8,32768,16, \"Standard_D8_v4\",8,32768,16, \"Standard_D8d_v4\",8,32768,16, \"Standard_D8ds_v4\",8,32768,16, \"Standard_D8s_v3\",8,32768,16, \"Standard_D8s_v4\",8,32768,16, \"Standard_DS1_v2\",1,3584,4, \"Standard_DS11_v2\",2,14336,8, \"Standard_DS11_v2_Promo\",2,14336,8, \"Standard_DS11-1_v2\",2,14336,8, \"Standard_DS12_v2\",4,28672,16, \"Standard_DS12_v2_Promo\",4,28672,16, \"Standard_DS12-1_v2\",4,28672,16, \"Standard_DS12-2_v2\",4,28672,16, \"Standard_DS13_v2\",8,57344,32, \"Standard_DS13_v2_Promo\",8,57344,32, \"Standard_DS13-2_v2\",8,57344,32, \"Standard_DS13-4_v2\",8,57344,32, \"Standard_DS14_v2\",16,114688,64, \"Standard_DS14_v2_Promo\",16,114688,64, \"Standard_DS14-4_v2\",16,114688,64, \"Standard_DS14-8_v2\",16,114688,64, \"Standard_DS15_v2\",20,143360,64, \"Standard_DS2_v2\",2,7168,8, \"Standard_DS2_v2_Promo\",2,7168,8, \"Standard_DS3_v2\",4,14336,16, \"Standard_DS3_v2_Promo\",4,14336,16, \"Standard_DS4_v2\",8,28672,32, \"Standard_DS4_v2_Promo\",8,28672,32, \"Standard_DS5_v2\",16,57344,64, \"Standard_DS5_v2_Promo\",16,57344,64, \"Standard_E16_v3\",16,131072,32, \"Standard_E16_v4\",16,131072,32, \"Standard_E16-4ds_v4\",16,131072,32, \"Standard_E16-4s_v3\",16,131072,32, \"Standard_E16-4s_v4\",16,131072,32, \"Standard_E16-8ds_v4\",16,131072,32, \"Standard_E16-8s_v3\",16,131072,32, \"Standard_E16-8s_v4\",16,131072,32, \"Standard_E16d_v4\",16,131072,32, \"Standard_E16ds_v4\",16,131072,32, \"Standard_E16s_v3\",16,131072,32, \"Standard_E16s_v4\",16,131072,32, \"Standard_E2_v3\",2,16384,4, \"Standard_E2_v4\",2,16384,4, \"Standard_E20_v3\",20,163840,32, \"Standard_E20_v4\",20,163840,32, \"Standard_E20d_v4\",20,163840,32, \"Standard_E20ds_v4\",20,163840,32, \"Standard_E20s_v3\",20,163840,32, \"Standard_E20s_v4\",20,163840,32, \"Standard_E2d_v4\",2,16384,4, \"Standard_E2ds_v4\",2,16384,4, \"Standard_E2s_v3\",2,16384,4, \"Standard_E2s_v4\",2,16384,4, \"Standard_E32_v3\",32,262144,32, \"Standard_E32_v4\",32,262144,32, \"Standard_E32-16ds_v4\",32,262144,32, \"Standard_E32-16s_v3\",32,262144,32, \"Standard_E32-16s_v4\",32,262144,32, \"Standard_E32-8ds_v4\",32,262144,32, \"Standard_E32-8s_v3\",32,262144,32, \"Standard_E32-8s_v4\",32,262144,32, \"Standard_E32d_v4\",32,262144,32, \"Standard_E32ds_v4\",32,262144,32, \"Standard_E32s_v3\",32,262144,32, \"Standard_E32s_v4\",32,262144,32, \"Standard_E4_v3\",4,32768,8, \"Standard_E4_v4\",4,32768,8, \"Standard_E4-2ds_v4\",4,32768,8, \"Standard_E4-2s_v3\",4,32768,8, \"Standard_E4-2s_v4\",4,32768,8, \"Standard_E48_v3\",48,393216,32, \"Standard_E48_v4\",48,393216,32, \"Standard_E48d_v4\",48,393216,32, \"Standard_E48ds_v4\",48,393216,32, \"Standard_E48s_v3\",48,393216,32, \"Standard_E48s_v4\",48,393216,32, \"Standard_E4d_v4\",4,32768,8, \"Standard_E4ds_v4\",4,32768,8, \"Standard_E4s_v3\",4,32768,8, \"Standard_E4s_v4\",4,32768,8, \"Standard_E64_v3\",64,442368,32, \"Standard_E64_v4\",64,516096,32, \"Standard_E64-16ds_v4\",64,516096,32, \"Standard_E64-16s_v3\",64,442368,32, \"Standard_E64-16s_v4\",64,516096,32, \"Standard_E64-32ds_v4\",64,516096,32, \"Standard_E64-32s_v3\",64,442368,32, \"Standard_E64-32s_v4\",64,516096,32, \"Standard_E64d_v4\",64,516096,32, \"Standard_E64ds_v4\",64,516096,32, \"Standard_E64i_v3\",64,442368,32, \"Standard_E64is_v3\",64,442368,32, \"Standard_E64s_v3\",64,442368,32, \"Standard_E64s_v4\",64,516096,32, \"Standard_E8_v3\",8,65536,16, \"Standard_E8_v4\",8,65536,16, \"Standard_E80ids_v4\",80,516096,32, \"Standard_E80is_v4\",80,516096,32, \"Standard_E8-2ds_v4\",8,65536,16, \"Standard_E8-2s_v3\",8,65536,16, \"Standard_E8-2s_v4\",8,65536,16, \"Standard_E8-4ds_v4\",8,65536,16, \"Standard_E8-4s_v3\",8,65536,16, \"Standard_E8-4s_v4\",8,65536,16, \"Standard_E8d_v4\",8,65536,16, \"Standard_E8ds_v4\",8,65536,16, \"Standard_E8s_v3\",8,65536,16, \"Standard_E8s_v4\",8,65536,16, \"Standard_F1\",1,2048,4, \"Standard_F16\",16,32768,64, \"Standard_F16s\",16,32768,64, \"Standard_F16s_v2\",16,32768,32, \"Standard_F1s\",1,2048,4, \"Standard_F2\",2,4096,8, \"Standard_F2s\",2,4096,8, \"Standard_F2s_v2\",2,4096,4, \"Standard_F32s_v2\",32,65536,32, \"Standard_F4\",4,8192,16, \"Standard_F48s_v2\",48,98304,32, \"Standard_F4s\",4,8192,16, \"Standard_F4s_v2\",4,8192,8, \"Standard_F64s_v2\",64,131072,32, \"Standard_F72s_v2\",72,147456,32, \"Standard_F8\",8,16384,32, \"Standard_F8s\",8,16384,32, \"Standard_F8s_v2\",8,16384,16, \"Standard_HB120rs_v2\",120,480000,8, \"Standard_M128\",128,2048000,64, \"Standard_M128-32ms\",128,3891200,64, \"Standard_M128-64ms\",128,3891200,64, \"Standard_M128dms_v2\",128,3985408,64, \"Standard_M128ds_v2\",128,2097152,64, \"Standard_M128m\",128,3891200,64, \"Standard_M128ms\",128,3891200,64, \"Standard_M128ms_v2\",128,3985408,64, \"Standard_M128s\",128,2048000,64, \"Standard_M128s_v2\",128,2097152,64, \"Standard_M16-4ms\",16,448000,16, \"Standard_M16-8ms\",16,448000,16, \"Standard_M16ms\",16,448000,16, \"Standard_M192idms_v2\",192,4194304,64, \"Standard_M192ids_v2\",192,2097152,64, \"Standard_M192ims_v2\",192,4194304,64, \"Standard_M192is_v2\",192,2097152,64, \"Standard_M208ms_v2\",208,5836800,64, \"Standard_M208s_v2\",208,2918400,64, \"Standard_M32-16ms\",32,896000,32, \"Standard_M32-8ms\",32,896000,32, \"Standard_M32dms_v2\",32,896000,32, \"Standard_M32ls\",32,262144,32, \"Standard_M32ms\",32,896000,32, \"Standard_M32ms_v2\",32,896000,32, \"Standard_M32ts\",32,196608,32, \"Standard_M416-208ms_v2\",416,11673600,64, \"Standard_M416-208s_v2\",416,5836800,64, \"Standard_M416ms_v2\",416,11673600,64, \"Standard_M416s_v2\",416,5836800,64, \"Standard_M64\",64,1024000,64, \"Standard_M64-16ms\",64,1792000,64, \"Standard_M64-32ms\",64,1792000,64, \"Standard_M64dms_v2\",64,1835008,64, \"Standard_M64ds_v2\",64,1048576,64, \"Standard_M64ls\",64,524288,64, \"Standard_M64m\",64,1792000,64, \"Standard_M64ms\",64,1792000,64, \"Standard_M64ms_v2\",64,1835008,64, \"Standard_M64s\",64,1024000,64, \"Standard_M64s_v2\",64,1048576,64, \"Standard_M8-2ms\",8,224000,8, \"Standard_M8-4ms\",8,224000,8, \"Standard_M8ms\",8,224000,8, \"Standard_NV12s_v2\",12,229376,24, \"Standard_NV12s_v3\",12,114688,12, \"Standard_NV24s_v2\",24,458752,32, \"Standard_NV24s_v3\",24,229376,24, \"Standard_NV48s_v3\",48,458752,32, \"Standard_NV6s_v2\",6,114688,12 ]; let VMPriceAll=externaldata (armskuname:string,skuname:string,type:string,unitprice:real,reservationterm:string, Location:string) [ h@\"https://storpubresnp39221944.blob.core.windows.net/price?sp=r&st=2022-09-09T10:29:38Z&se=2025-04-05T18:29:38Z&spr=https&sv=2021-06-08&sr=c&sig=ha%2BAdyShHNGMzfFs7S%2BheViNeW%2F8ECSaQcQY5reY5%2BU%3D\" ] with(format=\"csv\"); let inv=VMComputer | where TimeGenerated > ago(60d) | where AzureSubscriptionId in ('5733bcb3-7fde-4caf-8629-41dc15e3b352','45f9252d-e27e-4ed8-ab4e-dc5054de13fa','2de20a16-20c6-41af-82cd-bceb39195d1c') or '*' in ('5733bcb3-7fde-4caf-8629-41dc15e3b352','45f9252d-e27e-4ed8-ab4e-dc5054de13fa','2de20a16-20c6-41af-82cd-bceb39195d1c') | where tostring(split(_ResourceId,'/')[4]) in ('*') or '*' in ('*') | summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId | project ResourceId , Computer , AzureSize ,Cpus , CpuSpeed ,PhysicalMemoryMB, AzureLocation | where isnotempty(AzureSize); let cpu=InsightsMetrics | where TimeGenerated > ago(60d) | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset | where hour between (workstart..workend) | where Namespace == \"Processor\" | where Name == \"UtilizationPercentage\" | summarize (Cpu)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId; let mem= InsightsMetrics | where TimeGenerated > ago(60d) | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset | where Namespace == \"Memory\" | where Name == \"AvailableMB\" | extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]), 0) | extend Val=(MemorySize - Val) / MemorySize*100 | summarize (Mem)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId; let iops= InsightsMetrics | where TimeGenerated > ago(60d) | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset | where Namespace == \"LogicalDisk\" | where Name == \"TransfersPerSecond\" | summarize (IOPs)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId; let table=inv | join kind= leftouter (cpu) on ResourceId | join kind= leftouter (mem) on ResourceId | join kind= leftouter (iops) on ResourceId | join kind= fullouter (vmsize) on $left.AzureSize == $right.Name | project Computer, AzureSize, Cpus, CpuSpeed, Cpu, Mem, IOPs, PhysicalMemoryMB, Disks, maxIops=Disks * 500, ResourceId,AzureLocation | extend minMemoryReq= PhysicalMemoryMB*Mem / 100 + 500 | extend newram= case(minMemoryReq < 0, PhysicalMemoryMB, minMemoryReq < 512, 512, minMemoryReq < 768, 768, minMemoryReq < 1024, 1024, minMemoryReq < 1792, 1792, minMemoryReq < 2048, 2048, minMemoryReq < 3584, 3584, minMemoryReq < 4096, 4096, minMemoryReq < 7168, 7168, minMemoryReq < 8192, 8192, minMemoryReq < 14336, 14336, minMemoryReq < 16384, 16384, minMemoryReq < 28672, 28672, minMemoryReq < 32768, 32768, minMemoryReq < 49152, 49152, minMemoryReq < 57344, 57344, minMemoryReq < 65536, 65536, minMemoryReq < 81920, 81920, minMemoryReq < 98304, 98304, minMemoryReq < 114688, 114688, minMemoryReq < 131072, 131072, minMemoryReq < 143360, 143360, minMemoryReq < 147456, 147456, minMemoryReq < 163840, 163840, minMemoryReq < 196608, 196608, minMemoryReq < 224000, 224000, minMemoryReq < 229376, 229376, minMemoryReq < 262144, 262144, minMemoryReq < 393216, 393216, minMemoryReq < 442368, 442368, minMemoryReq < 448000, 448000, minMemoryReq < 458752, 458752, minMemoryReq < 466944, 466944, minMemoryReq < 516096, 516096, minMemoryReq < 524288, 524288, minMemoryReq < 896000, 896000, minMemoryReq < 1024000, 1024000, minMemoryReq < 1048576, 1048576, minMemoryReq < 1792000, 1792000, minMemoryReq < 1835008, 1835008, minMemoryReq < 2048000, 2048000, minMemoryReq < 2097152, 2097152, minMemoryReq < 2918400, 2918400, minMemoryReq < 3891200, 3891200, minMemoryReq < 3985408, 3985408, minMemoryReq < 4194304, 4194304, minMemoryReq < 5836800, 5836800, 0) | extend cpu_resize=iff(Cpu < toint(\"38\") and Cpus != 1, \"yes\", \"no\") | extend mem_resize=iff(Mem < toint(\"45\") and newram < PhysicalMemoryMB, \"yes\", \"no\") | extend iops_resize=iff(IOPs < (maxIops*0.4), \"yes\", \"no\") | extend newcpu= toint(iff (Cpus <= 2, 2, Cpus/2)) | where cpu_resize ==\"yes\" and mem_resize==\"yes\" and iops_resize == \"yes\" ; let costtable=table | join kind= leftouter (vmsize | project Name, vcores=toint(vcores), Ram, Disks) on $left.newcpu==$right.vcores | where Ram <= PhysicalMemoryMB and Ram >= minMemoryReq | where Name !startswith 'Basic' | extend s=split(Name, '_') | extend VmfamilyTarget=case( substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 1),'_', s[2]), substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 1)==\"B\",strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)==\"GS\",strcat(s[0],'_', substring(s[1], 0, 2)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 2),'_', s[2]), substring(s[1], 0, 1) in(\"H\",\"G\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(s[0],'_', substring(s[1], 0, 2)), Name) | extend y=split(AzureSize, '_') | extend VmfamilyCurrent=case( substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 1),'_', y[2]), substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 1)==\"B\",strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)==\"GS\",strcat(y[0],'_', substring(y[1], 0, 2)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 2),'_', y[2]), substring(y[1], 0, 1) in(\"H\",\"G\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(y[0],'_', substring(y[1], 0, 2)), AzureSize) | where AzureSize != Name and iff(\"same\"==\"same\",VmfamilyTarget == VmfamilyCurrent,VmfamilyTarget in ('Standard_A','Standard_A_v2','Standard_B','Standard_D','Standard_D_v2','Standard_D_v3','Standard_D_v4','Standard_E_v3','Standard_E_v4','Standard_F','Standard_F_v2','Standard_G','Standard_GS','Standard_H','Standard_HB_v2','Standard_L','Standard_L_v2','Standard_M','Standard_M_v2','Standard_NC','Standard_NC_v2','Standard_NC_v3','Standard_ND','Standard_ND_v2','Standard_ND_v4','Standard_NP','Standard_NV','Standard_NV_v2','Standard_NV_v3','Standard_NV_v4','Standard_PB') or '*' in ('Standard_A','Standard_A_v2','Standard_B','Standard_D','Standard_D_v2','Standard_D_v3','Standard_D_v4','Standard_E_v3','Standard_E_v4','Standard_F','Standard_F_v2','Standard_G','Standard_GS','Standard_H','Standard_HB_v2','Standard_L','Standard_L_v2','Standard_M','Standard_M_v2','Standard_NC','Standard_NC_v2','Standard_NC_v3','Standard_ND','Standard_ND_v2','Standard_ND_v4','Standard_NP','Standard_NV','Standard_NV_v2','Standard_NV_v3','Standard_NV_v4','Standard_PB')) | sort by Ram asc | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\"| project armskuname,VMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\"| project armskuname,NewVMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"1 Year\"| project armskuname,NewVM_RI1Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"3 Years\"| project armskuname,NewVM_RI3Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname | extend VMCost=VMCost*730, NewVMCost=NewVMCost*730, NewVM_RI1YCost=NewVM_RI1Y/12,NewVM_RI3YCost=NewVM_RI3Y/36 |extend DiffPayg=VMCost-NewVMCost, DiffRI1=VMCost-NewVM_RI1YCost,DiffRI3=VMCost-NewVM_RI3YCost | where NewVMCost < VMCost | project Computer, AzureSize, NewSize=Name,VMCost,NewVMCost,ResourceId,DiffPayg,DiffRI1,DiffRI3,vcores,Ram,NewVM_RI1YCost,NewVM_RI3YCost;", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -730,9 +724,6 @@ "query": "let workstart={PeakHourStart};\r\nlet workend={PeakHourEnd};\r\nlet timezoneoffset=4;\r\n{VMSizeList}\r\nlet inv=VMComputer\r\n| where TimeGenerated {TimeRange}\r\n| where AzureSubscriptionId in ({subscription:subid}) or '*' in ({subscription:subid})\r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg})\r\n| summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId\r\n| project ResourceId , Computer , AzureSize ,Cpus , CpuSpeed ,PhysicalMemoryMB;\r\nlet cpu=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where hour between (workstart..workend)\r\n| where Namespace == \"Processor\" \r\n| where Name == \"UtilizationPercentage\"\r\n| summarize (cpu_p50,cpu_p95)=percentiles(Val,50,95),cpu_avg=avg(Val) by Computer, ResourceId=_ResourceId;\r\nlet mem=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Memory\" \r\n| where Name == \"AvailableMB\"\r\n| extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]),0)\r\n| extend MemUtil=(MemorySize-Val)/MemorySize*100\r\n|summarize (mem_p95)=percentiles(MemUtil,95) by Computer, ResourceId=_ResourceId;\r\nlet iops=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"LogicalDisk\" \r\n| where Name == \"TransfersPerSecond\"\r\n|summarize (iops_p95)=percentiles(Val,95) by Computer, ResourceId=_ResourceId;\r\nlet nwsent=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Network\"\r\n| where Name == \"WriteBytesPerSecond\" \r\n|summarize (nwsent)=percentiles(Val,95) by Computer, ResourceId=_ResourceId;\r\nlet nwrec=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Network\"\r\n| where Name == \"ReadBytesPerSecond\" \r\n|summarize (nwrec)=percentiles(Val,95) by Computer, ResourceId=_ResourceId;\r\nlet boot=Syslog\r\n| where Facility ==\"daemon\"\r\n| where SyslogMessage startswith \"Startup finished\" \r\n| where ProcessID == 1 \r\n|summarize bootcount=count() by Computer, ResourceId=_ResourceId\r\n|union isfuzzy=true (Event\r\n| where TimeGenerated {TimeRange}\r\n| where EventLog == \"System\" \r\n| where EventID == 1074 \r\n|summarize bootcount=count() by Computer, ResourceId=_ResourceId);\r\nlet logons=SecurityEvent\r\n| where EventID == 4624\r\n| where LogonTypeName ==\"10 - RemoteInteractive\" \r\n| where Account !contains \"Font Driver Host\" and Account !contains \"Window Manager\"\r\n| summarize ['SSH/RDP']=count() by Computer, ResourceId=_ResourceId\r\n|union isfuzzy=true (Syslog\r\n| where Facility == \"auth\"\r\n| where SyslogMessage startswith \"Accepted password for\" or SyslogMessage startswith \"Accepted publickey for\"\r\n| summarize ['SSH/RDP']=count() by Computer, ResourceId=_ResourceId);\r\nlet vmcon=VMConnection\r\n| where Direction == \"inbound\" \r\n| where SourceIp <> \"127.0.0.1\" \r\n| summarize InboundCon=sum(LinksEstablished+LinksTerminated+LinksLive) by Computer, ResourceId=_ResourceId;\r\ninv\r\n| join kind= leftouter (\r\n cpu\r\n) on ResourceId\r\n| join kind= leftouter (\r\n mem\r\n) on ResourceId\r\n| join kind= leftouter (\r\n iops\r\n) on ResourceId\r\n| join kind= leftouter (\r\n vmcon\r\n) on ResourceId\r\n| join kind= leftouter (\r\n vmsize\r\n) on $left.AzureSize==$right.Name\r\n|project Computer, AzureSize, Cpus,CpuSpeed, cpu_p95, mem_p95 , iops_p95 ,RAM=PhysicalMemoryMB,Disks,maxIops=Disks*500 ,ResourceId\r\n| extend VmFamily=tostring(split(AzureSize,'_')[1])\r\n| extend Fm1=substring(VmFamily,0,1) \r\n| extend Fm2=substring(VmFamily,1,1)\r\n| extend Vmfamily=iff(Fm2 matches regex \"[0-9]\", Fm1, strcat(Fm1,Fm2))\r\n|extend ramneed= RAM*mem_p95/100+500\r\n| extend newram= case(\r\nramneed<0,RAM,\r\nramneed<1024,1024,\r\nramneed<2048,2048,\r\nramneed<3584,3584,\r\nramneed<4096,4096,\r\nramneed<7168,7168,\r\nramneed<8192,8192,\r\nramneed<14336,14336,\r\nramneed<16386,16384,\r\nramneed<28672,28672,\r\nramneed<32768,32768,0\r\n)\r\n| extend cpu_resize=iff(cpu_p95ago(30d)\r\n| where AzureSubscriptionId in ({subscription:subid}) or '*' in ({subscription:subid})\r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg})\r\n| summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId\r\n| project ResourceId , Computer , AzureSize ,AzureLocation\r\n| where isnotempty(AzureSize);\r\ninv\r\n| join kind=leftouter hint.strategy= shuffle (VMPriceAll| where type==\"Consumption\"| project armskuname,unitprice,Location) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname\r\n| join kind=leftouter hint.strategy= shuffle (VMPriceAll| where reservationterm == \"1 Year\"| project armskuname,unitprice_RI1Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname\r\n| join kind=leftouter hint.strategy= shuffle (VMPriceAll| where reservationterm == \"3 Years\"| project armskuname,unitprice_RI3Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname\r\n|project-away armskuname1,armskuname2,Location1,Location2,reservationterm,reservationterm1,armskuname\r\n| extend Payg=unitprice*730,1YearRIMonthly=unitprice_RI1Y/12,3YearRIMonthly=unitprice_RI3Y/36\r\n| summarize Payg=sum(Payg),1YearRIMonthly=sum(1YearRIMonthly),3YearRIMonthly=sum(3YearRIMonthly) by Details=\"CurrentCost\"\r\n//| project Payg,1YearRIMonthly=iff(1YearRIMonthly==0,Payg*todouble({RI1Y}),1YearRIMonthly),3YearRIMonthly=iff(3YearRIMonthly==0,Payg*todouble({RI3Y}),3YearRIMonthly),Details\r\n| project Payg,Details\r\n\r\n", "size": 0, "title": "Current Monthly (730H) Estimated Cost for Existing VMs (PAYG)", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "ResourceId", @@ -1333,9 +1318,6 @@ "query": "{FinalTable}\r\ncosttable\r\n| summarize arg_max(DiffPayg,*) by ResourceId\r\n| summarize DiffPayg=sum(DiffPayg), DiffRI1=sum(DiffRI1),DiffRI3=sum(DiffRI3) by Detail=\"CurrentVM PayG vs New\"\r\n\r\n\r\n\r\n\r\n", "size": 0, "title": "Total Monthly Saving Compared to Current PayG Price", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "ResourceId", @@ -1553,9 +1535,6 @@ "size": 2, "showAnalytics": true, "title": "VM Usage with Resize Options", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -1695,15 +1674,6 @@ ], "rowLimit": 1000, "labelSettings": [ - { - "columnId": "ResourceId" - }, - { - "columnId": "AzureSize" - }, - { - "columnId": "Cpus" - }, { "columnId": "Cpu", "label": "%CPU" @@ -1712,24 +1682,9 @@ "columnId": "Mem", "label": "%Mem" }, - { - "columnId": "IOPs" - }, - { - "columnId": "cpu_resize" - }, - { - "columnId": "mem_resize" - }, - { - "columnId": "iops_resize" - }, { "columnId": "newcpu", "label": "Recomended CPU" - }, - { - "columnId": "newram" } ] }, @@ -2027,9 +1982,6 @@ "query": "let workstart=8;\r\nlet workend=17;\r\nlet timezoneoffset=4;\r\nlet cpu=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| where tostring(split(_ResourceId,'/')[2]) in ({subscription:subid}) or '*' in ({subscription:subid})\r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg})\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where hour between (workstart..workend)\r\n| where Namespace == \"Processor\" \r\n| where Name == \"UtilizationPercentage\"\r\n| summarize (cpu_p50,cpu_p95)=percentiles(Val,50,95),cpu_avg=avg(Val) by Computer, ResourceId=_ResourceId;\r\nlet mem=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n//| where hour between (workstart..workend)\r\n| where Namespace == \"Memory\" \r\n| where Name == \"AvailableMB\"\r\n|summarize (mem_p95)=percentiles(Val,95) by Computer;\r\nlet iops=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n//| where hour between (workstart..workend)\r\n| where Namespace == \"LogicalDisk\" \r\n| where Name == \"TransfersPerSecond\"\r\n|summarize (iops_p95)=percentiles(Val,95) by Computer;\r\nlet nwsent=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n//| where hour between (workstart..workend)\r\n| where Namespace == \"Network\"\r\n| where Name == \"WriteBytesPerSecond\" \r\n|summarize (nwsent)=percentiles(Val,95) by Computer;\r\nlet nwrec=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n//| where hour between (workstart..workend)\r\n| where Namespace == \"Network\"\r\n| where Name == \"ReadBytesPerSecond\" \r\n|summarize (nwrec)=percentiles(Val,95) by Computer;\r\nlet boot=Syslog\r\n| where Facility ==\"daemon\"\r\n| where SyslogMessage startswith \"Startup finished\" \r\n| where ProcessID == 1 \r\n|summarize bootcount=count() by Computer\r\n|union isfuzzy=true (Event\r\n| where TimeGenerated {TimeRange}\r\n| where EventLog == \"System\" \r\n| where EventID == 1074 \r\n|summarize bootcount=count() by Computer);\r\nlet logons=SecurityEvent\r\n| where EventID == 4624\r\n| where LogonTypeName ==\"10 - RemoteInteractive\" \r\n| where Account !contains \"Font Driver Host\" and Account !contains \"Window Manager\"\r\n| summarize ['SSH/RDP']=count() by Computer\r\n|union isfuzzy=true (Syslog\r\n| where Facility == \"auth\"\r\n| where SyslogMessage startswith \"Accepted password for\" or SyslogMessage startswith \"Accepted publickey for\"\r\n| summarize ['SSH/RDP']=count() by Computer);\r\nlet vmcon=VMConnection\r\n| where Direction == \"inbound\" \r\n| where SourceIp <> \"127.0.0.1\" \r\n| summarize InboundCon=sum(LinksEstablished+LinksTerminated+LinksLive) by Computer;\r\ncpu\r\n| join kind= leftouter (\r\n mem\r\n) on Computer\r\n| join kind= leftouter (\r\n nwsent\r\n) on Computer\r\n| join kind= leftouter (\r\n nwrec\r\n) on Computer\r\n| join kind= leftouter (\r\n boot\r\n) on Computer\r\n| join kind= leftouter (\r\n logons\r\n) on Computer\r\n| join kind= leftouter (\r\n iops\r\n) on Computer\r\n| join kind= leftouter (\r\n vmcon\r\n) on Computer\r\n|project ResourceId,Computer , ['SSH/RDP'] , bootcount , cpu_p95 , cpu_avg ,mem_p95,Nw_Sent=format_bytes(nwsent), Nw_Rec=format_bytes(nwrec),InboundCon,iops_p95\r\n\r\n\t\t\t\r\n\r\n ", "size": 0, "title": "VM Usage Indicators", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -2328,9 +2280,6 @@ "size": 1, "aggregation": 3, "title": "%CPU History", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "showExportToExcel": true, "queryType": 0, @@ -2375,9 +2324,6 @@ "size": 1, "aggregation": 3, "title": "Memory Utilization %", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "showExportToExcel": true, "queryType": 0, @@ -2433,9 +2379,6 @@ "size": 1, "aggregation": 3, "title": "IOPS History", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "showExportToExcel": true, "queryType": 0, @@ -2489,9 +2432,6 @@ "aggregation": 3, "showAnalytics": true, "title": "IOPs Latency ms ", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "showExportToExcel": true, "queryType": 0, @@ -2544,9 +2484,6 @@ "size": 1, "aggregation": 3, "title": "NW Sent Bytes/sec History", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "queryType": 0, "resourceType": "microsoft.operationalinsights/workspaces", @@ -2601,9 +2538,6 @@ "size": 1, "aggregation": 3, "title": "NW Receive Bytes/sec History", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "queryType": 0, "resourceType": "microsoft.operationalinsights/workspaces", @@ -2657,9 +2591,6 @@ "query": "let workstart={PeakHourStart};\r\nlet workend={PeakHourEnd};\r\nlet timezoneoffset=4;\r\n{VMSizeList}\r\nlet inv=VMComputer\r\n| where TimeGenerated {TimeRange}\r\n| where AzureSubscriptionId in ({subscription:subid}) or '*' in ({subscription:subid})\r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg})\r\n| summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId\r\n| project ResourceId , Computer , AzureSize ,Cpus , CpuSpeed ,PhysicalMemoryMB\r\n| where isnotempty(AzureSize);\r\nlet cpu=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where hour between (workstart..workend)\r\n| where Namespace == \"Processor\" \r\n| where Name == \"UtilizationPercentage\"\r\n| summarize (Cpu)= {AggregatesRight} by ResourceId=_ResourceId;\r\nlet mem=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Memory\" \r\n| where Name == \"AvailableMB\"\r\n| extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]),0)\r\n| extend Val=(MemorySize-Val)/MemorySize*100\r\n|summarize (Mem)= {AggregatesRight} by ResourceId=_ResourceId;\r\nlet iops=\r\nInsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"LogicalDisk\" \r\n| where Name == \"TransfersPerSecond\"\r\n|summarize (IOPs)= {AggregatesRight} by ResourceId=_ResourceId;\r\nlet nwsent=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Network\"\r\n| where Name == \"WriteBytesPerSecond\" \r\n|summarize (nwsent)= {AggregatesRight} by ResourceId=_ResourceId;\r\nlet nwrec=InsightsMetrics\r\n| where TimeGenerated {TimeRange}\r\n| extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset\r\n| where Namespace == \"Network\"\r\n| where Name == \"ReadBytesPerSecond\" \r\n|summarize (nwrec)= {AggregatesRight} by ResourceId=_ResourceId;\r\nlet table=inv\r\n| join kind= leftouter (\r\n cpu\r\n) on ResourceId\r\n| join kind= leftouter (\r\n mem\r\n) on ResourceId\r\n| join kind= leftouter (\r\n iops\r\n) on ResourceId\r\n| join kind= leftouter (\r\n vmsize\r\n) on $left.AzureSize==$right.Name\r\n|project Computer, AzureSize, Cpus,CpuSpeed, Cpu, Mem, IOPs ,PhysicalMemoryMB,Disks,maxIops=Disks*500 ,ResourceId\r\n| extend minMemoryReq= PhysicalMemoryMB*Mem / 100 + 500\r\n| extend newram= case(minMemoryReq < 0, PhysicalMemoryMB, minMemoryReq < 512, 512, minMemoryReq < 768, 768, minMemoryReq < 1024, 1024, minMemoryReq < 1792, 1792, minMemoryReq < 2048, 2048, minMemoryReq < 3584, 3584, minMemoryReq < 4096, 4096, minMemoryReq < 7168, 7168, minMemoryReq < 8192, 8192, minMemoryReq < 14336, 14336, minMemoryReq < 16384, 16384, minMemoryReq < 28672, 28672, minMemoryReq < 32768, 32768, minMemoryReq < 49152, 49152, minMemoryReq < 57344, 57344, minMemoryReq < 65536, 65536, minMemoryReq < 81920, 81920, minMemoryReq < 98304, 98304, minMemoryReq < 114688, 114688, minMemoryReq < 131072, 131072, minMemoryReq < 143360, 143360, minMemoryReq < 147456, 147456, minMemoryReq < 163840, 163840, minMemoryReq < 196608, 196608, minMemoryReq < 224000, 224000, minMemoryReq < 229376, 229376, minMemoryReq < 262144, 262144, minMemoryReq < 393216, 393216, minMemoryReq < 442368, 442368, minMemoryReq < 448000, 448000, minMemoryReq < 458752, 458752, minMemoryReq < 466944, 466944, minMemoryReq < 516096, 516096, minMemoryReq < 524288, 524288, minMemoryReq < 896000, 896000, minMemoryReq < 1024000, 1024000, minMemoryReq < 1048576, 1048576, minMemoryReq < 1792000, 1792000, minMemoryReq < 1835008, 1835008, minMemoryReq < \r\n2048000, 2048000, minMemoryReq < 2097152, 2097152, minMemoryReq < 2918400, 2918400, minMemoryReq < 3891200, 3891200, minMemoryReq < 3985408, 3985408, minMemoryReq < 4194304, 4194304, minMemoryReq < 5836800, 5836800, 0)\r\n| extend cpu_resize=iff(Cpu < toint(\"{CPUThreshold}\") and Cpus != 1, \"yes\", \"no\")\r\n| extend mem_resize=iff(Mem < toint(\"{MEMThreshold}\") and newram < PhysicalMemoryMB, \"yes\", \"no\")\r\n| extend iops_resize=iff(IOPs < (maxIops*0.4), \"yes\", \"no\") \r\n| extend newcpu= toint(iff (Cpus <= 2, 2, Cpus/2))\r\n| where cpu_resize ==\"yes\" and mem_resize==\"yes\" and iops_resize == \"yes\" ;\r\ntable\r\n| join kind= leftouter (\r\n vmsize\r\n | project Name,vcores=toint(vcores),Ram,Disks\r\n) on $left.newcpu==$right.vcores\r\n| where Ram <= PhysicalMemoryMB and Ram >= minMemoryReq\r\n| where Name !startswith 'Basic'\r\n// Calculate VM Family for filtering\r\n| extend s=split(Name, '_')\r\n| extend VmfamilyTarget=case(\r\nsubstring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 1),'_', s[2]),\r\nsubstring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(s[0],'_', substring(s[1], 0, 1)),\r\nsubstring(s[1], 0, 1)==\"B\",strcat(s[0],'_', substring(s[1], 0, 1)),\r\nsubstring(s[1], 0, 2)==\"GS\",strcat(s[0],'_', substring(s[1], 0, 2)),\r\nsubstring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 2),'_', s[2]),\r\nsubstring(s[1], 0, 1) in(\"H\",\"G\"),strcat(s[0],'_', substring(s[1], 0, 1)),\r\nsubstring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(s[0],'_', substring(s[1], 0, 2)),\r\n Name)\r\n| extend y=split(AzureSize, '_')\r\n| extend VmfamilyCurrent=case(\r\nsubstring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 1),'_', y[2]),\r\nsubstring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(y[0],'_', substring(y[1], 0, 1)),\r\nsubstring(y[1], 0, 1)==\"B\",strcat(y[0],'_', substring(y[1], 0, 1)),\r\nsubstring(y[1], 0, 2)==\"GS\",strcat(y[0],'_', substring(y[1], 0, 2)),\r\nsubstring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 2),'_', y[2]),\r\nsubstring(y[1], 0, 1) in(\"H\",\"G\"),strcat(y[0],'_', substring(y[1], 0, 1)),\r\nsubstring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(y[0],'_', substring(y[1], 0, 2)),\r\n AzureSize)\r\n| where AzureSize != Name and iff(\"{usesamefamily:value}\"==\"same\",VmfamilyTarget == VmfamilyCurrent,VmfamilyTarget in ({VMFamilyFilter}) or '*' in ({VMFamilyFilter}))\r\n| sort by Ram asc \r\n| summarize possibleSize = makelist(pack('size', strcat(Name, '|', vcores, '|', Ram))) by ResourceId, AzureSize, Vmfamily=VmfamilyCurrent, Cpus, PhysicalMemoryMB, newcpu, newram, CpuSpeed, Cpu, Mem, IOPs, Disks, cpu_resize, mem_resize, iops_resize", "size": 0, "title": "Size Recomendations with VM Fmaily Filter", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "ResourceId", @@ -2809,31 +2740,10 @@ ], "rowLimit": 1000, "labelSettings": [ - { - "columnId": "ResourceId" - }, - { - "columnId": "AzureSize" - }, - { - "columnId": "Vmfamily" - }, - { - "columnId": "Cpus" - }, { "columnId": "PhysicalMemoryMB", "label": "MemMB" }, - { - "columnId": "newcpu" - }, - { - "columnId": "newram" - }, - { - "columnId": "CpuSpeed" - }, { "columnId": "Cpu", "label": "%CPU" @@ -2841,24 +2751,6 @@ { "columnId": "Mem", "label": "%MEM" - }, - { - "columnId": "IOPs" - }, - { - "columnId": "Disks" - }, - { - "columnId": "cpu_resize" - }, - { - "columnId": "mem_resize" - }, - { - "columnId": "iops_resize" - }, - { - "columnId": "possibleSize" } ] }, @@ -2881,9 +2773,6 @@ "query": "{FinalTable}\r\ncosttable\r\n| summarize arg_max(DiffPayg,*) by ResourceId\r\n| join kind=leftouter (costtable\r\n|sort by ResourceId,NewVMCost asc\r\n| summarize possibleSizes = makelist(pack('size', strcat(NewSize , '|',NewVMCost,' | ',vcores,'|',Ram))) by ResourceId,AzureSize\r\n) on ResourceId\r\n| project ResourceId, CurrentSize=AzureSize, NewSize,VMCost,NewVMCost,NewVM_RI1YCost,NewVM_RI3YCost,vcores,Ram,possibleSizes,Computer;\r\n\r\n\r\n", "size": 0, "title": "Size Recomendations with PayG, 1 Year RI, 3 Year RI", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -3139,9 +3028,6 @@ "query": "let workstart={PeakHourStart}; \r\nlet workend={PeakHourEnd}; \r\nlet timezoneoffset=4; \r\n{VMSizeList} \r\n{VMPriceAll} \r\nlet inv=VMComputer \r\n| where TimeGenerated {TimeRange} \r\n| where AzureSubscriptionId in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId \r\n| project ResourceId , Computer , AzureSize ,Cpus , CpuSpeed ,PhysicalMemoryMB, AzureLocation \r\n| where isnotempty(AzureSize); \r\nlet cpu=InsightsMetrics \r\n| where TimeGenerated {TimeRange} \r\n| extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset \r\n| where hour between (workstart..workend)\r\n | where Namespace == \"Processor\"\r\n | where Name == \"UtilizationPercentage\"\r\n | summarize (Cpu)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId;\r\n let mem= InsightsMetrics \r\n | where TimeGenerated {TimeRange} | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset\r\n | where Namespace == \"Memory\" \r\n | where Name == \"AvailableMB\" | extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]), 0) \r\n | extend Val=(MemorySize - Val) / MemorySize*100 | summarize (Mem)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId;\r\n let iops= InsightsMetrics \r\n | where TimeGenerated {TimeRange}\r\n | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset \r\n | where Namespace == \"LogicalDisk\" | where Name == \"TransfersPerSecond\" \r\n | summarize (IOPs)= round(percentile(Val, 99), 2) by ResourceId=_ResourceId;\r\n let table=inv | join kind= leftouter (cpu) on ResourceId | join kind= leftouter (mem) on ResourceId \r\n | join kind= leftouter (iops) on ResourceId | join kind= leftouter (vmsize) on $left.AzureSize == $right.Name\r\n | project Computer, AzureSize, Cpus, CpuSpeed, Cpu, Mem, IOPs, PhysicalMemoryMB, Disks, maxIops=Disks * 500, ResourceId,AzureLocation \r\n | extend minMemoryReq= PhysicalMemoryMB*Mem / 100 + 500 | extend newram= case(minMemoryReq < 0, PhysicalMemoryMB, minMemoryReq < 512, 512, minMemoryReq < 768, 768, minMemoryReq < 1024, 1024, minMemoryReq < 1792, 1792, minMemoryReq < 2048, 2048, minMemoryReq < 3584, 3584, minMemoryReq < 4096, 4096, minMemoryReq < 7168, 7168, minMemoryReq < 8192, 8192, minMemoryReq < 14336, 14336, minMemoryReq < 16384, 16384, minMemoryReq < 28672, 28672, minMemoryReq < 32768, 32768, minMemoryReq < 49152, 49152, minMemoryReq < 57344, 57344, minMemoryReq < 65536, 65536, minMemoryReq < 81920, 81920, minMemoryReq < 98304, 98304, minMemoryReq < 114688, 114688, minMemoryReq < 131072, 131072, minMemoryReq < 143360, 143360, minMemoryReq < 147456, 147456, minMemoryReq < 163840, 163840, minMemoryReq < 196608, 196608, minMemoryReq < 224000, 224000, minMemoryReq < 229376, 229376, minMemoryReq < 262144, 262144, minMemoryReq < 393216, 393216, minMemoryReq < 442368, 442368, minMemoryReq < 448000, 448000, minMemoryReq < 458752, 458752, minMemoryReq < 466944, 466944, minMemoryReq < 516096, 516096, minMemoryReq < 524288, 524288, minMemoryReq < 896000, 896000, minMemoryReq < 1024000, 1024000, minMemoryReq < 1048576, 1048576, minMemoryReq < 1792000, 1792000, minMemoryReq < 1835008, 1835008, minMemoryReq < 2048000, 2048000, minMemoryReq < 2097152, 2097152, minMemoryReq < 2918400, 2918400, minMemoryReq < 3891200, 3891200, minMemoryReq < 3985408, 3985408, minMemoryReq < 4194304, 4194304, minMemoryReq < 5836800, 5836800, 0) \r\n | extend cpu_resize=iff(Cpu < toint(\"{CPUThreshold}\") and Cpus != 1, \"yes\", \"no\") | extend mem_resize=iff(Mem < toint(\"{MEMThreshold}\") and newram < PhysicalMemoryMB, \"yes\", \"no\") \r\n | extend iops_resize=iff(IOPs < (maxIops*0.4), \"yes\", \"no\") | extend newcpu= toint(iff (Cpus <= 2, 2, Cpus/2)) \r\n | extend CanResize=iff(cpu_resize ==\"yes\" and mem_resize==\"yes\" and iops_resize == \"yes\" , \"Resizing Possible\",\"Resizing not Possible\")\r\n | where CanResize==\"Resizing not Possible\";\r\n let costtable=table \r\n | extend Dummy=1\r\n| join kind= leftouter (vmsize | project Name, vcores=toint(vcores), Ram, Disks| extend Dummy=1) on Dummy \r\n | where Ram >= minMemoryReq and vcores==Cpus\r\n | where Name !startswith 'Basic' | extend s=split(Name, '_') | extend VmfamilyTarget=case( substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 1),'_', s[2]), substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 1)==\"B\",strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)==\"GS\",strcat(s[0],'_', substring(s[1], 0, 2)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 2),'_', s[2]), substring(s[1], 0, 1) in(\"H\",\"G\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(s[0],'_', substring(s[1], 0, 2)), Name) | extend y=split(AzureSize, '_') | extend VmfamilyCurrent=case( substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 1),'_', y[2]), substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 1)==\"B\",strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)==\"GS\",strcat(y[0],'_', substring(y[1], 0, 2)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 2),'_', y[2]), substring(y[1], 0, 1) in(\"H\",\"G\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(y[0],'_', substring(y[1], 0, 2)), AzureSize) \r\n| where AzureSize != Name and iff(\"{usesamefamily:value}\"==\"same\",VmfamilyTarget == VmfamilyCurrent,VmfamilyTarget in ({VMFamilyFilter}) or '*' in ({VMFamilyFilter})) \r\n | sort by Ram asc \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\" | project armskuname,VMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\"| project armskuname,NewVMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"1 Year\"| project armskuname,NewVM_RI1Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"3 Years\"| project armskuname,NewVM_RI3Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | extend VMCost=VMCost*730, NewVMCost=NewVMCost*730, NewVM_RI1YCost=NewVM_RI1Y/12,NewVM_RI3YCost=NewVM_RI3Y/36 |extend DiffPayg=VMCost-NewVMCost, DiffRI1=VMCost-NewVM_RI1YCost,DiffRI3=VMCost-NewVM_RI3YCost \r\n | where NewVMCost < VMCost | project Computer, AzureSize,Cpus, NewSize=Name,vcores,VMCost,NewVMCost,ResourceId,DiffPayg,DiffRI1,DiffRI3,Ram,NewVM_RI1YCost,NewVM_RI3YCost ;\r\ncosttable\r\n| summarize arg_max(DiffPayg,*) by ResourceId\r\n| join kind=leftouter (costtable\r\n|sort by ResourceId,NewVMCost asc\r\n| summarize possibleSizes = makelist(pack('size', strcat(NewSize , '|',NewVMCost,' | ',vcores,'|',Ram))) by ResourceId,AzureSize\r\n) on ResourceId\r\n| project ResourceId, CurrentSize=AzureSize, NewSize,VMCost,NewVMCost,NewVM_RI1YCost,NewVM_RI3YCost,vcores,Ram,possibleSizes,Computer;\r\n", "size": 2, "title": "Cost Optimization for VMs with High Utilization ", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -3378,9 +3264,6 @@ "query": "let workstart={PeakHourStart}; \r\nlet workend={PeakHourEnd}; \r\nlet timezoneoffset=4; \r\n{VMSizeList} \r\n{VMPriceAll} \r\nlet inv=VMComputer \r\n| where TimeGenerated {TimeRange} \r\n| where AzureSubscriptionId in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| summarize arg_max(TimeGenerated, *) by ResourceId=_ResourceId \r\n| project ResourceId , Computer , AzureSize ,Cpus , CpuSpeed ,PhysicalMemoryMB, AzureLocation \r\n| where isnotempty(AzureSize); \r\nlet cpu=InsightsMetrics \r\n| where TimeGenerated {TimeRange} \r\n| extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset \r\n| where hour between (workstart..workend)\r\n | where Namespace == \"Processor\"\r\n | where Name == \"UtilizationPercentage\"\r\n | summarize (Cpu)= round(percentile(Val, 99), 2) by Computer, ResourceId=_ResourceId;\r\n let mem= InsightsMetrics \r\n | where TimeGenerated {TimeRange} | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset\r\n | where Namespace == \"Memory\" \r\n | where Name == \"AvailableMB\" | extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]), 0) \r\n | extend Val=(MemorySize - Val) / MemorySize*100 | summarize (Mem)= round(percentile(Val, 99), 2) by Computer, ResourceId=_ResourceId;\r\n let iops= InsightsMetrics \r\n | where TimeGenerated {TimeRange}\r\n | extend hour=datetime_part(\"hour\", TimeGenerated) + timezoneoffset \r\n | where Namespace == \"LogicalDisk\" | where Name == \"TransfersPerSecond\" \r\n | summarize (IOPs)= round(percentile(Val, 99), 2) by Computer, ResourceId=_ResourceId;\r\n let table=inv | join kind= leftouter (cpu) on ResourceId | join kind= leftouter (mem) on ResourceId \r\n | join kind= leftouter (iops) on ResourceId | join kind= fullouter (vmsize) on $left.AzureSize == $right.Name\r\n | project Computer, AzureSize, Cpus, CpuSpeed, Cpu, Mem, IOPs, PhysicalMemoryMB, Disks, maxIops=Disks * 500, ResourceId,AzureLocation \r\n | extend minMemoryReq= PhysicalMemoryMB*Mem / 100 + 500 | extend newram= case(minMemoryReq < 0, PhysicalMemoryMB, minMemoryReq < 512, 512, minMemoryReq < 768, 768, minMemoryReq < 1024, 1024, minMemoryReq < 1792, 1792, minMemoryReq < 2048, 2048, minMemoryReq < 3584, 3584, minMemoryReq < 4096, 4096, minMemoryReq < 7168, 7168, minMemoryReq < 8192, 8192, minMemoryReq < 14336, 14336, minMemoryReq < 16384, 16384, minMemoryReq < 28672, 28672, minMemoryReq < 32768, 32768, minMemoryReq < 49152, 49152, minMemoryReq < 57344, 57344, minMemoryReq < 65536, 65536, minMemoryReq < 81920, 81920, minMemoryReq < 98304, 98304, minMemoryReq < 114688, 114688, minMemoryReq < 131072, 131072, minMemoryReq < 143360, 143360, minMemoryReq < 147456, 147456, minMemoryReq < 163840, 163840, minMemoryReq < 196608, 196608, minMemoryReq < 224000, 224000, minMemoryReq < 229376, 229376, minMemoryReq < 262144, 262144, minMemoryReq < 393216, 393216, minMemoryReq < 442368, 442368, minMemoryReq < 448000, 448000, minMemoryReq < 458752, 458752, minMemoryReq < 466944, 466944, minMemoryReq < 516096, 516096, minMemoryReq < 524288, 524288, minMemoryReq < 896000, 896000, minMemoryReq < 1024000, 1024000, minMemoryReq < 1048576, 1048576, minMemoryReq < 1792000, 1792000, minMemoryReq < 1835008, 1835008, minMemoryReq < 2048000, 2048000, minMemoryReq < 2097152, 2097152, minMemoryReq < 2918400, 2918400, minMemoryReq < 3891200, 3891200, minMemoryReq < 3985408, 3985408, minMemoryReq < 4194304, 4194304, minMemoryReq < 5836800, 5836800, 0) \r\n | extend cpu_resize=iff(Cpu < toint(\"{CPUThreshold}\") and Cpus != 1, \"yes\", \"no\") | extend mem_resize=iff(Mem < toint(\"{MEMThreshold}\") and newram < PhysicalMemoryMB, \"yes\", \"no\") \r\n | extend iops_resize=iff(IOPs < (maxIops*0.4), \"yes\", \"no\") | extend newcpu= toint(iff (Cpus <= 2, 2, Cpus/2)) \r\n | where cpu_resize ==\"yes\" and mem_resize==\"yes\" and iops_resize == \"yes\" ; \r\n let costtable=table | join kind= leftouter (vmsize | project Name, vcores=toint(vcores), Ram, Disks) on $left.newcpu==$right.vcores \r\n | where Ram <= PhysicalMemoryMB and Ram >= minMemoryReq | where Name !startswith 'Basic' | extend s=split(Name, '_') | extend VmfamilyTarget=case( substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 1),'_', s[2]), substring(s[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 1)==\"B\",strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)==\"GS\",strcat(s[0],'_', substring(s[1], 0, 2)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(s[2], 0, 1)==\"v\",strcat(s[0],'_', substring(s[1], 0, 2),'_', s[2]), substring(s[1], 0, 1) in(\"H\",\"G\"),strcat(s[0],'_', substring(s[1], 0, 1)), substring(s[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(s[0],'_', substring(s[1], 0, 2)), Name) | extend y=split(AzureSize, '_') | extend VmfamilyCurrent=case( substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 1),'_', y[2]), substring(y[1], 0, 1) in (\"A\",\"D\",\"E\",\"F\",\"L\",\"M\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 1)==\"B\",strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)==\"GS\",strcat(y[0],'_', substring(y[1], 0, 2)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\") and substring(y[2], 0, 1)==\"v\",strcat(y[0],'_', substring(y[1], 0, 2),'_', y[2]), substring(y[1], 0, 1) in(\"H\",\"G\"),strcat(y[0],'_', substring(y[1], 0, 1)), substring(y[1], 0, 2)in (\"HB\",\"NC\",\"NV\",\"PB\",\"ND\",\"NP\"),strcat(y[0],'_', substring(y[1], 0, 2)), AzureSize) \r\n| where AzureSize != Name and iff(\"{usesamefamily:value}\"==\"same\",VmfamilyTarget == VmfamilyCurrent,VmfamilyTarget in ({VMFamilyFilter}) or '*' in ({VMFamilyFilter})) \r\n | sort by Ram asc \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\" | project armskuname,VMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.AzureSize==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where type==\"Consumption\"| project armskuname,NewVMCost=unitprice,Location) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"1 Year\"| project armskuname,NewVM_RI1Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | join kind=leftouter hint.strategy=shuffle (VMPriceAll| where reservationterm == \"3 Years\"| project armskuname,NewVM_RI3Y=unitprice,Location,reservationterm) on $left.AzureLocation==$right.Location and $left.Name==$right.armskuname \r\n | extend VMCost=VMCost*730, NewVMCost=NewVMCost*730, NewVM_RI1YCost=NewVM_RI1Y/12,NewVM_RI3YCost=NewVM_RI3Y/36 |extend DiffPayg=VMCost-NewVMCost, DiffRI1=VMCost-NewVM_RI1YCost,DiffRI3=VMCost-NewVM_RI3YCost \r\n | where NewVMCost < VMCost | project Computer, AzureSize, NewSize=Name,VMCost,NewVMCost,ResourceId,DiffPayg,DiffRI1,DiffRI3,vcores,Ram,NewVM_RI1YCost,NewVM_RI3YCost ;\r\ncosttable\r\n\r\n", "size": 0, "title": "Size Recomendations with PayG, 1 Year RI, 3 Year RI", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -3681,7 +3564,6 @@ "version": "KqlParameterItem/1.0", "name": "Usagequerynew", "type": 1, - "value": "let workstart=8; let workend=17; let timezoneoffset=4; let cpu=InsightsMetrics | where TimeGenerated > ago(7d) | extend subid=tostring(split(_ResourceId, '/')[2]) | where subid in ('c2faa3c3-ccef-4292-88d2-17f20129994b') or '*' in ('c2faa3c3-ccef-4292-88d2-17f20129994b') | where tostring(split(_ResourceId,'/')[4]) in ('*') or '*' in ('*') | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where hour between (workstart..workend) | where Namespace == \"Processor\" | where Name == \"UtilizationPercentage\" | summarize (Cpu)=round(percentile(Val, 99), 2) by Computer, ResourceId=_ResourceId; let mem= InsightsMetrics | where TimeGenerated > ago(7d) | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where Namespace == \"Memory\" | where Name == \"AvailableMB\" | extend MemorySize = round(todouble(parse_json(Tags).[\"vm.azm.ms/memorySizeMB\"]),0) | extend Val=(MemorySize-Val)/MemorySize*100 |summarize (Mem)=round(percentile(Val, 99), 2) by Computer; let iops= InsightsMetrics | where TimeGenerated > ago(7d) | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where Namespace == \"LogicalDisk\" | where Name == \"TransfersPerSecond\" |summarize (IOPs)=round(percentile(Val, 99), 2) by Computer;let iolatency= InsightsMetrics | where TimeGenerated > ago(7d) | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where Namespace == \"LogicalDisk\" | where Name == \"TransferLatencyMs\"|summarize (IOLatency)=round(percentile(Val, 99), 2) by Computer; let nwsent=InsightsMetrics | where TimeGenerated > ago(7d) | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where Namespace == \"Network\" | where Name == \"WriteBytesPerSecond\" |summarize (nwsent)=round(percentile(Val, 99), 2) by Computer; let nwrec=InsightsMetrics | where TimeGenerated > ago(7d) | extend hour=datetime_part(\"hour\", TimeGenerated)+timezoneoffset | where Namespace == \"Network\" | where Name == \"ReadBytesPerSecond\" |summarize (nwrec)=round(percentile(Val, 99), 2) by Computer; let boot=Syslog | where Facility ==\"daemon\" | where SyslogMessage startswith \"Startup finished\" | where ProcessID == 1 |summarize bootcount=count() by Computer |union isfuzzy=true (Event | where TimeGenerated > ago(7d) | where EventLog == \"System\" | where EventID == 1074 |summarize bootcount=count() by Computer); let logons=SecurityEvent | where EventID == 4624 | where LogonTypeName ==\"10 - RemoteInteractive\" | where Account !contains \"Font Driver Host\" and Account !contains \"Window Manager\" | summarize ['SSH/RDP']=count() by Computer |union isfuzzy=true (Syslog | where Facility == \"auth\" | where SyslogMessage startswith \"Accepted password for\" or SyslogMessage startswith \"Accepted publickey for\" | summarize ['SSH/RDP']=count() by Computer); let vmcon=VMConnection | where Direction == \"inbound\" | where SourceIp <> \"127.0.0.1\" | summarize InboundCon=sum(LinksEstablished+LinksTerminated+LinksLive) by Computer;let VMtrf=VMConnection | summarize ['Nw Sent Total']=format_bytes(sum(BytesSent)), ['Nw Rec Total']=format_bytes(sum(BytesReceived)) by Computer; cpu | join kind= leftouter ( mem ) on Computer | join kind= leftouter ( nwsent ) on Computer | join kind= leftouter ( nwrec ) on Computer | join kind= leftouter ( boot ) on Computer | join kind= leftouter ( logons ) on Computer | join kind= leftouter ( iops ) on Computer | join kind= leftouter ( iolatency ) on Computer | join kind= leftouter ( vmcon ) on Computer| join kind= leftouter ( VMtrf) on Computer |project ResourceId,Computer , ['SSH/RDP'] , bootcount , Cpu , Mem,IOPs,IOLatency,['Nw_Sent/sec']=format_bytes(nwsent), ['Nw_Rec/sec']=format_bytes(nwrec),InboundCon ,['Nw Sent Total'],['Nw Rec Total']\t\t\t ", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -3712,9 +3594,6 @@ "query": "{Usagequerynew}", "size": 2, "title": "VM Usage Indicators", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -3880,45 +3759,9 @@ "rowLimit": 1000, "filter": true, "labelSettings": [ - { - "columnId": "ResourceId" - }, - { - "columnId": "Computer" - }, - { - "columnId": "SSH/RDP" - }, - { - "columnId": "bootcount" - }, - { - "columnId": "Cpu" - }, - { - "columnId": "Mem" - }, - { - "columnId": "IOPs" - }, { "columnId": "IOLatency", "label": "IOLatency ms" - }, - { - "columnId": "Nw_Sent/sec" - }, - { - "columnId": "Nw_Rec/sec" - }, - { - "columnId": "InboundCon" - }, - { - "columnId": "Nw Sent Total" - }, - { - "columnId": "Nw Rec Total" } ] }, @@ -3957,9 +3800,6 @@ "query": "\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"VM Cached Bandwidth Consumed Percentage\"\t\r\n| summarize [\"VM Cached %Bw\"]=max(Average) by MetricName, ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached Bandwidth Consumed Percentage\"\r\n| summarize [\"VM Uncached % Bw\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached IOPS Consumed Percentage\"\t\r\n| summarize [\"VM Cached %IOPS\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached IOPS Consumed Percentage\"\t\r\n| summarize [\"VM Uncached %IOPS\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| project ResourceId, [\"VM Cached %Bw\"], [\"VM Uncached % Bw\"],[\"VM Cached %IOPS\"],[\"VM Uncached %IOPS\"]\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk Bandwidth Consumed Percentage\"\t\r\n| summarize [\"Data %Bw\"]=max(Average) by ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk IOPS Consumed Percentage\"\r\n| summarize [\"Data %IOPS\"]=max(Average) by ResourceId\r\n) on ResourceId\r\n|extend rg=tostring(split(ResourceId,'/')[4])\r\n| extend BwSummary=case(\r\n [\"Data %Bw\"]>=100 , \"Data Disk Exceeding BW Limits for the VM\",\r\n([\"VM Cached %Bw\"]>=100 or [\"VM Uncached % Bw\"]>=100) and ([\"Data %Bw\"]<100 or isempty([\"Data %Bw\"])) , \"OS Disk Exceeding BW Limits for the VM\",\r\n\"Healthy\" )\r\n| extend IOPSummary=case(\r\n[\"Data %IOPS\"]>=100 , \"Data Disk Exceeding IOPs Limits for the VM\",\r\n([\"VM Cached %IOPS\"]>=100 or [\"VM Uncached %IOPS\"]>=100) and ([\"Data %IOPS\"]<100 or isempty([\"Data %IOPS\"])) , \"OS Disk Exceeding IOPs Limits for the VM\",\r\n\"Healthy\" )\r\n| extend smmr=case(BwSummary==\"Healthy\" and IOPSummary==\"Healthy\",0,\r\nBwSummary!=\"Healthy\" or IOPSummary!=\"Healthy\",1,2 )\r\n| sort by smmr desc\r\n| where smmr !=0\r\n|project ResourceId, BwSummary,IOPSummary, [\"VM Cached %Bw\"],[\"VM Uncached % Bw\"],[\"VM Cached %IOPS\"],[\"VM Uncached %IOPS\"],[\"Data %Bw\"],[\"Data %IOPS\"],rg\r\n//| sort by BwSummary,IOPSummary asc\r\n", "size": 0, "title": "Os and Data Disk BW/IOPs Utilization (Only Unhealthy)", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -4167,15 +4007,6 @@ } ], "labelSettings": [ - { - "columnId": "ResourceId" - }, - { - "columnId": "BwSummary" - }, - { - "columnId": "IOPSummary" - }, { "columnId": "VM Cached %Bw", "label": "VMCached %Bw" @@ -4191,15 +4022,6 @@ { "columnId": "VM Uncached %IOPS", "label": "VMRaw %IOPs" - }, - { - "columnId": "Data %Bw" - }, - { - "columnId": "Data %IOPS" - }, - { - "columnId": "rg" } ] }, @@ -4253,9 +4075,6 @@ "size": 0, "aggregation": 3, "title": "VM Max Bandwidth Profile Last 24H", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -4472,9 +4291,6 @@ "size": 0, "aggregation": 3, "title": "VM Max IOPS Profile Last 24 H", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -4691,9 +4507,6 @@ "size": 1, "aggregation": 3, "title": "VM Bandwidth & IOPS History - 99 Percentile", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -4929,9 +4742,6 @@ "size": 1, "aggregation": 3, "title": "Disk Read & Write MB/s", - "timeContext": { - "durationMs": 0 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -5174,9 +4984,6 @@ "query": "\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"VM Cached Bandwidth Consumed Percentage\"\t\r\n| summarize [\"VM Cached %Bw\"]=max(Average) by MetricName, ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached Bandwidth Consumed Percentage\"\r\n| summarize [\"VM Uncached % Bw\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached IOPS Consumed Percentage\"\t\r\n| summarize [\"VM Cached %IOPS\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached IOPS Consumed Percentage\"\t\r\n| summarize [\"VM Uncached %IOPS\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| project ResourceId, [\"VM Cached %Bw\"], [\"VM Uncached % Bw\"],[\"VM Cached %IOPS\"],[\"VM Uncached %IOPS\"]\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk Bandwidth Consumed Percentage\"\t\r\n| summarize [\"Data %Bw\"]=max(Average) by ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk IOPS Consumed Percentage\"\r\n| summarize [\"Data %IOPS\"]=max(Average) by ResourceId\r\n) on ResourceId\r\n|extend rg=tostring(split(ResourceId,'/')[4])\r\n| extend BwSummary=case(\r\n [\"Data %Bw\"]>=100 , \"Data Disk Exceeding BW Limits for the VM\",\r\n([\"VM Cached %Bw\"]>=100 or [\"VM Uncached % Bw\"]>=100) and ([\"Data %Bw\"]<100 or isempty([\"Data %Bw\"])) , \"OS Disk Exceeding BW Limits for the VM\",\r\n\"Healthy\" )\r\n| extend IOPSummary=case(\r\n[\"Data %IOPS\"]>=100 , \"Data Disk Exceeding IOPs Limits for the VM\",\r\n([\"VM Cached %IOPS\"]>=100 or [\"VM Uncached %IOPS\"]>=100) and ([\"Data %IOPS\"]<100 or isempty([\"Data %IOPS\"])) , \"OS Disk Exceeding IOPs Limits for the VM\",\r\n\"Healthy\" )\r\n| extend smmr=case(BwSummary==\"Healthy\" and IOPSummary==\"Healthy\",0,\r\nBwSummary!=\"Healthy\" or IOPSummary!=\"Healthy\",1,2 )\r\n| sort by smmr desc\r\n|project ResourceId, BwSummary,IOPSummary, [\"VM Cached %Bw\"],[\"VM Uncached % Bw\"],[\"VM Cached %IOPS\"],[\"VM Uncached %IOPS\"],[\"Data %Bw\"],[\"Data %IOPS\"],rg\r\n//| sort by BwSummary,IOPSummary asc\r\n", "size": 2, "title": "Os and Data Disk BW/IOPs Utilization (All)", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -5384,15 +5191,6 @@ } ], "labelSettings": [ - { - "columnId": "ResourceId" - }, - { - "columnId": "BwSummary" - }, - { - "columnId": "IOPSummary" - }, { "columnId": "VM Cached %Bw", "label": "VMCached %Bw" @@ -5408,15 +5206,6 @@ { "columnId": "VM Uncached %IOPS", "label": "VMRaw %IOPs" - }, - { - "columnId": "Data %Bw" - }, - { - "columnId": "Data %IOPS" - }, - { - "columnId": "rg" } ] }, @@ -5436,9 +5225,6 @@ "query": "\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"VM Cached Bandwidth Consumed Percentage\"\t\r\n| summarize [\"Cached %Bw Avg\"]=round(avg(Average),1),[\"Cached %Bw Max\"]=max(Average) by MetricName, ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached Bandwidth Consumed Percentage\"\r\n| summarize [\"Uncached $ Bw Avg\"]=round(avg(Average),1),[\"Uncached $ Bw Max\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| project ResourceId, ['Cached %Bw Avg'], [\"Cached %Bw Max\"], ['Uncached $ Bw Avg'],[\"Uncached $ Bw Max\"]\r\n| extend AdditionalInfo=split(ResourceId,'/')\r\n| extend vm=tostring(AdditionalInfo[8])\r\n| extend rg=tostring(AdditionalInfo[4])\r\n| project-away AdditionalInfo\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached Bandwidth Consumed Percentage\"\t\r\n| extend CachedBW=case(Maximum >= 100 , '>=100',\"<100\")\r\n| summarize r2=countif(CachedBW==\"<100\"),r3=countif(CachedBW==\">=100\"),Total=count() by ResourceId\r\n| project [\"Cached <100%\"]=round(todouble(r2)*100/Total,2),[\"Cached >=100%\"]=round(todouble(r3)*100/Total,2) , ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached Bandwidth Consumed Percentage\"\t\r\n| extend UnCachedBW=case(Maximum >= 100 , '>=100',\"<100\")\r\n| summarize ur2=countif(UnCachedBW==\"<100\"),ur3=countif(UnCachedBW==\">=100\"),UTotal=count() by ResourceId\r\n| project [\"UnCached <100%\"]=round(todouble(ur2)*100/UTotal,2),[\"Uncached >=100%\"]=round(todouble(ur3)*100/UTotal,2) , ResourceId\r\n) on ResourceId\r\n| project ResourceId,[\"Cached %Bw Avg\"],[\"Cached %Bw Max\"],[\"Cached <100%\"],[\"Cached >=100%\"],[\"Uncached $ Bw Avg\"],[\"Uncached $ Bw Max\"],[\"UnCached <100%\"],[\"Uncached >=100%\"],rg", "size": 2, "title": "VM Storage Bandwidth Usage %", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -5875,9 +5661,6 @@ "query": "\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"VM Cached IOPS Consumed Percentage\"\t\r\n| summarize [\"Cached %IOPs Avg\"]=round(avg(Average),1),[\"Cached %IOPs Max\"]=max(Average) by MetricName, ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached IOPS Consumed Percentage\"\r\n| summarize [\"Uncached %IOPs Avg\"]=round(avg(Average),1),[\"Uncached %IOPs Max\"]=max(Average) by MetricName, ResourceId\r\n) on ResourceId\r\n| project ResourceId, ['Cached %IOPs Avg'],[\"Cached %IOPs Max\"], ['Uncached %IOPs Avg'],[\"Uncached %IOPs Max\"]\r\n| extend AdditionalInfo=split(ResourceId,'/')\r\n| extend vm=tostring(AdditionalInfo[8])\r\n| extend rg=tostring(AdditionalInfo[4])\r\n| project-away AdditionalInfo\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached IOPS Consumed Percentage\"\t\r\n| extend Cached=case(Maximum >= 100 , '>=100', \"<100\")\r\n| summarize r2=countif(Cached==\"<100\"),r4=countif(Cached==\">=100\"),Total=todouble(count()) by ResourceId\r\n| project [\"Cached <100%\"]=round(todouble(r2)*100/Total,2),[\"Cached >=100%\"]=todouble(r4)*100/Total , ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached IOPS Consumed Percentage\"\t\r\n| extend UnCached=case(Maximum >= 100 , '>=100', \"<100\")\r\n| summarize ur2=countif(UnCached==\"<100\"),ur4=countif(UnCached==\">=100\"),UTotal=todouble(count()) by ResourceId\r\n| project [\"UnCached <100%\"]=todouble(ur2)*100/UTotal,[\"UnCached >=100%\"]=todouble(ur4)*100/UTotal , ResourceId\r\n) on ResourceId\r\n| project ResourceId,[\"Cached %IOPs Avg\"],[\"Cached %IOPs Max\"],[\"Cached <100%\"],[\"Cached >=100%\"],[\"Uncached %IOPs Avg\"],[\"Uncached %IOPs Max\"],[\"UnCached <100%\"],[\"UnCached >=100%\"],rg\r\n", "size": 2, "title": "VM IOPs Usage %", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -6272,9 +6055,6 @@ "query": "\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk Bandwidth Consumed Percentage\"\t\r\n| summarize [\"%Bw Avg\"]=round(avg(Average),1),[\"%Bw Max\"]=max(Average) by MetricName, ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"Data Disk Bandwidth Consumed Percentage\"\t\r\n| extend CachedBW=case(Maximum >= 100 , '>=100',\"<100\")\r\n| summarize r2=countif(CachedBW==\"<100\"),r4=countif(CachedBW==\">=100\"),Total=count() by ResourceId\r\n| project [\"BW <100%\"]=todouble(r2)*100/Total,[\"BW >=100%\"]=todouble(r4)*100/Total , ResourceId\r\n) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| extend subid=tostring(split(_ResourceId, '/')[2]) \r\n| where subid in ({subscription:subid}) or '*' in ({subscription:subid}) \r\n| where tostring(split(_ResourceId,'/')[4]) in ({rg}) or '*' in ({rg}) \r\n| where MetricName =~\"Data Disk IOPS Consumed Percentage\"\t\r\n| summarize [\"%IOPs Avg\"]=round(avg(Average),1),[\"%IOPs Max\"]=max(Average) by MetricName, ResourceId ) on ResourceId\r\n| join kind=leftouter hint.strategy= shuffle (\r\nAzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"Data Disk IOPS Consumed Percentage\"\t\r\n| extend CachedBW=case(Maximum >= 100 , '>=100', \"<100\")\r\n| summarize r2=countif(CachedBW==\"<100\"),r4=countif(CachedBW==\">=100\"),Total=count() by ResourceId\r\n| project [\"IOPS <100%\"]=todouble(r2)*100/Total,[\"IOPS >=100%\"]=todouble(r4)*100/Total , ResourceId\r\n) on ResourceId\r\n|extend rg=tostring(split(ResourceId,'/')[4])\r\n| project ResourceId , ['%Bw Avg'], ['%Bw Max'], ['BW <100%'], ['BW >=100%'] , ['%IOPs Avg'], ['%IOPs Max'], ['IOPS <100%'], ['IOPS >=100%'], rg\r\n", "size": 2, "title": "Data Disk Bandwidth and IOPS Usage", - "timeContext": { - "durationMs": 604800000 - }, "timeContextFromParameter": "TimeRange", "exportedParameters": [ { @@ -6844,7 +6624,6 @@ "version": "KqlParameterItem/1.0", "name": "CpuQuery", "type": 1, - "value": "AzureMetrics | where TimeGenerated > ago(30m) | where SubscriptionId in ('c2faa3c3-ccef-4292-88d2-17f20129994b') or '*' in ('c2faa3c3-ccef-4292-88d2-17f20129994b') | where ResourceProvider == \"MICROSOFT.COMPUTE\" | where MetricName =~\"CPU Credits Remaining\" | where Average != 0 | summarize CPUCredit=avg(Average) by ResourceId | join kind=leftouter ( AzureMetrics | where TimeGenerated > ago(7d) | where ResourceProvider == \"MICROSOFT.COMPUTE\" | where MetricName =~\"CPU Credits Remaining\" | make-series CPUCreditHist=avg(Average) default=double(0) on TimeGenerated in range(ago(7d),now(), 1h) by ResourceId ) on ResourceId", "isHiddenWhenLocked": true, "criteriaData": [ { @@ -7417,9 +7196,6 @@ "query": "AzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceId=~ \"{resid}\"\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached Bandwidth Consumed Percentage\"\t\r\n| extend pct_range=case(Maximum >= 90 , '90-100 %', Maximum >=80 ,\"80-89 %\",\"<80%\")\r\n| summarize Samples=count() by pct_range\r\n", "size": 0, "title": "Cached Bandwidth Sample Distribution", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "showExportToExcel": true, "queryType": 0, @@ -7653,9 +7429,6 @@ "query": "AzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceId=~ \"{resid}\"\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached Bandwidth Consumed Percentage\"\t\r\n| extend pct_range=case(Maximum >= 90 , '90-100 %', Maximum >=80 ,\"80-89 %\",\"<80%\")\r\n| summarize Samples=count() by pct_range\r\n", "size": 0, "title": "UnCached Bandwidth Sample Distribution", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -7891,9 +7664,6 @@ "query": "AzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceId=~ \"{resid}\"\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Cached IOPS Consumed Percentage\"\t\r\n| extend pct_range=case(Maximum >= 90 , '90-100 %', Maximum >=80 ,\"80-89 %\",\"<80%\")\r\n| summarize Samples=count() by pct_range\r\n", "size": 0, "title": "Cached IOPS Sample Distribution", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid", @@ -8129,9 +7899,6 @@ "query": "AzureMetrics\r\n| where TimeGenerated {TimeRange} \r\n| where ResourceId=~ \"{resid}\"\r\n| where ResourceProvider == \"MICROSOFT.COMPUTE\"\r\n| where MetricName =~\"VM Uncached IOPS Consumed Percentage\"\r\n| extend pct_range=case(Maximum >= 90 , '90-100 %', Maximum >=80 ,\"80-89 %\",\"<80%\")\r\n| summarize Samples=count() by pct_range\r\n", "size": 0, "title": "UnCached IOPs Sample Distribution", - "timeContext": { - "durationMs": 5184000000 - }, "timeContextFromParameter": "TimeRange", "exportFieldName": "ResourceId", "exportParameterName": "resid",