summaryrefslogtreecommitdiff
path: root/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/ftdc/ftdc_system_stats_linux.cpp')
-rw-r--r--src/mongo/db/ftdc/ftdc_system_stats_linux.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp b/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
index 9c93718c171..fe730879834 100644
--- a/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
+++ b/src/mongo/db/ftdc/ftdc_system_stats_linux.cpp
@@ -66,6 +66,10 @@ static const std::vector<StringData> kMemKeys{
"Inactive(file)"_sd,
};
+static const std::vector<StringData> kNetstatKeys{
+ "Tcp:"_sd, "Ip:"_sd, "TcpExt:"_sd, "IpExt:"_sd,
+};
+
/**
* Collect metrics from the Linux /proc file system.
*/
@@ -99,6 +103,17 @@ public:
subObjBuilder.doneFast();
}
+ {
+ BSONObjBuilder subObjBuilder(builder.subobjStart("netstat"_sd));
+ processStatusErrors(procparser::parseProcNetstatFile(
+ kNetstatKeys, "/proc/net/netstat"_sd, &subObjBuilder),
+ &subObjBuilder);
+ processStatusErrors(
+ procparser::parseProcNetstatFile(kNetstatKeys, "/proc/net/snmp"_sd, &subObjBuilder),
+ &subObjBuilder);
+ subObjBuilder.doneFast();
+ }
+
// Skip the disks section if we could not find any disks.
// This can happen when we do not have permission to /sys/block for instance.
if (!_disksStringData.empty()) {