diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
| commit | 4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch) | |
| tree | 1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/ftdc/ftdc_system_stats_linux.cpp | |
| parent | aa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff) | |
| parent | 8f0827553e09872941945a093b647a4211a9db7f (diff) | |
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0'
with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/db/ftdc/ftdc_system_stats_linux.cpp')
| -rw-r--r-- | src/mongo/db/ftdc/ftdc_system_stats_linux.cpp | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp b/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp index 3f13d8bc080..acb28f7bb6c 100644 --- a/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp +++ b/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp @@ -33,7 +33,6 @@ #include <memory> #include <string> -#include <sys/resource.h> #include <vector> #include "mongo/base/status.h" @@ -41,8 +40,6 @@ #include "mongo/bson/bsonobjbuilder.h" #include "mongo/db/ftdc/collector.h" #include "mongo/db/ftdc/controller.h" -#include "mongo/util/errno_util.h" -#include "mongo/util/functional.h" #include "mongo/util/processinfo.h" #include "mongo/util/procparser.h" @@ -158,22 +155,6 @@ public: &subObjBuilder); subObjBuilder.doneFast(); } - - { - BSONObjBuilder subObjBuilder(builder.subobjStart("pressure"_sd)); - processStatusErrors( - procparser::parseProcPressureFile("cpu", "/proc/pressure/cpu"_sd, &subObjBuilder), - &subObjBuilder); - - processStatusErrors(procparser::parseProcPressureFile( - "memory", "/proc/pressure/memory"_sd, &subObjBuilder), - &subObjBuilder); - - processStatusErrors( - procparser::parseProcPressureFile("io", "/proc/pressure/io"_sd, &subObjBuilder), - &subObjBuilder); - subObjBuilder.doneFast(); - } } private: @@ -184,66 +165,10 @@ private: std::vector<StringData> _disksStringData; }; -class SimpleFunctionCollector final : public FTDCCollectorInterface { -public: - SimpleFunctionCollector(StringData name, - unique_function<void(OperationContext*, BSONObjBuilder&)> collectFn) - : _name(name.toString()), _collectFn(std::move(collectFn)) {} - - void collect(OperationContext* opCtx, BSONObjBuilder& builder) override { - _collectFn(opCtx, builder); - } - - std::string name() const override { - return _name; - } - -private: - std::string _name; - unique_function<void(OperationContext*, BSONObjBuilder&)> _collectFn; -}; - - -void collectUlimit(int resource, StringData resourceName, BSONObjBuilder& builder) { - - struct rlimit rlim; - - BSONObjBuilder subObjBuilder(builder.subobjStart(resourceName)); - - if (!getrlimit(resource, &rlim)) { - subObjBuilder.append("soft", static_cast<int64_t>(rlim.rlim_cur)); - subObjBuilder.append("hard", static_cast<int64_t>(rlim.rlim_max)); - } else { - auto ec = lastSystemError(); - - subObjBuilder.append("error", errorMessage(ec)); - } -} - -void collectUlimits(OperationContext*, BSONObjBuilder& builder) { - collectUlimit(RLIMIT_CPU, "cpuTime_secs"_sd, builder); - collectUlimit(RLIMIT_FSIZE, "fileSize_blocks"_sd, builder); - collectUlimit(RLIMIT_DATA, "dataSegSize_kb"_sd, builder); - collectUlimit(RLIMIT_STACK, "stackSize_kb"_sd, builder); - collectUlimit(RLIMIT_CORE, "coreFileSize_blocks"_sd, builder); - collectUlimit(RLIMIT_RSS, "residentSize_kb"_sd, builder); - collectUlimit(RLIMIT_NOFILE, "fileDescriptors"_sd, builder); - collectUlimit(RLIMIT_AS, "addressSpace_kb"_sd, builder); - collectUlimit(RLIMIT_NPROC, "processes"_sd, builder); - collectUlimit(RLIMIT_MEMLOCK, "memLock_kb"_sd, builder); - collectUlimit(RLIMIT_LOCKS, "fileLocks"_sd, builder); - collectUlimit(RLIMIT_SIGPENDING, "pendingSignals"_sd, builder); -} - } // namespace - void installSystemMetricsCollector(FTDCController* controller) { controller->addPeriodicCollector(std::make_unique<LinuxSystemMetricsCollector>()); - - // Collect ULimits settings on rotation. - controller->addOnRotateCollector( - std::make_unique<SimpleFunctionCollector>("ulimits", collectUlimits)); } } // namespace mongo |
