/src/zeek/build/src/telemetry_functions.bif.func_def
Line | Count | Source |
1 | | // This file was automatically generated by bifcl from telemetry_functions.bif. |
2 | | |
3 | | |
4 | | #line 7 "/src/zeek/src/telemetry/telemetry_functions.bif" |
5 | | |
6 | | |
7 | | #include <span> |
8 | | #include "zeek/telemetry/Counter.h" |
9 | | #include "zeek/telemetry/Gauge.h" |
10 | | #include "zeek/telemetry/Histogram.h" |
11 | | #include "zeek/telemetry/Manager.h" |
12 | | #include "zeek/telemetry/Opaques.h" |
13 | | |
14 | | namespace { |
15 | | |
16 | | template <class ScriptHandle, class Fun> |
17 | | auto with(zeek::Val* val, const char* error_msg, Fun fun) |
18 | 66 | { |
19 | 66 | if ( auto ptr = static_cast<ScriptHandle*>(val) ) |
20 | 66 | { |
21 | 66 | fun(ptr->GetHandle()); |
22 | 66 | return true; |
23 | 66 | } |
24 | 0 | else |
25 | 0 | { |
26 | 0 | zeek::reporter->Error("%s", error_msg); |
27 | 0 | return false; |
28 | 0 | } |
29 | 66 | } Unexecuted instantiation: Func.cc:auto (anonymous namespace)::with<zeek::TelemetryValImpl<zeek::telemetry::Counter>, zeek::BifFunc::Telemetry::__counter_inc_native(zeek::Val*, double)::$_0>(zeek::Val*, char const*, zeek::BifFunc::Telemetry::__counter_inc_native(zeek::Val*, double)::$_0) Func.cc:auto (anonymous namespace)::with<zeek::TelemetryValImpl<zeek::telemetry::Gauge>, zeek::BifFunc::Telemetry::__gauge_inc_native(zeek::Val*, double)::$_0>(zeek::Val*, char const*, zeek::BifFunc::Telemetry::__gauge_inc_native(zeek::Val*, double)::$_0) Line | Count | Source | 18 | 66 | { | 19 | 66 | if ( auto ptr = static_cast<ScriptHandle*>(val) ) | 20 | 66 | { | 21 | 66 | fun(ptr->GetHandle()); | 22 | 66 | return true; | 23 | 66 | } | 24 | 0 | else | 25 | 0 | { | 26 | 0 | zeek::reporter->Error("%s", error_msg); | 27 | 0 | return false; | 28 | 0 | } | 29 | 66 | } |
Unexecuted instantiation: Func.cc:auto (anonymous namespace)::with<zeek::TelemetryValImpl<zeek::telemetry::Gauge>, zeek::BifFunc::Telemetry::__gauge_dec_native(zeek::Val*, double)::$_0>(zeek::Val*, char const*, zeek::BifFunc::Telemetry::__gauge_dec_native(zeek::Val*, double)::$_0) Unexecuted instantiation: Func.cc:auto (anonymous namespace)::with<zeek::TelemetryValImpl<zeek::telemetry::Histogram>, zeek::BifFunc::Telemetry::__histogram_observe_native(zeek::Val*, double)::$_0>(zeek::Val*, char const*, zeek::BifFunc::Telemetry::__histogram_observe_native(zeek::Val*, double)::$_0) |
30 | | |
31 | | std::string_view sv(const zeek::String* str) noexcept |
32 | 3.96k | { |
33 | 3.96k | auto len = static_cast<size_t>(str->Len()); |
34 | 3.96k | return {reinterpret_cast<char*>(str->Bytes()), len}; |
35 | 3.96k | }; |
36 | | |
37 | | std::string_view sv(const zeek::StringVal* val) noexcept |
38 | 3.43k | { |
39 | 3.43k | return sv(val->AsString()); |
40 | 3.43k | }; |
41 | | |
42 | | std::vector<std::string_view> sv_vec(zeek::VectorVal* xs) |
43 | 726 | { |
44 | 726 | std::vector<std::string_view> result; |
45 | 726 | if ( xs ) |
46 | 1.25k | for ( unsigned index = 0; index < xs->Size(); ++index ) |
47 | 528 | if ( auto ptr = xs->ValAt(index) ) |
48 | 528 | if ( auto* str = ptr->AsString() ) |
49 | 528 | result.emplace_back(sv(str)); |
50 | 726 | return result; |
51 | 726 | } |
52 | | |
53 | | std::vector<zeek::telemetry::LabelView> sv_tbl(zeek::TableVal* xs) |
54 | 66 | { |
55 | 66 | std::vector<zeek::telemetry::LabelView> result; |
56 | 66 | if ( xs ) |
57 | 66 | { |
58 | 66 | for ( auto& val : *xs->Get() ) |
59 | 528 | { |
60 | 528 | auto val_ptr = val.value->GetVal(); |
61 | 528 | result.emplace_back(std::string_view{val.GetKey(), val.key_size}, |
62 | 528 | sv(val_ptr->AsStringVal())); |
63 | 528 | } |
64 | 66 | } |
65 | 66 | return result; |
66 | 66 | } |
67 | | |
68 | | bool labels_valid(std::span<const zeek::telemetry::LabelView> labels, |
69 | | std::span<const std::string> label_names) |
70 | 66 | { |
71 | 66 | auto key_in_label_names = [keys{label_names}](auto x) |
72 | 528 | { |
73 | 528 | return std::ranges::find(keys, x.first) != keys.end(); |
74 | 528 | }; |
75 | 66 | return labels.size() == label_names.size() |
76 | 66 | && std::ranges::all_of(labels, key_in_label_names); |
77 | 66 | } |
78 | | |
79 | | template <class IntOrDbl> |
80 | | auto to_std_vec(zeek::VectorVal* xs) |
81 | 66 | { |
82 | 66 | std::vector<IntOrDbl> result; |
83 | 66 | if( xs ) |
84 | 132 | for ( unsigned index = 0; index < xs->Size() ; ++index ) |
85 | 66 | { |
86 | | if constexpr (std::is_same_v<IntOrDbl, int64_t>) |
87 | | result.emplace_back(xs->ValAt(index)->AsInt()); |
88 | | else |
89 | 66 | result.emplace_back(xs->ValAt(index)->AsDouble()); |
90 | 66 | } |
91 | 66 | return result; |
92 | 66 | } |
93 | | |
94 | | template <class IntOrDbl> |
95 | | auto to_std_vec(zeek::Val* xs) |
96 | 66 | { |
97 | 66 | return to_std_vec<IntOrDbl>(xs->AsVectorVal()); |
98 | 66 | } |
99 | | |
100 | | } |
101 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_family_native(zeek::StringVal* prefix, zeek::StringVal* name, zeek::Val* labels, zeek::StringVal* helptext, zeek::StringVal* unit) |
102 | | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
103 | | |
104 | | |
105 | | #line 112 "/src/zeek/src/telemetry/telemetry_functions.bif" |
106 | 396 | { |
107 | 396 | #line 112 "/src/zeek/src/telemetry/telemetry_functions.bif" |
108 | | |
109 | 396 | auto lbl_vec = sv_vec(labels->AsVectorVal()); |
110 | 396 | auto hdl = telemetry_mgr->CounterFamily(sv(prefix), sv(name), lbl_vec, |
111 | 396 | sv(helptext), sv(unit)); |
112 | 396 | return zeek::make_intrusive<CounterMetricFamilyVal>(hdl); |
113 | 396 | } // end of BifFunc::Telemetry::__counter_family |
114 | | |
115 | | #line 117 "/src/zeek/src/telemetry/telemetry_functions.bif" |
116 | | |
117 | | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
118 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_family_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
119 | | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
120 | 396 | { |
121 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
122 | 396 | if ( BiF_ARGS->size() != 5 ) // NOLINT(readability-container-size-empty) |
123 | 0 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
124 | 0 | { |
125 | 0 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
126 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__counter_family() takes exactly 5 argument(s), got %lu", BiF_ARGS->size())); |
127 | 0 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
128 | 0 | return nullptr; |
129 | 0 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
130 | 0 | } |
131 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
132 | 396 | zeek::StringVal* prefix = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
133 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
134 | 396 | zeek::StringVal* name = (zeek::StringVal*) ((*BiF_ARGS)[1].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
135 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
136 | 396 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[2].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
137 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
138 | 396 | zeek::StringVal* helptext = (zeek::StringVal*) ((*BiF_ARGS)[3].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
139 | 396 | #line 107 "/src/zeek/src/telemetry/telemetry_functions.bif" |
140 | 396 | zeek::StringVal* unit = (zeek::StringVal*) ((*BiF_ARGS)[4].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
141 | 396 | #line 117 "/src/zeek/src/telemetry/telemetry_functions.bif" |
142 | 396 | return zeek::BifFunc::Telemetry::__counter_family_native(prefix, name, labels, helptext, unit); |
143 | 396 | #line 117 "/src/zeek/src/telemetry/telemetry_functions.bif" |
144 | 396 | } // end of shim for BifFunc::Telemetry::__counter_family |
145 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_metric_get_or_add_native(zeek::Val* family, zeek::Val* labels) |
146 | | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
147 | | |
148 | | |
149 | | #line 121 "/src/zeek/src/telemetry/telemetry_functions.bif" |
150 | 0 | { |
151 | 0 | #line 121 "/src/zeek/src/telemetry/telemetry_functions.bif" |
152 | |
|
153 | 0 | using ResultType = zeek::IntrusivePtr<CounterMetricFamilyVal>; |
154 | 0 | if ( auto ptr = dynamic_cast<zeek::CounterMetricFamilyVal*>(family) ) |
155 | 0 | { |
156 | 0 | auto hdl = ptr->GetHandle(); |
157 | 0 | auto lbl_map = sv_tbl(labels->AsTableVal()); |
158 | 0 | if ( labels_valid(lbl_map, hdl->LabelNames()) ) |
159 | 0 | { |
160 | 0 | auto res = hdl->GetOrAdd(lbl_map); |
161 | 0 | return zeek::make_intrusive<CounterMetricVal>(res); |
162 | 0 | } |
163 | 0 | else |
164 | 0 | { |
165 | 0 | zeek::reporter->Error("Telemetry::counter_metric_get_or_add: invalid label dimensions."); |
166 | 0 | return ResultType{nullptr}; |
167 | 0 | } |
168 | 0 | } |
169 | 0 | else |
170 | 0 | { |
171 | 0 | zeek::reporter->Error("Telemetry::counter_metric_get_or_add: invalid handle."); |
172 | 0 | return ResultType{nullptr}; |
173 | 0 | } |
174 | 0 | } // end of BifFunc::Telemetry::__counter_metric_get_or_add |
175 | | |
176 | | #line 143 "/src/zeek/src/telemetry/telemetry_functions.bif" |
177 | | |
178 | | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
179 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_metric_get_or_add_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
180 | | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
181 | 0 | { |
182 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
183 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
184 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
185 | 0 | { |
186 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
187 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__counter_metric_get_or_add() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
188 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
189 | 0 | return nullptr; |
190 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
191 | 0 | } |
192 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
193 | 0 | zeek::Val* family = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
194 | 0 | #line 119 "/src/zeek/src/telemetry/telemetry_functions.bif" |
195 | 0 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[1].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
196 | 0 | #line 143 "/src/zeek/src/telemetry/telemetry_functions.bif" |
197 | 0 | return zeek::BifFunc::Telemetry::__counter_metric_get_or_add_native(family, labels); |
198 | 0 | #line 143 "/src/zeek/src/telemetry/telemetry_functions.bif" |
199 | 0 | } // end of shim for BifFunc::Telemetry::__counter_metric_get_or_add |
200 | | bool zeek::BifFunc::Telemetry::__counter_inc_native(zeek::Val* val, double amount) |
201 | | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
202 | | |
203 | | |
204 | | #line 147 "/src/zeek/src/telemetry/telemetry_functions.bif" |
205 | 0 | { |
206 | 0 | #line 147 "/src/zeek/src/telemetry/telemetry_functions.bif" |
207 | |
|
208 | 0 | return with<CounterMetricVal>(val, "Telemetry::counter_inc: invalid handle.", [amount](const auto& hdl) { hdl->Inc(amount); }); |
209 | 0 | } // end of BifFunc::Telemetry::__counter_inc |
210 | | |
211 | | #line 149 "/src/zeek/src/telemetry/telemetry_functions.bif" |
212 | | |
213 | | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
214 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_inc_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
215 | | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
216 | 0 | { |
217 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
218 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
219 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
220 | 0 | { |
221 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
222 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__counter_inc() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
223 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
224 | 0 | return nullptr; |
225 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
226 | 0 | } |
227 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
228 | 0 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
229 | 0 | #line 145 "/src/zeek/src/telemetry/telemetry_functions.bif" |
230 | 0 | double amount = (double) ((*BiF_ARGS)[1].get()->AsDouble()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
231 | 0 | #line 149 "/src/zeek/src/telemetry/telemetry_functions.bif" |
232 | 0 | return zeek::val_mgr->Bool(zeek::BifFunc::Telemetry::__counter_inc_native(val, amount)); |
233 | 0 | #line 149 "/src/zeek/src/telemetry/telemetry_functions.bif" |
234 | 0 | } // end of shim for BifFunc::Telemetry::__counter_inc |
235 | | double zeek::BifFunc::Telemetry::__counter_value_native(zeek::Val* val) |
236 | | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
237 | | |
238 | | |
239 | | #line 152 "/src/zeek/src/telemetry/telemetry_functions.bif" |
240 | 0 | { |
241 | 0 | #line 152 "/src/zeek/src/telemetry/telemetry_functions.bif" |
242 | |
|
243 | 0 | if ( auto ptr = dynamic_cast<zeek::CounterMetricVal*>(val) ) |
244 | 0 | { |
245 | 0 | return ptr->GetHandle()->Value(); |
246 | 0 | } |
247 | 0 | else |
248 | 0 | { |
249 | 0 | zeek::reporter->Error("Telemetry::counter_value: invalid handle."); |
250 | 0 | return 0; |
251 | 0 | } |
252 | 0 | } // end of BifFunc::Telemetry::__counter_value |
253 | | |
254 | | #line 162 "/src/zeek/src/telemetry/telemetry_functions.bif" |
255 | | |
256 | | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
257 | | zeek::ValPtr zeek::BifFunc::Telemetry::__counter_value_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
258 | | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
259 | 0 | { |
260 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
261 | 0 | if ( BiF_ARGS->size() != 1 ) // NOLINT(readability-container-size-empty) |
262 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
263 | 0 | { |
264 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
265 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__counter_value() takes exactly 1 argument(s), got %lu", BiF_ARGS->size())); |
266 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
267 | 0 | return nullptr; |
268 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
269 | 0 | } |
270 | 0 | #line 151 "/src/zeek/src/telemetry/telemetry_functions.bif" |
271 | 0 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
272 | 0 | #line 162 "/src/zeek/src/telemetry/telemetry_functions.bif" |
273 | 0 | return zeek::make_intrusive<zeek::DoubleVal>(zeek::BifFunc::Telemetry::__counter_value_native(val)); |
274 | 0 | #line 162 "/src/zeek/src/telemetry/telemetry_functions.bif" |
275 | 0 | } // end of shim for BifFunc::Telemetry::__counter_value |
276 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_family_native(zeek::StringVal* prefix, zeek::StringVal* name, zeek::Val* labels, zeek::StringVal* helptext, zeek::StringVal* unit) |
277 | | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
278 | | |
279 | | |
280 | | #line 171 "/src/zeek/src/telemetry/telemetry_functions.bif" |
281 | 264 | { |
282 | 264 | #line 171 "/src/zeek/src/telemetry/telemetry_functions.bif" |
283 | | |
284 | 264 | auto lbl_vec = sv_vec(labels->AsVectorVal()); |
285 | 264 | auto hdl = telemetry_mgr->GaugeFamily(sv(prefix), sv(name), lbl_vec, |
286 | 264 | sv(helptext), sv(unit)); |
287 | 264 | return zeek::make_intrusive<GaugeMetricFamilyVal>(hdl); |
288 | 264 | } // end of BifFunc::Telemetry::__gauge_family |
289 | | |
290 | | #line 176 "/src/zeek/src/telemetry/telemetry_functions.bif" |
291 | | |
292 | | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
293 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_family_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
294 | | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
295 | 264 | { |
296 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
297 | 264 | if ( BiF_ARGS->size() != 5 ) // NOLINT(readability-container-size-empty) |
298 | 0 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
299 | 0 | { |
300 | 0 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
301 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__gauge_family() takes exactly 5 argument(s), got %lu", BiF_ARGS->size())); |
302 | 0 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
303 | 0 | return nullptr; |
304 | 0 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
305 | 0 | } |
306 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
307 | 264 | zeek::StringVal* prefix = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
308 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
309 | 264 | zeek::StringVal* name = (zeek::StringVal*) ((*BiF_ARGS)[1].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
310 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
311 | 264 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[2].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
312 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
313 | 264 | zeek::StringVal* helptext = (zeek::StringVal*) ((*BiF_ARGS)[3].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
314 | 264 | #line 166 "/src/zeek/src/telemetry/telemetry_functions.bif" |
315 | 264 | zeek::StringVal* unit = (zeek::StringVal*) ((*BiF_ARGS)[4].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
316 | 264 | #line 176 "/src/zeek/src/telemetry/telemetry_functions.bif" |
317 | 264 | return zeek::BifFunc::Telemetry::__gauge_family_native(prefix, name, labels, helptext, unit); |
318 | 264 | #line 176 "/src/zeek/src/telemetry/telemetry_functions.bif" |
319 | 264 | } // end of shim for BifFunc::Telemetry::__gauge_family |
320 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_metric_get_or_add_native(zeek::Val* family, zeek::Val* labels) |
321 | | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
322 | | |
323 | | |
324 | | #line 180 "/src/zeek/src/telemetry/telemetry_functions.bif" |
325 | 66 | { |
326 | 66 | #line 180 "/src/zeek/src/telemetry/telemetry_functions.bif" |
327 | | |
328 | 66 | using ResultType = zeek::IntrusivePtr<GaugeMetricFamilyVal>; |
329 | 66 | if ( auto ptr = dynamic_cast<zeek::GaugeMetricFamilyVal*>(family) ) |
330 | 66 | { |
331 | 66 | auto hdl = ptr->GetHandle(); |
332 | 66 | auto lbl_map = sv_tbl(labels->AsTableVal()); |
333 | 66 | if ( labels_valid(lbl_map, hdl->LabelNames()) ) |
334 | 66 | { |
335 | 66 | auto res = hdl->GetOrAdd(lbl_map); |
336 | 66 | return zeek::make_intrusive<GaugeMetricVal>(res); |
337 | 66 | } |
338 | 0 | else |
339 | 0 | { |
340 | 0 | zeek::reporter->Error("Telemetry::gauge_metric_get_or_add: invalid label dimensions."); |
341 | 0 | return ResultType{nullptr}; |
342 | 0 | } |
343 | 66 | } |
344 | 0 | else |
345 | 0 | { |
346 | 0 | zeek::reporter->Error("Telemetry::gauge_metric_get_or_add: invalid handle."); |
347 | 0 | return ResultType{nullptr}; |
348 | 0 | } |
349 | 66 | } // end of BifFunc::Telemetry::__gauge_metric_get_or_add |
350 | | |
351 | | #line 202 "/src/zeek/src/telemetry/telemetry_functions.bif" |
352 | | |
353 | | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
354 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_metric_get_or_add_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
355 | | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
356 | 66 | { |
357 | 66 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
358 | 66 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
359 | 0 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
360 | 0 | { |
361 | 0 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
362 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__gauge_metric_get_or_add() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
363 | 0 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
364 | 0 | return nullptr; |
365 | 0 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
366 | 0 | } |
367 | 66 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
368 | 66 | zeek::Val* family = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
369 | 66 | #line 178 "/src/zeek/src/telemetry/telemetry_functions.bif" |
370 | 66 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[1].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
371 | 66 | #line 202 "/src/zeek/src/telemetry/telemetry_functions.bif" |
372 | 66 | return zeek::BifFunc::Telemetry::__gauge_metric_get_or_add_native(family, labels); |
373 | 66 | #line 202 "/src/zeek/src/telemetry/telemetry_functions.bif" |
374 | 66 | } // end of shim for BifFunc::Telemetry::__gauge_metric_get_or_add |
375 | | bool zeek::BifFunc::Telemetry::__gauge_inc_native(zeek::Val* val, double amount) |
376 | | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
377 | | |
378 | | |
379 | | #line 206 "/src/zeek/src/telemetry/telemetry_functions.bif" |
380 | 66 | { |
381 | 66 | #line 206 "/src/zeek/src/telemetry/telemetry_functions.bif" |
382 | | |
383 | 66 | return with<GaugeMetricVal>(val, "Telemetry::gauge_inc: invalid handle.", [amount](const auto& hdl) { hdl->Inc(amount); }); |
384 | 66 | } // end of BifFunc::Telemetry::__gauge_inc |
385 | | |
386 | | #line 208 "/src/zeek/src/telemetry/telemetry_functions.bif" |
387 | | |
388 | | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
389 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_inc_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
390 | | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
391 | 66 | { |
392 | 66 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
393 | 66 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
394 | 0 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
395 | 0 | { |
396 | 0 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
397 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__gauge_inc() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
398 | 0 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
399 | 0 | return nullptr; |
400 | 0 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
401 | 0 | } |
402 | 66 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
403 | 66 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
404 | 66 | #line 204 "/src/zeek/src/telemetry/telemetry_functions.bif" |
405 | 66 | double amount = (double) ((*BiF_ARGS)[1].get()->AsDouble()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
406 | 66 | #line 208 "/src/zeek/src/telemetry/telemetry_functions.bif" |
407 | 66 | return zeek::val_mgr->Bool(zeek::BifFunc::Telemetry::__gauge_inc_native(val, amount)); |
408 | 66 | #line 208 "/src/zeek/src/telemetry/telemetry_functions.bif" |
409 | 66 | } // end of shim for BifFunc::Telemetry::__gauge_inc |
410 | | bool zeek::BifFunc::Telemetry::__gauge_dec_native(zeek::Val* val, double amount) |
411 | | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
412 | | |
413 | | |
414 | | #line 212 "/src/zeek/src/telemetry/telemetry_functions.bif" |
415 | 0 | { |
416 | 0 | #line 212 "/src/zeek/src/telemetry/telemetry_functions.bif" |
417 | |
|
418 | 0 | return with<GaugeMetricVal>(val, "Telemetry::gauge_dec: invalid handle.", [amount](const auto& hdl) { hdl->Dec(amount); }); |
419 | 0 | } // end of BifFunc::Telemetry::__gauge_dec |
420 | | |
421 | | #line 214 "/src/zeek/src/telemetry/telemetry_functions.bif" |
422 | | |
423 | | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
424 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_dec_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
425 | | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
426 | 0 | { |
427 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
428 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
429 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
430 | 0 | { |
431 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
432 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__gauge_dec() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
433 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
434 | 0 | return nullptr; |
435 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
436 | 0 | } |
437 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
438 | 0 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
439 | 0 | #line 210 "/src/zeek/src/telemetry/telemetry_functions.bif" |
440 | 0 | double amount = (double) ((*BiF_ARGS)[1].get()->AsDouble()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
441 | 0 | #line 214 "/src/zeek/src/telemetry/telemetry_functions.bif" |
442 | 0 | return zeek::val_mgr->Bool(zeek::BifFunc::Telemetry::__gauge_dec_native(val, amount)); |
443 | 0 | #line 214 "/src/zeek/src/telemetry/telemetry_functions.bif" |
444 | 0 | } // end of shim for BifFunc::Telemetry::__gauge_dec |
445 | | double zeek::BifFunc::Telemetry::__gauge_value_native(zeek::Val* val) |
446 | | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
447 | | |
448 | | |
449 | | #line 217 "/src/zeek/src/telemetry/telemetry_functions.bif" |
450 | 66 | { |
451 | 66 | #line 217 "/src/zeek/src/telemetry/telemetry_functions.bif" |
452 | | |
453 | 66 | if ( auto ptr = dynamic_cast<zeek::GaugeMetricVal*>(val) ) |
454 | 66 | { |
455 | 66 | return ptr->GetHandle()->Value(); |
456 | 66 | } |
457 | 0 | else |
458 | 0 | { |
459 | 0 | zeek::reporter->Error("Telemetry::gauge_value: invalid handle."); |
460 | 0 | return 0.0; |
461 | 0 | } |
462 | 66 | } // end of BifFunc::Telemetry::__gauge_value |
463 | | |
464 | | #line 227 "/src/zeek/src/telemetry/telemetry_functions.bif" |
465 | | |
466 | | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
467 | | zeek::ValPtr zeek::BifFunc::Telemetry::__gauge_value_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
468 | | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
469 | 66 | { |
470 | 66 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
471 | 66 | if ( BiF_ARGS->size() != 1 ) // NOLINT(readability-container-size-empty) |
472 | 0 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
473 | 0 | { |
474 | 0 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
475 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__gauge_value() takes exactly 1 argument(s), got %lu", BiF_ARGS->size())); |
476 | 0 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
477 | 0 | return nullptr; |
478 | 0 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
479 | 0 | } |
480 | 66 | #line 216 "/src/zeek/src/telemetry/telemetry_functions.bif" |
481 | 66 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
482 | 66 | #line 227 "/src/zeek/src/telemetry/telemetry_functions.bif" |
483 | 66 | return zeek::make_intrusive<zeek::DoubleVal>(zeek::BifFunc::Telemetry::__gauge_value_native(val)); |
484 | 66 | #line 227 "/src/zeek/src/telemetry/telemetry_functions.bif" |
485 | 66 | } // end of shim for BifFunc::Telemetry::__gauge_value |
486 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_family_native(zeek::StringVal* prefix, zeek::StringVal* name, zeek::Val* labels, zeek::Val* bounds, zeek::StringVal* helptext, zeek::StringVal* unit) |
487 | | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
488 | | |
489 | | |
490 | | #line 237 "/src/zeek/src/telemetry/telemetry_functions.bif" |
491 | 66 | { |
492 | 66 | #line 237 "/src/zeek/src/telemetry/telemetry_functions.bif" |
493 | | |
494 | 66 | auto lbl_vec = sv_vec(labels->AsVectorVal()); |
495 | 66 | auto std_bounds = to_std_vec<double>(bounds); |
496 | 66 | auto hdl = telemetry_mgr->HistogramFamily(sv(prefix), sv(name), lbl_vec, |
497 | 66 | std_bounds, sv(helptext), |
498 | 66 | sv(unit)); |
499 | 66 | return zeek::make_intrusive<HistogramMetricFamilyVal>(hdl); |
500 | 66 | } // end of BifFunc::Telemetry::__histogram_family |
501 | | |
502 | | #line 244 "/src/zeek/src/telemetry/telemetry_functions.bif" |
503 | | |
504 | | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
505 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_family_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
506 | | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
507 | 66 | { |
508 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
509 | 66 | if ( BiF_ARGS->size() != 6 ) // NOLINT(readability-container-size-empty) |
510 | 0 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
511 | 0 | { |
512 | 0 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
513 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__histogram_family() takes exactly 6 argument(s), got %lu", BiF_ARGS->size())); |
514 | 0 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
515 | 0 | return nullptr; |
516 | 0 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
517 | 0 | } |
518 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
519 | 66 | zeek::StringVal* prefix = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
520 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
521 | 66 | zeek::StringVal* name = (zeek::StringVal*) ((*BiF_ARGS)[1].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
522 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
523 | 66 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[2].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
524 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
525 | 66 | zeek::Val* bounds = (zeek::Val*) ((*BiF_ARGS)[3].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
526 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
527 | 66 | zeek::StringVal* helptext = (zeek::StringVal*) ((*BiF_ARGS)[4].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
528 | 66 | #line 231 "/src/zeek/src/telemetry/telemetry_functions.bif" |
529 | 66 | zeek::StringVal* unit = (zeek::StringVal*) ((*BiF_ARGS)[5].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
530 | 66 | #line 244 "/src/zeek/src/telemetry/telemetry_functions.bif" |
531 | 66 | return zeek::BifFunc::Telemetry::__histogram_family_native(prefix, name, labels, bounds, helptext, unit); |
532 | 66 | #line 244 "/src/zeek/src/telemetry/telemetry_functions.bif" |
533 | 66 | } // end of shim for BifFunc::Telemetry::__histogram_family |
534 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_metric_get_or_add_native(zeek::Val* family, zeek::Val* labels) |
535 | | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
536 | | |
537 | | |
538 | | #line 248 "/src/zeek/src/telemetry/telemetry_functions.bif" |
539 | 0 | { |
540 | 0 | #line 248 "/src/zeek/src/telemetry/telemetry_functions.bif" |
541 | |
|
542 | 0 | using ResultType = zeek::IntrusivePtr<HistogramMetricFamilyVal>; |
543 | 0 | if ( auto ptr = dynamic_cast<zeek::HistogramMetricFamilyVal*>(family) ) |
544 | 0 | { |
545 | 0 | auto hdl = ptr->GetHandle(); |
546 | 0 | auto lbl_map = sv_tbl(labels->AsTableVal()); |
547 | 0 | if ( labels_valid(lbl_map, hdl->LabelNames()) ) |
548 | 0 | { |
549 | 0 | auto res = hdl->GetOrAdd(lbl_map); |
550 | 0 | return zeek::make_intrusive<HistogramMetricVal>(res); |
551 | 0 | } |
552 | 0 | else |
553 | 0 | { |
554 | 0 | zeek::reporter->Error("Telemetry::histogram_metric_get_or_add: invalid label dimensions."); |
555 | 0 | return ResultType{nullptr}; |
556 | 0 | } |
557 | 0 | } |
558 | 0 | else |
559 | 0 | { |
560 | 0 | zeek::reporter->Error("Telemetry::histogram_metric_get_or_add: invalid handle."); |
561 | 0 | return ResultType{nullptr}; |
562 | 0 | } |
563 | 0 | } // end of BifFunc::Telemetry::__histogram_metric_get_or_add |
564 | | |
565 | | #line 270 "/src/zeek/src/telemetry/telemetry_functions.bif" |
566 | | |
567 | | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
568 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_metric_get_or_add_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
569 | | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
570 | 0 | { |
571 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
572 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
573 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
574 | 0 | { |
575 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
576 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__histogram_metric_get_or_add() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
577 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
578 | 0 | return nullptr; |
579 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
580 | 0 | } |
581 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
582 | 0 | zeek::Val* family = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
583 | 0 | #line 246 "/src/zeek/src/telemetry/telemetry_functions.bif" |
584 | 0 | zeek::Val* labels = (zeek::Val*) ((*BiF_ARGS)[1].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
585 | 0 | #line 270 "/src/zeek/src/telemetry/telemetry_functions.bif" |
586 | 0 | return zeek::BifFunc::Telemetry::__histogram_metric_get_or_add_native(family, labels); |
587 | 0 | #line 270 "/src/zeek/src/telemetry/telemetry_functions.bif" |
588 | 0 | } // end of shim for BifFunc::Telemetry::__histogram_metric_get_or_add |
589 | | bool zeek::BifFunc::Telemetry::__histogram_observe_native(zeek::Val* val, double measurement) |
590 | | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
591 | | |
592 | | |
593 | | #line 274 "/src/zeek/src/telemetry/telemetry_functions.bif" |
594 | 0 | { |
595 | 0 | #line 274 "/src/zeek/src/telemetry/telemetry_functions.bif" |
596 | |
|
597 | 0 | return with<HistogramMetricVal>(val, "Telemetry::histogram_inc: invalid handle.", |
598 | 0 | [measurement](const auto& hdl) { hdl->Observe(measurement); }); |
599 | 0 | } // end of BifFunc::Telemetry::__histogram_observe |
600 | | |
601 | | #line 277 "/src/zeek/src/telemetry/telemetry_functions.bif" |
602 | | |
603 | | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
604 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_observe_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
605 | | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
606 | 0 | { |
607 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
608 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
609 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
610 | 0 | { |
611 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
612 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__histogram_observe() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
613 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
614 | 0 | return nullptr; |
615 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
616 | 0 | } |
617 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
618 | 0 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
619 | 0 | #line 272 "/src/zeek/src/telemetry/telemetry_functions.bif" |
620 | 0 | double measurement = (double) ((*BiF_ARGS)[1].get()->AsDouble()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
621 | 0 | #line 277 "/src/zeek/src/telemetry/telemetry_functions.bif" |
622 | 0 | return zeek::val_mgr->Bool(zeek::BifFunc::Telemetry::__histogram_observe_native(val, measurement)); |
623 | 0 | #line 277 "/src/zeek/src/telemetry/telemetry_functions.bif" |
624 | 0 | } // end of shim for BifFunc::Telemetry::__histogram_observe |
625 | | double zeek::BifFunc::Telemetry::__histogram_sum_native(zeek::Val* val) |
626 | | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
627 | | |
628 | | |
629 | | #line 280 "/src/zeek/src/telemetry/telemetry_functions.bif" |
630 | 0 | { |
631 | 0 | #line 280 "/src/zeek/src/telemetry/telemetry_functions.bif" |
632 | |
|
633 | 0 | if ( auto ptr = dynamic_cast<zeek::HistogramMetricVal*>(val) ) |
634 | 0 | { |
635 | 0 | return ptr->GetHandle()->Sum(); |
636 | 0 | } |
637 | 0 | else |
638 | 0 | { |
639 | 0 | zeek::reporter->Error("Telemetry::histogram_sum: invalid handle."); |
640 | 0 | return 0.0; |
641 | 0 | } |
642 | 0 | } // end of BifFunc::Telemetry::__histogram_sum |
643 | | |
644 | | #line 290 "/src/zeek/src/telemetry/telemetry_functions.bif" |
645 | | |
646 | | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
647 | | zeek::ValPtr zeek::BifFunc::Telemetry::__histogram_sum_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
648 | | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
649 | 0 | { |
650 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
651 | 0 | if ( BiF_ARGS->size() != 1 ) // NOLINT(readability-container-size-empty) |
652 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
653 | 0 | { |
654 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
655 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__histogram_sum() takes exactly 1 argument(s), got %lu", BiF_ARGS->size())); |
656 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
657 | 0 | return nullptr; |
658 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
659 | 0 | } |
660 | 0 | #line 279 "/src/zeek/src/telemetry/telemetry_functions.bif" |
661 | 0 | zeek::Val* val = (zeek::Val*) ((*BiF_ARGS)[0].get()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
662 | 0 | #line 290 "/src/zeek/src/telemetry/telemetry_functions.bif" |
663 | 0 | return zeek::make_intrusive<zeek::DoubleVal>(zeek::BifFunc::Telemetry::__histogram_sum_native(val)); |
664 | 0 | #line 290 "/src/zeek/src/telemetry/telemetry_functions.bif" |
665 | 0 | } // end of shim for BifFunc::Telemetry::__histogram_sum |
666 | | zeek::ValPtr zeek::BifFunc::Telemetry::__collect_metrics_native(zeek::StringVal* prefix, zeek::StringVal* name) |
667 | | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
668 | | |
669 | | |
670 | | #line 293 "/src/zeek/src/telemetry/telemetry_functions.bif" |
671 | 0 | { |
672 | 0 | #line 293 "/src/zeek/src/telemetry/telemetry_functions.bif" |
673 | |
|
674 | 0 | return telemetry_mgr->CollectMetrics(sv(prefix), sv(name)); |
675 | 0 | } // end of BifFunc::Telemetry::__collect_metrics |
676 | | |
677 | | #line 295 "/src/zeek/src/telemetry/telemetry_functions.bif" |
678 | | |
679 | | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
680 | | zeek::ValPtr zeek::BifFunc::Telemetry::__collect_metrics_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
681 | | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
682 | 0 | { |
683 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
684 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
685 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
686 | 0 | { |
687 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
688 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__collect_metrics() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
689 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
690 | 0 | return nullptr; |
691 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
692 | 0 | } |
693 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
694 | 0 | zeek::StringVal* prefix = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
695 | 0 | #line 292 "/src/zeek/src/telemetry/telemetry_functions.bif" |
696 | 0 | zeek::StringVal* name = (zeek::StringVal*) ((*BiF_ARGS)[1].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
697 | 0 | #line 295 "/src/zeek/src/telemetry/telemetry_functions.bif" |
698 | 0 | return zeek::BifFunc::Telemetry::__collect_metrics_native(prefix, name); |
699 | 0 | #line 295 "/src/zeek/src/telemetry/telemetry_functions.bif" |
700 | 0 | } // end of shim for BifFunc::Telemetry::__collect_metrics |
701 | | zeek::ValPtr zeek::BifFunc::Telemetry::__collect_histogram_metrics_native(zeek::StringVal* prefix, zeek::StringVal* name) |
702 | | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
703 | | |
704 | | |
705 | | #line 298 "/src/zeek/src/telemetry/telemetry_functions.bif" |
706 | 0 | { |
707 | 0 | #line 298 "/src/zeek/src/telemetry/telemetry_functions.bif" |
708 | |
|
709 | 0 | return telemetry_mgr->CollectHistogramMetrics(sv(prefix), sv(name)); |
710 | 0 | } // end of BifFunc::Telemetry::__collect_histogram_metrics |
711 | | |
712 | | #line 300 "/src/zeek/src/telemetry/telemetry_functions.bif" |
713 | | |
714 | | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
715 | | zeek::ValPtr zeek::BifFunc::Telemetry::__collect_histogram_metrics_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
716 | | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
717 | 0 | { |
718 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
719 | 0 | if ( BiF_ARGS->size() != 2 ) // NOLINT(readability-container-size-empty) |
720 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
721 | 0 | { |
722 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
723 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::__collect_histogram_metrics() takes exactly 2 argument(s), got %lu", BiF_ARGS->size())); |
724 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
725 | 0 | return nullptr; |
726 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
727 | 0 | } |
728 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
729 | 0 | zeek::StringVal* prefix = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
730 | 0 | #line 297 "/src/zeek/src/telemetry/telemetry_functions.bif" |
731 | 0 | zeek::StringVal* name = (zeek::StringVal*) ((*BiF_ARGS)[1].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
732 | 0 | #line 300 "/src/zeek/src/telemetry/telemetry_functions.bif" |
733 | 0 | return zeek::BifFunc::Telemetry::__collect_histogram_metrics_native(prefix, name); |
734 | 0 | #line 300 "/src/zeek/src/telemetry/telemetry_functions.bif" |
735 | 0 | } // end of shim for BifFunc::Telemetry::__collect_histogram_metrics |
736 | | bool zeek::BifFunc::Telemetry::listen_prometheus_native(zeek::StringVal* listen_addr, zeek::PortVal* metrics_port, int expose_services_json) |
737 | | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
738 | | |
739 | | |
740 | | #line 303 "/src/zeek/src/telemetry/telemetry_functions.bif" |
741 | 0 | { |
742 | 0 | #line 303 "/src/zeek/src/telemetry/telemetry_functions.bif" |
743 | |
|
744 | 0 | telemetry_mgr->ListenPrometheus(sv(listen_addr), metrics_port->Port(), expose_services_json); |
745 | 0 | return true; |
746 | 0 | } // end of BifFunc::Telemetry::listen_prometheus |
747 | | |
748 | | #line 306 "/src/zeek/src/telemetry/telemetry_functions.bif" |
749 | | |
750 | | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
751 | | zeek::ValPtr zeek::BifFunc::Telemetry::listen_prometheus_bif(zeek::detail::Frame* frame, const zeek::Args* BiF_ARGS) |
752 | | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
753 | 0 | { |
754 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
755 | 0 | if ( BiF_ARGS->size() != 3 ) // NOLINT(readability-container-size-empty) |
756 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
757 | 0 | { |
758 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
759 | 0 | zeek::emit_builtin_error(zeek::util::fmt("Telemetry::listen_prometheus() takes exactly 3 argument(s), got %lu", BiF_ARGS->size())); |
760 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
761 | 0 | return nullptr; |
762 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
763 | 0 | } |
764 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
765 | 0 | zeek::StringVal* listen_addr = (zeek::StringVal*) ((*BiF_ARGS)[0].get()->AsStringVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
766 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
767 | 0 | zeek::PortVal* metrics_port = (zeek::PortVal*) ((*BiF_ARGS)[1].get()->AsPortVal()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
768 | 0 | #line 302 "/src/zeek/src/telemetry/telemetry_functions.bif" |
769 | 0 | int expose_services_json = (int) ((*BiF_ARGS)[2].get()->AsBool()); // NOLINT(cppcoreguidelines-pro-type-cstyle-cast,modernize-avoid-c-style-cast) |
770 | 0 | #line 306 "/src/zeek/src/telemetry/telemetry_functions.bif" |
771 | 0 | return zeek::val_mgr->Bool(zeek::BifFunc::Telemetry::listen_prometheus_native(listen_addr, metrics_port, expose_services_json)); |
772 | 0 | #line 306 "/src/zeek/src/telemetry/telemetry_functions.bif" |
773 | 0 | } // end of shim for BifFunc::Telemetry::listen_prometheus |