]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
profiling: add option to active rules profiling at start
authorEric Leblond <el@stamus-networks.com>
Wed, 8 Nov 2023 20:18:33 +0000 (21:18 +0100)
committerVictor Julien <victor@inliniac.net>
Sat, 15 Jun 2024 13:43:31 +0000 (15:43 +0200)
When replaying a pcap file, it is not possible to get rules
profiling because it has to be activated from the unix socket.
This patch adds a new option to be able to activate profiling
collection at start so a pcap run can get rules profiling
information.

src/util-profiling.c
suricata.yaml.in

index 70b187e97a8fe8f538f4d222c9e4cba54be07cbe..efc22fea6e7d88ace2790e993f9da83db1b3fe94 100644 (file)
@@ -1432,6 +1432,7 @@ void SCProfilingInit(void)
     SC_ATOMIC_INIT(profiling_rules_active);
     SC_ATOMIC_INIT(samples);
     intmax_t rate_v = 0;
+    ConfNode *conf;
 
     (void)ConfGetInt("profiling.sample-rate", &rate_v);
     if (rate_v > 0 && rate_v < INT_MAX) {
@@ -1448,6 +1449,11 @@ void SCProfilingInit(void)
         else
             SCLogInfo("profiling runs for every packet");
     }
+
+    conf = ConfGetNode("profiling.rules");
+    if (ConfNodeChildValueIsTrue(conf, "active")) {
+        SC_ATOMIC_SET(profiling_rules_active, 1);
+    }
 }
 
 /* see if we want to profile rules for this packet */
index 1150f7ab9a97c9264195f17e15fd95d139aefe2d..897c71027a62987b128aca3e04f80da74db1dd40 100644 (file)
@@ -1810,6 +1810,10 @@ profiling:
     enabled: yes
     filename: rule_perf.log
     append: yes
+    # Set active to yes to enable rules profiling at start
+    # if set to no (default), the rules profiling will have to be started
+    # via unix socket commands.
+    #active:no
 
     # Sort options: ticks, avgticks, checks, matches, maxticks
     # If commented out all the sort options will be used.