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 .xml suffix or ?format=xml
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/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <HealthCheckResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ExtremeReach.Diagnostics.App.Types"> <CorrelationId>String</CorrelationId> <ExecutionMetrics> <Duration>PT0S</Duration> <EndDateTime>0001-01-01T00:00:00</EndDateTime> <StartDateTime>0001-01-01T00:00:00</StartDateTime> </ExecutionMetrics> <FailedMonitorCount>0</FailedMonitorCount> <MonitorSummaries> <MonitorSummary> <ErrorMessages xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:string>String</d4p1:string> </ErrorMessages> <MonitorName>String</MonitorName> <Results> <MonitoringResult> <ErrorMessages xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d6p1:string>String</d6p1:string> </ErrorMessages> <MonitoringName>String</MonitoringName> <Status>Success</Status> <StatusMessage>String</StatusMessage> </MonitoringResult> </Results> <Status>Success</Status> </MonitorSummary> </MonitorSummaries> <ServerState> <AvailableRamInMb>0</AvailableRamInMb> <ServerName>String</ServerName> <TotalRamInMb>0</TotalRamInMb> <UsedCpuPercent>0</UsedCpuPercent> </ServerState> <Status>Success</Status> <StatusMessage>String</StatusMessage> </HealthCheckResponse>