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.
import Foundation
import ServiceStack

public class HealthCheckRequest : Codable
{
    /**
    * The mode used to determine what level of health check to perform.
    */
    // @ApiMember(DataType="ExecutionMode", Description="The mode used to determine what level of health check to perform.", IsRequired=true, ParameterType="query")
    public var executionMode:ExecutionMode

    /**
    * The type of server that will be used to determine which monitors will be run.
    */
    // @ApiMember(DataType="ServerType", Description="The type of server that will be used to determine which monitors will be run.", IsRequired=true, ParameterType="query")
    public var serverType:ServerType

    /**
    * Indicates whether or not to include server state information in the response.
    */
    // @ApiMember(DataType="boolean", Description="Indicates whether or not to include server state information in the response.", ParameterType="query")
    public var includeServerStateInformation:Bool

    /**
    * 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.
    */
    // @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 var suppressErrorCodes:Bool

    /**
    * Indicates whether or not to suppress deployment-related errors.
    */
    // @ApiMember(DataType="boolean", Description="Indicates whether or not to suppress deployment-related errors.", ParameterType="query")
    public var suppressDeploymentErrors:Bool

    required public init(){}
}

public enum ExecutionMode : Int, Codable
{
    case Basic = 1
    case Standard = 2
    case Advanced = 3
}

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

public class HealthCheckResponse : Codable
{
    public var serverState:ServerState
    public var status:MonitoringStatus
    public var statusMessage:String
    public var correlationId:String
    public var failedMonitorCount:Int
    public var monitorSummaries:[MonitorSummary] = []
    public var executionMetrics:MonitorExecutionMetrics

    required public init(){}
}

public class ServerState : Codable
{
    public var serverName:String
    public var totalRamInMb:Double?
    public var availableRamInMb:Double?
    public var usedCpuPercent:Double?

    required public init(){}
}

public enum MonitoringStatus : Int, Codable
{
    case Success = 1
    case Failure = 2
}

public class MonitorSummary : Codable
{
    public var monitorName:String
    public var status:MonitoringStatus
    public var results:[MonitoringResult] = []
    public var errorMessages:[String] = []

    required public init(){}
}

public class MonitoringResult : Codable
{
    public var monitoringName:String
    public var status:MonitoringStatus
    public var statusMessage:String
    public var errorMessages:[String] = []

    required public init(){}
}

public class MonitorExecutionMetrics : Codable
{
    public var startDateTime:Date
    public var endDateTime:Date
    @TimeSpan public var duration:TimeInterval

    required public init(){}
}


Swift 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: videoportal.tclclouds.com 
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
	}
}