in cloudwatch_metrics_collector/src/metrics_collector_parameter_helper.cpp [97:126]
void ReadMetricDimensions(
const std::shared_ptr<Aws::Client::ParameterReaderInterface>& parameter_reader,
Aws::String & dimensions_param,
std::map<std::string, std::string> & metric_dims) {
// Load the default dimensions
Aws::AwsError read_dimensions_status =
parameter_reader->ReadParam(ParameterPath(kNodeParamDefaultMetricDimensionsKey), dimensions_param);
Aws::OStringStream logging_stream;
logging_stream << "Default Metric Dimensions: { ";
if (Aws::AWS_ERR_OK == read_dimensions_status) {
auto dims = Aws::Utils::StringUtils::Split(dimensions_param, ';');
for (auto & dim : dims) {
if (!dim.empty()) {
auto dim_vec = Aws::Utils::StringUtils::Split(dim, ':');
if (dim_vec.size() == 2) {
metric_dims.emplace(dim_vec[0].c_str(), dim_vec[1].c_str());
logging_stream << dim_vec[0] << ": " << dim_vec[1] << ", ";
} else {
AWS_LOGSTREAM_WARN(
__func__, "Could not parse dimension: "
<< dim << ". Should be in the format <DimensionName>:<DimensionValue>");
}
}
}
}
logging_stream << " }";
AWS_LOGSTREAM_INFO(__func__, logging_stream.str());
}