Skip to content

Latest commit

 

History

History
434 lines (306 loc) · 11.8 KB

communication-protocol.md

File metadata and controls

434 lines (306 loc) · 11.8 KB

通信协议

由iLogtail社区联合哔哩哔哩共同建设。服从HTTP/HTTPS协议。

通用参数

ip 和 port 为 ConfigServer 的 ip 和接收端口,默认为127.0.0.1和8899。

API 响应规范

数据的发送及接收均为 protocol buffer 格式,参见源代码中的 config_server/protocol 文件夹(v1.0)。

在调用API接口过程中,若返回HTTP状态码为 200,则表示请求成功,若返回HTTP状态码为其他,例如404等,则表示调用API接口失败。服务端会返回请求响应信息如下。code为响应码,表示请求成功/失败的类型;message 是响应信息,包含详细的请求成功信息/失败说明。

{
  "code" : <Code>,
  "message" : <Message>
}

主要响应码如下所示:

HTTP状态码 响应码 说明
200 Accept 请求成功
400 INVALID_PARAMETER 无效的参数
500 INTERNAL_SERVER_ERROR 内部服务调用错误

通信时常见数据类型说明

Agent

通信传输中的采集 Agent 信息。

参数 类型 说明
agent_type string Agent 的类型
agent_id string Agent 的唯一标识
attributes AgentAttributes Agent 的运行信息
string string[] Agent 的标签
running_status string Agent 的运行状态
startup_time int64 Agent 的启动时间
interval int32 Agent 的心跳间隔

AgentAttributes

参数 类型 说明
version string Agent 的版本
category string Agent 的类型(用于拉取AGENT_CONFIG)
ip string Agent 的IP
hostname string Agent 的主机名
region string Agent 的地域
zone string Agent 的可用区
extras map<string,string> Agent 的其他信息

AgentGroup

通信传输中的 AgentGroup 信息。

参数 类型 说明
group_name string AgentGroup 的唯一标识
description string AgentGroup 的备注说明
tags AgentGroupTag[] AgentGroup 的标签数组

AgentGroupTag

通信传输中的 AgentGroup 的 Tag 信息。

参数 类型 说明
name string AgentGroupTag 的标签名
value string AgentGroupTag 的标签值

CheckStatus(枚举类型)

拉取配置文件更新时返回的更新状态。

说明
NEW 新增的配置文件
DELETED 删除的配置文件
MODIFIED 有改动的配置文件

Command

Agent 从 ConfigServer 接收到的指令。

参数 类型 说明
type string 指令的类型
name string 指令名
id string 指令的编号
args map<string,string> 指令的参数

ConfigCheckResult

ConfigServer 返回给 Agent 的配置文件更新信息。

参数 类型 说明
type ConfigType Config 的类型
name string Config 的唯一标识
old_version int64 Config 的本地版本
new_version int64 Config 的最新版本
context string Config 的上下文
check_status CheckStatus Config 的更新状态

ConfigDetail

通信传输中的采集 Config 的信息。

参数 类型 说明
type ConfigType Config 的类型
name string Config 的唯一标识
version int64 Config 的版本
context string Config 的上下文
detail string Config 的详细数据

ConfigInfo

Agent 向 ConfigServer 请求时携带的配置文件信息。

参数 类型 说明
type ConfigType Config 的类型
name string Config 的唯一标识
version int64 Config 的版本
context string Config 的上下文

ConfigType(枚举类型)

配置文件的类型。

说明
PIPELINE_CONFIG 采集 pipeline 配置
AGENT_CONFIG Agent 运行配置

RespCode(枚举类型)

通信时返回的状态码。

说明
ACCEPT 请求成功
INVALID_PARAMETER 请求失败,参数有误
INTERNAL_SERVER_ERROR 请求失败,服务内部错误

接口说明

以API的形式对外提供统一的管控。总体分为两大类:

  • 用户API
    • AgentGroup 创建/修改/删除/查看
    • 采集配置 创建/修改/删除/查看
    • 采集配置与 AgentGroup 绑定/解绑
  • Agent API
    • Agent心跳
    • 采集配置获取

用户API: AgentGroup 创建/修改/删除/查看

ip:port/User/CreateAgentGroup

  • 功能:新建 AgentGroup
  • 请求方式:POST
  • 参数:
参数 类型,默认值 说明
agent_group AgentGoup,无默认值(必填) 新建的 AgentGroup 的信息
  • 返回值: 无

ip:port/User/UpdateAgentGroup

  • 功能:修改已有的 AgentGroup 的信息
  • 请求方式:PUT
  • 参数:
参数 类型,默认值 说明
agent_group AgentGoup,无默认值(必填) 修改后的 AgentGroup 的信息
  • 返回值: 无

ip:port/User/DeleteAgentGroup/

  • 功能:删除已建立的 AgentGroup
  • 请求方式:DELETE
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 要删除的 AgentGroup 的名称
  • 返回值: 无

ip:port/User/GetAgentGroup/

  • 功能:查看 AgentGroup 的信息
  • 请求方式:GET
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 要获取的 AgentGroup 的名称
  • 返回值:
参数 类型 说明
agent_group AgentGroup 目标 AgentGroup 的信息

ip:port/User/ListAgentGroups/

  • 功能:获取所有的 AgentGroup 列表
  • 请求方式:GET
  • 参数:无
  • 返回值:
参数 类型 说明
agent_groups AgentGroup[] 包含所有 AgentGroup 信息的数组

用户API:采集配置 创建/修改/删除/查看

ip:port/User/CreateConfig/

  • 功能:导入本地 Config
  • 请求方式:POST
  • 参数:
参数 类型,默认值 说明
config_detail ConfigDetail,无默认值(必填) 新增的 Config 的信息
  • 返回值: 无

ip:port/User/UpdateConfig/

  • 功能:修改已有的 Config 的信息
  • 请求方式:PUT
  • 参数:
参数 类型,默认值 说明
config_detail ConfigDetail,无默认值(必填) 修改后的 Config 的信息
  • 返回值: 无

ip:port/User/DeleteConfig/

  • 功能:删除已保存的 Config
  • 请求方式:DELETE
  • 参数:
参数 类型,默认值 说明
config_name string,无默认值(必填) 要删除的 Config 的名称
  • 返回值: 无

ip:port/User/GetConfig/

  • 功能:查看指定的 Config 的信息
  • 请求方式:GET
  • 参数:
参数 类型,默认值 说明
config_name string,无默认值(必填) 要获取的 config 名称
  • 返回值:
参数 类型 说明
config_detail ConfigDetail 目标 Config 的信息

ip:port/User/ListConfigs/

  • 功能:获取所有的 Config 列表
  • 请求方式:GET
  • 参数:无
  • 返回值:
参数 类型 说明
config_details ConfigDetail[] 包含所有 Config 信息的数组

用户API:采集配置与 AgentGroup 绑定/解绑

ip:port/User/ApplyConfigToAgentGroup/

  • 功能:向 AgentGroup 中添加 Config
  • 请求方式:PUT
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 目标 AgentGroup 的名字
config_name string,无默认值(必填) 目标 Config 的名字
  • 返回值: 无

ip:port/User/RemoveConfigFromAgentGroup/

  • 功能:删除 AgentGroup 中的 Config
  • 请求方式:DELETE
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 目标 AgentGroup 的名字
config_name string,无默认值(必填) 目标 Config 的名字
  • 返回值: 无

ip:port/User/GetAppliedConfigsForAgentGroup/

  • 功能:查看 AgentGroup 中的 Config 列表
  • 请求方式:GET
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 目标 AgentGroup 名称
  • 返回值:
参数 类型 说明
config_names string[] AgentGroup 关联的所有 Config 名称的数组

ip:port/User/GetAppliedAgentGroups/

  • 功能:查看 Config 关联的 AgentGroup 列表
  • 请求方式:GET
  • 参数:
参数 类型,默认值 说明
config_name string,无默认值(必填) 目标 Config 名称
  • 返回值:
参数 类型 说明
agent_group_names string[] Config 关联的所有 AgentGroup 名称的数组

ip:port/User/ListAgents/

  • 功能:获取 AgentGroup 中 Agent 列表
  • 请求方式:GET
  • 参数:
参数 类型,默认值 说明
group_name string,无默认值(必填) 目标 AgentGroup 名称
  • 返回值:
参数 类型 说明
agents Agent[] 包含 AgentGroup 中所有的 Agent 信息及其状态的数组

Agent API:写入心跳

ip:port/Agent/HeartBeat/

  • 功能:Agent 向 ConfigServer发送心跳
  • 请求方式:POST
  • 参数:
参数 类型,默认值 说明
agent_id string,无默认值(必填) Agent 的唯一标识符
agent_type string,无默认值(必填) Agent 的种类
attributes AgentAttributes,无默认值(必填) Agent 的信息
tags string[],无默认值(必填) Agent 拥有的 tag
running_status string,无默认值(必填) Agent 的运行状态
startup_time int64,无默认值(必填) Agent 的启动时间
interval int32,无默认值(必填) Agent 的心跳间隔
pipeline_configs ConfigInfo,无默认值(必填) Agent 拥有的采集配置信息
agent_configs ConfigInfo,无默认值(必填) Agent 拥有的运行配置信息
  • 返回值:
参数 类型 说明
pipeline_check_results ConfigCheckResult[] Agent 拉取的采集配置更新信息
agent_check_results ConfigCheckResult[] Agent 拉取的运行配置更新信息
custom_commands Command[] Agent 接收到的命令

Agent API:根据 Agent 获取采集配置(含变更信息)

ip:port/Agent/FetchPipelineConfig/

  • 功能:Agent 向 ConfigServer 发送已有的采集配置列表,获取更新
  • 请求方式:POST
  • 参数:
参数 类型,默认值 说明
agent_id string,无默认值(必填) Agent 的唯一标识符
req_configs ConfigInfo[] Agent 需要拉取的配置文件信息
  • 返回值:
参数 类型 说明
config_details ConfigDetail[] Agent 拉取的配置文件完整信息

ip:port/Agent/FetchAgentConfig/

  • 功能:Agent 向 ConfigServer 发送已有的运行配置列表,获取更新
  • 请求方式:POST
  • 参数:
参数 类型,默认值 说明
agent_id string,无默认值(必填) Agent 的唯一标识符
attributes AgentAttributes,无默认值(必填) Agent 的信息
req_configs ConfigInfo[] Agent 需要拉取的配置文件信息
  • 返回值:
参数 类型 说明
config_details ConfigDetail[] Agent 拉取的配置文件完整信息