fluent-plugin-juniper-telemetry_tech-mocha 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/cpu_memory_utilization.pb.rb +53 -0
- data/lib/fabric.pb.rb +85 -0
- data/lib/firewall.pb.rb +83 -0
- data/lib/fluent/plugin/parser_juniper_analyticsd.rb +83 -0
- data/lib/fluent/plugin/parser_juniper_jti.rb +1145 -0
- data/lib/fluent/plugin/parser_juniper_na.rb +147 -0
- data/lib/google/protobuf/descriptor.pb.rb +290 -0
- data/lib/inline_jflow.pb.rb +117 -0
- data/lib/juniper_telemetry_lib.rb +114 -0
- data/lib/logical_port.pb.rb +98 -0
- data/lib/lsp_mon.pb.rb +115 -0
- data/lib/lsp_stats.pb.rb +46 -0
- data/lib/npu_memory_utilization.pb.rb +59 -0
- data/lib/npu_utilization.pb.rb +63 -0
- data/lib/optics.pb.rb +93 -0
- data/lib/packet_stats.pb.rb +56 -0
- data/lib/pbj.pb.rb +71 -0
- data/lib/port.pb.rb +105 -0
- data/lib/port_exp.pb.rb +41 -0
- data/lib/qmon.pb.rb +69 -0
- data/lib/telemetry_top.pb.rb +59 -0
- metadata +109 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
module Fluent
|
2
|
+
class TextParser
|
3
|
+
class JuniperNaParser < Parser
|
4
|
+
|
5
|
+
Plugin.register_parser("juniper_na", self)
|
6
|
+
|
7
|
+
config_param :output_format, :string, :default => 'structured'
|
8
|
+
|
9
|
+
# This method is called after config_params have read configuration parameters
|
10
|
+
def configure(conf)
|
11
|
+
super
|
12
|
+
|
13
|
+
## Check if "output_format" has a valid value
|
14
|
+
unless @output_format.to_s == "structured" ||
|
15
|
+
@output_format.to_s == "flat" ||
|
16
|
+
@output_format.to_s == "statsd"
|
17
|
+
|
18
|
+
raise ConfigError, "output_format value '#{@output_format}' is not valid. Must be : structured, flat or statsd"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
# This is the main method. The input "text" is the unit of data to be parsed.
|
22
|
+
# If this is the in_tail plugin, it would be a line. If this is for in_syslog,
|
23
|
+
# it is a single syslog message.
|
24
|
+
def parse(text)
|
25
|
+
|
26
|
+
resources = JSON.parse(text)
|
27
|
+
time = Engine.now
|
28
|
+
|
29
|
+
resources.each do |resource|
|
30
|
+
resource["Resources"].each do |data|
|
31
|
+
name = data["Res_ID"]
|
32
|
+
|
33
|
+
name_h = Hash.new
|
34
|
+
type = ''
|
35
|
+
if output_format.to_s == 'flat' ||
|
36
|
+
output_format.to_s == 'statsd'
|
37
|
+
name_gr = name_flat(name)
|
38
|
+
|
39
|
+
elsif output_format.to_s == 'structured'
|
40
|
+
name_h = name_hash(name)
|
41
|
+
type = name_h['type']
|
42
|
+
|
43
|
+
else
|
44
|
+
$log.warn "Output_format '#{output_format.to_s}' not supported."
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
## Extract data
|
49
|
+
## First check if the value is a hash or not
|
50
|
+
##
|
51
|
+
data["Data"].each do |key, value|
|
52
|
+
if value.is_a?(Hash)
|
53
|
+
|
54
|
+
## If data is within a Hash, extract all values and construct new keys
|
55
|
+
data["Data"][key].each do |key2, value2|
|
56
|
+
sub_type = key + "." + key2
|
57
|
+
|
58
|
+
record = {}
|
59
|
+
if output_format.to_s == 'flat'
|
60
|
+
full_name = "#{name_gr}.#{sub_type}"
|
61
|
+
record[full_name.downcase]= value2
|
62
|
+
|
63
|
+
elsif output_format.to_s == 'structured'
|
64
|
+
name_h['type'] = type + sub_type
|
65
|
+
record['value'] = value2
|
66
|
+
record.merge!(name_h)
|
67
|
+
|
68
|
+
elsif output_format.to_s == 'statsd'
|
69
|
+
full_name = "#{name_gr}.#{sub_type}"
|
70
|
+
record[:statsd_type] = 'gauge'
|
71
|
+
record[:statsd_key] = full_name.downcase
|
72
|
+
record[:statsd_gauge] = value2
|
73
|
+
else
|
74
|
+
$log.warn "Output_format '#{output_format.to_s}' not supported for #{sub_type}"
|
75
|
+
end
|
76
|
+
|
77
|
+
yield time, record
|
78
|
+
end
|
79
|
+
else
|
80
|
+
record = {}
|
81
|
+
sub_type = key
|
82
|
+
|
83
|
+
if output_format.to_s == 'flat'
|
84
|
+
full_name = "#{name_gr}.#{sub_type}"
|
85
|
+
record[full_name.downcase]= value
|
86
|
+
|
87
|
+
elsif output_format.to_s == 'structured'
|
88
|
+
name_h['type'] = type + sub_type
|
89
|
+
record['value'] = value
|
90
|
+
record.merge!(name_h)
|
91
|
+
|
92
|
+
elsif output_format.to_s == 'statsd'
|
93
|
+
full_name = "#{name_gr}.#{sub_type}"
|
94
|
+
record[:statsd_type] = 'gauge'
|
95
|
+
record[:statsd_key] = full_name.downcase
|
96
|
+
record[:statsd_gauge] = value
|
97
|
+
else
|
98
|
+
$log.warn "Output_format '#{output_format.to_s}' not supported for #{sub_type}"
|
99
|
+
end
|
100
|
+
|
101
|
+
yield time, record
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def name_flat(res_id)
|
109
|
+
|
110
|
+
res_id.sub!(/^\//, "")
|
111
|
+
|
112
|
+
# ## Replace all / and : per .
|
113
|
+
res_id.gsub!('/', '.')
|
114
|
+
res_id.gsub!(':', '.')
|
115
|
+
|
116
|
+
return res_id
|
117
|
+
end
|
118
|
+
|
119
|
+
def name_hash(res_id)
|
120
|
+
|
121
|
+
# Parse Res_ID and convert to hash
|
122
|
+
# 1- Remove leading /
|
123
|
+
# 2- Split String by /
|
124
|
+
# 3- for each attribute split by : to extract key / value
|
125
|
+
|
126
|
+
res_id.sub!(/^\//, "")
|
127
|
+
attributes = res_id.split("/")
|
128
|
+
|
129
|
+
res_hash = Hash.new
|
130
|
+
type = ''
|
131
|
+
|
132
|
+
attributes.each do |attribute|
|
133
|
+
key_value = attribute.split(":")
|
134
|
+
res_hash[key_value[0].downcase] = key_value[1].downcase
|
135
|
+
|
136
|
+
if key_value[0].downcase != 'device'
|
137
|
+
type = type + key_value[0].downcase + '.'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
res_hash['type'] = type
|
142
|
+
|
143
|
+
return res_hash
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,290 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
5
|
+
#
|
6
|
+
require 'protobuf'
|
7
|
+
|
8
|
+
module Google
|
9
|
+
module Protobuf
|
10
|
+
::Protobuf::Optionable.inject(self) { ::Google::Protobuf::FileOptions }
|
11
|
+
|
12
|
+
##
|
13
|
+
# Message Classes
|
14
|
+
#
|
15
|
+
class FileDescriptorSet < ::Protobuf::Message; end
|
16
|
+
class FileDescriptorProto < ::Protobuf::Message; end
|
17
|
+
class DescriptorProto < ::Protobuf::Message
|
18
|
+
class ExtensionRange < ::Protobuf::Message; end
|
19
|
+
class ReservedRange < ::Protobuf::Message; end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
class FieldDescriptorProto < ::Protobuf::Message
|
24
|
+
class Type < ::Protobuf::Enum
|
25
|
+
define :TYPE_DOUBLE, 1
|
26
|
+
define :TYPE_FLOAT, 2
|
27
|
+
define :TYPE_INT64, 3
|
28
|
+
define :TYPE_UINT64, 4
|
29
|
+
define :TYPE_INT32, 5
|
30
|
+
define :TYPE_FIXED64, 6
|
31
|
+
define :TYPE_FIXED32, 7
|
32
|
+
define :TYPE_BOOL, 8
|
33
|
+
define :TYPE_STRING, 9
|
34
|
+
define :TYPE_GROUP, 10
|
35
|
+
define :TYPE_MESSAGE, 11
|
36
|
+
define :TYPE_BYTES, 12
|
37
|
+
define :TYPE_UINT32, 13
|
38
|
+
define :TYPE_ENUM, 14
|
39
|
+
define :TYPE_SFIXED32, 15
|
40
|
+
define :TYPE_SFIXED64, 16
|
41
|
+
define :TYPE_SINT32, 17
|
42
|
+
define :TYPE_SINT64, 18
|
43
|
+
end
|
44
|
+
|
45
|
+
class Label < ::Protobuf::Enum
|
46
|
+
define :LABEL_OPTIONAL, 1
|
47
|
+
define :LABEL_REQUIRED, 2
|
48
|
+
define :LABEL_REPEATED, 3
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
class OneofDescriptorProto < ::Protobuf::Message; end
|
54
|
+
class EnumDescriptorProto < ::Protobuf::Message; end
|
55
|
+
class EnumValueDescriptorProto < ::Protobuf::Message; end
|
56
|
+
class ServiceDescriptorProto < ::Protobuf::Message; end
|
57
|
+
class MethodDescriptorProto < ::Protobuf::Message; end
|
58
|
+
class FileOptions < ::Protobuf::Message
|
59
|
+
class OptimizeMode < ::Protobuf::Enum
|
60
|
+
define :SPEED, 1
|
61
|
+
define :CODE_SIZE, 2
|
62
|
+
define :LITE_RUNTIME, 3
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
class MessageOptions < ::Protobuf::Message; end
|
68
|
+
class FieldOptions < ::Protobuf::Message
|
69
|
+
class CType < ::Protobuf::Enum
|
70
|
+
define :STRING, 0
|
71
|
+
define :CORD, 1
|
72
|
+
define :STRING_PIECE, 2
|
73
|
+
end
|
74
|
+
|
75
|
+
class JSType < ::Protobuf::Enum
|
76
|
+
define :JS_NORMAL, 0
|
77
|
+
define :JS_STRING, 1
|
78
|
+
define :JS_NUMBER, 2
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
class EnumOptions < ::Protobuf::Message; end
|
84
|
+
class EnumValueOptions < ::Protobuf::Message; end
|
85
|
+
class ServiceOptions < ::Protobuf::Message; end
|
86
|
+
class MethodOptions < ::Protobuf::Message; end
|
87
|
+
class UninterpretedOption < ::Protobuf::Message
|
88
|
+
class NamePart < ::Protobuf::Message; end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
class SourceCodeInfo < ::Protobuf::Message
|
93
|
+
class Location < ::Protobuf::Message; end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
##
|
100
|
+
# Message Fields
|
101
|
+
#
|
102
|
+
class FileDescriptorSet
|
103
|
+
repeated ::Google::Protobuf::FileDescriptorProto, :file, 1
|
104
|
+
end
|
105
|
+
|
106
|
+
class FileDescriptorProto
|
107
|
+
optional :string, :name, 1
|
108
|
+
optional :string, :package, 2
|
109
|
+
repeated :string, :dependency, 3
|
110
|
+
repeated :int32, :public_dependency, 10
|
111
|
+
repeated :int32, :weak_dependency, 11
|
112
|
+
repeated ::Google::Protobuf::DescriptorProto, :message_type, 4
|
113
|
+
repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 5
|
114
|
+
repeated ::Google::Protobuf::ServiceDescriptorProto, :service, 6
|
115
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 7
|
116
|
+
optional ::Google::Protobuf::FileOptions, :options, 8
|
117
|
+
optional ::Google::Protobuf::SourceCodeInfo, :source_code_info, 9
|
118
|
+
optional :string, :syntax, 12
|
119
|
+
end
|
120
|
+
|
121
|
+
class DescriptorProto
|
122
|
+
class ExtensionRange
|
123
|
+
optional :int32, :start, 1
|
124
|
+
optional :int32, :end, 2
|
125
|
+
end
|
126
|
+
|
127
|
+
class ReservedRange
|
128
|
+
optional :int32, :start, 1
|
129
|
+
optional :int32, :end, 2
|
130
|
+
end
|
131
|
+
|
132
|
+
optional :string, :name, 1
|
133
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :field, 2
|
134
|
+
repeated ::Google::Protobuf::FieldDescriptorProto, :extension, 6
|
135
|
+
repeated ::Google::Protobuf::DescriptorProto, :nested_type, 3
|
136
|
+
repeated ::Google::Protobuf::EnumDescriptorProto, :enum_type, 4
|
137
|
+
repeated ::Google::Protobuf::DescriptorProto::ExtensionRange, :extension_range, 5
|
138
|
+
repeated ::Google::Protobuf::OneofDescriptorProto, :oneof_decl, 8
|
139
|
+
optional ::Google::Protobuf::MessageOptions, :options, 7
|
140
|
+
repeated ::Google::Protobuf::DescriptorProto::ReservedRange, :reserved_range, 9
|
141
|
+
repeated :string, :reserved_name, 10
|
142
|
+
end
|
143
|
+
|
144
|
+
class FieldDescriptorProto
|
145
|
+
optional :string, :name, 1
|
146
|
+
optional :int32, :number, 3
|
147
|
+
optional ::Google::Protobuf::FieldDescriptorProto::Label, :label, 4
|
148
|
+
optional ::Google::Protobuf::FieldDescriptorProto::Type, :type, 5
|
149
|
+
optional :string, :type_name, 6
|
150
|
+
optional :string, :extendee, 2
|
151
|
+
optional :string, :default_value, 7
|
152
|
+
optional :int32, :oneof_index, 9
|
153
|
+
optional :string, :json_name, 10
|
154
|
+
optional ::Google::Protobuf::FieldOptions, :options, 8
|
155
|
+
end
|
156
|
+
|
157
|
+
class OneofDescriptorProto
|
158
|
+
optional :string, :name, 1
|
159
|
+
end
|
160
|
+
|
161
|
+
class EnumDescriptorProto
|
162
|
+
optional :string, :name, 1
|
163
|
+
repeated ::Google::Protobuf::EnumValueDescriptorProto, :value, 2
|
164
|
+
optional ::Google::Protobuf::EnumOptions, :options, 3
|
165
|
+
end
|
166
|
+
|
167
|
+
class EnumValueDescriptorProto
|
168
|
+
optional :string, :name, 1
|
169
|
+
optional :int32, :number, 2
|
170
|
+
optional ::Google::Protobuf::EnumValueOptions, :options, 3
|
171
|
+
end
|
172
|
+
|
173
|
+
class ServiceDescriptorProto
|
174
|
+
optional :string, :name, 1
|
175
|
+
repeated ::Google::Protobuf::MethodDescriptorProto, :method, 2
|
176
|
+
optional ::Google::Protobuf::ServiceOptions, :options, 3
|
177
|
+
end
|
178
|
+
|
179
|
+
class MethodDescriptorProto
|
180
|
+
optional :string, :name, 1
|
181
|
+
optional :string, :input_type, 2
|
182
|
+
optional :string, :output_type, 3
|
183
|
+
optional ::Google::Protobuf::MethodOptions, :options, 4
|
184
|
+
optional :bool, :client_streaming, 5, :default => false
|
185
|
+
optional :bool, :server_streaming, 6, :default => false
|
186
|
+
end
|
187
|
+
|
188
|
+
class FileOptions
|
189
|
+
optional :string, :java_package, 1
|
190
|
+
optional :string, :java_outer_classname, 8
|
191
|
+
optional :bool, :java_multiple_files, 10, :default => false
|
192
|
+
optional :bool, :java_generate_equals_and_hash, 20, :default => false
|
193
|
+
optional :bool, :java_string_check_utf8, 27, :default => false
|
194
|
+
optional ::Google::Protobuf::FileOptions::OptimizeMode, :optimize_for, 9, :default => ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
195
|
+
optional :string, :go_package, 11
|
196
|
+
optional :bool, :cc_generic_services, 16, :default => false
|
197
|
+
optional :bool, :java_generic_services, 17, :default => false
|
198
|
+
optional :bool, :py_generic_services, 18, :default => false
|
199
|
+
optional :bool, :deprecated, 23, :default => false
|
200
|
+
optional :bool, :cc_enable_arenas, 31, :default => false
|
201
|
+
optional :string, :objc_class_prefix, 36
|
202
|
+
optional :string, :csharp_namespace, 37
|
203
|
+
optional :bool, :javanano_use_deprecated_package, 38
|
204
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
205
|
+
# Extension Fields
|
206
|
+
extensions 1000...536870912
|
207
|
+
end
|
208
|
+
|
209
|
+
class MessageOptions
|
210
|
+
optional :bool, :message_set_wire_format, 1, :default => false
|
211
|
+
optional :bool, :no_standard_descriptor_accessor, 2, :default => false
|
212
|
+
optional :bool, :deprecated, 3, :default => false
|
213
|
+
optional :bool, :map_entry, 7
|
214
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
215
|
+
# Extension Fields
|
216
|
+
extensions 1000...536870912
|
217
|
+
end
|
218
|
+
|
219
|
+
class FieldOptions
|
220
|
+
optional ::Google::Protobuf::FieldOptions::CType, :ctype, 1, :default => ::Google::Protobuf::FieldOptions::CType::STRING
|
221
|
+
optional :bool, :packed, 2
|
222
|
+
optional ::Google::Protobuf::FieldOptions::JSType, :jstype, 6, :default => ::Google::Protobuf::FieldOptions::JSType::JS_NORMAL
|
223
|
+
optional :bool, :lazy, 5, :default => false
|
224
|
+
optional :bool, :deprecated, 3, :default => false
|
225
|
+
optional :bool, :weak, 10, :default => false
|
226
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
227
|
+
# Extension Fields
|
228
|
+
extensions 1000...536870912
|
229
|
+
end
|
230
|
+
|
231
|
+
class EnumOptions
|
232
|
+
optional :bool, :allow_alias, 2
|
233
|
+
optional :bool, :deprecated, 3, :default => false
|
234
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
235
|
+
# Extension Fields
|
236
|
+
extensions 1000...536870912
|
237
|
+
end
|
238
|
+
|
239
|
+
class EnumValueOptions
|
240
|
+
optional :bool, :deprecated, 1, :default => false
|
241
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
242
|
+
# Extension Fields
|
243
|
+
extensions 1000...536870912
|
244
|
+
end
|
245
|
+
|
246
|
+
class ServiceOptions
|
247
|
+
optional :bool, :deprecated, 33, :default => false
|
248
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
249
|
+
# Extension Fields
|
250
|
+
extensions 1000...536870912
|
251
|
+
end
|
252
|
+
|
253
|
+
class MethodOptions
|
254
|
+
optional :bool, :deprecated, 33, :default => false
|
255
|
+
repeated ::Google::Protobuf::UninterpretedOption, :uninterpreted_option, 999
|
256
|
+
# Extension Fields
|
257
|
+
extensions 1000...536870912
|
258
|
+
end
|
259
|
+
|
260
|
+
class UninterpretedOption
|
261
|
+
class NamePart
|
262
|
+
required :string, :name_part, 1
|
263
|
+
required :bool, :is_extension, 2
|
264
|
+
end
|
265
|
+
|
266
|
+
repeated ::Google::Protobuf::UninterpretedOption::NamePart, :name, 2
|
267
|
+
optional :string, :identifier_value, 3
|
268
|
+
optional :uint64, :positive_int_value, 4
|
269
|
+
optional :int64, :negative_int_value, 5
|
270
|
+
optional :double, :double_value, 6
|
271
|
+
optional :bytes, :string_value, 7
|
272
|
+
optional :string, :aggregate_value, 8
|
273
|
+
end
|
274
|
+
|
275
|
+
class SourceCodeInfo
|
276
|
+
class Location
|
277
|
+
repeated :int32, :path, 1, :packed => true
|
278
|
+
repeated :int32, :span, 2, :packed => true
|
279
|
+
optional :string, :leading_comments, 3
|
280
|
+
optional :string, :trailing_comments, 4
|
281
|
+
repeated :string, :leading_detached_comments, 6
|
282
|
+
end
|
283
|
+
|
284
|
+
repeated ::Google::Protobuf::SourceCodeInfo::Location, :location, 1
|
285
|
+
end
|
286
|
+
|
287
|
+
end
|
288
|
+
|
289
|
+
end
|
290
|
+
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
##
|
4
|
+
# This file is auto-generated. DO NOT EDIT!
|
5
|
+
#
|
6
|
+
require 'protobuf'
|
7
|
+
|
8
|
+
|
9
|
+
##
|
10
|
+
# Imports
|
11
|
+
#
|
12
|
+
require 'telemetry_top.pb'
|
13
|
+
|
14
|
+
|
15
|
+
##
|
16
|
+
# Message Classes
|
17
|
+
#
|
18
|
+
class InlineJflow < ::Protobuf::Message; end
|
19
|
+
class InlineJflowNpuStats < ::Protobuf::Message; end
|
20
|
+
|
21
|
+
|
22
|
+
##
|
23
|
+
# Message Fields
|
24
|
+
#
|
25
|
+
class InlineJflow
|
26
|
+
optional :string, :ipv4_flows_export_format, 2
|
27
|
+
optional :string, :ipv6_flows_export_format, 3
|
28
|
+
optional :string, :vpls_flows_export_format, 4
|
29
|
+
optional :string, :mpls_flows_export_format, 5
|
30
|
+
optional :uint32, :ipv4_route_record_cnt, 6
|
31
|
+
optional :uint32, :ipv6_route_record_cnt, 7
|
32
|
+
optional :uint32, :mpls_route_record_cnt, 8
|
33
|
+
optional :uint32, :autonomous_system_record_cnt, 9
|
34
|
+
optional :uint64, :ipv4_max_flows_count, 10
|
35
|
+
optional :uint64, :ipv6_max_flows_count, 11
|
36
|
+
optional :uint64, :vpls_max_flows_count, 12
|
37
|
+
optional :uint64, :mpls_max_flows_count, 13
|
38
|
+
optional :uint32, :memory_alloc_fail_cnt, 14, :".telemetry_options" => { :is_counter => true }
|
39
|
+
optional :uint32, :ipv4_configured_observation_domain_id, 15
|
40
|
+
optional :uint32, :ipv6_configured_observation_domain_id, 16
|
41
|
+
optional :uint32, :vpls_configured_observation_domain_id, 17
|
42
|
+
optional :uint32, :mpls_configured_observation_domain_id, 18
|
43
|
+
optional :uint32, :last_clear_timestamp, 19
|
44
|
+
optional :bool, :ipv6_extended_attribute, 20
|
45
|
+
optional :bool, :flexible_flow_sizing, 21
|
46
|
+
optional :bool, :use_extended_flow_memory, 22
|
47
|
+
repeated ::InlineJflowNpuStats, :npu_stats, 50
|
48
|
+
end
|
49
|
+
|
50
|
+
class InlineJflowNpuStats
|
51
|
+
required :uint32, :npu_identifier, 1
|
52
|
+
optional :uint64, :ipv4_flow_packets, 51, :".telemetry_options" => { :is_counter => true }
|
53
|
+
optional :uint64, :ipv4_flow_bytes, 52, :".telemetry_options" => { :is_counter => true }
|
54
|
+
optional :uint64, :ipv4_total_flows, 53, :".telemetry_options" => { :is_counter => true }
|
55
|
+
optional :uint64, :ipv4_active_flows, 54, :".telemetry_options" => { :is_counter => true }
|
56
|
+
optional :uint64, :ipv4_flows_exported, 55, :".telemetry_options" => { :is_counter => true }
|
57
|
+
optional :uint64, :ipv4_packets_exported, 56, :".telemetry_options" => { :is_counter => true }
|
58
|
+
optional :uint64, :ipv4_flows_inactive_timed_out, 57, :".telemetry_options" => { :is_counter => true }
|
59
|
+
optional :uint64, :ipv4_flows_active_timed_out, 58, :".telemetry_options" => { :is_counter => true }
|
60
|
+
optional :uint64, :ipv4_flow_create_failure, 59, :".telemetry_options" => { :is_counter => true }
|
61
|
+
optional :uint64, :ipv4_route_lookup_failure, 60, :".telemetry_options" => { :is_counter => true }
|
62
|
+
optional :uint64, :ipv4_autonomous_system_lookup_failure, 61, :".telemetry_options" => { :is_counter => true }
|
63
|
+
optional :uint64, :ipv4_flow_packet_export_failure, 62, :".telemetry_options" => { :is_counter => true }
|
64
|
+
optional :float, :ipv4_flow_table_utilization, 63, :".telemetry_options" => { :is_gauge => true }
|
65
|
+
optional :uint64, :ipv4_flow_insert_count, 64, :".telemetry_options" => { :is_counter => true }
|
66
|
+
optional :uint64, :ipv6_flow_packets, 101, :".telemetry_options" => { :is_counter => true }
|
67
|
+
optional :uint64, :ipv6_flow_bytes, 102, :".telemetry_options" => { :is_counter => true }
|
68
|
+
optional :uint64, :ipv6_total_flows, 103, :".telemetry_options" => { :is_counter => true }
|
69
|
+
optional :uint64, :ipv6_active_flows, 104, :".telemetry_options" => { :is_counter => true }
|
70
|
+
optional :uint64, :ipv6_flows_exported, 105, :".telemetry_options" => { :is_counter => true }
|
71
|
+
optional :uint64, :ipv6_packets_exported, 106, :".telemetry_options" => { :is_counter => true }
|
72
|
+
optional :uint64, :ipv6_flows_inactive_timed_out, 107, :".telemetry_options" => { :is_counter => true }
|
73
|
+
optional :uint64, :ipv6_flows_active_timed_out, 108, :".telemetry_options" => { :is_counter => true }
|
74
|
+
optional :uint64, :ipv6_flow_create_failure, 109, :".telemetry_options" => { :is_counter => true }
|
75
|
+
optional :uint64, :ipv6_route_lookup_failure, 110, :".telemetry_options" => { :is_counter => true }
|
76
|
+
optional :uint64, :ipv6_autonomous_system_lookup_failure, 111, :".telemetry_options" => { :is_counter => true }
|
77
|
+
optional :uint64, :ipv6_flow_packet_export_failure, 112, :".telemetry_options" => { :is_counter => true }
|
78
|
+
optional :float, :ipv6_flow_table_utilization, 113, :".telemetry_options" => { :is_gauge => true }
|
79
|
+
optional :uint64, :ipv6_flow_insert_count, 114, :".telemetry_options" => { :is_counter => true }
|
80
|
+
optional :uint64, :vpls_flow_packets, 151, :".telemetry_options" => { :is_counter => true }
|
81
|
+
optional :uint64, :vpls_flow_bytes, 152, :".telemetry_options" => { :is_counter => true }
|
82
|
+
optional :uint64, :vpls_total_flows, 153, :".telemetry_options" => { :is_counter => true }
|
83
|
+
optional :uint64, :vpls_active_flows, 154, :".telemetry_options" => { :is_counter => true }
|
84
|
+
optional :uint64, :vpls_flows_exported, 155, :".telemetry_options" => { :is_counter => true }
|
85
|
+
optional :uint64, :vpls_packets_exported, 156, :".telemetry_options" => { :is_counter => true }
|
86
|
+
optional :uint64, :vpls_flows_inactive_timed_out, 157, :".telemetry_options" => { :is_counter => true }
|
87
|
+
optional :uint64, :vpls_flows_active_timed_out, 158, :".telemetry_options" => { :is_counter => true }
|
88
|
+
optional :uint64, :vpls_flow_create_failure, 159, :".telemetry_options" => { :is_counter => true }
|
89
|
+
optional :uint64, :vpls_route_lookup_failure, 160, :".telemetry_options" => { :is_counter => true }
|
90
|
+
optional :uint64, :vpls_autonomous_system_lookup_failure, 161, :".telemetry_options" => { :is_counter => true }
|
91
|
+
optional :uint64, :vpls_flow_packet_export_failure, 162, :".telemetry_options" => { :is_counter => true }
|
92
|
+
optional :float, :vpls_flow_table_utilization, 163, :".telemetry_options" => { :is_gauge => true }
|
93
|
+
optional :uint64, :vpls_flow_insert_count, 164, :".telemetry_options" => { :is_counter => true }
|
94
|
+
optional :uint64, :mpls_flow_packets, 201, :".telemetry_options" => { :is_counter => true }
|
95
|
+
optional :uint64, :mpls_flow_bytes, 202, :".telemetry_options" => { :is_counter => true }
|
96
|
+
optional :uint64, :mpls_total_flows, 203, :".telemetry_options" => { :is_counter => true }
|
97
|
+
optional :uint64, :mpls_active_flows, 204, :".telemetry_options" => { :is_counter => true }
|
98
|
+
optional :uint64, :mpls_flows_exported, 205, :".telemetry_options" => { :is_counter => true }
|
99
|
+
optional :uint64, :mpls_packets_exported, 206, :".telemetry_options" => { :is_counter => true }
|
100
|
+
optional :uint64, :mpls_flows_inactive_timed_out, 207, :".telemetry_options" => { :is_counter => true }
|
101
|
+
optional :uint64, :mpls_flows_active_timed_out, 208, :".telemetry_options" => { :is_counter => true }
|
102
|
+
optional :uint64, :mpls_flow_create_failure, 209, :".telemetry_options" => { :is_counter => true }
|
103
|
+
optional :uint64, :mpls_route_lookup_failure, 210, :".telemetry_options" => { :is_counter => true }
|
104
|
+
optional :uint64, :mpls_autonomous_system_lookup_failure, 211, :".telemetry_options" => { :is_counter => true }
|
105
|
+
optional :uint64, :mpls_flow_packet_export_failure, 212, :".telemetry_options" => { :is_counter => true }
|
106
|
+
optional :float, :mpls_flow_table_utilization, 213, :".telemetry_options" => { :is_gauge => true }
|
107
|
+
optional :uint64, :mpls_flow_insert_count, 214, :".telemetry_options" => { :is_counter => true }
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
##
|
112
|
+
# Extended Message Fields
|
113
|
+
#
|
114
|
+
class ::JuniperNetworksSensors < ::Protobuf::Message
|
115
|
+
optional ::InlineJflow, :".inline_jflow_stats_ext", 9, :extension => true
|
116
|
+
end
|
117
|
+
|