簡體   English   中英

使用 prometheus 進行 Pyspark UDF 監控

[英]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

到目前為止,我已經嘗試過:

  • 使用全局普羅米修斯計數器(Failed with Lock 是不可挑選的)
  • 使用 py4j 創建自定義源:

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM