[CEJUG] Obter custos dos serviços AWS(Blilling)

12 views
Skip to first unread message

BRUNO OLINDA

unread,
Aug 29, 2017, 3:06:42 PM8/29/17
to ce...@googlegroups.com
Boa tarde galera,

Estou com problemas para obter os custos da AWS através do JAVA.
Consigo trazer as métricas do EC2, mas quando mudo para plataforma Billing não da erro, mas também não traz nada.
Alguém poderia me auxilizar me indicando se está faltando algo no código ou me passar um trecho de código que traga os custos da AWS?

Segue meu código:

public static void main(String[] args) {
        final String awsAccessKey = "********";
        final String awsSecretKey = "********";

        final AmazonCloudWatchClient client = client(awsAccessKey, awsSecretKey);
        final GetMetricStatisticsRequest request = request(); 
        final GetMetricStatisticsResult result = result(client, request);
        printIt(result);   
    }

    private static AmazonCloudWatchClient client(final String awsAccessKey, final String awsSecretKey) {
        final AmazonCloudWatchClient client = new AmazonCloudWatchClient(new BasicAWSCredentials(awsAccessKey, awsSecretKey));
        client.setEndpoint("http://monitoring.sa-east-1.amazonaws.com");
        return client;
    }

    private static GetMetricStatisticsRequest request() {
        final long twoWeeks = 1000 * 60 * 60 * 24 * 15;
        final int twelveHours = 60 * 60 * 12;
        return new GetMetricStatisticsRequest()
            .withStartTime(new Date(new Date().getTime() - twoWeeks))
            .withNamespace("AWS/Billing")
            .withPeriod(twelveHours)
            .withDimensions(new Dimension().withName("Currency").withValue("USD"))
            .withMetricName("EstimatedCharges")
            .withStatistics("Average", "Maximum","Minimum","SampleCount","Sum")
            .withEndTime(new Date());
    }

    private static GetMetricStatisticsResult result(
            final AmazonCloudWatchClient client, final GetMetricStatisticsRequest request) {
         return client.getMetricStatistics(request);
    }

    private static void printIt(final GetMetricStatisticsResult result) {
       // Collections.sort(result.getDatapoints(), (Datapoint dp1, Datapoint dp2) -> dp1.getTimestamp().compareTo(dp2.getTimestamp()));
        System.out.println("**************************************"); 
        System.out.println(result);
    }

Desde já agradeço!

Atenciosamente,


Reply all
Reply to author
Forward
0 new messages