App_Features_Service

<back to all web services

HealthCheckRequest

The following routes are available for this service:
GET/healthcheckThe request for getting health check information.Depending on the execution mode, you can determine different states of the server.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using ExtremeReach.Diagnostics.App.Types;

namespace ExtremeReach.Diagnostics.App.Types
{
    public enum ExecutionMode
    {
        Basic = 1,
        Standard = 2,
        Advanced = 3,
    }

    public partial class HealthCheckRequest
    {
        ///<summary>
        ///The mode used to determine what level of health check to perform.
        ///</summary>
        [ApiMember(DataType="ExecutionMode", Description="The mode used to determine what level of health check to perform.", IsRequired=true, ParameterType="query")]
        public virtual ExecutionMode ExecutionMode { get; set; }

        ///<summary>
        ///The type of server that will be used to determine which monitors will be run.
        ///</summary>
        [ApiMember(DataType="ServerType", Description="The type of server that will be used to determine which monitors will be run.", IsRequired=true, ParameterType="query")]
        public virtual ServerType ServerType { get; set; }

        ///<summary>
        ///Indicates whether or not to include server state information in the response.
        ///</summary>
        [ApiMember(DataType="boolean", Description="Indicates whether or not to include server state information in the response.", ParameterType="query")]
        public virtual bool IncludeServerStateInformation { get; set; }

        ///<summary>
        ///Indicates whether or not to suppress returning error codes. This will always return a 200 code to the caller, which is required for PRTG to process the JSON response properly.
        ///</summary>
        [ApiMember(DataType="boolean", Description="Indicates whether or not to suppress returning error codes. This will always return a 200 code to the caller, which is required for PRTG to process the JSON response properly.", ParameterType="query")]
        public virtual bool SuppressErrorCodes { get; set; }

        ///<summary>
        ///Indicates whether or not to suppress deployment-related errors.
        ///</summary>
        [ApiMember(DataType="boolean", Description="Indicates whether or not to suppress deployment-related errors.", ParameterType="query")]
        public virtual bool SuppressDeploymentErrors { get; set; }
    }

    public partial class HealthCheckResponse
    {
        public HealthCheckResponse()
        {
            MonitorSummaries = new List<MonitorSummary>{};
        }

        public virtual ServerState ServerState { get; set; }
        public virtual MonitoringStatus Status { get; set; }
        public virtual string StatusMessage { get; set; }
        public virtual string CorrelationId { get; set; }
        public virtual int FailedMonitorCount { get; set; }
        public virtual List<MonitorSummary> MonitorSummaries { get; set; }
        public virtual MonitorExecutionMetrics ExecutionMetrics { get; set; }
    }

    public partial class MonitorExecutionMetrics
    {
        public virtual DateTime StartDateTime { get; set; }
        public virtual DateTime EndDateTime { get; set; }
        public virtual TimeSpan Duration { get; set; }
    }

    public partial class MonitoringResult
    {
        public MonitoringResult()
        {
            ErrorMessages = new List<string>{};
        }

        public virtual string MonitoringName { get; set; }
        public virtual MonitoringStatus Status { get; set; }
        public virtual string StatusMessage { get; set; }
        public virtual List<string> ErrorMessages { get; set; }
    }

    public enum MonitoringStatus
    {
        Success = 1,
        Failure = 2,
    }

    public partial class MonitorSummary
    {
        public MonitorSummary()
        {
            Results = new List<MonitoringResult>{};
            ErrorMessages = new List<string>{};
        }

        public virtual string MonitorName { get; set; }
        public virtual MonitoringStatus Status { get; set; }
        public virtual List<MonitoringResult> Results { get; set; }
        public virtual List<string> ErrorMessages { get; set; }
    }

    public partial class ServerState
    {
        public virtual string ServerName { get; set; }
        public virtual decimal? TotalRamInMb { get; set; }
        public virtual decimal? AvailableRamInMb { get; set; }
        public virtual decimal? UsedCpuPercent { get; set; }
    }

    public enum ServerType
    {
        App = 1,
        Sql = 2,
        FtpApi = 3,
        Ftp = 4,
        Batch = 5,
        Identity = 6,
        Qc = 7,
        XcodeV = 8,
        XcodeC = 9,
        MsgVast = 10,
        AsgVast = 11,
        Mongo = 12,
        Agents = 13,
    }

}

C# HealthCheckRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /healthcheck HTTP/1.1 
Host: 54.235.149.200 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ServerState: 
	{
		ServerName: String,
		TotalRamInMb: 0,
		AvailableRamInMb: 0,
		UsedCpuPercent: 0
	},
	Status: Success,
	StatusMessage: String,
	CorrelationId: String,
	FailedMonitorCount: 0,
	MonitorSummaries: 
	[
		{
			MonitorName: String,
			Status: Success,
			Results: 
			[
				{
					MonitoringName: String,
					Status: Success,
					StatusMessage: String,
					ErrorMessages: 
					[
						String
					]
				}
			],
			ErrorMessages: 
			[
				String
			]
		}
	],
	ExecutionMetrics: 
	{
		StartDateTime: 0001-01-01,
		EndDateTime: 0001-01-01,
		Duration: PT0S
	}
}