2727
2828using namespace PerformanceTest ::Reporting;
2929
30- struct RequestContext {
31- Aws::String serviceName;
32- Aws::String requestName;
33- std::shared_ptr<const Aws::Http::HttpRequest> request;
34- std::variant<int64_t , double > durationMs = int64_t (0 );
35- bool failed = false ;
36- };
37-
3830JsonReportingMetrics::JsonReportingMetrics (const Aws::Set<Aws::String>& monitoredOperations, const Aws::String& productId,
3931 const Aws::String& sdkVersion, const Aws::String& commitId, const Aws::String& outputFilename)
4032 : m_monitoredOperations(monitoredOperations),
@@ -107,8 +99,10 @@ void JsonReportingMetrics::AddPerformanceRecord(const Aws::String& serviceName,
10799
108100void * JsonReportingMetrics::OnRequestStarted (const Aws::String&, const Aws::String&,
109101 const std::shared_ptr<const Aws::Http::HttpRequest>&) const {
110- auto context = Aws::New<RequestContext>(" RequestContext" );
111- return context;
102+ auto context = Aws::MakeUnique<RequestContext>(" RequestContext" );
103+ auto requestID = context->requestId ;
104+ m_requestContexts.emplace (requestID, std::move (context));
105+ return m_requestContexts[requestID].get ();
112106}
113107
114108void JsonReportingMetrics::OnRequestSucceeded (const Aws::String& serviceName, const Aws::String& requestName,
@@ -136,7 +130,7 @@ void JsonReportingMetrics::OnFinish(const Aws::String&, const Aws::String&, cons
136130 AddPerformanceRecord (requestContext->serviceName , requestContext->requestName , requestContext->request , requestContext->durationMs );
137131 }
138132
139- Aws::Delete (requestContext);
133+ m_requestContexts. erase (requestContext-> requestId );
140134}
141135
142136void JsonReportingMetrics::DumpJson () const {
@@ -214,6 +208,7 @@ void JsonReportingMetrics::DumpJson() const {
214208void JsonReportingMetrics::WriteJsonToFile (const Aws::Utils::Json::JsonValue& root) const {
215209 std::ofstream outFile (m_outputFilename.c_str ());
216210 if (outFile.is_open ()) {
211+ std::cout << root.View ().WriteReadable ();
217212 outFile << root.View ().WriteReadable ();
218213 }
219214}
0 commit comments