# `ExUtcp.Monitoring.HealthCheck`
[🔗](https://github.com/universal-tool-calling-protocol/elixir-utcp/blob/main/lib/ex_utcp/monitoring/health_check.ex#L1)

Health check system for ExUtcp components.

Monitors the health of transports, providers, and connections.

# `check_result`

```elixir
@type check_result() :: %{
  name: String.t(),
  status: health_status(),
  message: String.t(),
  duration_ms: integer(),
  timestamp: integer()
}
```

# `health_status`

```elixir
@type health_status() :: :healthy | :degraded | :unhealthy
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `get_health_status`

```elixir
@spec get_health_status() :: map()
```

Gets the current health status.

# `register_check`

```elixir
@spec register_check(String.t(), (-&gt; check_result())) :: :ok
```

Registers a custom health check.

# `run_health_checks`

```elixir
@spec run_health_checks() :: map()
```

Forces a health check run.

# `start_link`

```elixir
@spec start_link(keyword()) :: {:ok, pid()} | {:error, term()}
```

Starts the health check system.

# `unregister_check`

```elixir
@spec unregister_check(String.t()) :: :ok
```

Unregisters a health check.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
