MCPcopy Create free account
hub / github.com/bytedance/bolt / serialize

Method serialize

bolt/exec/TaskStats.h:168–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166 }
167
168 folly::dynamic serialize() const {
169 folly::dynamic obj = folly::dynamic::object;
170 obj["numTotalSplits"] = numTotalSplits;
171 obj["numFinishedSplits"] = numFinishedSplits;
172 obj["numRunningSplits"] = numRunningSplits;
173 obj["numQueuedSplits"] = numQueuedSplits;
174 obj["completedSplitGroups"] = folly::dynamic::array;
175 for (auto group : completedSplitGroups) {
176 obj["completedSplitGroups"].push_back(group);
177 }
178 obj["pipelineStats"] = folly::dynamic::array;
179 for (const auto& pipeline : pipelineStats) {
180 folly::dynamic pipelineObj = folly::dynamic::object;
181 pipelineObj["inputPipeline"] = pipeline.inputPipeline;
182 pipelineObj["outputPipeline"] = pipeline.outputPipeline;
183 pipelineObj["operatorStats"] = folly::dynamic::array;
184 for (const auto& operatorStats : pipeline.operatorStats) {
185 pipelineObj["operatorStats"].push_back(operatorStats.serialize());
186 }
187 pipelineObj["pipelineInputSizeCoefficientOfVariation"] =
188 pipeline.pipelineInputSizeCoefficientOfVariation;
189 obj["pipelineStats"].push_back(pipelineObj);
190 }
191 obj["executionStartTimeMs"] = executionStartTimeMs;
192 obj["executionEndTimeMs"] = executionEndTimeMs;
193 obj["firstSplitStartTimeMs"] = firstSplitStartTimeMs;
194 obj["lastSplitStartTimeMs"] = lastSplitStartTimeMs;
195 obj["endTimeMs"] = endTimeMs;
196 obj["terminationTimeMs"] = terminationTimeMs;
197 obj["taskInputSizeCoefficientOfVariation"] =
198 taskInputSizeCoefficientOfVariation;
199 obj["numTotalDrivers"] = numTotalDrivers;
200 obj["numCompletedDrivers"] = numCompletedDrivers;
201 obj["numTerminatedDrivers"] = numTerminatedDrivers;
202 obj["numRunningDrivers"] = numRunningDrivers;
203 obj["numBlockedDrivers"] = folly::dynamic::object;
204 for (const auto& [reason, count] : numBlockedDrivers) {
205 obj["numBlockedDrivers"][blockingReasonToString(reason)] = count;
206 }
207 obj["outputBufferUtilization"] = outputBufferUtilization;
208 obj["outputBufferOverutilized"] = outputBufferOverutilized;
209 obj["longestRunningOpCall"] = longestRunningOpCall;
210 obj["longestRunningOpCallMs"] = longestRunningOpCallMs;
211 obj["memoryReclaimCount"] = memoryReclaimCount;
212 obj["memoryReclaimMs"] = memoryReclaimMs;
213 obj["multiSplitUuidToSingleSplitNum"] = folly::dynamic::object;
214 for (const auto& [uuid, num] : multiSplitUuidToSingleSplitNum) {
215 obj["multiSplitUuidToSingleSplitNum"][uuid] = num;
216 }
217 return obj;
218 }
219};
220
221} // namespace bytedance::bolt::exec

Callers 1

serializeMethod · 0.45

Calls 2

blockingReasonToStringFunction · 0.85
push_backMethod · 0.45

Tested by

no test coverage detected