【问题标题】:How to track usage of OpenGrok service如何跟踪 OpenGrok 服务的使用情况
【发布时间】:2018-09-26 22:12:21
【问题描述】:

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

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

安装

目前 OpenGrok 正在通过 puppet 管道安装。

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 日志并解析日志?我不确定我会从日志中获得多少信息,并且可能会涉及解析。然后将此信息发送到某个数据库存储。

【问题讨论】:

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


    【解决方案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"
    

    【讨论】:

      【解决方案2】:

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

      欲了解更多信息,请参阅https://github.com/oracle/opengrok/wiki/Monitoring#web-application

      【讨论】:

        猜你喜欢
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 2010-11-13
        • 1970-01-01
        • 1970-01-01
        • 2017-06-17
        • 2011-12-18
        • 1970-01-01
        相关资源
        最近更新 更多