summaryrefslogtreecommitdiff
path: root/src/mongo/db/ftdc
diff options
context:
space:
mode:
authorBruce Lucas <bruce.lucas@10gen.com>2018-05-08 07:40:02 -0400
committerBruce Lucas <bruce.lucas@10gen.com>2018-05-08 07:41:17 -0400
commit68aaf285c35b379a4c81231d86903c78e97d1e76 (patch)
tree9444e52a917eecd21c3495d78f634cfb975d9636 /src/mongo/db/ftdc
parentafb535dfea19036530adee8ddc940e1bcb9794cc (diff)
downloadmongo-68aaf285c35b379a4c81231d86903c78e97d1e76.tar.gz
SERVER-31400 Record netstat metrics in ftdc
Diffstat (limited to 'src/mongo/db/ftdc')
-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 316afde8170..1a940eef0d9 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()) {