Gecco爬虫监控
##监控指标 ###爬虫基本信息
-
刷新基本信息:exec/com.geccocrawler.gecco:name=gecco/monitor
-
读取基本信息:read/com.geccocrawler.gecco:name=gecco
{ Interval: 5000,//抓取间隔时间ms StartTime: "2016-03-20 20:34:11",//抓取开始时间 ThreadCount: 1,//爬虫线程数量 StarUrlCount: 8//初始url数量 }
###下载监控
-
获取当前正在抓取的所有域名:exec/com.geccocrawler.gecco:name=downloader/hosts
-
获取某个域名的下载监控信息:exec/com.geccocrawler.gecco:name=downloader/statistics/xx.xx.com
-
读取下载监控信息:read/com.geccocrawler.gecco:name=downloader
Statistics: "{ "exception":8,//该域名抓取异常的数量,主要是超时等异常 "serverError":0,//该域名返回500,404等错误信息的数量 "success":3263//成功抓取数量 }", Host: "xx.xx.com"//域名
###内容抽取监控
-
刷新内容抽取监控信息:exec/com.geccocrawler.gecco:name=render/refresh
-
获取内容抽取监控信息:read/com.geccocrawler.gecco:name=render
Statistics: "{ "xx.xx.com":0,//域名xx.xx.com的网站内容抽取的异常数量 "yy.yy.com":0//域名yy.yy.com的网站内容抽取的异常数量 }"
##jmxutils和jolokia ###jmxutils gecco的监控使用了jmxutils这个开源的mbean注解框架。在以前的开发工作中要么就用原生的动态mbean,要么是使用spring的jmx注解框架。原生的动态mbean写起来太繁琐,spring的jmx注解框架使用起来还是很方便的,但是现在spring感觉有些重。jmxutils这个框架很轻量,使用方法可以参考https://github.com/martint/jmxutils。 ###jolokia Jolokia是一个利用JSON通过Http实现JMX远程管理的开源项目。具有快速、简单等特点。除了支持基本的JMX操作之外,它还提供一些独特的特性来增强JMX远程管理如:批量请求,细粒度安全策略等。也就是说jmx的mbean可以通过http来访问不需要在启动java时配置那么多参数。只需要新增一个servlet:
<servlet>
<servlet-name>jolokia-agent</servlet-name>
<servlet-class>org.jolokia.http.AgentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jolokia-agent</servlet-name>
<url-pattern>/jmx/*</url-pattern>
</servlet-mapping>