Coverage Report

Created: 2026-09-21 06:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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