# `Qdrant.Api.Http.Service`
[🔗](https://github.com/marinac-dev/qdrant/blob/v0.1.18/lib/qdrant/api/http/service.ex#L1)

Qdrant service endpoints for health checks, telemetry, metrics, and system information.

Functions accepting a `Qdrant.Client` are the primary API. No-client forms
remain available for compatibility with application and environment configuration.

# `clear_issues`

```elixir
@spec clear_issues() :: Qdrant.Types.result()
```

Remove all issues reported so far.

**Beta:** This endpoint is unstable and may change between Qdrant releases.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.clear_issues(client)

# `clear_issues`

```elixir
@spec clear_issues(Qdrant.Client.t()) :: Qdrant.Types.result()
```

# `get_issues`

```elixir
@spec get_issues() :: Qdrant.Types.result()
```

Get a report of performance issues and configuration suggestions.

**Beta:** This endpoint is unstable and may change between Qdrant releases.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.get_issues(client)

# `get_issues`

```elixir
@spec get_issues(Qdrant.Client.t()) :: Qdrant.Types.result()
```

# `healthz`

```elixir
@spec healthz() :: Qdrant.Types.result(Qdrant.Types.health_body())
```

Health check endpoint.

The response body may be text, empty, or JSON and is returned without coercion.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.healthz(client)

# `healthz`

```elixir
@spec healthz(Qdrant.Client.t()) :: Qdrant.Types.result(Qdrant.Types.health_body())
```

# `livez`

```elixir
@spec livez() :: Qdrant.Types.result(Qdrant.Types.health_body())
```

Kubernetes liveness endpoint.

The response body may be text, empty, or JSON and is returned without coercion.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.livez(client)

# `livez`

```elixir
@spec livez(Qdrant.Client.t()) :: Qdrant.Types.result(Qdrant.Types.health_body())
```

# `lock_options`

```elixir
@spec lock_options() :: Qdrant.Types.result()
```

Get lock options.

If writing is locked, all write operations and collection creation are forbidden.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.lock_options(client)

# `lock_options`

```elixir
@spec lock_options(Qdrant.Client.t()) :: Qdrant.Types.result()
```

# `metrics`

```elixir
@spec metrics() :: Qdrant.Types.result(String.t())
```

Collect Prometheus metrics data as text.

Options:

* `:anonymize` - anonymize the result
* `:per_collection` - include per-collection request metrics
* `:timeout` - timeout for the request in seconds

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.metrics(client, anonymize: false)

# `metrics`

```elixir
@spec metrics(Qdrant.Client.t()) :: Qdrant.Types.result(String.t())
@spec metrics(Qdrant.Types.request_options()) :: Qdrant.Types.result(String.t())
@spec metrics(boolean() | nil) :: Qdrant.Types.result(String.t())
```

# `metrics`

```elixir
@spec metrics(Qdrant.Client.t(), Qdrant.Types.request_options()) ::
  Qdrant.Types.result(String.t())
```

# `metrics`

```elixir
@spec metrics(boolean() | nil, boolean() | nil, integer() | nil) ::
  Qdrant.Types.result(String.t())
```

# `readyz`

```elixir
@spec readyz() :: Qdrant.Types.result(Qdrant.Types.health_body())
```

Kubernetes readiness endpoint.

The response body may be text, empty, or JSON and is returned without coercion.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.readyz(client)

# `readyz`

```elixir
@spec readyz(Qdrant.Client.t()) :: Qdrant.Types.result(Qdrant.Types.health_body())
```

# `root`

```elixir
@spec root() :: Qdrant.Types.result()
```

Returns information about the running Qdrant instance, including its version and commit id.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.root(client)

# `root`

```elixir
@spec root(Qdrant.Client.t()) :: Qdrant.Types.result()
```

# `set_lock_options`

```elixir
@spec set_lock_options(Qdrant.Types.request_body()) :: Qdrant.Types.result()
```

Set lock options and return the previous lock options.

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    body = %{error_message: "Maintenance mode", write: true}
    Qdrant.Api.Http.Service.set_lock_options(client, body)

# `set_lock_options`

```elixir
@spec set_lock_options(Qdrant.Client.t(), Qdrant.Types.request_body()) ::
  Qdrant.Types.result()
```

# `telemetry`

```elixir
@spec telemetry() :: Qdrant.Types.result()
```

Collect telemetry data including application, system, collection, cluster, configuration,
and statistics information.

Options:

* `:anonymize` - anonymize the result
* `:details_level` - level of detail, with a minimum of zero
* `:per_collection` - include per-collection request statistics
* `:timeout` - timeout for the request in seconds

## Example

    client = Qdrant.Client.new!(url: "http://localhost:6333")
    Qdrant.Api.Http.Service.telemetry(client, anonymize: true, details_level: 1)

# `telemetry`

```elixir
@spec telemetry(Qdrant.Client.t()) :: Qdrant.Types.result()
@spec telemetry(Qdrant.Types.request_options()) :: Qdrant.Types.result()
@spec telemetry(boolean() | nil) :: Qdrant.Types.result()
```

# `telemetry`

```elixir
@spec telemetry(Qdrant.Client.t(), Qdrant.Types.request_options()) ::
  Qdrant.Types.result()
@spec telemetry(boolean() | nil, integer() | nil) :: Qdrant.Types.result()
```

# `telemetry`

```elixir
@spec telemetry(boolean() | nil, integer() | nil, boolean() | nil, integer() | nil) ::
  Qdrant.Types.result()
```

---

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