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 .jsv suffix or ?format=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 } }