in src/Amazon.CloudWatch.EMF/Model/MetricsContext.cs [206:233]
public List<string> Serialize()
{
var nodes = new List<RootNode>();
if (_rootNode.AWS.MetricDirective.Metrics.Count <= Constants.MAX_METRICS_PER_EVENT)
{
nodes.Add(_rootNode);
}
else
{
// split the root nodes into multiple and serialize each
var count = 0;
while (count < _rootNode.AWS.MetricDirective.Metrics.Count)
{
var metrics = _rootNode.AWS.MetricDirective.Metrics.Skip(count).Take(Constants.MAX_METRICS_PER_EVENT).ToList();
var node = _rootNode.DeepCloneWithNewMetrics(metrics);
nodes.Add(node);
count += Constants.MAX_METRICS_PER_EVENT;
}
}
var results = new List<string>();
foreach (var node in nodes)
{
results.Add(node.Serialize());
}
return results;
}