CloudWatchMetricsStatus CloudWatchMetricsFacade::SendMetricsRequest()

in cloudwatch_metrics_common/src/utils/cloudwatch_metrics_facade.cpp [46:73]


CloudWatchMetricsStatus CloudWatchMetricsFacade::SendMetricsRequest(
  const Aws::CloudWatch::Model::PutMetricDataRequest & request)
{

  auto status = SUCCESS;
  auto response = this->cw_client_->PutMetricData(request);

  if (!response.IsSuccess()) {

    AWS_LOGSTREAM_DEBUG( __func__, "CloudWatchMetricsFacade: failed to send metric request: "
                         << static_cast<int>(response.GetError().GetErrorType()));

    switch(response.GetError().GetErrorType()) {
      //case Aws::CloudWatch::CloudWatchErrors::REQUEST_TIMEOUT:
      case Aws::CloudWatch::CloudWatchErrors::NETWORK_CONNECTION:
        status = NETWORK_FAILURE;
        break;
      case Aws::CloudWatch::CloudWatchErrors::INVALID_PARAMETER_VALUE:
      case Aws::CloudWatch::CloudWatchErrors::INVALID_PARAMETER_COMBINATION:
      case Aws::CloudWatch::CloudWatchErrors::MISSING_PARAMETER:
        status = INVALID_DATA;
        break;
      default:
        status = FAILURE;
    }
  }
  return status;
}