如何跟踪OpenGrok服务的使用情况

时间:2018-09-26 22:12:21

标签: tomcat search tomcat8 opengrok code-search-engine

我们可以通过哪些方式监视OpenGrok,包括使用情况和特定搜索?是否有内置的系统或可以作为扩展添加的系统?

我们正在Intranet上运行OpenGrok,但无法了解它的使用方式和使用量。

安装

当前,OpenGrok正在通​​过木偶管道进行安装。

class opengrok {
  package {[
    'opengrok-tomcat',
    'ctags',
  ]

...

file { '/usr/share/tomcat8/webapps/opengrok-1.0':
  ensure  => directory,
  owner   => 'root',
  group   => 'root',
  mode    => '0755',
}

我可以通过哪些方式来监视OpenGrok,使用情况和特定搜索以及/或更多?

初步思路:

1)在opengrok前面添加一个代理转发终结点,以记录“匹配”并将其发送到某些数据库存储。这不会跟踪opengrok(即搜索查询)的低级别使用率,而只会跟踪点击率。

2)以某种方式启用tomcat日志并解析日志?我不确定从日志中获取多少信息,并且可能涉及解析。然后将此信息发送到某个数据库存储。

2 个答案:

答案 0 :(得分:1)

我们将Nginx用作OpenGrok的代理服务器,因此所有OpenGrok搜索都记录在/var/log/nginx/access.log*文件中,您可以在其中获取许多信息,例如以下内容:

COMPUTER-IP - USER [27/Sep/2018:10:17:30 -0300] "GET /xxxxx/search?project=sandbox_helloworld%28master%29&q=This+is+a+test&defs=&refs=&path=&hist=&type=sh HTTP/1.1" 200 3345 "https://OPENGROK-SERVER/xxxxx/search?project=sandbox_helloworld%28master%29&q=This+is+a+test&defs=&refs=&path=&hist=&type=" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"

答案 1 :(得分:0)

最近的 OpenGrok 版本具有监控功能,可以提供高级别的(即不是每个用户或项目)概览。具体来说,您可以通过对 /metrics/prometheus 的 HTTP GET 请求获取 Prometheus 格式的指标。例如,如果您的网络应用程序在 http://example.com/source/ 上,那么您可以使用例如查看指标curl http://example.com/source/metrics/prometheus。对此端点的访问未经授权。然后可以将这些指标输入 Grafana 等。 requests_* 仪表标有请求的类别(例如 searchapihistory、...),因此您可以获得很好的细分,如下所示:< /p>

OpenGrok request rate displayed in Grafana

有关详细信息,请参阅 https://github.com/oracle/opengrok/wiki/Monitoring#web-application