/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 数据库大小(字节)

# TYPE meilisearch_db_size_bytes gauge
meilisearch_db_size_bytes 188416

# HELP meilisearch_http_response_time_seconds Meilisearch HTTP 响应时间

# 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 索引数量

# TYPE meilisearch_index_count gauge
meilisearch_index_count 1

# HELP meilisearch_index_docs_count Meilisearch 索引文档数量

# TYPE meilisearch_index_docs_count gauge
meilisearch_index_docs_count{index="books"} 6

# HELP meilisearch_is_indexing Meilisearch 是否正在索引

# TYPE meilisearch_is_indexing gauge
meilisearch_is_indexing 0

# HELP meilisearch_last_update Meilisearch 最后更新时间

# TYPE meilisearch_last_update gauge
meilisearch_last_update 1723126669

# HELP meilisearch_nb_tasks Meilisearch 任务数量

# 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 已使用的数据库大小(字节)

# TYPE meilisearch_used_db_size_bytes gauge
meilisearch_used_db_size_bytes 90112