Java实现Prometheus remote write协议写入VictoriaMetrics

Java实现Prometheus remote write协议写入VictoriaMetrics

要将Prometheus的Remote Write数据写入到VictoriaMetrics中,可以使用VictoriaMetrics提供的原生Remote Write支持。VictoriaMetrics兼容Prometheus的Remote Write协议,因此可以直接接受Prometheus发送的数据。

具体步骤

可以通过prometheus的http接口/api/v1/write提交数据,这个接口的数据格式有如下要求:

  1. 使用POST方式提交
  2. 需要经过protobuf编码,依赖github.com/gogo/protobuf/proto
  3. 可以使用snappy进行压缩,依赖github.com/golang/snappy

编译源文件

需要使用protoc工具将remote.proto,types.proto和gogo.proto编译成对应的Java文件,这里给出编译之后,Java文件能通过编译的protoc工具,remote.proto,types.proto和gogo.proto文件。

  1. protoc版本选择3.6.0:protoc3.6.0,在编译的时候选择高版本会出现以下错误导致Java文件编译不通过
    a. Cannot resolve symbol ‘UnusedPrivateParam’
    b. Cannot resolve method ‘internalBuildGeneratedFileFrom(String[], FileDescriptor[])’
  2. remote.proto,types.proto和gogo.proto文件:proto文件
  3. 根据protoc编译教程 教程将remote.proto,types.proto和gogo.proto文件编译成对应的Java文件
  4. 将编译后的三个Java文件复制到Java项目中,并在pom文件中加入如下几个依赖
<dependency>
	<groupId>io.prometheus</groupId>
	<artifactId>simpleclient</artifactId>
	<version>0.16.0</version>
</dependency>

<dependency>
	<groupId>com.google.protobuf</groupId>
	<artifactId>protobuf-java</artifactId>
	<version>3.6.0</version>
</dependency>

<dependency>
	<groupId>com.google.protobuf</groupId>
	<artifactId>protobuf-java-util</artifactId>
	<version>3.6.0</version>
</dependency>

<!-- snappy compression -->
<dependency>
	<groupId>org.xerial.snappy</groupId>
	<artifactId>snappy-java</artifactId>
	<version>1.1.7.3</version>
</dependency>
  1. 之后参考教程:Java写入VictoriaMetrics进行数据写入即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值