0

我想使用 java PushGateway 客户端推送指标。

示例 PushGateway URL pushgateway.com:9091/metrics/job/job_name

示例指标 metrics_name{instance="i1", label1="l1", label2="l2", label3="l3", label4="l4"} 值

任何人都可以提供一个代码片段来使用Prometheus Java Simpleclient Pushgateway将上述指标推送到 Pushgateway吗?

注意 我们有 20K 临时实例运行应用程序,因此决定使用 Pushgateway。

4

1 回答 1

0

来自PushGateway的官方文档:

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

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

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

url这是从存储在中的多个键值对生成的示例Map<String, String> groupingKey

    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 链接

于 2019-10-11T12:04:45.847 回答