File: ngx-modsec.stp

package info (click to toggle)
libnginx-mod-http-modsecurity 1.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 428 kB
  • sloc: perl: 1,819; ansic: 1,515; sh: 26; makefile: 3
file content (37 lines) | stat: -rwxr-xr-x 734 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env stap

global begin_rule
global rules
global rules_phase


# Rules
probe process("/usr/local/lib/libmodsecurity.so.3").function("evaluate@rule.cc*")
{
    begin_rule = gettimeofday_us();
}

probe process("/usr/local/lib/libmodsecurity.so.3").function("evaluate@rule.cc*").return
{
    elapsed_rule = gettimeofday_us() - begin_rule
    rules[$this->m_ruleId] <<< elapsed_rule
    rules_phase[$this->m_ruleId] = $this->m_phase
}


# Resume
probe end
{
    foreach ([rule] in rules)
    {
        if (@count(rules[rule])) {
            p = rules_phase[rule] - 1;
            if (p <= 0) {
              p = 1
            }
            printf("Phase %d;Rule ID: %d %u\n", p, rule, @avg(rules[rule]));
        }
    }   
}