指标 实验性

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

    激活 /metrics

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

    curl \
      -X PATCH 'https://127.0.0.1:7700/experimental-features/' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "enableMetrics": 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)查询此端点。

    有关 基本 Prometheus 抓取器Grafana 仪表板 的示例,请参阅 Meilisearch 的示例配置文件。

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/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