diff --git a/core/pipeline/PipelineManager.cpp b/core/pipeline/PipelineManager.cpp index 57abcde874..2d22f90b1f 100644 --- a/core/pipeline/PipelineManager.cpp +++ b/core/pipeline/PipelineManager.cpp @@ -40,7 +40,7 @@ PipelineManager::PipelineManager() : mInputRunners({ PrometheusInputRunner::GetInstance(), #if defined(__linux__) && !defined(__ANDROID__) - ebpf::eBPFServer::GetInstance(), + ebpf::eBPFServer::GetInstance(), #endif }) { } @@ -51,16 +51,7 @@ void logtail::PipelineManager::UpdatePipelines(PipelineConfigDiff& diff) { #ifndef APSARA_UNIT_TEST_MAIN // 过渡使用 static bool isFileServerStarted = false; - bool isFileServerInputChanged = false; - for (const auto& name : diff.mRemoved) { - isFileServerInputChanged = CheckIfFileServerUpdated(mPipelineNameEntityMap[name]->GetConfig()["inputs"][0]); - } - for (const auto& config : diff.mModified) { - isFileServerInputChanged = CheckIfFileServerUpdated(*config.mInputs[0]); - } - for (const auto& config : diff.mAdded) { - isFileServerInputChanged = CheckIfFileServerUpdated(*config.mInputs[0]); - } + bool isFileServerInputChanged = CheckIfFileServerUpdated(diff); #if defined(__ENTERPRISE__) && defined(__linux__) && !defined(__ANDROID__) if (AppConfig::GetInstance()->ShennongSocketEnabled()) { @@ -238,9 +229,26 @@ void PipelineManager::DecreasePluginUsageCnt(const unordered_mapGetConfig()["inputs"][0]["Type"].asString(); + if (inputType == "input_file" || inputType == "input_container_stdio") { + return true; + } + } + for (const auto& config : diff.mModified) { + string inputType = (*config.mInputs[0])["Type"].asString(); + if (inputType == "input_file" || inputType == "input_container_stdio") { + return true; + } + } + for (const auto& config : diff.mAdded) { + string inputType = (*config.mInputs[0])["Type"].asString(); + if (inputType == "input_file" || inputType == "input_container_stdio") { + return true; + } + } + return false; } } // namespace logtail diff --git a/core/pipeline/PipelineManager.h b/core/pipeline/PipelineManager.h index 5dc1535f77..6c3cf5cbe0 100644 --- a/core/pipeline/PipelineManager.h +++ b/core/pipeline/PipelineManager.h @@ -59,7 +59,7 @@ class PipelineManager { const std::unordered_map>& statistics); void FlushAllBatch(); // TODO: 长期过渡使用 - bool CheckIfFileServerUpdated(const Json::Value& config); + bool CheckIfFileServerUpdated(PipelineConfigDiff& diff); std::unordered_map> mPipelineNameEntityMap; mutable SpinLock mPluginCntMapLock;