/metrics 路由暴露了与 Prometheus 兼容的数据。您还需要在系统中安装 Grafana 才能使用此功能。

这是一项实验性功能。请使用实验性功能端点来激活它

curl \
  -X PATCH 'MEILISEARCH_URL/experimental-features/' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "metrics": true
  }'

此功能不适用于 Meilisearch Cloud 用户。

暴露的信息

/metrics 暴露了以下信息

名称描述类型
meilisearch_http_requests_total返回 API 资源被访问的次数。计数器
meilisearch_http_response_time_seconds返回一个时间直方图,显示 API 资源调用进入时间桶的次数(以秒表示)。直方图
meilisearch_db_size_bytes返回数据库在磁盘上的“实际”大小(以字节为单位)。它包括所有 LMDB 内存映射文件以及 data.ms 目录中包含的所有文件(主要是尚未处理的更新文件)。计量器
meilisearch_used_db_size_bytes返回 Meilisearch 实际使用的数据库大小(以字节为单位)。它包含与 meilisearch_db_size_bytes 相同的所有文件,但在 LMDB 数据库方面,我们只计算 Meilisearch 使用的页面。这意味着如果两个指标之间存在较大差距,添加文档可能会重用已释放的页面,而不是增加 meilisearch_db_size_bytes计量器
meilisearch_index_docs_count返回索引的文档数量。计量器
meilisearch_index_count返回 Meilisearch 实例的总索引数量。计量器
meilisearch_nb_tasks返回 Meilisearch 实例的总任务数量,按任务类型及其值进行参数化(参见下表)。计数器
meilisearch_last_update返回上次更新的时间戳。计量器
meilisearch_is_indexing如果 Meilisearch 正在索引,则返回 1;否则返回 0计量器

具有 /metrics 访问权限的 API 密钥能够查看实例中所有路由的所有 HTTP 调用。这可能会导致敏感信息泄露,例如索引名称、文档主键和 API 密钥。

获取指标

GET
/metrics

获取实例当前状态的数据。在大多数情况下,您应该只通过兼容 Prometheus 的工具(如 Grafana)查询此端点。

请参阅 Meilisearch 的示例配置文件,了解 基本的 Prometheus 收集器Grafana 仪表板 的示例。

示例

curl \
  -X GET 'MEILISEARCH_URL/metrics'

响应:200 OK

# HELP meilisearch_db_size_bytes Meilisearch DB Size In Bytes
# TYPE meilisearch_db_size_bytes gauge
meilisearch_db_size_bytes 188416
# HELP meilisearch_http_response_time_seconds Meilisearch HTTP response times
# TYPE meilisearch_http_response_time_seconds histogram
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.005"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.01"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.025"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.05"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.075"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.1"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.25"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.5"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.75"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="1"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="2.5"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="5"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="7.5"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="10"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="+Inf"} 0
meilisearch_http_response_time_seconds_sum{method="GET",path="/metrics"} 0
meilisearch_http_response_time_seconds_count{method="GET",path="/metrics"} 0
# HELP meilisearch_index_count Meilisearch Index Count
# TYPE meilisearch_index_count gauge
meilisearch_index_count 1
# HELP meilisearch_index_docs_count Meilisearch Index Docs Count
# TYPE meilisearch_index_docs_count gauge
meilisearch_index_docs_count{index="books"} 6
# HELP meilisearch_is_indexing Meilisearch Is Indexing
# TYPE meilisearch_is_indexing gauge
meilisearch_is_indexing 0
# HELP meilisearch_last_update Meilisearch Last Update
# TYPE meilisearch_last_update gauge
meilisearch_last_update 1723126669
# HELP meilisearch_nb_tasks Meilisearch Number of tasks
# TYPE meilisearch_nb_tasks gauge
meilisearch_nb_tasks{kind="indexes",value="books"} 1
meilisearch_nb_tasks{kind="statuses",value="canceled"} 0
meilisearch_nb_tasks{kind="statuses",value="enqueued"} 0
meilisearch_nb_tasks{kind="statuses",value="failed"} 0
meilisearch_nb_tasks{kind="statuses",value="processing"} 0
meilisearch_nb_tasks{kind="statuses",value="succeeded"} 1
meilisearch_nb_tasks{kind="types",value="documentAdditionOrUpdate"} 1
meilisearch_nb_tasks{kind="types",value="documentDeletion"} 0
meilisearch_nb_tasks{kind="types",value="documentEdition"} 0
meilisearch_nb_tasks{kind="types",value="dumpCreation"} 0
meilisearch_nb_tasks{kind="types",value="indexCreation"} 0
meilisearch_nb_tasks{kind="types",value="indexDeletion"} 0
meilisearch_nb_tasks{kind="types",value="indexSwap"} 0
meilisearch_nb_tasks{kind="types",value="indexUpdate"} 0
meilisearch_nb_tasks{kind="types",value="settingsUpdate"} 0
meilisearch_nb_tasks{kind="types",value="snapshotCreation"} 0
meilisearch_nb_tasks{kind="types",value="taskCancelation"} 0
meilisearch_nb_tasks{kind="types",value="taskDeletion"} 0
# HELP meilisearch_used_db_size_bytes Meilisearch Used DB Size In Bytes
# TYPE meilisearch_used_db_size_bytes gauge
meilisearch_used_db_size_bytes 90112