1// Code generated by protoc-gen-go. DO NOT EDIT.
2// versions:
3// 	protoc-gen-go v1.25.0
4// 	protoc        v3.16.0
5// source: envoy/config/metrics/v2/stats.proto
6
7package envoy_config_metrics_v2
8
9import (
10	_ "github.com/cncf/xds/go/udpa/annotations"
11	core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core"
12	matcher "github.com/envoyproxy/go-control-plane/envoy/type/matcher"
13	_ "github.com/envoyproxy/protoc-gen-validate/validate"
14	proto "github.com/golang/protobuf/proto"
15	any "github.com/golang/protobuf/ptypes/any"
16	_struct "github.com/golang/protobuf/ptypes/struct"
17	wrappers "github.com/golang/protobuf/ptypes/wrappers"
18	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
19	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
20	reflect "reflect"
21	sync "sync"
22)
23
24const (
25	// Verify that this generated code is sufficiently up-to-date.
26	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
27	// Verify that runtime/protoimpl is sufficiently up-to-date.
28	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
29)
30
31// This is a compile-time assertion that a sufficiently up-to-date version
32// of the legacy proto package is being used.
33const _ = proto.ProtoPackageIsVersion4
34
35// Configuration for pluggable stats sinks.
36type StatsSink struct {
37	state         protoimpl.MessageState
38	sizeCache     protoimpl.SizeCache
39	unknownFields protoimpl.UnknownFields
40
41	// The name of the stats sink to instantiate. The name must match a supported
42	// stats sink. The built-in stats sinks are:
43	//
44	// * :ref:`envoy.stat_sinks.statsd <envoy_api_msg_config.metrics.v2.StatsdSink>`
45	// * :ref:`envoy.stat_sinks.dog_statsd <envoy_api_msg_config.metrics.v2.DogStatsdSink>`
46	// * :ref:`envoy.stat_sinks.metrics_service <envoy_api_msg_config.metrics.v2.MetricsServiceConfig>`
47	// * :ref:`envoy.stat_sinks.hystrix <envoy_api_msg_config.metrics.v2.HystrixSink>`
48	//
49	// Sinks optionally support tagged/multiple dimensional metrics.
50	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
51	// Stats sink specific configuration which depends on the sink being instantiated. See
52	// :ref:`StatsdSink <envoy_api_msg_config.metrics.v2.StatsdSink>` for an example.
53	//
54	// Types that are assignable to ConfigType:
55	//	*StatsSink_Config
56	//	*StatsSink_TypedConfig
57	ConfigType isStatsSink_ConfigType `protobuf_oneof:"config_type"`
58}
59
60func (x *StatsSink) Reset() {
61	*x = StatsSink{}
62	if protoimpl.UnsafeEnabled {
63		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[0]
64		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
65		ms.StoreMessageInfo(mi)
66	}
67}
68
69func (x *StatsSink) String() string {
70	return protoimpl.X.MessageStringOf(x)
71}
72
73func (*StatsSink) ProtoMessage() {}
74
75func (x *StatsSink) ProtoReflect() protoreflect.Message {
76	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[0]
77	if protoimpl.UnsafeEnabled && x != nil {
78		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
79		if ms.LoadMessageInfo() == nil {
80			ms.StoreMessageInfo(mi)
81		}
82		return ms
83	}
84	return mi.MessageOf(x)
85}
86
87// Deprecated: Use StatsSink.ProtoReflect.Descriptor instead.
88func (*StatsSink) Descriptor() ([]byte, []int) {
89	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{0}
90}
91
92func (x *StatsSink) GetName() string {
93	if x != nil {
94		return x.Name
95	}
96	return ""
97}
98
99func (m *StatsSink) GetConfigType() isStatsSink_ConfigType {
100	if m != nil {
101		return m.ConfigType
102	}
103	return nil
104}
105
106// Deprecated: Do not use.
107func (x *StatsSink) GetConfig() *_struct.Struct {
108	if x, ok := x.GetConfigType().(*StatsSink_Config); ok {
109		return x.Config
110	}
111	return nil
112}
113
114func (x *StatsSink) GetTypedConfig() *any.Any {
115	if x, ok := x.GetConfigType().(*StatsSink_TypedConfig); ok {
116		return x.TypedConfig
117	}
118	return nil
119}
120
121type isStatsSink_ConfigType interface {
122	isStatsSink_ConfigType()
123}
124
125type StatsSink_Config struct {
126	// Deprecated: Do not use.
127	Config *_struct.Struct `protobuf:"bytes,2,opt,name=config,proto3,oneof"`
128}
129
130type StatsSink_TypedConfig struct {
131	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
132}
133
134func (*StatsSink_Config) isStatsSink_ConfigType() {}
135
136func (*StatsSink_TypedConfig) isStatsSink_ConfigType() {}
137
138// Statistics configuration such as tagging.
139type StatsConfig struct {
140	state         protoimpl.MessageState
141	sizeCache     protoimpl.SizeCache
142	unknownFields protoimpl.UnknownFields
143
144	// Each stat name is iteratively processed through these tag specifiers.
145	// When a tag is matched, the first capture group is removed from the name so
146	// later :ref:`TagSpecifiers <envoy_api_msg_config.metrics.v2.TagSpecifier>` cannot match that
147	// same portion of the match.
148	StatsTags []*TagSpecifier `protobuf:"bytes,1,rep,name=stats_tags,json=statsTags,proto3" json:"stats_tags,omitempty"`
149	// Use all default tag regexes specified in Envoy. These can be combined with
150	// custom tags specified in :ref:`stats_tags
151	// <envoy_api_field_config.metrics.v2.StatsConfig.stats_tags>`. They will be processed before
152	// the custom tags.
153	//
154	// .. note::
155	//
156	//   If any default tags are specified twice, the config will be considered
157	//   invalid.
158	//
159	// See :repo:`well_known_names.h <source/common/config/well_known_names.h>` for a list of the
160	// default tags in Envoy.
161	//
162	// If not provided, the value is assumed to be true.
163	UseAllDefaultTags *wrappers.BoolValue `protobuf:"bytes,2,opt,name=use_all_default_tags,json=useAllDefaultTags,proto3" json:"use_all_default_tags,omitempty"`
164	// Inclusion/exclusion matcher for stat name creation. If not provided, all stats are instantiated
165	// as normal. Preventing the instantiation of certain families of stats can improve memory
166	// performance for Envoys running especially large configs.
167	//
168	// .. warning::
169	//   Excluding stats may affect Envoy's behavior in undocumented ways. See
170	//   `issue #8771 <https://github.com/envoyproxy/envoy/issues/8771>`_ for more information.
171	//   If any unexpected behavior changes are observed, please open a new issue immediately.
172	StatsMatcher *StatsMatcher `protobuf:"bytes,3,opt,name=stats_matcher,json=statsMatcher,proto3" json:"stats_matcher,omitempty"`
173}
174
175func (x *StatsConfig) Reset() {
176	*x = StatsConfig{}
177	if protoimpl.UnsafeEnabled {
178		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[1]
179		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
180		ms.StoreMessageInfo(mi)
181	}
182}
183
184func (x *StatsConfig) String() string {
185	return protoimpl.X.MessageStringOf(x)
186}
187
188func (*StatsConfig) ProtoMessage() {}
189
190func (x *StatsConfig) ProtoReflect() protoreflect.Message {
191	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[1]
192	if protoimpl.UnsafeEnabled && x != nil {
193		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
194		if ms.LoadMessageInfo() == nil {
195			ms.StoreMessageInfo(mi)
196		}
197		return ms
198	}
199	return mi.MessageOf(x)
200}
201
202// Deprecated: Use StatsConfig.ProtoReflect.Descriptor instead.
203func (*StatsConfig) Descriptor() ([]byte, []int) {
204	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{1}
205}
206
207func (x *StatsConfig) GetStatsTags() []*TagSpecifier {
208	if x != nil {
209		return x.StatsTags
210	}
211	return nil
212}
213
214func (x *StatsConfig) GetUseAllDefaultTags() *wrappers.BoolValue {
215	if x != nil {
216		return x.UseAllDefaultTags
217	}
218	return nil
219}
220
221func (x *StatsConfig) GetStatsMatcher() *StatsMatcher {
222	if x != nil {
223		return x.StatsMatcher
224	}
225	return nil
226}
227
228// Configuration for disabling stat instantiation.
229type StatsMatcher struct {
230	state         protoimpl.MessageState
231	sizeCache     protoimpl.SizeCache
232	unknownFields protoimpl.UnknownFields
233
234	// Types that are assignable to StatsMatcher:
235	//	*StatsMatcher_RejectAll
236	//	*StatsMatcher_ExclusionList
237	//	*StatsMatcher_InclusionList
238	StatsMatcher isStatsMatcher_StatsMatcher `protobuf_oneof:"stats_matcher"`
239}
240
241func (x *StatsMatcher) Reset() {
242	*x = StatsMatcher{}
243	if protoimpl.UnsafeEnabled {
244		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[2]
245		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
246		ms.StoreMessageInfo(mi)
247	}
248}
249
250func (x *StatsMatcher) String() string {
251	return protoimpl.X.MessageStringOf(x)
252}
253
254func (*StatsMatcher) ProtoMessage() {}
255
256func (x *StatsMatcher) ProtoReflect() protoreflect.Message {
257	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[2]
258	if protoimpl.UnsafeEnabled && x != nil {
259		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
260		if ms.LoadMessageInfo() == nil {
261			ms.StoreMessageInfo(mi)
262		}
263		return ms
264	}
265	return mi.MessageOf(x)
266}
267
268// Deprecated: Use StatsMatcher.ProtoReflect.Descriptor instead.
269func (*StatsMatcher) Descriptor() ([]byte, []int) {
270	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{2}
271}
272
273func (m *StatsMatcher) GetStatsMatcher() isStatsMatcher_StatsMatcher {
274	if m != nil {
275		return m.StatsMatcher
276	}
277	return nil
278}
279
280func (x *StatsMatcher) GetRejectAll() bool {
281	if x, ok := x.GetStatsMatcher().(*StatsMatcher_RejectAll); ok {
282		return x.RejectAll
283	}
284	return false
285}
286
287func (x *StatsMatcher) GetExclusionList() *matcher.ListStringMatcher {
288	if x, ok := x.GetStatsMatcher().(*StatsMatcher_ExclusionList); ok {
289		return x.ExclusionList
290	}
291	return nil
292}
293
294func (x *StatsMatcher) GetInclusionList() *matcher.ListStringMatcher {
295	if x, ok := x.GetStatsMatcher().(*StatsMatcher_InclusionList); ok {
296		return x.InclusionList
297	}
298	return nil
299}
300
301type isStatsMatcher_StatsMatcher interface {
302	isStatsMatcher_StatsMatcher()
303}
304
305type StatsMatcher_RejectAll struct {
306	// If `reject_all` is true, then all stats are disabled. If `reject_all` is false, then all
307	// stats are enabled.
308	RejectAll bool `protobuf:"varint,1,opt,name=reject_all,json=rejectAll,proto3,oneof"`
309}
310
311type StatsMatcher_ExclusionList struct {
312	// Exclusive match. All stats are enabled except for those matching one of the supplied
313	// StringMatcher protos.
314	ExclusionList *matcher.ListStringMatcher `protobuf:"bytes,2,opt,name=exclusion_list,json=exclusionList,proto3,oneof"`
315}
316
317type StatsMatcher_InclusionList struct {
318	// Inclusive match. No stats are enabled except for those matching one of the supplied
319	// StringMatcher protos.
320	InclusionList *matcher.ListStringMatcher `protobuf:"bytes,3,opt,name=inclusion_list,json=inclusionList,proto3,oneof"`
321}
322
323func (*StatsMatcher_RejectAll) isStatsMatcher_StatsMatcher() {}
324
325func (*StatsMatcher_ExclusionList) isStatsMatcher_StatsMatcher() {}
326
327func (*StatsMatcher_InclusionList) isStatsMatcher_StatsMatcher() {}
328
329// Designates a tag name and value pair. The value may be either a fixed value
330// or a regex providing the value via capture groups. The specified tag will be
331// unconditionally set if a fixed value, otherwise it will only be set if one
332// or more capture groups in the regex match.
333type TagSpecifier struct {
334	state         protoimpl.MessageState
335	sizeCache     protoimpl.SizeCache
336	unknownFields protoimpl.UnknownFields
337
338	// Attaches an identifier to the tag values to identify the tag being in the
339	// sink. Envoy has a set of default names and regexes to extract dynamic
340	// portions of existing stats, which can be found in :repo:`well_known_names.h
341	// <source/common/config/well_known_names.h>` in the Envoy repository. If a :ref:`tag_name
342	// <envoy_api_field_config.metrics.v2.TagSpecifier.tag_name>` is provided in the config and
343	// neither :ref:`regex <envoy_api_field_config.metrics.v2.TagSpecifier.regex>` or
344	// :ref:`fixed_value <envoy_api_field_config.metrics.v2.TagSpecifier.fixed_value>` were specified,
345	// Envoy will attempt to find that name in its set of defaults and use the accompanying regex.
346	//
347	// .. note::
348	//
349	//   It is invalid to specify the same tag name twice in a config.
350	TagName string `protobuf:"bytes,1,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"`
351	// Types that are assignable to TagValue:
352	//	*TagSpecifier_Regex
353	//	*TagSpecifier_FixedValue
354	TagValue isTagSpecifier_TagValue `protobuf_oneof:"tag_value"`
355}
356
357func (x *TagSpecifier) Reset() {
358	*x = TagSpecifier{}
359	if protoimpl.UnsafeEnabled {
360		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[3]
361		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
362		ms.StoreMessageInfo(mi)
363	}
364}
365
366func (x *TagSpecifier) String() string {
367	return protoimpl.X.MessageStringOf(x)
368}
369
370func (*TagSpecifier) ProtoMessage() {}
371
372func (x *TagSpecifier) ProtoReflect() protoreflect.Message {
373	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[3]
374	if protoimpl.UnsafeEnabled && x != nil {
375		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
376		if ms.LoadMessageInfo() == nil {
377			ms.StoreMessageInfo(mi)
378		}
379		return ms
380	}
381	return mi.MessageOf(x)
382}
383
384// Deprecated: Use TagSpecifier.ProtoReflect.Descriptor instead.
385func (*TagSpecifier) Descriptor() ([]byte, []int) {
386	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{3}
387}
388
389func (x *TagSpecifier) GetTagName() string {
390	if x != nil {
391		return x.TagName
392	}
393	return ""
394}
395
396func (m *TagSpecifier) GetTagValue() isTagSpecifier_TagValue {
397	if m != nil {
398		return m.TagValue
399	}
400	return nil
401}
402
403func (x *TagSpecifier) GetRegex() string {
404	if x, ok := x.GetTagValue().(*TagSpecifier_Regex); ok {
405		return x.Regex
406	}
407	return ""
408}
409
410func (x *TagSpecifier) GetFixedValue() string {
411	if x, ok := x.GetTagValue().(*TagSpecifier_FixedValue); ok {
412		return x.FixedValue
413	}
414	return ""
415}
416
417type isTagSpecifier_TagValue interface {
418	isTagSpecifier_TagValue()
419}
420
421type TagSpecifier_Regex struct {
422	// Designates a tag to strip from the tag extracted name and provide as a named
423	// tag value for all statistics. This will only occur if any part of the name
424	// matches the regex provided with one or more capture groups.
425	//
426	// The first capture group identifies the portion of the name to remove. The
427	// second capture group (which will normally be nested inside the first) will
428	// designate the value of the tag for the statistic. If no second capture
429	// group is provided, the first will also be used to set the value of the tag.
430	// All other capture groups will be ignored.
431	//
432	// Example 1. a stat name ``cluster.foo_cluster.upstream_rq_timeout`` and
433	// one tag specifier:
434	//
435	// .. code-block:: json
436	//
437	//   {
438	//     "tag_name": "envoy.cluster_name",
439	//     "regex": "^cluster\\.((.+?)\\.)"
440	//   }
441	//
442	// Note that the regex will remove ``foo_cluster.`` making the tag extracted
443	// name ``cluster.upstream_rq_timeout`` and the tag value for
444	// ``envoy.cluster_name`` will be ``foo_cluster`` (note: there will be no
445	// ``.`` character because of the second capture group).
446	//
447	// Example 2. a stat name
448	// ``http.connection_manager_1.user_agent.ios.downstream_cx_total`` and two
449	// tag specifiers:
450	//
451	// .. code-block:: json
452	//
453	//   [
454	//     {
455	//       "tag_name": "envoy.http_user_agent",
456	//       "regex": "^http(?=\\.).*?\\.user_agent\\.((.+?)\\.)\\w+?$"
457	//     },
458	//     {
459	//       "tag_name": "envoy.http_conn_manager_prefix",
460	//       "regex": "^http\\.((.*?)\\.)"
461	//     }
462	//   ]
463	//
464	// The two regexes of the specifiers will be processed in the definition order.
465	//
466	// The first regex will remove ``ios.``, leaving the tag extracted name
467	// ``http.connection_manager_1.user_agent.downstream_cx_total``. The tag
468	// ``envoy.http_user_agent`` will be added with tag value ``ios``.
469	//
470	// The second regex will remove ``connection_manager_1.`` from the tag
471	// extracted name produced by the first regex
472	// ``http.connection_manager_1.user_agent.downstream_cx_total``, leaving
473	// ``http.user_agent.downstream_cx_total`` as the tag extracted name. The tag
474	// ``envoy.http_conn_manager_prefix`` will be added with the tag value
475	// ``connection_manager_1``.
476	Regex string `protobuf:"bytes,2,opt,name=regex,proto3,oneof"`
477}
478
479type TagSpecifier_FixedValue struct {
480	// Specifies a fixed tag value for the ``tag_name``.
481	FixedValue string `protobuf:"bytes,3,opt,name=fixed_value,json=fixedValue,proto3,oneof"`
482}
483
484func (*TagSpecifier_Regex) isTagSpecifier_TagValue() {}
485
486func (*TagSpecifier_FixedValue) isTagSpecifier_TagValue() {}
487
488// Stats configuration proto schema for built-in *envoy.stat_sinks.statsd* sink. This sink does not support
489// tagged metrics.
490// [#extension: envoy.stat_sinks.statsd]
491type StatsdSink struct {
492	state         protoimpl.MessageState
493	sizeCache     protoimpl.SizeCache
494	unknownFields protoimpl.UnknownFields
495
496	// Types that are assignable to StatsdSpecifier:
497	//	*StatsdSink_Address
498	//	*StatsdSink_TcpClusterName
499	StatsdSpecifier isStatsdSink_StatsdSpecifier `protobuf_oneof:"statsd_specifier"`
500	// Optional custom prefix for StatsdSink. If
501	// specified, this will override the default prefix.
502	// For example:
503	//
504	// .. code-block:: json
505	//
506	//   {
507	//     "prefix" : "envoy-prod"
508	//   }
509	//
510	// will change emitted stats to
511	//
512	// .. code-block:: cpp
513	//
514	//   envoy-prod.test_counter:1|c
515	//   envoy-prod.test_timer:5|ms
516	//
517	// Note that the default prefix, "envoy", will be used if a prefix is not
518	// specified.
519	//
520	// Stats with default prefix:
521	//
522	// .. code-block:: cpp
523	//
524	//   envoy.test_counter:1|c
525	//   envoy.test_timer:5|ms
526	Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
527}
528
529func (x *StatsdSink) Reset() {
530	*x = StatsdSink{}
531	if protoimpl.UnsafeEnabled {
532		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[4]
533		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
534		ms.StoreMessageInfo(mi)
535	}
536}
537
538func (x *StatsdSink) String() string {
539	return protoimpl.X.MessageStringOf(x)
540}
541
542func (*StatsdSink) ProtoMessage() {}
543
544func (x *StatsdSink) ProtoReflect() protoreflect.Message {
545	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[4]
546	if protoimpl.UnsafeEnabled && x != nil {
547		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
548		if ms.LoadMessageInfo() == nil {
549			ms.StoreMessageInfo(mi)
550		}
551		return ms
552	}
553	return mi.MessageOf(x)
554}
555
556// Deprecated: Use StatsdSink.ProtoReflect.Descriptor instead.
557func (*StatsdSink) Descriptor() ([]byte, []int) {
558	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{4}
559}
560
561func (m *StatsdSink) GetStatsdSpecifier() isStatsdSink_StatsdSpecifier {
562	if m != nil {
563		return m.StatsdSpecifier
564	}
565	return nil
566}
567
568func (x *StatsdSink) GetAddress() *core.Address {
569	if x, ok := x.GetStatsdSpecifier().(*StatsdSink_Address); ok {
570		return x.Address
571	}
572	return nil
573}
574
575func (x *StatsdSink) GetTcpClusterName() string {
576	if x, ok := x.GetStatsdSpecifier().(*StatsdSink_TcpClusterName); ok {
577		return x.TcpClusterName
578	}
579	return ""
580}
581
582func (x *StatsdSink) GetPrefix() string {
583	if x != nil {
584		return x.Prefix
585	}
586	return ""
587}
588
589type isStatsdSink_StatsdSpecifier interface {
590	isStatsdSink_StatsdSpecifier()
591}
592
593type StatsdSink_Address struct {
594	// The UDP address of a running `statsd <https://github.com/etsy/statsd>`_
595	// compliant listener. If specified, statistics will be flushed to this
596	// address.
597	Address *core.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"`
598}
599
600type StatsdSink_TcpClusterName struct {
601	// The name of a cluster that is running a TCP `statsd
602	// <https://github.com/etsy/statsd>`_ compliant listener. If specified,
603	// Envoy will connect to this cluster to flush statistics.
604	TcpClusterName string `protobuf:"bytes,2,opt,name=tcp_cluster_name,json=tcpClusterName,proto3,oneof"`
605}
606
607func (*StatsdSink_Address) isStatsdSink_StatsdSpecifier() {}
608
609func (*StatsdSink_TcpClusterName) isStatsdSink_StatsdSpecifier() {}
610
611// Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink.
612// The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
613// compatible tags. Tags are configurable via :ref:`StatsConfig
614// <envoy_api_msg_config.metrics.v2.StatsConfig>`.
615// [#extension: envoy.stat_sinks.dog_statsd]
616type DogStatsdSink struct {
617	state         protoimpl.MessageState
618	sizeCache     protoimpl.SizeCache
619	unknownFields protoimpl.UnknownFields
620
621	// Types that are assignable to DogStatsdSpecifier:
622	//	*DogStatsdSink_Address
623	DogStatsdSpecifier isDogStatsdSink_DogStatsdSpecifier `protobuf_oneof:"dog_statsd_specifier"`
624	// Optional custom metric name prefix. See :ref:`StatsdSink's prefix field
625	// <envoy_api_field_config.metrics.v2.StatsdSink.prefix>` for more details.
626	Prefix string `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
627}
628
629func (x *DogStatsdSink) Reset() {
630	*x = DogStatsdSink{}
631	if protoimpl.UnsafeEnabled {
632		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[5]
633		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
634		ms.StoreMessageInfo(mi)
635	}
636}
637
638func (x *DogStatsdSink) String() string {
639	return protoimpl.X.MessageStringOf(x)
640}
641
642func (*DogStatsdSink) ProtoMessage() {}
643
644func (x *DogStatsdSink) ProtoReflect() protoreflect.Message {
645	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[5]
646	if protoimpl.UnsafeEnabled && x != nil {
647		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
648		if ms.LoadMessageInfo() == nil {
649			ms.StoreMessageInfo(mi)
650		}
651		return ms
652	}
653	return mi.MessageOf(x)
654}
655
656// Deprecated: Use DogStatsdSink.ProtoReflect.Descriptor instead.
657func (*DogStatsdSink) Descriptor() ([]byte, []int) {
658	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{5}
659}
660
661func (m *DogStatsdSink) GetDogStatsdSpecifier() isDogStatsdSink_DogStatsdSpecifier {
662	if m != nil {
663		return m.DogStatsdSpecifier
664	}
665	return nil
666}
667
668func (x *DogStatsdSink) GetAddress() *core.Address {
669	if x, ok := x.GetDogStatsdSpecifier().(*DogStatsdSink_Address); ok {
670		return x.Address
671	}
672	return nil
673}
674
675func (x *DogStatsdSink) GetPrefix() string {
676	if x != nil {
677		return x.Prefix
678	}
679	return ""
680}
681
682type isDogStatsdSink_DogStatsdSpecifier interface {
683	isDogStatsdSink_DogStatsdSpecifier()
684}
685
686type DogStatsdSink_Address struct {
687	// The UDP address of a running DogStatsD compliant listener. If specified,
688	// statistics will be flushed to this address.
689	Address *core.Address `protobuf:"bytes,1,opt,name=address,proto3,oneof"`
690}
691
692func (*DogStatsdSink_Address) isDogStatsdSink_DogStatsdSpecifier() {}
693
694// Stats configuration proto schema for built-in *envoy.stat_sinks.hystrix* sink.
695// The sink emits stats in `text/event-stream
696// <https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events>`_
697// formatted stream for use by `Hystrix dashboard
698// <https://github.com/Netflix-Skunkworks/hystrix-dashboard/wiki>`_.
699//
700// Note that only a single HystrixSink should be configured.
701//
702// Streaming is started through an admin endpoint :http:get:`/hystrix_event_stream`.
703// [#extension: envoy.stat_sinks.hystrix]
704type HystrixSink struct {
705	state         protoimpl.MessageState
706	sizeCache     protoimpl.SizeCache
707	unknownFields protoimpl.UnknownFields
708
709	// The number of buckets the rolling statistical window is divided into.
710	//
711	// Each time the sink is flushed, all relevant Envoy statistics are sampled and
712	// added to the rolling window (removing the oldest samples in the window
713	// in the process). The sink then outputs the aggregate statistics across the
714	// current rolling window to the event stream(s).
715	//
716	// rolling_window(ms) = stats_flush_interval(ms) * num_of_buckets
717	//
718	// More detailed explanation can be found in `Hystrix wiki
719	// <https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring#hystrixrollingnumber>`_.
720	NumBuckets int64 `protobuf:"varint,1,opt,name=num_buckets,json=numBuckets,proto3" json:"num_buckets,omitempty"`
721}
722
723func (x *HystrixSink) Reset() {
724	*x = HystrixSink{}
725	if protoimpl.UnsafeEnabled {
726		mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[6]
727		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
728		ms.StoreMessageInfo(mi)
729	}
730}
731
732func (x *HystrixSink) String() string {
733	return protoimpl.X.MessageStringOf(x)
734}
735
736func (*HystrixSink) ProtoMessage() {}
737
738func (x *HystrixSink) ProtoReflect() protoreflect.Message {
739	mi := &file_envoy_config_metrics_v2_stats_proto_msgTypes[6]
740	if protoimpl.UnsafeEnabled && x != nil {
741		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
742		if ms.LoadMessageInfo() == nil {
743			ms.StoreMessageInfo(mi)
744		}
745		return ms
746	}
747	return mi.MessageOf(x)
748}
749
750// Deprecated: Use HystrixSink.ProtoReflect.Descriptor instead.
751func (*HystrixSink) Descriptor() ([]byte, []int) {
752	return file_envoy_config_metrics_v2_stats_proto_rawDescGZIP(), []int{6}
753}
754
755func (x *HystrixSink) GetNumBuckets() int64 {
756	if x != nil {
757		return x.NumBuckets
758	}
759	return 0
760}
761
762var File_envoy_config_metrics_v2_stats_proto protoreflect.FileDescriptor
763
764var file_envoy_config_metrics_v2_stats_proto_rawDesc = []byte{
765	0x0a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6d,
766	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e,
767	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
768	0x66, 0x69, 0x67, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x32, 0x1a, 0x1f,
769	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x72,
770	0x65, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
771	0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63,
772	0x68, 0x65, 0x72, 0x2f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
773	0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
774	0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
775	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72,
776	0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
777	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
778	0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f,
779	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74,
780	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
781	0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
782	0x6f, 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x73, 0x53, 0x69, 0x6e, 0x6b, 0x12,
783	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
784	0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20,
785	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
786	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x02, 0x18, 0x01,
787	0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79,
788	0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
789	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
790	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43,
791	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f,
792	0x74, 0x79, 0x70, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f,
793	0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x74, 0x61,
794	0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
795	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e,
796	0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52,
797	0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x14, 0x75, 0x73,
798	0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61,
799	0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
800	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
801	0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x75, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x44, 0x65, 0x66, 0x61,
802	0x75, 0x6c, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73,
803	0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
804	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6d, 0x65,
805	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61,
806	0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63,
807	0x68, 0x65, 0x72, 0x22, 0xe5, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74,
808	0x63, 0x68, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61,
809	0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x6a, 0x65,
810	0x63, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x4e, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69,
811	0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
812	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68,
813	0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74,
814	0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f,
815	0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69,
816	0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
817	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68,
818	0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74,
819	0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f,
820	0x6e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x14, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x6d,
821	0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x7b, 0x0a, 0x0c, 0x54,
822	0x61, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74,
823	0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74,
824	0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18,
825	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0x48,
826	0x00, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65,
827	0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
828	0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x74,
829	0x61, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61,
830	0x74, 0x73, 0x64, 0x53, 0x69, 0x6e, 0x6b, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
831	0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
832	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64,
833	0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
834	0x2a, 0x0a, 0x10, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e,
835	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x63, 0x70,
836	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70,
837	0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65,
838	0x66, 0x69, 0x78, 0x42, 0x17, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x5f, 0x73, 0x70,
839	0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x82, 0x01, 0x0a,
840	0x0d, 0x44, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x64, 0x53, 0x69, 0x6e, 0x6b, 0x12, 0x36,
841	0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
842	0x1a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63,
843	0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61,
844	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78,
845	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x1b,
846	0x0a, 0x14, 0x64, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x64, 0x5f, 0x73, 0x70, 0x65,
847	0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x4a, 0x04, 0x08, 0x02, 0x10,
848	0x03, 0x22, 0x2e, 0x0a, 0x0b, 0x48, 0x79, 0x73, 0x74, 0x72, 0x69, 0x78, 0x53, 0x69, 0x6e, 0x6b,
849	0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
850	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74,
851	0x73, 0x42, 0x3d, 0x0a, 0x25, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f,
852	0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
853	0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x53, 0x74, 0x61, 0x74,
854	0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x01,
855	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
856}
857
858var (
859	file_envoy_config_metrics_v2_stats_proto_rawDescOnce sync.Once
860	file_envoy_config_metrics_v2_stats_proto_rawDescData = file_envoy_config_metrics_v2_stats_proto_rawDesc
861)
862
863func file_envoy_config_metrics_v2_stats_proto_rawDescGZIP() []byte {
864	file_envoy_config_metrics_v2_stats_proto_rawDescOnce.Do(func() {
865		file_envoy_config_metrics_v2_stats_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_metrics_v2_stats_proto_rawDescData)
866	})
867	return file_envoy_config_metrics_v2_stats_proto_rawDescData
868}
869
870var file_envoy_config_metrics_v2_stats_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
871var file_envoy_config_metrics_v2_stats_proto_goTypes = []interface{}{
872	(*StatsSink)(nil),                 // 0: envoy.config.metrics.v2.StatsSink
873	(*StatsConfig)(nil),               // 1: envoy.config.metrics.v2.StatsConfig
874	(*StatsMatcher)(nil),              // 2: envoy.config.metrics.v2.StatsMatcher
875	(*TagSpecifier)(nil),              // 3: envoy.config.metrics.v2.TagSpecifier
876	(*StatsdSink)(nil),                // 4: envoy.config.metrics.v2.StatsdSink
877	(*DogStatsdSink)(nil),             // 5: envoy.config.metrics.v2.DogStatsdSink
878	(*HystrixSink)(nil),               // 6: envoy.config.metrics.v2.HystrixSink
879	(*_struct.Struct)(nil),            // 7: google.protobuf.Struct
880	(*any.Any)(nil),                   // 8: google.protobuf.Any
881	(*wrappers.BoolValue)(nil),        // 9: google.protobuf.BoolValue
882	(*matcher.ListStringMatcher)(nil), // 10: envoy.type.matcher.ListStringMatcher
883	(*core.Address)(nil),              // 11: envoy.api.v2.core.Address
884}
885var file_envoy_config_metrics_v2_stats_proto_depIdxs = []int32{
886	7,  // 0: envoy.config.metrics.v2.StatsSink.config:type_name -> google.protobuf.Struct
887	8,  // 1: envoy.config.metrics.v2.StatsSink.typed_config:type_name -> google.protobuf.Any
888	3,  // 2: envoy.config.metrics.v2.StatsConfig.stats_tags:type_name -> envoy.config.metrics.v2.TagSpecifier
889	9,  // 3: envoy.config.metrics.v2.StatsConfig.use_all_default_tags:type_name -> google.protobuf.BoolValue
890	2,  // 4: envoy.config.metrics.v2.StatsConfig.stats_matcher:type_name -> envoy.config.metrics.v2.StatsMatcher
891	10, // 5: envoy.config.metrics.v2.StatsMatcher.exclusion_list:type_name -> envoy.type.matcher.ListStringMatcher
892	10, // 6: envoy.config.metrics.v2.StatsMatcher.inclusion_list:type_name -> envoy.type.matcher.ListStringMatcher
893	11, // 7: envoy.config.metrics.v2.StatsdSink.address:type_name -> envoy.api.v2.core.Address
894	11, // 8: envoy.config.metrics.v2.DogStatsdSink.address:type_name -> envoy.api.v2.core.Address
895	9,  // [9:9] is the sub-list for method output_type
896	9,  // [9:9] is the sub-list for method input_type
897	9,  // [9:9] is the sub-list for extension type_name
898	9,  // [9:9] is the sub-list for extension extendee
899	0,  // [0:9] is the sub-list for field type_name
900}
901
902func init() { file_envoy_config_metrics_v2_stats_proto_init() }
903func file_envoy_config_metrics_v2_stats_proto_init() {
904	if File_envoy_config_metrics_v2_stats_proto != nil {
905		return
906	}
907	if !protoimpl.UnsafeEnabled {
908		file_envoy_config_metrics_v2_stats_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
909			switch v := v.(*StatsSink); i {
910			case 0:
911				return &v.state
912			case 1:
913				return &v.sizeCache
914			case 2:
915				return &v.unknownFields
916			default:
917				return nil
918			}
919		}
920		file_envoy_config_metrics_v2_stats_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
921			switch v := v.(*StatsConfig); i {
922			case 0:
923				return &v.state
924			case 1:
925				return &v.sizeCache
926			case 2:
927				return &v.unknownFields
928			default:
929				return nil
930			}
931		}
932		file_envoy_config_metrics_v2_stats_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
933			switch v := v.(*StatsMatcher); i {
934			case 0:
935				return &v.state
936			case 1:
937				return &v.sizeCache
938			case 2:
939				return &v.unknownFields
940			default:
941				return nil
942			}
943		}
944		file_envoy_config_metrics_v2_stats_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
945			switch v := v.(*TagSpecifier); i {
946			case 0:
947				return &v.state
948			case 1:
949				return &v.sizeCache
950			case 2:
951				return &v.unknownFields
952			default:
953				return nil
954			}
955		}
956		file_envoy_config_metrics_v2_stats_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
957			switch v := v.(*StatsdSink); i {
958			case 0:
959				return &v.state
960			case 1:
961				return &v.sizeCache
962			case 2:
963				return &v.unknownFields
964			default:
965				return nil
966			}
967		}
968		file_envoy_config_metrics_v2_stats_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
969			switch v := v.(*DogStatsdSink); i {
970			case 0:
971				return &v.state
972			case 1:
973				return &v.sizeCache
974			case 2:
975				return &v.unknownFields
976			default:
977				return nil
978			}
979		}
980		file_envoy_config_metrics_v2_stats_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
981			switch v := v.(*HystrixSink); i {
982			case 0:
983				return &v.state
984			case 1:
985				return &v.sizeCache
986			case 2:
987				return &v.unknownFields
988			default:
989				return nil
990			}
991		}
992	}
993	file_envoy_config_metrics_v2_stats_proto_msgTypes[0].OneofWrappers = []interface{}{
994		(*StatsSink_Config)(nil),
995		(*StatsSink_TypedConfig)(nil),
996	}
997	file_envoy_config_metrics_v2_stats_proto_msgTypes[2].OneofWrappers = []interface{}{
998		(*StatsMatcher_RejectAll)(nil),
999		(*StatsMatcher_ExclusionList)(nil),
1000		(*StatsMatcher_InclusionList)(nil),
1001	}
1002	file_envoy_config_metrics_v2_stats_proto_msgTypes[3].OneofWrappers = []interface{}{
1003		(*TagSpecifier_Regex)(nil),
1004		(*TagSpecifier_FixedValue)(nil),
1005	}
1006	file_envoy_config_metrics_v2_stats_proto_msgTypes[4].OneofWrappers = []interface{}{
1007		(*StatsdSink_Address)(nil),
1008		(*StatsdSink_TcpClusterName)(nil),
1009	}
1010	file_envoy_config_metrics_v2_stats_proto_msgTypes[5].OneofWrappers = []interface{}{
1011		(*DogStatsdSink_Address)(nil),
1012	}
1013	type x struct{}
1014	out := protoimpl.TypeBuilder{
1015		File: protoimpl.DescBuilder{
1016			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1017			RawDescriptor: file_envoy_config_metrics_v2_stats_proto_rawDesc,
1018			NumEnums:      0,
1019			NumMessages:   7,
1020			NumExtensions: 0,
1021			NumServices:   0,
1022		},
1023		GoTypes:           file_envoy_config_metrics_v2_stats_proto_goTypes,
1024		DependencyIndexes: file_envoy_config_metrics_v2_stats_proto_depIdxs,
1025		MessageInfos:      file_envoy_config_metrics_v2_stats_proto_msgTypes,
1026	}.Build()
1027	File_envoy_config_metrics_v2_stats_proto = out.File
1028	file_envoy_config_metrics_v2_stats_proto_rawDesc = nil
1029	file_envoy_config_metrics_v2_stats_proto_goTypes = nil
1030	file_envoy_config_metrics_v2_stats_proto_depIdxs = nil
1031}
1032