发送指标:Spark到Graphite

时间:2017-01-12 01:34:32

标签: apache-spark monitoring graphite

我们设法让Spark(2.x)通过更改metrics.properties文件将指标发送到石墨:

# Enable Graphite
*.sink.graphite.class=org.apache.spark.metrics.sink.GraphiteSink
*.sink.graphite.host=graphite-host
*.sink.graphite.port=2003
*.sink.graphite.period=5
*.sink.graphite.prefix=my-app

但是我注意到,与我们在Monitoring Web UI(http://localhost:4040)下获得的相比,我们只获得了石墨中的一部分指标。是否有任何设置可以获得石墨中的所有指标(包括累加器)?

1 个答案:

答案 0 :(得分:0)

我使用此库将用户代码中的用户定义指标汇入Graphite:spark-metrics

在驱动程序端初始化度量系统:

UserMetricsSystem.initialize(sc, "test_metric_namespace")

然后使用Counter Gauge Histogram Meter,例如Spark Accumulators

UserMetricsSystem.counter("test_metric_name").inc(1L)

对于Spark 2.0,您可以指定--conf spark.app.id=job_name,以便在Grafana中,使用多个应用程序ID运行的不同作业的指标可以具有相同的指标名称。例如。如果不设置spark.app.id,则度量标准名称可能包含以下应用程序ID:

job_name.application_id_1.metric_namespace.metric_name

但是设置spark.app.id后,它看起来像是:

job_name.unique_id.metric_namespace.metric_name