Java实现Prometheus remote write协议写入VictoriaMetrics
要将Prometheus的Remote Write数据写入到VictoriaMetrics中,可以使用VictoriaMetrics提供的原生Remote Write支持。VictoriaMetrics兼容Prometheus的Remote Write协议,因此可以直接接受Prometheus发送的数据。
具体步骤
可以通过prometheus的http接口/api/v1/write提交数据,这个接口的数据格式有如下要求:
- 使用POST方式提交
- 需要经过protobuf编码,依赖github.com/gogo/protobuf/proto
- 可以使用snappy进行压缩,依赖github.com/golang/snappy
编译源文件
需要使用protoc工具将remote.proto,types.proto和gogo.proto编译成对应的Java文件,这里给出编译之后,Java文件能通过编译的protoc工具,remote.proto,types.proto和gogo.proto文件。
- protoc版本选择3.6.0:protoc3.6.0,在编译的时候选择高版本会出现以下错误导致Java文件编译不通过
a. Cannot resolve symbol ‘UnusedPrivateParam’
b. Cannot resolve method ‘internalBuildGeneratedFileFrom(String[], FileDescriptor[])’ - remote.proto,types.proto和gogo.proto文件:proto文件
- 根据protoc编译教程 教程将remote.proto,types.proto和gogo.proto文件编译成对应的Java文件