JanusGraph支持Metrics。JanusGraph可以监控以下指标:
通过配置JanusGraph属性文件的以下参数,使监控指标生效:
# Required to enable Metrics in JanusGraph metrics.enabled = true这个参数配置使JanusGraph运行时通过Timer、Counter、Histogram等类记录监控指标。至少配置一个监控报告(参考:38.2 小节 "配置监控报表”)来获取这些监控指标。
38.1.1.1. 自定义默认的监控指标名称
JanusGraph默认使用“org.janusgraph”作为监控指标名字的前缀,可以通过配置属性”metrics.prefix“进行修改。如,以下将默认前缀“org.janusgraph” 修改为“janusgraph”:
# Optional metrics.prefix = janusgraph
每个JanusGraph事务都可以指定自己的监控指标名称前缀,并且会覆盖默认的监控指标名称以及覆盖通过“metrics.prefix”配置的值。如,可以将前缀设置成打开JanusGraph事务的应用程序名称。注意由于JanusGraph通过一个ConcurrentHashMap 来保存监控指标和它们关联的对象,因此最好不要设置太多的监控指标前缀。
通过调用TransactionBuilder.setMetricsPrefix(String) 方法配置事务级别的监控指标前缀:
JanusGraph graph = ...; TransactionBuilder tbuilder = graph.buildTransaction(); JanusGraphTransaction tx = tbuilder.groupName("foobar").start();
默认情况下JanusGraph整合了内部后端存储各种操作的监控指标,
JanusGraph支持以下监控报告:
每一种监控报告都是独立的并且可以配置多个。如,可以同时配置Ganglia、JMX、和Slf4j监控报告。只需要在JanusGraph的配置文件里设置各自的参数(注意需要打开metrics开关)。
表 38.1. Console监控报告配置选项
Key
是否必需?
值
默认值
metrics.console.interval
是
控制台输出时间间隔,单位毫秒
null
每隔1分钟在Console上打印监控指标的配置示例如下:
metrics.enabled = true # Required; specify logging interval in milliseconds metrics.console.interval = 60000
表 38.1. CSV文件监控报告配置选项
Key |
是否必需? |
值 |
默认值 |
metrics.csv.interval |
是 |
CSV文件输出时间间隔,单位毫秒 |
null |
metrics.csv.directory |
是 |
CSV文件输出的目录(如果不存在会创建) |
null |
每隔1分钟在CSV文件上打印监控指标的配置示例如下:
metrics.enabled = true
# Required; specify logging interval in milliseconds
metrics.csv.interval = 60000
metrics.csv.directory = foo/bar