When using AWS Console --> AWS Cost Management --> Cost Explorer - I get the following values:
When I use @aws-sdk/client-cost-explorer
I get different results for 'EC2 - Other' and 'Amazon Load Balancer'.
Configuration:
import { CostExplorerClient, GetCostAndUsageCommand } from '@aws-sdk/client-cost-explorer';
const client = new CostExplorerClient({
region,
credentials: {
accessKeyId,
secretAccessKey
}
});
const params = {
TimePeriod: {
Start: startDate,
End: endDate
},
Filter: {
Dimensions: {
Key: 'SERVICE',
Values: [
'EC2 - Other', 'Amazon ElastiCache'
]
}
},
GroupBy: [
{
Type: 'DIMENSION',
Key: 'SERVICE',
},
],
Granularity: 'DAILY',
Metrics: [
'BLENDED_COST',
'UNBLENDED_COST',
'AMORTIZED_COST',
'NET_AMORTIZED_COST',
]
};
const command = new GetCostAndUsageCommand(params);
try {
const data = await client.send(command);
log.info(data);
And the results are:
GroupDefinitions: [
{
"Key": "AZ",
"Type": "DIMENSION"
},
{
"Key": "SERVICE",
"Type": "DIMENSION"
}
]
--
ResultsByTime: [
{
"Estimated": false,
"Groups": [
{
"Keys": [
"NoAZ",
"Amazon ElastiCache"
],
"Metrics": {
"AmortizedCost": {
"Amount": "-122.4",
"Unit": "USD"
},
"BlendedCost": {
"Amount": "-122.4",
"Unit": "USD"
},
"NetAmortizedCost": {
"Amount": "-122.4",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "-122.4",
"Unit": "USD"
}
}
},
{
"Keys": [
"NoAZ",
"EC2 - Other"
],
"Metrics": {
"AmortizedCost": {
"Amount": "0.2467152681",
"Unit": "USD"
},
"BlendedCost": {
"Amount": "0.2467152681",
"Unit": "USD"
},
"NetAmortizedCost": {
"Amount": "0.2467152681",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "0.2467152681",
"Unit": "USD"
}
}
},
{
"Keys": [
"us-east-1",
"Amazon ElastiCache"
],
"Metrics": {
"AmortizedCost": {
"Amount": "122.4",
"Unit": "USD"
},
"BlendedCost": {
"Amount": "122.4",
"Unit": "USD"
},
"NetAmortizedCost": {
"Amount": "122.4",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "122.4",
"Unit": "USD"
}
}
}
],
"TimePeriod": {
"End": "2022-05-01",
"Start": "2022-04-01"
},
"Total": {}
},
{
"Estimated": true,
"Groups": [
{
"Keys": [
"NoAZ",
"Amazon ElastiCache"
],
"Metrics": {
"AmortizedCost": {
"Amount": "-89.59",
"Unit": "USD"
},
"BlendedCost": {
"Amount": "-89.59",
"Unit": "USD"
},
"NetAmortizedCost": {
"Amount": "-89.59",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "-89.59",
"Unit": "USD"
}
}
},
{
"Keys": [
"NoAZ",
"EC2 - Other"
],
"Metrics": {
"AmortizedCost": {
"Amount": "0.1766760069",
"Unit": "USD"
},
"BlendedCost": {
"Amount": "0.1766760069",
"Unit": "USD"
},
"NetAmortizedCost": {
"Amount": "0.1766760069",
"Unit": "USD"
},
"UnblendedCost": {
"Amount": "0.1766760069",
"Unit": "USD"
}
}
As you can see the amounts of 'Amazon ElastiCache' are correct for all metrics, but the amount for EC2-Other are wrong for all metrics.
Our account is currently using AWS credits.
I'm looking for the correct parameters to be used for this SDK in order to receive the daily/monthly usage per service.