mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

Usage demo for plugin writers to add custom event metadata and access in in Zeek scripts.
77 lines
2.4 KiB
Text
77 lines
2.4 KiB
Text
# @TEST-DOC: Smoke test sending metadata from a worker to a manager. The manager uses script level functions.
|
|
#
|
|
# @TEST-EXEC: ${DIST}/auxil/zeek-aux/plugin-support/init-plugin -u . Demo PublishEventMetadata
|
|
# @TEST-EXEC: cp -r %DIR/publish-event-metadata-plugin/* .
|
|
# @TEST-EXEC: ./configure --zeek-dist=${DIST} && make
|
|
#
|
|
# @TEST-PORT: BROKER_MANAGER_PORT
|
|
# @TEST-PORT: BROKER_WORKER1_PORT
|
|
#
|
|
# @TEST-EXEC: cp $FILES/broker/cluster-layout.zeek .
|
|
#
|
|
# @TEST-EXEC: btest-bg-run manager ZEEKPATH=$ZEEKPATH:.. ZEEK_PLUGIN_PATH=`pwd` CLUSTER_NODE=manager zeek -b Demo::PublishEventMetadata %INPUT
|
|
# @TEST-EXEC: btest-bg-run worker-1 ZEEKPATH=$ZEEKPATH:.. ZEEK_PLUGIN_PATH=`pwd` CLUSTER_NODE=worker-1 zeek -b Demo::PublishEventMetadata %INPUT
|
|
# @TEST-EXEC: btest-bg-wait 10
|
|
# @TEST-EXEC: btest-diff manager/.stdout
|
|
# @TEST-EXEC: btest-diff manager/.stderr
|
|
# @TEST-EXEC: btest-diff worker-1/.stdout
|
|
# @TEST-EXEC: TEST_DIFF_CANONIFIER='grep -v PEER_UNAVAILABLE' btest-diff worker-1/.stderr
|
|
|
|
redef allow_network_time_forward = F;
|
|
|
|
@load frameworks/cluster/experimental
|
|
|
|
module App;
|
|
|
|
export {
|
|
global test_event: event(c: count);
|
|
|
|
redef enum EventMetadata::ID += {
|
|
CUSTOM_METADATA_STRING = 4711,
|
|
CUSTOM_METADATA_COUNT = 4712,
|
|
CUSTOM_METADATA_TABLE = 4713,
|
|
};
|
|
}
|
|
|
|
event App::test_event(c: count)
|
|
{
|
|
local mdv = EventMetadata::current_all();
|
|
print fmt("App::test_event(%s) |mdv|=%s", c, |mdv|);
|
|
for ( _, md in mdv )
|
|
print md;
|
|
|
|
print "custom metadata string", EventMetadata::current(App::CUSTOM_METADATA_STRING);
|
|
print "custom metadata count", EventMetadata::current(App::CUSTOM_METADATA_COUNT);
|
|
print "custom metadata table", EventMetadata::current(App::CUSTOM_METADATA_TABLE);
|
|
|
|
if ( c == 4 )
|
|
terminate();
|
|
}
|
|
|
|
event zeek_init() &priority=20
|
|
{
|
|
assert EventMetadata::register(CUSTOM_METADATA_STRING, string);
|
|
assert EventMetadata::register(CUSTOM_METADATA_COUNT, count);
|
|
assert EventMetadata::register(CUSTOM_METADATA_TABLE, table[string] of string);
|
|
|
|
Cluster::subscribe("topic1");
|
|
Cluster::subscribe("topic2");
|
|
Cluster::subscribe("topic3");
|
|
Cluster::subscribe("topic4");
|
|
}
|
|
|
|
event Cluster::Experimental::cluster_started()
|
|
{
|
|
if ( Cluster::node == "worker-1" )
|
|
{
|
|
Cluster::publish("topic1", test_event, 1);
|
|
Cluster::publish("topic2", test_event, 2);
|
|
Cluster::publish("topic3", test_event, 3);
|
|
Cluster::publish("topic4", test_event, 4);
|
|
}
|
|
}
|
|
|
|
event Cluster::node_down(name: string, id: string)
|
|
{
|
|
terminate();
|
|
}
|