[英]Pyspark UDF monitoring with prometheus
我正在嘗試使用計數器監視 udf 中的一些邏輯。
IE
counter = Counter(...).labels("value")
@ufd
def do_smthng(col):
if col:
counter.label("not_null").inc()
else:
counter.label("null").inc()
return col
這不是真實的情況,但你應該明白。 我關注了這篇文章: https ://kb.databricks.com/metrics/spark-metrics.html
到目前為止,我已經嘗試過:
# noinspection PyPep8Naming
class CustomMetrics:
def __init__(self, sourceName, metricRegistry):
self.metricRegistry = metricRegistry
self.sourceName = sourceName
class Java:
implements = ["org.apache.spark.metrics.source.Source"]
py_4j_gateway = spark_session.sparkContext._gateway
metric_registry = py_4j_gateway.jvm.com.codahale.metrics.MetricRegistry()
SparkEnv = py_4j_gateway.jvm.org.apache.spark.SparkEnv
custom_metrics_provider = CustomMetrics("spark.ingest.custom", metric_registry)
失敗並出現同樣的錯誤。 我也無法獲取SparkEnv.get.metricsSystem
,因此無論如何我都無法注冊自定義指標客戶端。
我有沒有辦法從 python 訪問內部指標注冊表? 我開始想知道人們如何使用自定義指標監控火花管道。
Spark 3.1.2 Python 3.8 x86 MackBook Pro M1 Pro
為什么不用蓄能器? 它易於訪問,非常適合計算事物。 這是 Map Reduce 的一個保留,用於在 spark 發明之前收集指標。
然后可以通過“PrometheusServlet”將您的累加器公開為接收器
namespace=AccumulatorSource 注意:用戶可配置的源將累加器附加到公制 DoubleAccumulatorSource LongAccumulatorSource
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.