]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
profile: Add sessions, tcons and files to profile data
authorVolker Lendecke <vl@samba.org>
Tue, 21 Nov 2023 12:34:03 +0000 (13:34 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 11 Apr 2025 18:46:40 +0000 (18:46 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
source3/include/smbprofile.h
source3/profile/profile.c

index 09fd5e474e2cad89891dc455ee2707e46b6057c5..689a84d9c8d7188ed478e6d4e4f48d56ac376200 100644 (file)
@@ -44,6 +44,9 @@ struct tevent_context;
        SMBPROFILE_STATS_BASIC(set_sec_ctx) \
        SMBPROFILE_STATS_BASIC(set_root_sec_ctx) \
        SMBPROFILE_STATS_BASIC(pop_sec_ctx) \
+       SMBPROFILE_STATS_COUNT(num_sessions) \
+       SMBPROFILE_STATS_COUNT(num_tcons) \
+       SMBPROFILE_STATS_COUNT(num_files) \
        SMBPROFILE_STATS_SECTION_END \
        \
        SMBPROFILE_STATS_SECTION_START(syscall, "System Calls") \
index 70eeac8c8e19e07a347d87dd338616dda67f9b5b..8bc261361ff8c9b17fb409d5d60e8b2a8f2179f5 100644 (file)
@@ -27,6 +27,7 @@
 #include "lib/tdb_wrap/tdb_wrap.h"
 #include <tevent.h>
 #include "../lib/crypto/crypto.h"
+#include "source3/smbd/globals.h"
 
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
@@ -257,6 +258,17 @@ void smbprofile_dump(struct smbd_server_connection *sconn)
                rself.ru_stime.tv_usec;
 #endif /* HAVE_GETRUSAGE */
 
+       if (sconn != NULL) {
+               /*
+                * Sessions, tcons and files don't add up, they are
+                * transient counters
+                */
+               profile_p->values.num_sessions_stats.count = sconn->num_users;
+               profile_p->values.num_tcons_stats.count =
+                       sconn->num_connections;
+               profile_p->values.num_files_stats.count = sconn->num_files;
+       }
+
        tdb_store(smbprofile_state.internal.db->tdb, key,
                  (TDB_DATA) {
                        .dptr = (uint8_t *)profile_p,
@@ -310,6 +322,13 @@ void smbprofile_cleanup(pid_t pid, pid_t dst)
 
        smbprofile_stats_accumulate(&acc, &s);
 
+       /*
+        * Sessions, tcons and files don't add up, they are transient.
+        */
+       acc.values.num_sessions_stats.count = 0;
+       acc.values.num_tcons_stats.count = 0;
+       acc.values.num_files_stats.count = 0;
+
        acc.magic = profile_p->magic;
        acc.summary_record = true;