API上传数据

最近更新时间:2021-11-29 19:29:21

查看PDF

简介

日志服务KLog产品为用户提供数据上传的API,API文档详见Putlogs。接下来介绍如何把原始日志数据序列化成如下格式的Protocol Buffer数据流,然后才能通过API写入服务端。

步骤一、定义Protocol格式

按照如下格式,生成一个klog.proto文件

syntax = "proto3";
package klog;

message Log
{
    message Content
    {
        required string key   = 1; // 每组字段的 key
        required string value = 2; // 每组字段的 value
    }
    required int64 time = 1; // 时间戳,UNIX时间格式
    repeated Content contents = 2; // 一条日志里的多个kv组合
}
message LogGroup
{
    repeated Log    logs        = 1; // 多条日志合成的日志数组
    optional string reserved    = 2; // 目前暂无效用
    optional string filename    = 3; // 日志文件名
    optional string source      = 4; // 日志来源,一般使用机器IP
}

  • 说明:关于Protocol Buffer格式的更多信息请参见Github首页

步骤二、编译Protocol Buffers

根据上面的内容,定义数据的报文格式后,运行Protocol Buffer编译器,把上面的klog.proto文件编译成特定语言的类。这些类提供了简单的方法访问每个字段,像是访问类的方法一样将结构序列化或反序列化。

  • 说明:如需安装编译器,可前往Protobuf版本页选择版本和语言。

这里使用proto编辑器生成Java语言的文件,在klog.proto文件的同一目录下,执行如下编辑命令

 protoc.exe --java_out=./ klog.proto  
  • 说明:–java_out=./表示编译成 Java 格式并输出当前目录下,./klog.proto表示位于当前目录下的 klog.proto 描述文件。

编辑成功后,输出对应语言的代码文件,这里会生成klog.java文件。

步骤三、调用

将生成的klog.Java和klog.proto文件复制到工程目录下参与编译就可以。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈