summaryrefslogtreecommitdiff
path: root/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (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.cpp75
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