refactor(coderd): move healthcheck report structs to codersdk (#12279)

Moves healthcheck report-related structs from coderd/healthcheck to codersdk
This prevents an import cycle when adding a codersdk.Client method to hit /api/v2/debug/health.
This commit is contained in:
Cian Johnston
2024-02-23 13:13:28 +00:00
committed by GitHub
parent aa7a9f5cc4
commit 2cb9bfd517
21 changed files with 2314 additions and 2298 deletions
+425 -424
View File
@@ -485,7 +485,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/healthcheck.Report"
"$ref": "#/definitions/codersdk.HealthcheckReport"
}
}
}
@@ -8394,6 +8394,51 @@ const docTemplate = `{
"APIKeyScopeApplicationConnect"
]
},
"codersdk.AccessURLReport": {
"type": "object",
"properties": {
"access_url": {
"type": "string"
},
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"healthz_response": {
"type": "string"
},
"reachable": {
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"status_code": {
"type": "integer"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.AddLicenseRequest": {
"type": "object",
"required": [
@@ -9305,6 +9350,126 @@ const docTemplate = `{
}
}
},
"codersdk.DERPHealthReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"netcheck": {
"$ref": "#/definitions/netcheck.Report"
},
"netcheck_err": {
"type": "string"
},
"netcheck_logs": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/codersdk.DERPRegionReport"
}
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.DERPNodeReport": {
"type": "object",
"properties": {
"can_exchange_messages": {
"type": "boolean"
},
"client_errs": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"client_logs": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"node": {
"$ref": "#/definitions/tailcfg.DERPNode"
},
"node_info": {
"$ref": "#/definitions/derp.ServerInfoMessage"
},
"round_trip_ping": {
"type": "string"
},
"round_trip_ping_ms": {
"type": "integer"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"stun": {
"$ref": "#/definitions/codersdk.STUNReport"
},
"uses_websocket": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.DERPRegion": {
"type": "object",
"properties": {
@@ -9316,6 +9481,45 @@ const docTemplate = `{
}
}
},
"codersdk.DERPRegionReport": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"node_reports": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.DERPNodeReport"
}
},
"region": {
"$ref": "#/definitions/tailcfg.DERPRegion"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.DERPServerConfig": {
"type": "object",
"properties": {
@@ -9356,6 +9560,51 @@ const docTemplate = `{
}
}
},
"codersdk.DatabaseReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"latency": {
"type": "string"
},
"latency_ms": {
"type": "integer"
},
"reachable": {
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"threshold_ms": {
"type": "integer"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.DeleteWorkspaceAgentPortShareRequest": {
"type": "object",
"properties": {
@@ -10033,6 +10282,62 @@ const docTemplate = `{
}
}
},
"codersdk.HealthcheckReport": {
"type": "object",
"properties": {
"access_url": {
"$ref": "#/definitions/codersdk.AccessURLReport"
},
"coder_version": {
"description": "The Coder version of the server that the report was generated on.",
"type": "string"
},
"database": {
"$ref": "#/definitions/codersdk.DatabaseReport"
},
"derp": {
"$ref": "#/definitions/codersdk.DERPHealthReport"
},
"failing_sections": {
"description": "FailingSections is a list of sections that have failed their healthcheck.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.HealthSection"
}
},
"healthy": {
"description": "Healthy is true if the report returns no errors.\nDeprecated: use ` + "`" + `Severity` + "`" + ` instead",
"type": "boolean"
},
"provisioner_daemons": {
"$ref": "#/definitions/codersdk.ProvisionerDaemonsReport"
},
"severity": {
"description": "Severity indicates the status of Coder health.",
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"time": {
"description": "Time is the time the report was generated at.",
"type": "string",
"format": "date-time"
},
"websocket": {
"$ref": "#/definitions/codersdk.WebsocketReport"
},
"workspace_proxy": {
"$ref": "#/definitions/codersdk.WorkspaceProxyReport"
}
}
},
"codersdk.InsightsReportInterval": {
"type": "string",
"enum": [
@@ -10719,6 +11024,46 @@ const docTemplate = `{
}
}
},
"codersdk.ProvisionerDaemonsReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.ProvisionerDaemonsReportItem"
}
},
"severity": {
"$ref": "#/definitions/health.Severity"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.ProvisionerDaemonsReportItem": {
"type": "object",
"properties": {
"provisioner_daemon": {
"$ref": "#/definitions/codersdk.ProvisionerDaemon"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"codersdk.ProvisionerJob": {
"type": "object",
"properties": {
@@ -11238,6 +11583,20 @@ const docTemplate = `{
}
}
},
"codersdk.STUNReport": {
"type": "object",
"properties": {
"canSTUN": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"error": {
"type": "string"
}
}
},
"codersdk.ServiceBannerConfig": {
"type": "object",
"properties": {
@@ -12558,6 +12917,45 @@ const docTemplate = `{
}
}
},
"codersdk.WebsocketReport": {
"type": "object",
"properties": {
"body": {
"type": "string"
},
"code": {
"type": "integer"
},
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"codersdk.Workspace": {
"type": "object",
"properties": {
@@ -13384,6 +13782,32 @@ const docTemplate = `{
}
}
},
"codersdk.WorkspaceProxyReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"type": "boolean"
},
"severity": {
"$ref": "#/definitions/health.Severity"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
},
"workspace_proxies": {
"$ref": "#/definitions/codersdk.RegionsResponse-codersdk_WorkspaceProxy"
}
}
},
"codersdk.WorkspaceProxyStatus": {
"type": "object",
"properties": {
@@ -13571,179 +13995,6 @@ const docTemplate = `{
}
}
},
"derphealth.NodeReport": {
"type": "object",
"properties": {
"can_exchange_messages": {
"type": "boolean"
},
"client_errs": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"client_logs": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"node": {
"$ref": "#/definitions/tailcfg.DERPNode"
},
"node_info": {
"$ref": "#/definitions/derp.ServerInfoMessage"
},
"round_trip_ping": {
"type": "string"
},
"round_trip_ping_ms": {
"type": "integer"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"stun": {
"$ref": "#/definitions/derphealth.StunReport"
},
"uses_websocket": {
"type": "boolean"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"derphealth.RegionReport": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"node_reports": {
"type": "array",
"items": {
"$ref": "#/definitions/derphealth.NodeReport"
}
},
"region": {
"$ref": "#/definitions/tailcfg.DERPRegion"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"derphealth.Report": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"netcheck": {
"$ref": "#/definitions/netcheck.Report"
},
"netcheck_err": {
"type": "string"
},
"netcheck_logs": {
"type": "array",
"items": {
"type": "string"
}
},
"regions": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/derphealth.RegionReport"
}
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"derphealth.StunReport": {
"type": "object",
"properties": {
"canSTUN": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"error": {
"type": "string"
}
}
},
"health.Code": {
"type": "string",
"enum": [
@@ -13813,256 +14064,6 @@ const docTemplate = `{
"SeverityError"
]
},
"healthcheck.AccessURLReport": {
"type": "object",
"properties": {
"access_url": {
"type": "string"
},
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"healthz_response": {
"type": "string"
},
"reachable": {
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"status_code": {
"type": "integer"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"healthcheck.DatabaseReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"latency": {
"type": "string"
},
"latency_ms": {
"type": "integer"
},
"reachable": {
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"threshold_ms": {
"type": "integer"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"healthcheck.ProvisionerDaemonsReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/healthcheck.ProvisionerDaemonsReportItem"
}
},
"severity": {
"$ref": "#/definitions/health.Severity"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"healthcheck.ProvisionerDaemonsReportItem": {
"type": "object",
"properties": {
"provisioner_daemon": {
"$ref": "#/definitions/codersdk.ProvisionerDaemon"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
}
}
},
"healthcheck.Report": {
"type": "object",
"properties": {
"access_url": {
"$ref": "#/definitions/healthcheck.AccessURLReport"
},
"coder_version": {
"description": "The Coder version of the server that the report was generated on.",
"type": "string"
},
"database": {
"$ref": "#/definitions/healthcheck.DatabaseReport"
},
"derp": {
"$ref": "#/definitions/derphealth.Report"
},
"failing_sections": {
"description": "FailingSections is a list of sections that have failed their healthcheck.",
"type": "array",
"items": {
"$ref": "#/definitions/codersdk.HealthSection"
}
},
"healthy": {
"description": "Healthy is true if the report returns no errors.\nDeprecated: use ` + "`" + `Severity` + "`" + ` instead",
"type": "boolean"
},
"provisioner_daemons": {
"$ref": "#/definitions/healthcheck.ProvisionerDaemonsReport"
},
"severity": {
"description": "Severity indicates the status of Coder health.",
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"time": {
"description": "Time is the time the report was generated at.",
"type": "string"
},
"websocket": {
"$ref": "#/definitions/healthcheck.WebsocketReport"
},
"workspace_proxy": {
"$ref": "#/definitions/healthcheck.WorkspaceProxyReport"
}
}
},
"healthcheck.WebsocketReport": {
"type": "object",
"properties": {
"body": {
"type": "string"
},
"code": {
"type": "integer"
},
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"description": "Healthy is deprecated and left for backward compatibility purposes, use ` + "`" + `Severity` + "`" + ` instead.",
"type": "boolean"
},
"severity": {
"enum": [
"ok",
"warning",
"error"
],
"allOf": [
{
"$ref": "#/definitions/health.Severity"
}
]
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"healthcheck.WorkspaceProxyReport": {
"type": "object",
"properties": {
"dismissed": {
"type": "boolean"
},
"error": {
"type": "string"
},
"healthy": {
"type": "boolean"
},
"severity": {
"$ref": "#/definitions/health.Severity"
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/definitions/health.Message"
}
},
"workspace_proxies": {
"$ref": "#/definitions/codersdk.RegionsResponse-codersdk_WorkspaceProxy"
}
}
},
"key.NodePublic": {
"type": "object"
},