From c906d7f79ecf066df3fae077ffb4cefa89f986d5 Mon Sep 17 00:00:00 2001 From: "gaokuilin.gkl" Date: Mon, 11 Nov 2024 17:12:26 +0800 Subject: [PATCH] feat: add configer provider info report interface --- config_server/protocol/v2/README.md | 7 +++++-- config_server/protocol/v2/agentV2.proto | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/config_server/protocol/v2/README.md b/config_server/protocol/v2/README.md index 567151584b..93ad048016 100644 --- a/config_server/protocol/v2/README.md +++ b/config_server/protocol/v2/README.md @@ -233,11 +233,14 @@ Server:返回FetchPipelineConfigResponse ![image](https://github.com/alibaba/ilogtail/assets/1827594/c409c35c-2a81-4927-bfd2-7fb321ef1ca8) ### 配置状态上报 - Client:这个版本的配置状态上报中修改了version的定义,-1仍然表示删除,0作为保留值,其他值都是合法version,只要version不同Client都应该视为配置更新。此外参考OpAMP增加了配置应用状态上报的字段,能反应出下发的配置是否生效。 Server:这些信息是Agent状态的一部分,可选保存。与通过Event上报可观测信息不同的是,作为状态信息没有时间属性,用户可通过接口可获取即刻状态,而不需要选择时间窗口合并事件。 +上报配置状态支持两种方式: +1. 在心跳 request 中将配置最新状态带上。适合不区分全量/非全量心跳的实现,和 configer server 心跳/流水线不拆分的实现。 +2. 通过 ReportConfigRequest 接口上报。适合对状态更新实时性要求比较高,心跳/流水线拆分的实现。 + ### 预定义命令 Client: 通过request的flag传递,定义了FullStatus,表明本条信息为全量状态 @@ -259,4 +262,4 @@ Client: 当HeartbeatResponse中的code为0时,Agent应该正常处理下发的 ### 辅助信息 在command\_info, command\_detail, config\_info, config\_detail中,都预留了extra字段,可以用于传递一些额外的用户自定义的辅助信息。\ -注意:extra字段仅作传递辅助信息使用,不会对管控行为造成任何影响。 \ No newline at end of file +注意:extra字段仅作传递辅助信息使用,不会对管控行为造成任何影响。 diff --git a/config_server/protocol/v2/agentV2.proto b/config_server/protocol/v2/agentV2.proto index bc99338d58..eba828b3a5 100644 --- a/config_server/protocol/v2/agentV2.proto +++ b/config_server/protocol/v2/agentV2.proto @@ -166,8 +166,23 @@ message FetchConfigResponse { repeated ConfigDetail config_details = 3; // config detail } +// API: /Agent/ReportPipelineConfig/ +// API: /Agent/ReportInstanceConfig/ +// Agent request to ConfigServer, report status of the config +message ReportConfigRequest { + bytes request_id = 1; + bytes instance_id = 2; // Agent's unique identification + repeated ConfigInfo config_infos = 3; // Config status info +} + +// ConfigServer response to Agent's request +message ReportConfigResponse { + bytes request_id = 1; + CommonResponse commonResponse = 2; +} + message CommonResponse { int32 status = 1; bytes errorMessage = 2; -} \ No newline at end of file +}