mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 10:38:20 +00:00
segment_profiling: Remove SegmentProfiler and load_sample event
While it seems interesting functionality, this hasn't been documented, maintained or knowingly leveraged for many years. There are various other approaches today, too: * We track the number of event handler invocations regardless of profiling. It's possible to approximate a load_sample event by comparing the result of two get_event_stats() calls. Or, visualize the corresponding counters in a Prometheus setup to get an idea of event/s broken down by event names. * HookCallFunction() allows to intercept script execution, including measuring the time execution takes. * The global call_stack and g_frame_stack can be used from plugins (and even external processes) to walk the Zeek script stack at certain points to implement a sampling profiler. * USDT probes or more plugin hooks will likely be preferred over Zeek builtin functionality in the future. Relates to #3458
This commit is contained in:
parent
df37cadbe8
commit
3f7881a57b
16 changed files with 16 additions and 279 deletions
13
src/Func.cc
13
src/Func.cc
|
@ -308,11 +308,6 @@ bool ScriptFunc::IsPure() const {
|
|||
}
|
||||
|
||||
ValPtr ScriptFunc::Invoke(zeek::Args* args, Frame* parent) const {
|
||||
SegmentProfiler prof(segment_logger, location);
|
||||
|
||||
if ( sample_logger )
|
||||
sample_logger->FunctionSeen(this);
|
||||
|
||||
auto [handled, hook_result] =
|
||||
PLUGIN_HOOK_WITH_RESULT(HOOK_CALL_FUNCTION, HookCallFunction(this, parent, args), empty_hook_result);
|
||||
|
||||
|
@ -366,9 +361,6 @@ ValPtr ScriptFunc::Invoke(zeek::Args* args, Frame* parent) const {
|
|||
if ( body.disabled )
|
||||
continue;
|
||||
|
||||
if ( sample_logger )
|
||||
sample_logger->LocationSeen(body.stmts->GetLocationInfo());
|
||||
|
||||
// Fill in the rest of the frame with the function's arguments.
|
||||
for ( auto j = 0u; j < args->size(); ++j ) {
|
||||
const auto& arg = (*args)[j];
|
||||
|
@ -715,11 +707,6 @@ ValPtr BuiltinFunc::Invoke(Args* args, Frame* parent) const {
|
|||
if ( spm )
|
||||
spm->StartInvocation(this);
|
||||
|
||||
SegmentProfiler prof(segment_logger, Name());
|
||||
|
||||
if ( sample_logger )
|
||||
sample_logger->FunctionSeen(this);
|
||||
|
||||
auto [handled, hook_result] =
|
||||
PLUGIN_HOOK_WITH_RESULT(HOOK_CALL_FUNCTION, HookCallFunction(this, parent, args), empty_hook_result);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue