我们设法让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)下获得的相比,我们只获得了石墨中的一部分指标。是否有任何设置可以获得石墨中的所有指标(包括累加器)?
答案 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