Skip to content
Sun Jianbo edited this page May 23, 2017 · 1 revision

logkit提供http API进行整体的监控,启动logkit后,若没有指定绑定的地址,会从4000开始寻找机器上可用的端口,启动成功后在logkit运行的目录下生成一个名为statsshell文件,包含端口信息和curl API的shell语句,执行

./stats

就可以获得logkit整体的运行状态(json格式的信息)。API及返回内容说明如下:

GET /logkit/stats
200 OK
{
   "runner名字": {
        "name" : <runner名字>,
        "logpath": <日志目录>,
        "lag": {
            "size": <延迟的日志总量>,
            "files": <延迟的文件数>,
            "ftlags": <fault_tolerant 队列深度>
        },
        "parserStats": {
            "errors": <解析失败总次数>,
            ”success“: <解析成功总次数>
        },
        ”senderStats“:{
          "<senderName>":  {
                "errors":<发送失败总次数>,
                "success":<发送成功总次数>
            }
        },
        "error":<错误信息>
    }
}
  • 出现延迟(lag),则表示解析或者发送过于缓慢,可以调整发送方式,使用fault_tolerant sender,设置always_save,并调大ft_procs,参见Sender一节
  • ftlags 表示已经使用了fault_tolerant,但是由于sender并发不够多或者发送端服务故障,导致出现延迟,ftlags的单位为batch数。
  • parserStats中包含的errors是解析失败的次数,解释失败后该记录会被忽略(不会重试),错误的详细信息会在logkit日志中打印。
  • senderStats中包含的errors为发送失败的次数,发送失败后会重新发送,所以sender的错误会多次出现。
  • error 包含的是调用接口时,某个runner获取信息失败时的错误原因

补充说明:

对于将logkit作为第三方库,自定义实现logkit功能的用户,如果需要开启rest服务,提供监控,需要在自主的主程序(main函数)中加入rest服务的启动过程。

rs := mgr.NewRestService(m)

同时在主程序结束时关闭rest服务

rs.Stop()
Clone this wiki locally