You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计ZooKeeper管理的Solr实例查询请求量?按日/周/月维度

统计ZooKeeper管理的Solr集群查询请求量(按日/周/月维度)

一、用Solr内置Metrics直接统计

Solr自带的Metrics框架能轻松抓取查询相关指标,适配集群场景:

  • 确认Metrics启用:solrconfig.xml默认已开启Metrics配置,核心关注QUERY./select.requests指标(对应/select接口的查询请求数,其他查询接口可替换路径)
  • 集群数据聚合:通过Solr Admin的Cloud面板查看各节点Metrics,或用API批量拉取所有节点数据:
    curl http://<solr-host>:<port>/solr/admin/metrics?group=query&prefix=QUERY./select
    
  • 时间维度统计:把拉取到的指标导入InfluxDB、Prometheus这类时序数据库,搭配Grafana工具,原生支持按日/周/月做聚合统计,直接生成可视化报表。

二、分析Solr访问日志

Solr访问日志会记录所有请求,解析日志就能实现统计:

  • 日志格式参考:每行日志包含时间戳、请求路径等信息,示例:

    127.0.0.1 - - [15/Oct/2024:10:00:00 +0800] "GET /solr/core/select?q=:&wt=json HTTP/1.1" 200 1234

  • 单实例统计:用awk快速按日统计/select请求数:
    awk '/\/select/ {split($4, date, /\[|\//); print date[2]"/"date[3]}' solr_access.log | sort | uniq -c
    
  • 集群统一统计:用Filebeat把所有节点的访问日志集中到一处,再用ELK Stack做统一分析,就能得到集群总请求量,轻松按日/周/月维度拆分。

三、自定义请求拦截器(进阶)

如果需要更精细化的统计规则,可自定义拦截器:

  • 编写拦截器:继承SolrRequestFilter,在doFilter方法里按日/周/月维护请求计数器,计数可存在Solr分布式缓存或外部数据库
  • 配置拦截器:在solrconfig.xml中注册拦截器,指定对查询接口生效:
    <requestHandler name="/select" class="solr.SearchHandler">
      <lst name="defaults">
        <str name="echoParams">explicit</str>
        <int name="rows">10</int>
      </lst>
      <arr name="filters">
        <str>statsQueryFilter</str>
      </arr>
    </requestHandler>
    <filter name="statsQueryFilter" class="com.yourpackage.QueryStatsFilter"/>
    
  • 暴露查询接口:在拦截器中添加自定义接口,直接返回按时间维度聚合的请求数。

内容的提问来源于stack exchange,提问作者Jey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:45:33