예제 #1
0
        public VersionModule(IVersionService versionService)
            : base("/about/version")
        {
            this.RequiresAuthentication();
            this.RequiresClaims(new string[] { "ApiUser" });

            m_VersionService = versionService;

            Get["/"] = delegate(dynamic parameters)
            {
                var version = m_VersionService.GetVersionInformation();
                return(Response.AsJson(version));
            };
        }
예제 #2
0
        public VersionModule(IVersionService versionService)
            :base("/about/version")
        {
            this.RequiresAuthentication();
            this.RequiresClaims(new string[]{"ApiUser"});

            m_VersionService = versionService;

            Get["/"] = delegate(dynamic parameters)
                       {
                           var version = m_VersionService.GetVersionInformation();
                           return Response.AsJson(version);
                       };
        }
예제 #3
0
        private async Task HandleDetailedHealthCheckRequest(HttpContext context)
        {
            var models = new List <ResourceHealthStatus>();

            var isNodeUp = true;

            foreach (var resourceState in _collector.GetStates())
            {
                if (IsNodeDownStrategy(resourceState))
                {
                    isNodeUp = false;
                }

                models.Add(new ResourceHealthStatus
                {
                    ResourceName = resourceState.ResourceMonitor.ResourceName,
                    IsCritical   = resourceState.ResourceMonitor.IsCritical,
                    Events       = resourceState
                                   .MonitorEvents
                                   .Select(e => new ResourceHealthStatus.Event
                    {
                        Exception           = _toStringStrategy(e.Exception),
                        Latency             = e.Latency,
                        Up                  = e.IsUp,
                        VerificationTimeUtc = e.VerificationTimeUtc
                    })
                                   .OrderByDescending(e => e.VerificationTimeUtc)
                });
            }

            var body = new HealthCheckDetailedResponse
            {
                Up = isNodeUp,
                VersionInformation = _versionService?.GetVersionInformation(),
                ResourceStates     = models
            };

            await WriteResponse(context, body, isNodeUp);
        }