mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 15:18:20 +00:00
48 lines
1.2 KiB
Text
48 lines
1.2 KiB
Text
# @TEST-DOC: Calling collect_metrics() invokes Telemetry::sync.
|
|
# Not compilable to C++ due to globals being initialized to a record that
|
|
# has an opaque type as a field.
|
|
# @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1"
|
|
#
|
|
# @TEST-EXEC: zeek -b %INPUT >out
|
|
# @TEST-EXEC: btest-diff out
|
|
|
|
|
|
@load base/frameworks/telemetry
|
|
|
|
global connections_by_proto_cf = Telemetry::register_counter_family([
|
|
$prefix="btest",
|
|
$name="connections",
|
|
$unit="",
|
|
$help_text="Total number of monitored connections",
|
|
$label_names=vector("proto")
|
|
]);
|
|
|
|
function print_metrics(ms: vector of Telemetry::Metric) {
|
|
for (_, m in ms) {
|
|
print m$opts$name, m$label_values, m$value;
|
|
}
|
|
}
|
|
|
|
event zeek_init()
|
|
{
|
|
print "node up";
|
|
local ms = Telemetry::collect_metrics("btest");
|
|
print_metrics(ms);
|
|
ms = Telemetry::collect_metrics("btest");
|
|
print_metrics(ms);
|
|
ms = Telemetry::collect_metrics("btest");
|
|
print_metrics(ms);
|
|
local hm = Telemetry::collect_histogram_metrics("btest");
|
|
print_metrics(ms);
|
|
}
|
|
|
|
|
|
global sync_calls = 0;
|
|
|
|
hook Telemetry::sync()
|
|
{
|
|
++sync_calls;
|
|
local proto = sync_calls == 1 ? "tcp" : "udp";
|
|
print "sync", sync_calls, proto;
|
|
Telemetry::counter_family_inc(connections_by_proto_cf, vector(proto));
|
|
}
|