You need to enable JavaScript to run this app.
导航
使用 Pushgateway 推送数据
最近更新时间:2024.10.25 16:41:47首次发布时间:2024.10.24 18:39:17

本文介绍如何使用托管 Prometheus 提供的 Pushgateway 功能推送数据。

说明

【邀测·申请试用】:该功能目前处于 邀测 阶段,如需使用,请联系您的产品解决方案工程师。

背景介绍

托管 Prometheus 支持社区 Prometehus Pushgateway 协议,使用步骤如下:

  1. 获取 Pushgateway URL:通过托管 Prometheus 控制台获取 Push 地址。
  2. 上报数据:使用 curl 命令或者开源 SDK 实现数据推送。
  3. 查询数据:在 VMP 控制台查询上报的结果。

前提条件

已创建托管 Prometheus 工作区。详情请参见 创建工作区

步骤一:获取 Pushgateway URL

  1. 登录 VMP 服务控制台
  2. 单击左侧导航栏的 工作区,进入工作区列表页面。
  3. 单击目标工作区名称。
    Image
  4. 在左侧导航栏,选择 概览,然后在 地址信息 区域获取 Push Gateway URL
    Image

步骤二:上报数据

兼容社区开源 Prometheus SDK 使用 Pushgateway 协议上报,以下提供 Golang、JAVA 和 curl 命令示例,其他语言请参见社区文档。

注意

目前仅支持 Text Format 和 Protobuf Delimited 两种数据层协议,暂不支持 Protobuf Text、Protobuf Compact-Text 和 OpenMetrics 等协议,开源的 SDK 一般默认是 Protobuf Delimited 协议。

package main

import (
   "fmt"

   "github.com/prometheus/client_golang/prometheus"
   "github.com/prometheus/client_golang/prometheus/push"
)

func main() {
   pusher := push.
      New("http://push.prometheus-cn-guangzhou.ivolces.com/workspaces/0df18f14-4d18******/api/v1/push", "push_job").
      BasicAuth("username", "password").
      Grouping("label_1", "value_1")

   testCounter := prometheus.NewCounterVec(prometheus.CounterOpts{
      Name:        "push_test_counter",
      Help:        "push test demo counter",
      ConstLabels: nil,
   }, []string{"type"})
   testCounter.WithLabelValues("test").Add(20)

   if err := pusher.Collector(testCounter).Push(); err != nil {
      fmt.Println(err.Error())
   }
}

步骤三:查询数据

登录 VMP 服务控制台查询上报的结果。写入成功后需要等待 30s 才能查到最新的数据。
Image