예제 #1
0
 def get_tag_report(self, tag_name) -> pd.DataFrame:
     item_name = f"'{tag_name}' Resources Cost"
     results = self.cost_client.request_cost_and_usage(
         start=get_days_back(self.config.periods.tags_report_days_back),
         end=get_today(),
         request_name=item_name,
         granularity='DAILY',
         group_by_tags=[tag_name])
     return self.create_data_frame_from_results(results)
예제 #2
0
    def get_services_report(self) -> pd.DataFrame:
        item_name = consts.ReportItemName.SERVICES_COST.value
        results = self.cost_client.request_cost_and_usage(
            start=get_days_back(self.config.periods.services_report_days_back),
            end=get_today(),
            request_name=item_name,
            granularity='DAILY',
            group_by_dimensions=['SERVICE'])

        return self.create_data_frame_from_results(results)
예제 #3
0
    def get_daily_report(self) -> pd.DataFrame:
        item_name = consts.ReportItemName.DAILY_COST.value

        results = self.cost_client.request_cost_and_usage(
            start=get_days_back(self.config.periods.daily_report_days_back),
            end=get_today(),
            request_name=item_name,
            group_by_dimensions=['LINKED_ACCOUNT'],
            granularity='DAILY')

        return self.create_data_frame_from_results(results)
예제 #4
0
    def get_monthly_report(self) -> pd.DataFrame:
        item_name = consts.ReportItemName.MONTHLY_COST.value
        results = self.cost_client.request_cost_and_usage(
            start=get_months_back(
                self.config.periods.monthly_report_months_back),
            end=get_today(),
            request_name=item_name,
            group_by_dimensions=['LINKED_ACCOUNT'])

        dataframe = self.create_data_frame_from_results(results)
        return dataframe
예제 #5
0
 def get_available_tags(self) -> List[str]:
     return self.cost_client.get_available_tags(start_date=get_days_back(
         self.config.periods.tags_report_days_back),
                                                end_date=get_today())
예제 #6
0
    def get_current_month_forecast(self) -> pd.DataFrame:
        forecast = self.cost_client.get_monthly_cost_forecast(
            get_today().isoformat(),
            get_first_day_next_month().isoformat())

        return pd.DataFrame.from_dict({'values': [forecast]})