From 99e64aa1136632fc03ff3a022132041bf391df43 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Tue, 4 Jun 2024 08:49:42 -0700 Subject: [PATCH] Restore label_names field in MetricOpts record --- scripts/base/frameworks/telemetry/main.zeek | 35 +++++++++---------- scripts/base/init-bare.zeek | 12 +++++++ .../base/frameworks/telemetry/basic.zeek | 30 ++++++++-------- .../telemetry/conn-duration-histogram.zeek | 6 ++-- testing/btest/scripts/base/utils/json.test | 12 +++---- .../frameworks/telemetry/log-prefixes.zeek | 6 ++-- 6 files changed, 55 insertions(+), 46 deletions(-) diff --git a/scripts/base/frameworks/telemetry/main.zeek b/scripts/base/frameworks/telemetry/main.zeek index e41ef1b21e..d71a7d9783 100644 --- a/scripts/base/frameworks/telemetry/main.zeek +++ b/scripts/base/frameworks/telemetry/main.zeek @@ -36,8 +36,7 @@ export { }; ## Register a counter family. - global register_counter_family: function(opts: MetricOpts, - label_names: labels_vector &default=vector()): CounterFamily; + global register_counter_family: function(opts: MetricOpts): CounterFamily; ## Get a :zeek:see:`Telemetry::Counter` instance given family and label values. global counter_with: function(cf: CounterFamily, @@ -120,8 +119,7 @@ export { }; ## Register a gauge family. - global register_gauge_family: function(opts: MetricOpts, - label_names: labels_vector &default=vector()): GaugeFamily; + global register_gauge_family: function(opts: MetricOpts): GaugeFamily; ## Get a :zeek:see:`Telemetry::Gauge` instance given family and label values. @@ -217,8 +215,7 @@ export { }; ## Register a histogram family. - global register_histogram_family: function(opts: MetricOpts, - label_names: labels_vector &default=vector()): HistogramFamily; + global register_histogram_family: function(opts: MetricOpts): HistogramFamily; ## Get a :zeek:see:`Telemetry::Histogram` instance given family and label values. global histogram_with: function(hf: HistogramFamily, @@ -293,16 +290,16 @@ function make_labels(keys: vector of string, values: labels_vector): table[strin return labels; } -function register_counter_family(opts: MetricOpts, label_names: labels_vector): CounterFamily +function register_counter_family(opts: MetricOpts): CounterFamily { local f = Telemetry::__counter_family( opts$prefix, opts$name, - label_names, + opts$label_names, opts$help_text, opts$unit ); - return CounterFamily($__family=f, $__labels=label_names); + return CounterFamily($__family=f, $__labels=opts$label_names); } # Fallback Counter returned when there are issues with the labels. @@ -352,16 +349,16 @@ function counter_family_set(cf: CounterFamily, label_values: labels_vector, valu return counter_set(counter_with(cf, label_values), value); } -function register_gauge_family(opts: MetricOpts, label_names: labels_vector): GaugeFamily +function register_gauge_family(opts: MetricOpts): GaugeFamily { local f = Telemetry::__gauge_family( opts$prefix, opts$name, - label_names, + opts$label_names, opts$help_text, opts$unit ); - return GaugeFamily($__family=f, $__labels=label_names); + return GaugeFamily($__family=f, $__labels=opts$label_names); } # Fallback Gauge returned when there are issues with the label usage. @@ -420,17 +417,17 @@ function gauge_family_set(gf: GaugeFamily, label_values: labels_vector, value: d return gauge_set(gauge_with(gf, label_values), value); } -function register_histogram_family(opts: MetricOpts, label_names: labels_vector): HistogramFamily +function register_histogram_family(opts: MetricOpts): HistogramFamily { local f = Telemetry::__histogram_family( opts$prefix, opts$name, - label_names, + opts$label_names, opts$bounds, opts$help_text, opts$unit ); - return HistogramFamily($__family=f, $__labels=label_names); + return HistogramFamily($__family=f, $__labels=opts$label_names); } # Fallback Histogram when there are issues with the labels. @@ -486,10 +483,10 @@ global version_gauge_family = Telemetry::register_gauge_family([ $prefix="zeek", $name="version_info", $unit="", - $help_text="The Zeek version"], - vector("version_number", "major", "minor", "patch", "commit", - "beta", "debug","version_string") -); + $help_text="The Zeek version", + $label_names=vector("version_number", "major", "minor", "patch", "commit", + "beta", "debug","version_string") +]); event zeek_init() { diff --git a/scripts/base/init-bare.zeek b/scripts/base/init-bare.zeek index 97a2bf169f..30b49def26 100644 --- a/scripts/base/init-bare.zeek +++ b/scripts/base/init-bare.zeek @@ -5802,6 +5802,18 @@ export { ## Documentation for this metric. help_text: string &optional; + ## The label names (also called dimensions) of the metric. When + ## instantiating or working with concrete metrics, corresponding + ## label values have to be provided. Examples of a label might + ## be the protocol a general observation applies to, the + ## directionality in a traffic flow, or protocol-specific + ## context like a particular message type. This field is only + ## used in the construction of new metrics and will not be + ## filled in when returned from + ## :zeek:see:`Telemetry::collect_metrics` or + ## :zeek:see:`Telemetry::collect_histogram_metrics`, + label_names: vector of string &default=vector(); + ## Whether the metric represents something that is accumulating. ## Defaults to ``T`` for counters and ``F`` for gauges and ## histograms. diff --git a/testing/btest/scripts/base/frameworks/telemetry/basic.zeek b/testing/btest/scripts/base/frameworks/telemetry/basic.zeek index aeb1e5cde1..0592bff684 100644 --- a/testing/btest/scripts/base/frameworks/telemetry/basic.zeek +++ b/testing/btest/scripts/base/frameworks/telemetry/basic.zeek @@ -14,42 +14,42 @@ global btest_a_cf = Telemetry::register_counter_family([ $prefix="btest", $name="a_test", $unit="", - $help_text="A btest metric"], - vector("x", "y") -); + $help_text="A btest metric", + $label_names=vector("x", "y") +]); global btest_b_cf = Telemetry::register_counter_family([ $prefix="btest", $name="b_test", $unit="", - $help_text="Another btest metric"], - vector("x", "y") -); + $help_text="Another btest metric", + $label_names=vector("x", "y") +]); global btest_c_cf = Telemetry::register_counter_family([ $prefix="btest", $name="c_test", $unit="", - $help_text="The last btest metric"], - vector("x", "y") -); + $help_text="The last btest metric", + $label_names=vector("x", "y") +]); global system_sensor_temp_gf = Telemetry::register_gauge_family([ $prefix="system", $name="sensor_temperature", $unit="celsius", - $help_text="Temperatures reported by sensors in the system"], - vector("name") -); + $help_text="Temperatures reported by sensors in the system", + $label_names=vector("name") +]); global btest_sample_histogram_hf = Telemetry::register_histogram_family([ $prefix="btest", $name="sample_histogram", $unit="", $help_text="A sample histogram that is not returned by Telemetry::collect_metrics", - $bounds=vector(1.0, 2.0, 3.0, 4.0, 5.0)], - vector("dim") -); + $bounds=vector(1.0, 2.0, 3.0, 4.0, 5.0), + $label_names=vector("dim") +]); function print_metrics(what: string, metrics: vector of Telemetry::Metric) { diff --git a/testing/btest/scripts/base/frameworks/telemetry/conn-duration-histogram.zeek b/testing/btest/scripts/base/frameworks/telemetry/conn-duration-histogram.zeek index f327e2ebff..3f01d9ddf3 100644 --- a/testing/btest/scripts/base/frameworks/telemetry/conn-duration-histogram.zeek +++ b/testing/btest/scripts/base/frameworks/telemetry/conn-duration-histogram.zeek @@ -18,11 +18,11 @@ global connection_duration_hf = Telemetry::register_histogram_family([ global realistic_connection_duration_hf = Telemetry::register_histogram_family([ $prefix="zeek", $name="realistic_connection_duration", + $label_names=vector("proto"), $unit="seconds", $help_text="Monitored connection durations by protocol", - $bounds=vector(0.1, 1.0, 10.0, 30.0, 60.0, 120.0, 300, 900.0, 1800.0)], - vector("proto"), -); + $bounds=vector(0.1, 1.0, 10.0, 30.0, 60.0, 120.0, 300, 900.0, 1800.0), +]); global connection_duration_h = Telemetry::histogram_with(connection_duration_hf); diff --git a/testing/btest/scripts/base/utils/json.test b/testing/btest/scripts/base/utils/json.test index dbc394cd9a..da741102fe 100644 --- a/testing/btest/scripts/base/utils/json.test +++ b/testing/btest/scripts/base/utils/json.test @@ -140,9 +140,9 @@ event zeek_init() $prefix="btest", $name="btest_testing_gauge", $unit="", - $help_text="Btest testing"], - vector("dim_1"), - ); + $help_text="Btest testing", + $label_names=vector("dim_1"), + ]); local gauge = Telemetry::gauge_with(gauge_family, vector("dim_1_value")); print to_json(gauge); print to_json(gauge_family); @@ -151,9 +151,9 @@ event zeek_init() $prefix="btest", $name="btest_testing_counter", $unit="", - $help_text="Btest testing"], - vector("dim_1"), - ); + $help_text="Btest testing", + $label_names=vector("dim_1"), + ]); local counter = Telemetry::counter_with(counter_family, vector("dim_1_value")); print to_json(counter); print to_json(counter_family); diff --git a/testing/btest/scripts/policy/frameworks/telemetry/log-prefixes.zeek b/testing/btest/scripts/policy/frameworks/telemetry/log-prefixes.zeek index 869fcc5884..0752c605e2 100644 --- a/testing/btest/scripts/policy/frameworks/telemetry/log-prefixes.zeek +++ b/testing/btest/scripts/policy/frameworks/telemetry/log-prefixes.zeek @@ -12,9 +12,9 @@ global connections_by_proto_cf = Telemetry::register_counter_family([ $prefix="btest", $name="connections", $unit="", - $help_text="Total number of monitored connections"], - $labels=vector("proto") -); + $help_text="Total number of monitored connections", + $label_names=vector("proto") +]); global connection_duration_hf = Telemetry::register_histogram_family([ $prefix="btest",