Health & Monitoring Endpoints

Server health checks, Kubernetes probes, and service metrics for OrbMesh VPN servers.

Detailed Health Check

Returns comprehensive health information about the OrbMesh server, including protocol status, system metrics, and service uptime.

GET/health

Get detailed health status of the OrbMesh server including all protocol states and system metrics

Authentication:No Auth Required

Public Endpoint

The health endpoint requires no authentication. It is designed for load balancers, monitoring systems, and orchestration platforms to check server availability.


Code Examples

curl -X GET https://198.51.100.1:8443/health

Response

200Server health information returned successfully
{
  "status": "healthy",
  "service": "orbmesh",
  "version": "2.4.1",
  "uptime": "72h15m42s",
  "timestamp": "2026-02-08T14:30:00Z",
  "protocols": {
    "wireguard": {
      "enabled": true,
      "running": true,
      "interface": "wg0",
      "port": 51820,
      "publicKey": "xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=",
      "peerCount": 142,
      "mtu": 1420,
      "totalBytesRx": 58439201842,
      "totalBytesTx": 192847561023
    },
    "vless": {
      "enabled": true,
      "running": true,
      "endpoint": "198.51.100.1:8443",
      "userCount": 37,
      "publicKey": "LS0tLS1CRUdJTi...",
      "realityEnabled": true
    },
    "orbconnect": {
      "enabled": true,
      "running": true,
      "cstpPort": 443,
      "dtlsPort": 443,
      "sessionCount": 24,
      "fipsEnabled": false,
      "ipv6Enabled": true
    }
  },
  "system": {
    "numGoroutines": 847,
    "numCpu": 4,
    "memoryAllocBytes": 52428800,
    "memorySysBytes": 134217728,
    "memoryHeapBytes": 41943040,
    "gcPauseTotalNs": 1250000
  }
}

Response Fields

FieldTypeDescription
statusstringOverall health: healthy, degraded, or unhealthy
servicestringAlways "orbmesh"
versionstringServer software version
uptimestringTime since last restart in Go duration format
timestampstringCurrent server time in ISO 8601 format
protocols.wireguard.peerCountintegerNumber of active WireGuard peers
protocols.wireguard.totalBytesRxintegerTotal bytes received across all peers
protocols.wireguard.totalBytesTxintegerTotal bytes transmitted across all peers
protocols.vless.userCountintegerNumber of active VLESS users
protocols.vless.realityEnabledbooleanWhether REALITY camouflage is active
protocols.orbconnect.sessionCountintegerNumber of active OrbConnect sessions
protocols.orbconnect.fipsEnabledbooleanWhether FIPS 140-2 compliant ciphers are enforced
system.numGoroutinesintegerNumber of active Go routines
system.memoryAllocBytesintegerAllocated heap memory in bytes

Health Status Values

  • healthy -- All protocols are running normally and system metrics are within thresholds.
  • degraded -- One or more protocols are experiencing issues but the server is still accepting connections.
  • unhealthy -- The server is unable to accept new connections. Load balancers should route traffic away.

Kubernetes Liveness Probe

Lightweight liveness check for Kubernetes. Returns a simple text response to confirm the server process is alive.

GET/healthz

Kubernetes liveness probe -- returns OK if the server process is running

Authentication:No Auth Required

Code Examples

curl -X GET https://198.51.100.1:8443/healthz
# Response: OK

Response

200Server process is alive
"OK"

Kubernetes Readiness Probe

Readiness check for Kubernetes. Returns READY when the server is able to accept traffic, or NOT READY with a 503 status when it is still initializing or shutting down.

GET/readyz

Kubernetes readiness probe -- returns READY when the server can accept connections

Authentication:No Auth Required

Code Examples

curl -X GET https://198.51.100.1:8443/readyz
# Response: READY
# Or on 503: NOT READY

Responses

200Server is ready to accept traffic
"READY"
503Server is not yet ready (initializing or shutting down)
"NOT READY"

Readiness vs. Liveness

Use /healthz for liveness probes (restart if unresponsive) and /readyz for readiness probes (stop sending traffic until ready). A server may be alive but not ready during protocol initialization or graceful shutdown.


Service Metrics

Exposes Prometheus-compatible metrics for monitoring dashboards and alerting systems.

GET/metrics

Prometheus-compatible service metrics for monitoring and alerting

Authentication:No Auth Required

Code Examples

curl -X GET https://198.51.100.1:8443/metrics

Response

200Prometheus-formatted metrics
"# HELP orbmesh_wireguard_peers_total Total number of active WireGuard peers\n# TYPE orbmesh_wireguard_peers_total gauge\norbmesh_wireguard_peers_total 142\n\n# HELP orbmesh_vless_users_total Total number of active VLESS users\n# TYPE orbmesh_vless_users_total gauge\norbmesh_vless_users_total 37\n\n# HELP orbmesh_orbconnect_sessions_total Total number of active OrbConnect sessions\n# TYPE orbmesh_orbconnect_sessions_total gauge\norbmesh_orbconnect_sessions_total 24"

Prometheus Scraping

Configure your Prometheus server to scrape https://{server-ip}:8443/metrics at your desired interval. The metrics endpoint exposes counters, gauges, and histograms for all protocol activity, connection rates, and system resource usage.