Intro

The metrics_storm project adds easy performance metrics collection infrastructure, as well as an embedded web console, to any Storm (http://github.com/nathanmarz/storm) topology, based on Coda Hale's excellent metrics library (http://metrics.codahale.com). At a minimum, the following is supported:

  • All metrics (gauges, meters, etc.) will be exported via JMX
  • A web console that exposes these routes:
    • /metricz - all metrics as JSON blobs, including JVM uptime & other info
    • /healthz
    • /threadz - JVM thread information

In addition, if you enable MetricsStormHooks, then you get automatic emit and ack rate meters for every bolt and spout in your topology. To enable, place the following in your storm.yaml:

topology.auto.task.hooks:
    - "ooyala.common.metrics_storm.MetricsStormHooks"

You can also programmatically inject the above configuration, like this:

config.put(Config.TOPOLOGY_AUTO_TASK_HOOKS, List(classOf[MetricsStormHooks].getName).asJava)

Refer to https://github.com/nathanmarz/storm/wiki/Hooks for more information.

Web Console Configuration

Set the following parameter in storm.yaml, listing one port per supervisor.slot.ports, like this:

worker.webconsole.ports:
    - 7000
    - 7001

If this parameter is not set, the web console port defaults to 7070.

Building

You can build this project using SBT 0.11.2 or higher. To run the unit tests:

sbt test

To create a jar in target/scala-*/:

sbt package

To publish to ~/.ivy2/local/, including POM files:

sbt publish-local

Contributing

Contributions via pull request are very welcome.

License

Apache 2.0, see LICENSE.md

Copyright(c) 2013, Ooyala, Inc.



Intro

metrics_storm项目增加了简单的性能指标收集基础设施,以及一个 嵌入式Web控制台,适用于任何Storm( http://github.com/nathanmarz/storm )拓扑,基于Coda Hale的 优秀指标库( http://metrics.codahale.com )。至少支持以下内容:

  • 所有指标(量规,米等)将通过JMX
  • 导出
  • 公开这些路线的网路控制台:
    • / metricz - 所有指标为JSON blob,包括JVM正常运行时间&其他信息
    • / healthz
    • / threadz - JVM线程信息

此外,如果您启用MetricsStormHooks,那么您将获得每个螺栓的自动发射和测速计 并在您的拓扑中喷出。要启用,请将以下内容放在您的storm.yaml中:

topology.auto.task.hooks:
    - "ooyala.common.metrics_storm.MetricsStormHooks"
您也可以通过编程方式注入上述配置,如下所示:

config.put(Config.TOPOLOGY_AUTO_TASK_HOOKS, List(classOf[MetricsStormHooks].getName).asJava)

有关详细信息,请参阅 https://github.com/nathanmarz/storm/wiki/Hooks

Web Console Configuration

在storm.yaml中设置以下参数,列出每个supervisor.slot.ports的一个端口,如下所示:

worker.webconsole.ports:
    - 7000
    - 7001

如果此参数未设置,Web控制台端口默认为7070。

Building

您可以使用SBT 0.11.2或更高版本构建此项目。运行单元测试:

sbt test

要在target / scala中创建一个jar - * /:

sbt package

要发布到〜/ .ivy2 / local /,包括POM文件:

sbt publish-local

Contributing

非常欢迎通过拉请求进行贡献。

License

Apache 2.0,请参阅LICENSE.md

版权所有(c)2013,Ooyala,Inc。




相关问题推荐