diff options
Diffstat (limited to 'src/mongo/db/ftdc/ftdc_system_stats_linux.cpp')
| -rw-r--r-- | src/mongo/db/ftdc/ftdc_system_stats_linux.cpp | 15 |
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()) { |
