Regex 映射正则表达式的困难

Regex 映射正则表达式的困难,regex,apache-spark,kubernetes,prometheus,graphite,Regex,Apache Spark,Kubernetes,Prometheus,Graphite,我正在Kubernetes环境中运行一个独立的ApacheSpark集群 需要将度量导出到普罗米修斯,然后最终在Grafana中显示它们 我发现安装Graphite exporter是实现这一点的最简单的解决方案,因为我在仅使用JMX exporter的情况下获取所有Spark指标时遇到了一些问题 我遇到的问题是创建从graphite输出到prometheus模板可解析的输出的映射 例如,我希望能够解析 应用程序\u 20200120105608\u 0736\u 0\u执行器\u线程池\u完成

我正在Kubernetes环境中运行一个独立的ApacheSpark集群

需要将度量导出到普罗米修斯,然后最终在Grafana中显示它们

我发现安装Graphite exporter是实现这一点的最简单的解决方案,因为我在仅使用JMX exporter的情况下获取所有Spark指标时遇到了一些问题

我遇到的问题是创建从graphite输出到prometheus模板可解析的输出的映射

例如,我希望能够解析

应用程序\u 20200120105608\u 0736\u 0\u执行器\u线程池\u完成任务

因此,它与以下类似的内容相匹配:

- match: '*.*.threadpool.*.*'
  name: app_data
  labels:
    application: $1 // app_20200120105608_0736
    executor_id: $2 // 0
    type: $3 // threadpool
    qty: $4 // completeTasks

我不相信这是总体上最好的解决方案,因此欢迎任何其他建议(例如,如何在获取Spark应用程序数据的同时使用JMX exporter以正确的方式实现这一点)。

如果我理解正确,您可以尝试构建类似
Spark->Graphite->Prometheus->Grafana
的东西。避免这样做,因为石墨会增加监控系统的开销

您有几个可用选项:

  • 使用直接从Grafana查询Graphite
  • 正确设置Jmx导出器。您可以参考以了解如何使用jmx exporter进行此操作。如果你和我分享你的问题,我也可以帮助你处理你的错误
  • 设置和相应的。请注意,建议将此解决方案用于短期运行的作业。如果您有长期运行的作业,最好使用Jmx导出器

希望能有帮助。

如果我理解正确,你可以尝试建造类似于
火花->石墨->普罗米修斯->格拉法纳的东西。避免这样做,因为石墨会增加监控系统的开销

您有几个可用选项:

  • 使用直接从Grafana查询Graphite
  • 正确设置Jmx导出器。您可以参考以了解如何使用jmx exporter进行此操作。如果你和我分享你的问题,我也可以帮助你处理你的错误
  • 设置和相应的。请注意,建议将此解决方案用于短期运行的作业。如果您有长期运行的作业,最好使用Jmx导出器

希望有帮助。

我希望能够自动获取从所有应用程序收集的所有数据。使用JMX exporter,您需要为每个“spark submit”提供一个唯一的端口?那对我不起作用。我还使用docker映像graphiteapp/Graphite statsd和prom/Graphite exporter尝试了Graphite->Graphite->Grafana,但在尝试从Grafana连接时,它们都给出了“HTTP错误内部服务器错误”。不幸的是,到目前为止唯一可行的选择是石墨->普罗米修斯->格拉法纳。到目前为止,你能给我一些关于我是否做错了什么的提示吗?谢谢我假设您已经为JMX导出器提供了预定义的端口范围。因此,您可以使用相同的端口名为每个端口创建
服务
s1的列表。然后创建一个PrometheusOperator
ServiceMonitor
,用同一标签将所有的目标都指向它们。普罗米修斯将收集当前可访问的所有端点的指标。这样你就可以监控所有的工作。或者,您仍然可以使用PushGateway。也许你可以更好地检查一下把Grafana连接到Graphite的错误。还有一个选项供您尝试-是Kubernetes执行上的本机Spark。我目前正在研究“PushGateway”。“请注意,此解决方案建议用于短期运行的作业”背后的原因是什么?为什么它不适合长时间运行的工作?这在中有很好的解释。请参考它。我正在寻找能够自动获得从所有应用程序收集的所有数据。使用JMX exporter,您需要为每个“spark submit”提供一个唯一的端口?那对我不起作用。我还使用docker映像graphiteapp/Graphite statsd和prom/Graphite exporter尝试了Graphite->Graphite->Grafana,但在尝试从Grafana连接时,它们都给出了“HTTP错误内部服务器错误”。不幸的是,到目前为止唯一可行的选择是石墨->普罗米修斯->格拉法纳。到目前为止,你能给我一些关于我是否做错了什么的提示吗?谢谢我假设您已经为JMX导出器提供了预定义的端口范围。因此,您可以使用相同的端口名为每个端口创建
服务
s1的列表。然后创建一个PrometheusOperator
ServiceMonitor
,用同一标签将所有的目标都指向它们。普罗米修斯将收集当前可访问的所有端点的指标。这样你就可以监控所有的工作。或者,您仍然可以使用PushGateway。也许你可以更好地检查一下把Grafana连接到Graphite的错误。还有一个选项供您尝试-是Kubernetes执行上的本机Spark。我目前正在研究“PushGateway”。“请注意,此解决方案建议用于短期运行的作业”背后的原因是什么?为什么它不适合长时间运行的工作?这在中有很好的解释。请参考。