def get_latest_for_all_tags(cloud_type): try: cost_app.logger.info( f'Getting latest consumption for all tags on {cloud_type}') data = table_helper.latest_consumption_of_all_tags( cloud_type=CloudType(cloud_type)) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_latest_by_tag(cloud_type, tag): try: cost_app.logger.info( f'Getting latest consumption for tag {tag} on {cloud_type}') data = table_helper.latest_consumption_by_tag( cloud_type=CloudType(cloud_type), tag=tag) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_total_consumption_by_service_and_tag(cloud_type): try: hours = int(request.args.get('hours', 5)) cost_app.logger.info( f"Getting total for service and tags on {cloud_type}") data = table_helper.total_cost_by_service_and_tag( cloud_type=CloudType(cloud_type), n_hour_prior=hours) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_service_and_tag_history(cloud_type): try: hours = int(request.args.get('hours', 5)) cost_app.logger.info( f"Aggregating metrices for service and tags on {cloud_type}") data = table_helper.aggregate_by_service_and_tag( cloud_type=CloudType(cloud_type), n_hour_prior=hours) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_total_consumption_by_tag(cloud_type): try: tag_filter = request.args.get('tag') hours = int(request.args.get('hours', 5)) cost_app.logger.info(f'Getting total tag consumption on {cloud_type}') data = table_helper.total_cost_by_tag(cloud_type=CloudType(cloud_type), n_hour_prior=hours, tag=tag_filter) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_total_consumption_by_service(cloud_type): try: hours = int(request.args.get('hours', 5)) cost_app.logger.info( f"Aggregating total consumption of service for {cloud_type}") service_filter = request.args.get('service') data = table_helper.total_cost_by_service( cloud_type=CloudType(cloud_type), n_hour_prior=hours, service=service_filter) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)
def get_tag_history(cloud_type): try: tag_filter = request.args.get('tag') hours = int(request.args.get('hours', 5)) cost_app.logger.info( f'Getting tag consumption history for {tag_filter if tag_filter else "all"} service(s) on {cloud_type}' ) data = table_helper.aggregate_by_tag(cloud_type=CloudType(cloud_type), n_hour_prior=hours, tag=tag_filter) return make_response(jsonify(data)) except Exception as e: cost_app.logger.exception(e) return make_response(jsonify({'Exception': e.__repr__()}), 500)