예제 #1
0
        public RouterTile(
            DrawingElement drawing,
            RoutingNode router,
            DashboardConfiguration.NodeConfiguration nodeConfiguration,
            TrafficIndicatorConfiguration trafficIndicatorConfiguration)
            : base(
                drawing,
                nodeConfiguration?.Title ?? "Router",
                "router",
                router.Offline,
                2,
                router.Name)
        {
            _drawing = drawing;
            _router  = router;
            _trafficIndicatorThresholds = trafficIndicatorConfiguration.Thresholds;

            LinkUrl = "/ui/node?name=" + router.Name;

            var details = new List <string>();

            if (router.Outputs != null)
            {
                _outputDrawings = router.Outputs
                                  .Select(o => new RouterOutputDrawing(drawing, o, o.RouteTo, null, router.Offline || o.Disabled))
                                  .ToArray();

                foreach (var outputDrawing in _outputDrawings)
                {
                    AddChild(outputDrawing);
                }
            }

            AddDetails(details, null, router.Offline ? "disabled" : string.Empty);
        }
예제 #2
0
        public LoadBalancerTile(
            DrawingElement drawing,
            LoadBalancerNode loadBalancer,
            TrafficIndicatorConfiguration trafficIndicatorConfiguration,
            string title,
            string cssClass,
            List <string> details,
            bool showConnections,
            bool showSessions,
            bool showTraffic)
            : base(drawing, title, cssClass, loadBalancer.Offline, 2, loadBalancer.Name)
        {
            _drawing      = drawing;
            _loadBalancer = loadBalancer;
            _trafficIndicatorThresholds = trafficIndicatorConfiguration.Thresholds;

            LinkUrl = "/ui/node?name=" + loadBalancer.Name;

            if (details != null)
            {
                AddDetails(details, null, loadBalancer.Offline ? "disabled" : string.Empty);
            }

            if (loadBalancer.Offline)
            {
                Title.CssClass += " disabled";
            }

            if (loadBalancer.Outputs != null)
            {
                _outputDrawings = new OutputDrawing[loadBalancer.Outputs.Length];

                for (var i = 0; i < loadBalancer.Outputs.Length; i++)
                {
                    var outputNodeName = loadBalancer.Outputs[i];
                    var output         = loadBalancer.OutputNodes[i];
                    _outputDrawings[i] = new OutputDrawing(
                        drawing,
                        outputNodeName,
                        "Server",
                        output,
                        cssClass + "_output",
                        showConnections,
                        showSessions,
                        showTraffic);
                }

                foreach (var outputDrawing in _outputDrawings)
                {
                    AddChild(outputDrawing);
                }
            }
        }
예제 #3
0
 public RoundRobinTile(
     DrawingElement drawing,
     RoundRobinNode roundRobin,
     DashboardConfiguration.NodeConfiguration nodeConfiguration,
     TrafficIndicatorConfiguration trafficIndicatorConfiguration)
     : base(
         drawing,
         roundRobin,
         trafficIndicatorConfiguration,
         nodeConfiguration?.Title ?? "Round robin",
         "round_robin",
         null,
         false,
         false,
         true)
 {
 }
예제 #4
0
 public LeastConnectionsTile(
     DrawingElement drawing,
     LeastConnectionsNode leastConnections,
     DashboardConfiguration.NodeConfiguration nodeConfiguration,
     TrafficIndicatorConfiguration trafficIndicatorConfiguration)
     : base(
         drawing,
         leastConnections,
         trafficIndicatorConfiguration,
         nodeConfiguration?.Title ?? "Least connections",
         "least_connections",
         null,
         true,
         false,
         true)
 {
 }
예제 #5
0
        public ListenerTile(
            DrawingElement drawing,
            ListenerEndpointConfiguration listener,
            TrafficIndicatorConfiguration trafficIndicatorConfiguration)
            : base(
                drawing,
                listener?.Title ?? listener?.Name + " Listener",
                "listener",
                listener.Disabled)
        {
            _drawing  = drawing;
            _listener = listener;
            _trafficIndicatorThresholds = trafficIndicatorConfiguration.Thresholds;

            var details = new List <string>();

            if (listener.IpAddress == "*")
            {
                details.Add("Listen on all IP addresses");
            }
            else if (!string.IsNullOrEmpty(listener.IpAddress))
            {
                details.Add("Listen on " + listener.IpAddress);
            }

            if (listener.PortNumber == 0)
            {
                details.Add("Bind to all ports");
            }
            else
            {
                details.Add("Bind to port " + listener.PortNumber);
            }

            details.Add("Send to node " + listener.NodeName);

            if (listener.ProcessingNode != null)
            {
                details.Add(listener.ProcessingNode.TrafficAnalytics.LifetimeRequestCount + " requests");
                details.Add(listener.ProcessingNode.TrafficAnalytics.RequestTime.TotalMilliseconds.ToString("n2") + " ms");
                details.Add(listener.ProcessingNode.TrafficAnalytics.RequestsPerMinute.ToString("n2") + " /min");
            }

            AddDetails(details, null, listener.Disabled ? "disabled" : string.Empty);
        }
예제 #6
0
 public StickySessionTile(
     DrawingElement drawing,
     StickySessionNode stickySession,
     DashboardConfiguration.NodeConfiguration nodeConfiguration,
     TrafficIndicatorConfiguration trafficIndicatorConfiguration)
     : base(
         drawing,
         stickySession,
         trafficIndicatorConfiguration,
         nodeConfiguration?.Title ?? "Sticky session",
         "sticky_session",
         new List <string>
 {
     "Cookie: " + stickySession.SessionCookie,
     "Lifetime: " + stickySession.SessionDuration
 },
         true,
         true,
         true)
 {
 }