mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge branch 'topic/awelzel/3473-register-telemetry-opaque-vals'
* topic/awelzel/3473-register-telemetry-opaque-vals: OpaqueVal: Register TelemetryVals, too
This commit is contained in:
commit
a59578e018
8 changed files with 63 additions and 1 deletions
7
CHANGES
7
CHANGES
|
@ -1,3 +1,10 @@
|
||||||
|
6.2.0-dev.200 | 2023-11-30 10:16:13 +0100
|
||||||
|
|
||||||
|
* GH-3473: OpaqueVal: Register TelemetryVals, too (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
Even if they are not serializable, OpaqueMgr::TypeID() is called
|
||||||
|
during BuildJSON() for them and that previously just aborted.
|
||||||
|
|
||||||
6.2.0-dev.198 | 2023-11-29 11:51:56 +0100
|
6.2.0-dev.198 | 2023-11-29 11:51:56 +0100
|
||||||
|
|
||||||
* Update zeekjs submodule (Arne Welzel, Corelight)
|
* Update zeekjs submodule (Arne Welzel, Corelight)
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
6.2.0-dev.198
|
6.2.0-dev.200
|
||||||
|
|
|
@ -1062,4 +1062,16 @@ TelemetryVal::TelemetryVal(telemetry::DblHistogram) : OpaqueVal(dbl_histogram_me
|
||||||
|
|
||||||
TelemetryVal::TelemetryVal(telemetry::DblHistogramFamily) : OpaqueVal(dbl_histogram_metric_family_type) {}
|
TelemetryVal::TelemetryVal(telemetry::DblHistogramFamily) : OpaqueVal(dbl_histogram_metric_family_type) {}
|
||||||
|
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntCounterMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntCounterMetricFamilyVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblCounterMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblCounterMetricFamilyVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntGaugeMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntGaugeMetricFamilyVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblGaugeMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblGaugeMetricFamilyVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntHistogramMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(IntHistogramMetricFamilyVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblHistogramMetricVal)
|
||||||
|
IMPLEMENT_OPAQUE_VALUE(DblHistogramMetricFamilyVal)
|
||||||
} // namespace zeek
|
} // namespace zeek
|
||||||
|
|
|
@ -427,6 +427,11 @@ public:
|
||||||
|
|
||||||
Handle GetHandle() const noexcept { return hdl; }
|
Handle GetHandle() const noexcept { return hdl; }
|
||||||
|
|
||||||
|
static zeek::OpaqueValPtr OpaqueInstantiate() {
|
||||||
|
reporter->Error("TelemetryValImpl::OpaqueInstantiate is unsupported");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ValPtr DoClone(CloneState*) override { return make_intrusive<TelemetryValImpl>(hdl); }
|
ValPtr DoClone(CloneState*) override { return make_intrusive<TelemetryValImpl>(hdl); }
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
|
@ -42,3 +42,7 @@ XXXXXXXXXX.XXXXXX
|
||||||
{"10.1.1.1":[1,2],"10.2.2.2":[3,5]}
|
{"10.1.1.1":[1,2],"10.2.2.2":[3,5]}
|
||||||
{"1":{"s":"test"}}
|
{"1":{"s":"test"}}
|
||||||
{"opaque_type":"TopkVal"}
|
{"opaque_type":"TopkVal"}
|
||||||
|
{"_metric":{"opaque_type":"DblGaugeMetricVal"}}
|
||||||
|
{"_family":{"opaque_type":"DblGaugeMetricFamilyVal"},"_labels":["dim_1"]}
|
||||||
|
{"_metric":{"opaque_type":"DblCounterMetricVal"}}
|
||||||
|
{"_family":{"opaque_type":"DblCounterMetricFamilyVal"},"_labels":["dim_1"]}
|
||||||
|
|
8
testing/btest/coverage/global-ids-to-json.zeek
Normal file
8
testing/btest/coverage/global-ids-to-json.zeek
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# @TEST-DOC: Ensure to_json(global_ids()) does not abort and do not expect any stderr output.
|
||||||
|
# @TEST-EXEC: unset ZEEK_ALLOW_INIT_ERRORS; zeek %INPUT
|
||||||
|
# @TEST-EXEC: btest-diff .stderr
|
||||||
|
|
||||||
|
event zeek_init()
|
||||||
|
{
|
||||||
|
assert |to_json(global_ids())| > 0;
|
||||||
|
}
|
|
@ -5,6 +5,8 @@
|
||||||
# @TEST-EXEC: zeek -b %INPUT >output
|
# @TEST-EXEC: zeek -b %INPUT >output
|
||||||
# @TEST-EXEC: btest-diff output
|
# @TEST-EXEC: btest-diff output
|
||||||
|
|
||||||
|
@load base/frameworks/telemetry
|
||||||
|
|
||||||
type color: enum { Red, White, Blue };
|
type color: enum { Red, White, Blue };
|
||||||
|
|
||||||
type myrec1: record {
|
type myrec1: record {
|
||||||
|
@ -132,4 +134,27 @@ event zeek_init()
|
||||||
# Opaque
|
# Opaque
|
||||||
local o1: opaque of topk = topk_init(5);
|
local o1: opaque of topk = topk_init(5);
|
||||||
print to_json(o1);
|
print to_json(o1);
|
||||||
|
|
||||||
|
# Telemetry values wrapping opaque values.
|
||||||
|
local gauge_family = Telemetry::register_gauge_family([
|
||||||
|
$prefix="btest",
|
||||||
|
$name="btest_testing_gauge",
|
||||||
|
$unit="1",
|
||||||
|
$help_text="Btest testing",
|
||||||
|
$labels=vector("dim_1"),
|
||||||
|
]);
|
||||||
|
local gauge = Telemetry::gauge_with(gauge_family, vector("dim_1_value"));
|
||||||
|
print to_json(gauge);
|
||||||
|
print to_json(gauge_family);
|
||||||
|
|
||||||
|
local counter_family = Telemetry::register_counter_family([
|
||||||
|
$prefix="btest",
|
||||||
|
$name="btest_testing_counter",
|
||||||
|
$unit="1",
|
||||||
|
$help_text="Btest testing",
|
||||||
|
$labels=vector("dim_1"),
|
||||||
|
]);
|
||||||
|
local counter = Telemetry::counter_with(counter_family, vector("dim_1_value"));
|
||||||
|
print to_json(counter);
|
||||||
|
print to_json(counter_family);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue