GET | /healthcheck | The 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(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /healthcheck HTTP/1.1 Host: gc.tclclouds.com Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json 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":"\/Date(-62135596800000-0000)\/","EndDateTime":"\/Date(-62135596800000-0000)\/","Duration":"PT0S"}}