Beispiel #1
0
        private void AddPerformanceMetrics(DirectedGraph graph)
        {
            long maxDuration    = 0;
            long minDuration    = Int64.MaxValue;
            var  reteNodeLookup = _schema.Nodes.ToDictionary(Id);

            foreach (var node in graph.Nodes)
            {
                var          reteNode    = reteNodeLookup[node.Id];
                INodeMetrics nodeMetrics = _metricsProvider?.FindByNodeId(reteNode.Id);
                if (nodeMetrics == null)
                {
                    continue;
                }

                var totalDuration = nodeMetrics.InsertDurationMilliseconds +
                                    nodeMetrics.UpdateDurationMilliseconds +
                                    nodeMetrics.RetractDurationMilliseconds;
                maxDuration = Math.Max(maxDuration, totalDuration);
                minDuration = Math.Min(minDuration, totalDuration);
                AddPerformanceMetrics(node, nodeMetrics);
            }

            minDuration = Math.Min(minDuration, maxDuration);

            graph.Properties.AddRange(
                CreatePerformanceProperties());
            graph.Styles.AddRange(
                CreatePerformanceStyles(minDuration, maxDuration));
        }
Beispiel #2
0
 private void AddPerformanceMetrics(Node node, INodeMetrics nodeMetrics)
 {
     if (nodeMetrics.ElementCount.HasValue)
     {
         node.Properties.Add("PerfElementCount", nodeMetrics.ElementCount.Value);
     }
     node.Properties.Add("PerfInsertInputCount", nodeMetrics.InsertInputCount);
     node.Properties.Add("PerfInsertOutputCount", nodeMetrics.InsertOutputCount);
     node.Properties.Add("PerfUpdateInputCount", nodeMetrics.UpdateInputCount);
     node.Properties.Add("PerfUpdateOutputCount", nodeMetrics.UpdateOutputCount);
     node.Properties.Add("PerfRetractInputCount", nodeMetrics.RetractInputCount);
     node.Properties.Add("PerfRetractOutputCount", nodeMetrics.RetractOutputCount);
     node.Properties.Add("PerfInsertDurationMilliseconds", nodeMetrics.InsertDurationMilliseconds);
     node.Properties.Add("PerfUpdateDurationMilliseconds", nodeMetrics.UpdateDurationMilliseconds);
     node.Properties.Add("PerfRetractDurationMilliseconds", nodeMetrics.RetractDurationMilliseconds);
     node.Properties.Add("PerfTotalInputCount",
                         nodeMetrics.InsertInputCount + nodeMetrics.UpdateInputCount + nodeMetrics.RetractInputCount);
     node.Properties.Add("PerfTotalOutputCount",
                         nodeMetrics.InsertOutputCount + nodeMetrics.UpdateOutputCount + nodeMetrics.RetractOutputCount);
     node.Properties.Add("PerfTotalDurationMilliseconds",
                         nodeMetrics.InsertDurationMilliseconds + nodeMetrics.UpdateDurationMilliseconds + nodeMetrics.RetractDurationMilliseconds);
 }
 public MetricsOperationObserver(INodeMetrics nodeMetrics, bool enabledNodeTimerMetrics)
 {
     _enabledNodeTimerMetrics = enabledNodeTimerMetrics;
     _operationTimer          = nodeMetrics.CqlMessages;
 }
Beispiel #4
0
 public MetricsConnectionObserver(ISessionMetrics sessionMetrics, INodeMetrics nodeMetrics, bool enabledNodeTimerMetrics)
 {
     _sessionMetrics          = sessionMetrics;
     _nodeMetrics             = nodeMetrics;
     _enabledNodeTimerMetrics = enabledNodeTimerMetrics;
 }