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)); }
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; }
public MetricsConnectionObserver(ISessionMetrics sessionMetrics, INodeMetrics nodeMetrics, bool enabledNodeTimerMetrics) { _sessionMetrics = sessionMetrics; _nodeMetrics = nodeMetrics; _enabledNodeTimerMetrics = enabledNodeTimerMetrics; }