Ejemplo n.º 1
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }