|
26 | 26 |
|
27 | 27 | using namespace PerformanceTest::Reporting;
|
28 | 28 |
|
29 |
| -Aws::Vector<std::pair<Aws::String, Aws::String>> JsonReportingMetrics::TestDimensions; |
| 29 | +Aws::Map<Aws::String, Aws::String> JsonReportingMetrics::TestDimensions; |
30 | 30 | Aws::Set<Aws::String> JsonReportingMetrics::MonitoredOperations;
|
31 | 31 | Aws::String JsonReportingMetrics::ProductId = "unknown";
|
32 | 32 | Aws::String JsonReportingMetrics::SdkVersion = "unknown";
|
33 | 33 | Aws::String JsonReportingMetrics::CommitId = "unknown";
|
34 | 34 | Aws::String JsonReportingMetrics::OutputFilename = "performance-test-results.json";
|
35 | 35 |
|
36 |
| -void JsonReportingMetrics::SetTestContext(const Aws::Vector<std::pair<Aws::String, Aws::String>>& dimensions) { |
37 |
| - TestDimensions = dimensions; |
38 |
| -} |
| 36 | +void JsonReportingMetrics::SetTestContext(const Aws::Map<Aws::String, Aws::String>& dimensions) { TestDimensions = dimensions; } |
39 | 37 |
|
40 | 38 | void JsonReportingMetrics::RegisterOperationsToMonitor(const Aws::Vector<Aws::String>& operations) {
|
41 | 39 | MonitoredOperations.clear();
|
@@ -78,8 +76,8 @@ void JsonReportingMetrics::AddPerformanceRecord(const Aws::String& serviceName,
|
78 | 76 | Aws::Utils::StringUtils::ToLower(serviceName.c_str()) + "." + Aws::Utils::StringUtils::ToLower(requestName.c_str()) + ".latency";
|
79 | 77 | record.description = "Time to complete " + requestName + " operation";
|
80 | 78 | record.unit = "Milliseconds";
|
81 |
| - record.date = Aws::Utils::DateTime::Now().Seconds(); |
82 |
| - record.measurements.push_back(durationMs); |
| 79 | + record.date = Aws::Utils::DateTime::Now(); |
| 80 | + record.measurements.emplace_back(durationMs); |
83 | 81 | record.dimensions = TestDimensions;
|
84 | 82 |
|
85 | 83 | m_performanceRecords.push_back(record);
|
@@ -146,24 +144,29 @@ void JsonReportingMetrics::DumpJson() const {
|
146 | 144 | jsonMetric.WithString("name", record.name);
|
147 | 145 | jsonMetric.WithString("description", record.description);
|
148 | 146 | jsonMetric.WithString("unit", record.unit);
|
149 |
| - jsonMetric.WithInt64("date", record.date); |
| 147 | + jsonMetric.WithInt64("date", record.date.Seconds()); |
150 | 148 |
|
151 | 149 | if (!record.dimensions.empty()) {
|
152 | 150 | Aws::Utils::Array<Aws::Utils::Json::JsonValue> dimensionsArray(record.dimensions.size());
|
153 |
| - for (size_t j = 0; j < record.dimensions.size(); ++j) { |
| 151 | + size_t dimensionIndex = 0; |
| 152 | + for (const auto& dim : record.dimensions) { |
154 | 153 | Aws::Utils::Json::JsonValue dimension;
|
155 |
| - dimension.WithString("name", record.dimensions[j].first); |
156 |
| - dimension.WithString("value", record.dimensions[j].second); |
157 |
| - dimensionsArray[j] = std::move(dimension); |
| 154 | + dimension.WithString("name", dim.first); |
| 155 | + dimension.WithString("value", dim.second); |
| 156 | + dimensionsArray[dimensionIndex++] = std::move(dimension); |
158 | 157 | }
|
159 | 158 | jsonMetric.WithArray("dimensions", std::move(dimensionsArray));
|
160 | 159 | }
|
161 | 160 |
|
162 | 161 | Aws::Utils::Array<Aws::Utils::Json::JsonValue> measurementsArray(record.measurements.size());
|
163 |
| - for (size_t j = 0; j < record.measurements.size(); ++j) { |
| 162 | + for (size_t measurementIndex = 0; measurementIndex < record.measurements.size(); ++measurementIndex) { |
164 | 163 | Aws::Utils::Json::JsonValue measurementValue;
|
165 |
| - measurementValue.AsInt64(record.measurements[j]); |
166 |
| - measurementsArray[j] = std::move(measurementValue); |
| 164 | + if (record.measurements[measurementIndex].IsDouble()) { |
| 165 | + measurementValue.AsDouble(record.measurements[measurementIndex].AsDouble()); |
| 166 | + } else { |
| 167 | + measurementValue.AsInt64(record.measurements[measurementIndex].AsInt64()); |
| 168 | + } |
| 169 | + measurementsArray[measurementIndex] = std::move(measurementValue); |
167 | 170 | }
|
168 | 171 | jsonMetric.WithArray("measurements", std::move(measurementsArray));
|
169 | 172 |
|
|
0 commit comments