You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
11 KiB
232 lines
11 KiB
<form script="capacity_planner.js" version="1.1">
|
|
<label>Capacity Planner - AWS</label>
|
|
|
|
<fieldset submitButton="false">
|
|
<input type="multiselect" token="billingAccountId" searchWhenChanged="true">
|
|
<label>Account ID</label>
|
|
<selectFirstChoice>true</selectFirstChoice>
|
|
<fieldForValue>LinkedAccountId</fieldForValue>
|
|
<fieldForLabel>Account</fieldForLabel>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count FROM datamodel=Instance_Hour by instance_hour.LinkedAccountId
|
|
| rename instance_hour.LinkedAccountId as LinkedAccountId
|
|
| `aws-accountid-to-name`
|
|
]]>
|
|
</query>
|
|
<earliest>0</earliest>
|
|
<latest>now</latest>
|
|
</search>
|
|
<prefix> (</prefix>
|
|
<suffix>) </suffix>
|
|
<valuePrefix>instance_hour.LinkedAccountId="</valuePrefix>
|
|
<valueSuffix>"</valueSuffix>
|
|
<delimiter> OR </delimiter>
|
|
</input>
|
|
<input type="multiselect" token="region" id="ip1" searchWhenChanged="true">
|
|
<label>Regions</label>
|
|
<choice value="*">All</choice>
|
|
<search>
|
|
<query>
|
|
<![CDATA[ |inputlookup regions ]]>
|
|
</query>
|
|
</search>
|
|
<prefix> (</prefix>
|
|
<suffix>) </suffix>
|
|
<valuePrefix>instance_hour.AvailabilityZone="</valuePrefix>
|
|
<valueSuffix>*"</valueSuffix>
|
|
<delimiter> OR </delimiter>
|
|
<fieldForValue>region</fieldForValue>
|
|
<fieldForLabel>label</fieldForLabel>
|
|
</input>
|
|
<input id="awstags" token="tags">
|
|
</input>
|
|
<input type="time" searchWhenChanged="true">
|
|
<label>Time Range</label>
|
|
<default>Previous month</default>
|
|
</input>
|
|
</fieldset>
|
|
|
|
<search id="baseInstanceHours">
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count sum(instance_hour.BlendedCost) as cost FROM datamodel=Instance_Hour where $billingAccountId$ $region$ AND instance_hour.instance_type="$instance_type$" AND instance_hour.platform="$platform$" AND instance_hour.tenancy="$tenancy$" AND instance_hour.ReservedInstance="$reserved$" $tags|tag2instance_hour$ by instance_hour.ReservedInstance
|
|
]]>
|
|
</query>
|
|
<earliest>$earliest$</earliest>
|
|
<latest>$latest$</latest>
|
|
</search>
|
|
|
|
<row>
|
|
<panel>
|
|
<title>Capacity Planning</title>
|
|
<input type="dropdown" token="instance_type" searchWhenChanged="true">
|
|
<label>Instance Type</label>
|
|
<choice value="*">All</choice>
|
|
<selectFirstChoice>true</selectFirstChoice>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count FROM datamodel=Instance_Hour where $billingAccountId$ $region$ by instance_hour.instance_type
|
|
| rename instance_hour.instance_type as instance_type
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<fieldForLabel>instance_type</fieldForLabel>
|
|
<fieldForValue>instance_type</fieldForValue>
|
|
</input>
|
|
<input type="dropdown" token="platform" searchWhenChanged="true">
|
|
<label>Platform</label>
|
|
<choice value="*">All</choice>
|
|
<default>*</default>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count FROM datamodel=Instance_Hour where $billingAccountId$ $region$ by instance_hour.platform
|
|
| rename instance_hour.platform as platform
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<fieldForLabel>platform</fieldForLabel>
|
|
<fieldForValue>platform</fieldForValue>
|
|
</input>
|
|
<input type="dropdown" token="tenancy" searchWhenChanged="true">
|
|
<label>Tenancy</label>
|
|
<choice value="*">All</choice>
|
|
<default>*</default>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count FROM datamodel=Instance_Hour where $billingAccountId$ $region$ by instance_hour.tenancy
|
|
| rename instance_hour.tenancy as tenancy
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<fieldForLabel>tenancy</fieldForLabel>
|
|
<fieldForValue>tenancy</fieldForValue>
|
|
</input>
|
|
<input type="dropdown" token="reserved" searchWhenChanged="true">
|
|
<label>Reserved Instances</label>
|
|
<choice value="*">Both</choice>
|
|
<choice value="Y">Yes</choice>
|
|
<choice value="N">No</choice>
|
|
<default>*</default>
|
|
</input>
|
|
<input type="dropdown" token="instance.groupby">
|
|
<label>Group By</label>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| `aws-billing-datamodel-tags`
|
|
| eval title = "Tag: ".title
|
|
| append [| makeresults | eval title="Availability Zone", key="AvailabilityZone"]
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<fieldForLabel>title</fieldForLabel>
|
|
<fieldForValue>key</fieldForValue>
|
|
<choice value="none">None</choice>
|
|
<choice value="instance_type">Instance Type</choice>
|
|
<choice value="platform">Platform</choice>
|
|
<choice value="tenancy">Tenancy</choice>
|
|
<choice value="reservation">Reservation</choice>
|
|
<default>none</default>
|
|
<initialValue>none</initialValue>
|
|
</input>
|
|
<single>
|
|
<title>Total Instance Hours</title>
|
|
<search base="baseInstanceHours">
|
|
<query>
|
|
<![CDATA[
|
|
stats sum(count) as instance_hours
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<option name="field">instance_hours</option>
|
|
</single>
|
|
<single>
|
|
<title>Percentage of On-Demand Hours</title>
|
|
<search base="baseInstanceHours">
|
|
<query>
|
|
<![CDATA[
|
|
eventstats sum(count) as total
|
|
| search instance_hour.ReservedInstance=N
|
|
| eval percent=count*100/total
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<option name="field">percent</option>
|
|
<option name="underLabel">Percentage (%)</option>
|
|
<option name="useColors">1</option>
|
|
<option name="rangeValues">[0,50,80,100]</option>
|
|
<option name="rangeColors">["0xgreen","0xorange","0xf7bc38","0xd93f3c","0xd93f3c"]</option>
|
|
</single>
|
|
<single>
|
|
<title>Total Instance Cost</title>
|
|
<search base="baseInstanceHours">
|
|
<query>
|
|
<![CDATA[
|
|
stats sum(cost) as cost
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<option name="field">cost</option>
|
|
</single>
|
|
<single>
|
|
<title>Percentage of On-Demand Cost</title>
|
|
<search base="baseInstanceHours">
|
|
<query>
|
|
<![CDATA[
|
|
eventstats sum(cost) as total
|
|
| search instance_hour.ReservedInstance=N
|
|
| eval percent=cost*100/total
|
|
]]>
|
|
</query>
|
|
</search>
|
|
<option name="field">percent</option>
|
|
<option name="underLabel">Percentage (%)</option>
|
|
<option name="useColors">1</option>
|
|
<option name="rangeValues">[0,50,80,100]</option>
|
|
<option name="rangeColors">["0xgreen","0xorange","0xf7bc38","0xd93f3c","0xd93f3c"]</option>
|
|
</single>
|
|
<chart>
|
|
<title>Instance Hours</title>
|
|
<search>
|
|
<query>
|
|
<![CDATA[
|
|
| tstats `aws-data-model-acceleration` count FROM datamodel=Instance_Hour where $billingAccountId$ $region$ AND instance_hour.instance_type="$instance_type$" AND instance_hour.platform="$platform$" AND instance_hour.tenancy="$tenancy$" AND instance_hour.ReservedInstance="$reserved$" $tags|tag2instance_hour$ $instance.groupby|groupby2countspl$
|
|
]]>
|
|
</query>
|
|
<earliest>$earliest$</earliest>
|
|
<latest>$latest$</latest>
|
|
</search>
|
|
<option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
|
|
<option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
|
|
<option name="charting.axisTitleX.visibility">collapsed</option>
|
|
<option name="charting.axisTitleY.visibility">visible</option>
|
|
<option name="charting.axisTitleY.text">Instance Hours</option>
|
|
<option name="charting.axisTitleY2.visibility">visible</option>
|
|
<option name="charting.axisX.scale">linear</option>
|
|
<option name="charting.axisY.scale">linear</option>
|
|
<option name="charting.axisY2.enabled">false</option>
|
|
<option name="charting.axisY2.scale">inherit</option>
|
|
<option name="charting.chart">column</option>
|
|
<option name="charting.chart.bubbleMaximumSize">50</option>
|
|
<option name="charting.chart.bubbleMinimumSize">10</option>
|
|
<option name="charting.chart.bubbleSizeBy">area</option>
|
|
<option name="charting.chart.nullValueMode">connect</option>
|
|
<option name="charting.chart.sliceCollapsingThreshold">0.01</option>
|
|
<option name="charting.chart.stackMode">stacked</option>
|
|
<option name="charting.chart.style">shiny</option>
|
|
<option name="charting.drilldown">all</option>
|
|
<option name="charting.layout.splitSeries">0</option>
|
|
<option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
|
|
<option name="charting.legend.placement">right</option>
|
|
<option name="wrap">true</option>
|
|
<option name="dataOverlayMode">none</option>
|
|
</chart>
|
|
</panel>
|
|
</row>
|
|
</form>
|