From c42c78bb7082d05930c57a3ffdd8b2c86f19a029 Mon Sep 17 00:00:00 2001 From: zhb192729 Date: Wed, 25 Sep 2024 13:51:07 +0800 Subject: [PATCH] fix code --- core/metadata/k8sMetadata.cpp | 15 ++++++++++----- core/metadata/k8sMetadata.h | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/core/metadata/k8sMetadata.cpp b/core/metadata/k8sMetadata.cpp index 0239725df9..6518400d1e 100644 --- a/core/metadata/k8sMetadata.cpp +++ b/core/metadata/k8sMetadata.cpp @@ -13,6 +13,7 @@ #include #include +#include #include "k8sMetadata.h" #include "common/MachineInfoUtil.h" #include "logger/Logger.h" @@ -83,7 +84,7 @@ namespace logtail { } } - bool K8sMetadata::SendRequestToOperator(const std::string& urlHost, const std::string& output, containerInfoType infoType) { + int K8sMetadata::SendRequestToOperator(const std::string& urlHost, const std::string& output, containerInfoType infoType) { std::unique_ptr request; HttpResponse res; std::string path = "/metadata/containerid"; @@ -94,7 +95,7 @@ namespace logtail { bool success = SendHttpRequest(std::move(request), res); if (res.mStatusCode != 200) { LOG_DEBUG(sLogger, ("fetch k8s meta from one operator fail, code is ", res.mStatusCode)); - return false; + return res.mStatusCode; } if (success) { Json::CharReaderBuilder readerBuilder; @@ -113,14 +114,14 @@ namespace logtail { } } } else { - return true; + return 200; } delete reader; } else { LOG_DEBUG(sLogger, ("fetch k8s meta from one operator fail", urlHost)); } - return true; + return 200; } void K8sMetadata::GetByContainerIdsFromServer(std::vector containerIds) { @@ -143,7 +144,11 @@ namespace logtail { Json::StreamWriterBuilder writer; std::string output = Json::writeString(writer, jsonObj); std::string urlHost = mServiceHost; - SendRequestToOperator(urlHost, output, containerInfoType::ContainerIdInfo); + int code = SendRequestToOperator(urlHost, output, containerInfoType::ContainerIdInfo); + if (code == 503) { + std::this_thread::sleep_for(std::chrono::seconds(1)); + SendRequestToOperator(urlHost, output, containerInfoType::ContainerIdInfo); + } } void K8sMetadata::SetContainerCache(const Json::Value& root) { diff --git a/core/metadata/k8sMetadata.h b/core/metadata/k8sMetadata.h index 9ed8f49f54..e0625607fc 100644 --- a/core/metadata/k8sMetadata.h +++ b/core/metadata/k8sMetadata.h @@ -79,7 +79,7 @@ namespace logtail { std::shared_ptr GetInfoByContainerIdFromCache(const std::string& containerId); // get info by ip from cache std::shared_ptr GetInfoByIpFromCache(const std::string& ip); - bool SendRequestToOperator(const std::string& urlHost, const std::string& output, containerInfoType infoType); + int SendRequestToOperator(const std::string& urlHost, const std::string& output, containerInfoType infoType); #ifdef APSARA_UNIT_TEST_MAIN friend class k8sMetadataUnittest; #endif