当前位置: 首页 > 知识库问答 >
问题:

如何使用JAVA Prometheus Push网关客户端推送带有多个标签(键值)的非类型化指标?

柳珂
2023-03-14

我想使用java PushGateway客户端推送度量。

示例PushGateway URL PushGateway。com:9091/metrics/job/job\u name

样本指标metrics_name{实例=i1, label1=l1, label2=l2, label3=l3, label4=l4}值

有谁能给我提供一个代码片段,使用Prometheus Java Simpleclient Pushgateway将上述指标推送到Pushgateway中?

注意:我们有20K运行应用程序的短暂实例,因此决定使用推送网关

共有1个答案

艾浩广
2023-03-14

从PushGateway的官方文档中:

  • 要使用分组键work="directory_cleaner"path="/var/tmp",以下路径将不起作用:
/metrics/job/directory_cleaner/path//var/tmp

相反,对标签值使用base64 URL安全编码,并通过在标签名称后面加上@base64来标记它:

/metrics/job/directory_cleaner/path@base64/L3Zhci90bXA

下面是一个从存储在Map中的多个键值对生成url的示例

    String url = gatewayBaseURL;
    if (job.contains("/")) {
      url += "job@base64/" + base64url(job);
    } else {
      url += "job/" + URLEncoder.encode(job, "UTF-8");
    }

    if (groupingKey != null) {
      for (Map.Entry<String, String> entry: groupingKey.entrySet()) {
        if (entry.getValue().contains("/")) {
          url += "/" + entry.getKey() + "@base64/" + base64url(entry.getValue());
        } else {
          url += "/" + entry.getKey() + "/" + URLEncoder.encode(entry.getValue(), "UTF-8");
        }
      }
    }
    HttpURLConnection connection = connectionFactory.create(url);

Github链接

 类似资料:
  • 运行饼图的一些示例熊猫/matplotlib代码,会出现关键字错误的多个值。我已经尝试删除标签。图例方法。它确实有效,但是我的标签不是我想要的。我能做什么呢? 回溯(最近一次调用last):plt中第23行的文件“piechart.py”。图例(loc=“best”,labels=pie_labels)文件“/System/Library/Frameworks/Python.framework/V

  • 我正在使用JGit克隆存储库,对文件进行一些更改,提交,标记它,然后将其推送到远程存储库。 我已经使用JGit编写了代码,它将克隆存储库,在文件中进行一些更改,然后提交更改,创建新标记,并推送提交和标记。 推送后,我希望远程存储库显示我的更改和新标签,但是在远程存储库中显示的是带有提交的更改,但是标签不可见。它显示“无标签”。

  • 问题内容: 我正在使用node制作电子邮件客户端。我想在收到任何新电子邮件后立即更新浏览器窗口。我已经使用mail- listener2在服务器端获取电子邮件了。我想将数据推送到客户端。我怎么做? 问题答案: 看一下使用 websocket 将数据实时推送到客户端(浏览器)。我建议使用http://socket.io。他们那里有一些非常棒的演示,展示了您将如何做这样的事情。 您的服务器将发送名为的

  • 客户端关于推送的方法只有两个,它们分别是: Subscribe 方法 Subscribe(name string, id string, settings *InvokeSettings, callback interface{}) (err error) Subscribe 方法的用处是订阅服务器端的推送服务。该方法有两种方式,一种是自动获取设置客户端 id,另一种是手动设置客户端 id。 参数

  • 在构建Retor Netty应用程序时,我得到了两个相似的指标。但是它们之间到底有什么区别呢? vs. 我不知道他们在测量响应时间的方式/位置上有什么不同。哪种方法测量的时间更长并不一致。 Http客户端指标测量时间更长 ReactorNetty指标延长了时间

  • 通过Pushgateway公开具有多个度量的普罗米修斯量表会引发错误“gauge”对象没有属性“\u value”。一旦抛出错误的行被注释,push\u to\u gateway()抛出 我在尝试进入时没有得到任何响应http://localhost:9091/. 我试图通过HTTP客户端通过标准方法公开度量。然而,python代码将只按需运行,并带有参数。它将运行几秒钟并退出。我决定试试Push