Skip to content

Commit

Permalink
Merge pull request #23 from aws-samples/22-add-unit-percent-to-genera…
Browse files Browse the repository at this point in the history
…ted-metrics

22 add unit percent to generated metrics
  • Loading branch information
gvasquez95 authored Apr 18, 2023
2 parents ee27838 + eead7a4 commit 5559ab1
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 2 deletions.
3 changes: 3 additions & 0 deletions src/lambdas/GetInstanceTypes/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import {
DescribeInstanceTypesCommand
} from '@aws-sdk/client-ec2'

// describe ec2 instance types
// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-ec2/classes/describeinstancetypescommand.html

async function getInstanceTypes (region) {
const instances = {}
const params = {}
Expand Down
1 change: 1 addition & 0 deletions src/lambdas/GetInstanceUtilization/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ async function getInstanceUtilization (event) {
}
let count = 0
let sum = 0
// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/getmetricdatacommand.html
const command = new GetMetricDataCommand(params)
const response = await client.send(command)
console.log(JSON.stringify(response))
Expand Down
2 changes: 2 additions & 0 deletions src/lambdas/GetInstances/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import {
DescribeInstancesCommand
} from '@aws-sdk/client-ec2'

// describe ec2 instances
// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-ec2/classes/describeinstancescommand.html
async function getInstances (region) {
const instances = []
const client = new EC2Client({
Expand Down
1 change: 1 addition & 0 deletions src/lambdas/GetUsage/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export const handler = async (event) => {
if (res && res.NextToken) {
params.NextToken = res.NextToken
}
// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cost-explorer/classes/getcostandusagecommand.html
const command = new GetCostAndUsageCommand(params)
res = await client.send(command)

Expand Down
3 changes: 2 additions & 1 deletion src/lambdas/StoreRegionalUtilization/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { CloudWatchClient, PutMetricDataCommand } from '@aws-sdk/client-cloudwat
const client = new CloudWatchClient()

async function putMetric (region, utilization) {
// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-cloudwatch/classes/putmetricdatacommand.html
const command = new PutMetricDataCommand({
MetricData: [
{
Expand All @@ -23,7 +24,7 @@ async function putMetric (region, utilization) {
Value: 'EC2'
}
],
Unit: 'None',
Unit: 'Percent',
Value: utilization
}
],
Expand Down
2 changes: 1 addition & 1 deletion src/template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ Resources:
Type: "AWS::CloudWatch::Dashboard"
Properties:
DashboardName: "Sustainability"
DashboardBody: !Sub "{\"widgets\":[{\"type\":\"metric\",\"x\":0,\"y\":0,\"width\":11,\"height\":10,\"properties\":{\"metrics\":[[{\"expression\":\"SEARCH('{Sustainability/KPI,region,service,type}', 'Average', 86400)\",\"id\":\"e1\",\"region\":\"${AWS::Region}\"}]],\"view\":\"timeSeries\",\"stacked\":false,\"region\":\"${AWS::Region}\",\"stat\":\"Average\",\"period\":300,\"start\":\"-PT168H\",\"title\":\"EC2 CPU Utilization\",\"end\":\"PT0H\",\"yAxis\":{\"left\":{\"showUnits\":false,\"label\":\"%\"},\"right\":{\"showUnits\":false}}}}]}"
DashboardBody: !Sub "{\"widgets\":[{\"type\":\"metric\",\"x\":0,\"y\":0,\"width\":11,\"height\":10,\"properties\":{\"metrics\":[[{\"expression\":\"SEARCH('{Sustainability/KPI,region,service,type}', 'Average', 86400)\",\"id\":\"e1\",\"region\":\"${AWS::Region}\"}]],\"view\":\"timeSeries\",\"stacked\":false,\"region\":\"${AWS::Region}\",\"stat\":\"Average\",\"period\":300,\"start\":\"-PT168H\",\"title\":\"EC2 CPU Utilization\",\"end\":\"PT0H\",\"yAxis\":{\"left\":{\"showUnits\":true},\"right\":{\"showUnits\":false}}}}]}"

DailyScheduler:
Type: AWS::Scheduler::Schedule
Expand Down

0 comments on commit 5559ab1

Please sign in to comment.