private static void HandleMetricsReportingPatterns( ConfigurationRuntimeMetricsReporting.StmtGroupMetrics groupDef, XmlElement parentElement) { var nodeIterator = DOMElementEnumerator.Create(parentElement.ChildNodes); while (nodeIterator.MoveNext()) { var subElement = nodeIterator.Current; switch (subElement.Name) { case "include-regex": { var text = subElement.ChildNodes.Item(0).InnerText; groupDef.Patterns.Add(new Pair<StringPatternSet, bool>(new StringPatternSetRegex(text), true)); break; } case "exclude-regex": { var text = subElement.ChildNodes.Item(0).InnerText; groupDef.Patterns.Add(new Pair<StringPatternSet, bool>(new StringPatternSetRegex(text), false)); break; } case "include-like": { var text = subElement.ChildNodes.Item(0).InnerText; groupDef.Patterns.Add(new Pair<StringPatternSet, bool>(new StringPatternSetLike(text), true)); break; } case "exclude-like": { var text = subElement.ChildNodes.Item(0).InnerText; groupDef.Patterns.Add(new Pair<StringPatternSet, bool>(new StringPatternSetLike(text), false)); break; } } } }
private static void HandleMetricsReporting( ConfigurationRuntime runtime, XmlElement element) { ParseOptionalBoolean(element, "enabled", b => runtime.MetricsReporting.WithMetricsReporting(b)); var runtimeInterval = GetOptionalAttribute(element, "runtime-interval"); if (runtimeInterval != null) { runtime.MetricsReporting.RuntimeInterval = long.Parse(runtimeInterval); } var statementInterval = GetOptionalAttribute(element, "statement-interval"); if (statementInterval != null) { runtime.MetricsReporting.StatementInterval = long.Parse(statementInterval); } var threading = GetOptionalAttribute(element, "threading"); if (threading != null) { runtime.MetricsReporting.IsThreading = bool.Parse(threading); } var runtimeMetrics = GetOptionalAttribute(element, "runtime-metrics"); if (runtimeMetrics != null) { runtime.MetricsReporting.IsRuntimeMetrics = bool.Parse(runtimeMetrics); } var nodeIterator = DOMElementEnumerator.Create(element.ChildNodes); while (nodeIterator.MoveNext()) { var subElement = nodeIterator.Current; if (subElement.Name == "stmtgroup") { var name = GetRequiredAttribute(subElement, "name"); var interval = long.Parse(GetRequiredAttribute(subElement, "interval")); var metrics = new ConfigurationRuntimeMetricsReporting.StmtGroupMetrics(); metrics.Interval = interval; runtime.MetricsReporting.AddStmtGroup(name, metrics); var defaultInclude = GetOptionalAttribute(subElement, "default-include"); if (defaultInclude != null) { metrics.IsDefaultInclude = bool.Parse(defaultInclude); } var numStmts = GetOptionalAttribute(subElement, "num-stmts"); if (numStmts != null) { metrics.NumStatements = int.Parse(numStmts); } var reportInactive = GetOptionalAttribute(subElement, "report-inactive"); if (reportInactive != null) { metrics.IsReportInactive = bool.Parse(reportInactive); } HandleMetricsReportingPatterns(metrics, subElement); } } }