From f876501a28ba10fb66b1d428680fdc10bd16e545 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Sat, 27 Apr 2024 09:36:45 +0330 Subject: [PATCH 1/8] decorate envoy routes with tracing operation name --- internal/dag/dag.go | 4 ++++ internal/dag/gatewayapi_processor.go | 4 ++++ internal/dag/httpproxy_processor.go | 5 +++++ internal/dag/ingress_processor.go | 2 ++ internal/envoy/v3/route.go | 4 ++++ 5 files changed, 19 insertions(+) diff --git a/internal/dag/dag.go b/internal/dag/dag.go index 95fb8bbff0f..2da47fc7cc7 100644 --- a/internal/dag/dag.go +++ b/internal/dag/dag.go @@ -378,6 +378,10 @@ type Route struct { // The stat_prefix to set on envoy route StatPrefix *string + + // The operation name of tracing spans reported for this request + // Check https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-msg-config-route-v3-decorator + TracingOperationName string } // HasPathPrefix returns whether this route has a PrefixPathCondition. diff --git a/internal/dag/gatewayapi_processor.go b/internal/dag/gatewayapi_processor.go index 8dd41f46119..690e2a989e9 100644 --- a/internal/dag/gatewayapi_processor.go +++ b/internal/dag/gatewayapi_processor.go @@ -2186,6 +2186,8 @@ func (p *GatewayAPIProcessor) clusterRoutes( route.StatPrefix = ref.To(fmt.Sprintf("%s_%s", namespace, name)) } + route.TracingOperationName = mc.path.String() + routes = append(routes, route) } @@ -2258,6 +2260,8 @@ func (p *GatewayAPIProcessor) redirectRoutes( route.StatPrefix = ref.To(fmt.Sprintf("%s_%s", namespace, name)) } + route.TracingOperationName = mc.path.String() + routes = append(routes, route) } diff --git a/internal/dag/httpproxy_processor.go b/internal/dag/httpproxy_processor.go index bd6b9fb6334..06a22392dce 100644 --- a/internal/dag/httpproxy_processor.go +++ b/internal/dag/httpproxy_processor.go @@ -863,6 +863,11 @@ func (p *HTTPProxyProcessor) computeRoutes( r.StatPrefix = ref.To(fmt.Sprintf("%s_httpproxy_%s_path_%s", proxy.Namespace, proxy.Name, path)) } + r.TracingOperationName = "/" + if len(route.Conditions) > 0 && route.Conditions[0].Prefix != "" { + r.TracingOperationName = strings.TrimPrefix(route.Conditions[0].Prefix, "/") + } + // If the enclosing root proxy enabled authorization, // enable it on the route and propagate defaults // downwards. diff --git a/internal/dag/ingress_processor.go b/internal/dag/ingress_processor.go index 22e1a29787f..bfc3004d828 100644 --- a/internal/dag/ingress_processor.go +++ b/internal/dag/ingress_processor.go @@ -320,6 +320,8 @@ func (p *IngressProcessor) route(ingress *networking_v1.Ingress, host string, pa r.StatPrefix = ref.To(fmt.Sprintf("%s_%s", ingress.Namespace, ingress.Name)) } + r.TracingOperationName = path + switch pathType { case networking_v1.PathTypePrefix: prefixMatchType := PrefixMatchSegment diff --git a/internal/envoy/v3/route.go b/internal/envoy/v3/route.go index 6f36e3fadf4..3aa43583650 100644 --- a/internal/envoy/v3/route.go +++ b/internal/envoy/v3/route.go @@ -113,6 +113,10 @@ func buildRoute(dagRoute *dag.Route, vhostName string, secure bool) *envoy_route route := &envoy_route_v3.Route{ Match: RouteMatch(dagRoute), Metadata: getRouteMetadata(dagRoute), + Decorator: &envoy_route_v3.Decorator{ + Operation: dagRoute.TracingOperationName, + Propagate: wrapperspb.Bool(true), + }, } if dagRoute.StatPrefix != nil { From 52a6d5904192e039ebe956b7960332bb4aed67ee Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Mon, 29 Apr 2024 07:56:58 +0330 Subject: [PATCH 2/8] use zipkin instead of opentelemtry --- internal/dag/httpproxy_processor.go | 2 +- internal/envoy/v3/route.go | 3 ++- internal/envoy/v3/tracing.go | 19 +++++++++++++++---- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/internal/dag/httpproxy_processor.go b/internal/dag/httpproxy_processor.go index 06a22392dce..d021f87d852 100644 --- a/internal/dag/httpproxy_processor.go +++ b/internal/dag/httpproxy_processor.go @@ -865,7 +865,7 @@ func (p *HTTPProxyProcessor) computeRoutes( r.TracingOperationName = "/" if len(route.Conditions) > 0 && route.Conditions[0].Prefix != "" { - r.TracingOperationName = strings.TrimPrefix(route.Conditions[0].Prefix, "/") + r.TracingOperationName = route.Conditions[0].Prefix } // If the enclosing root proxy enabled authorization, diff --git a/internal/envoy/v3/route.go b/internal/envoy/v3/route.go index 3aa43583650..b7beba5c053 100644 --- a/internal/envoy/v3/route.go +++ b/internal/envoy/v3/route.go @@ -114,7 +114,8 @@ func buildRoute(dagRoute *dag.Route, vhostName string, secure bool) *envoy_route Match: RouteMatch(dagRoute), Metadata: getRouteMetadata(dagRoute), Decorator: &envoy_route_v3.Decorator{ - Operation: dagRoute.TracingOperationName, + //Operation: dagRoute.TracingOperationName, + Operation: dagRoute.Name, Propagate: wrapperspb.Bool(true), }, } diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index ffd44084968..46dc980ecce 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -45,12 +45,23 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac }, MaxPathTagLength: wrapperspb.UInt32(tracing.MaxPathTagLength), CustomTags: customTags, + //Provider: &envoy_config_trace_v3.Tracing_Http{ + // Name: "envoy.tracers.opentelemetry", + // ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ + // TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.OpenTelemetryConfig{ + // GrpcService: GrpcService(dag.ExtensionClusterName(tracing.ExtensionService), tracing.SNI, tracing.Timeout), + // ServiceName: tracing.ServiceName, + // }), + // }, + //}, Provider: &envoy_config_trace_v3.Tracing_Http{ - Name: "envoy.tracers.opentelemetry", + Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ - TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.OpenTelemetryConfig{ - GrpcService: GrpcService(dag.ExtensionClusterName(tracing.ExtensionService), tracing.SNI, tracing.Timeout), - ServiceName: tracing.ServiceName, + TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ + CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + CollectorEndpoint: "/api/v2/spans", + SharedSpanContext: wrapperspb.Bool(false), + CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, }), }, }, From 96c8a0b40b52fe77de72e5e37e9f05e225d9acab Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Mon, 29 Apr 2024 17:54:37 +0330 Subject: [PATCH 3/8] zipkin --- internal/envoy/v3/cluster.go | 31 +++++++++++++++++++++++++++++-- internal/envoy/v3/tracing.go | 1 + 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go index 36968f1397c..d35e4699ea4 100644 --- a/internal/envoy/v3/cluster.go +++ b/internal/envoy/v3/cluster.go @@ -15,7 +15,6 @@ package v3 import ( "net" - "strings" "time" envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" @@ -31,6 +30,8 @@ import ( "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/wrapperspb" "k8s.io/apimachinery/pkg/types" + endpointv3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" + "strings" ) func clusterDefaults() *envoy_cluster_v3.Cluster { @@ -197,7 +198,33 @@ func ExtensionCluster(ext *dag.ExtensionCluster) *envoy_cluster_v3.Cluster { } cluster.TypedExtensionProtocolOptions = protocolOptions(httpVersion, ext.ClusterTimeoutPolicy.IdleConnectionTimeout, nil) - return cluster + if !strings.Contains(ext.Name, "zipkin") { + return cluster + } + + return &envoy_cluster_v3.Cluster{ + Name: ext.Name, + AltStatName: strings.ReplaceAll(ext.Name, "/", "_"), + ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_STRICT_DNS), + LbPolicy: envoy_cluster_v3.Cluster_ROUND_ROBIN, + LoadAssignment: &endpointv3.ClusterLoadAssignment{ + ClusterName: ext.Name, + Endpoints: []*endpointv3.LocalityLbEndpoints{{ + LbEndpoints: []*endpointv3.LbEndpoint{ + LBEndpoint(&envoy_core_v3.Address{ + Address: &envoy_core_v3.Address_SocketAddress{ + SocketAddress: &envoy_core_v3.SocketAddress{ + Address: "172.16.60.14", + PortSpecifier: &envoy_core_v3.SocketAddress_PortValue{ + PortValue: 9411, + }, + }, + }, + }), + }, + }}, + }, + } } // DNSNameCluster builds a envoy_cluster_v3.Cluster for the given *dag.DNSNameCluster. diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index 46dc980ecce..333017c89ce 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -58,6 +58,7 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ + TraceId_128Bit: true, CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), CollectorEndpoint: "/api/v2/spans", SharedSpanContext: wrapperspb.Bool(false), From 46a8655079bde0cc8b035fa602e97c2e8d6e4613 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Mon, 29 Apr 2024 19:27:44 +0330 Subject: [PATCH 4/8] =?UTF-8?q?=F0=9F=98=AD=E2=9C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- host difference.png | Bin 0 -> 133526 bytes internal/envoy/v3/cluster.go | 9 +++++---- internal/envoy/v3/tracing.go | 5 ++--- 3 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 host difference.png diff --git a/host difference.png b/host difference.png new file mode 100644 index 0000000000000000000000000000000000000000..87b4589c38f4b48325eab73110f4fac2285aa0a0 GIT binary patch literal 133526 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�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 Gy#9Ya)C|`E literal 0 HcmV?d00001 diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go index d35e4699ea4..a7e7d07c161 100644 --- a/internal/envoy/v3/cluster.go +++ b/internal/envoy/v3/cluster.go @@ -203,18 +203,19 @@ func ExtensionCluster(ext *dag.ExtensionCluster) *envoy_cluster_v3.Cluster { } return &envoy_cluster_v3.Cluster{ - Name: ext.Name, - AltStatName: strings.ReplaceAll(ext.Name, "/", "_"), + Name: "172.16.60.14:9411", ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_STRICT_DNS), LbPolicy: envoy_cluster_v3.Cluster_ROUND_ROBIN, LoadAssignment: &endpointv3.ClusterLoadAssignment{ - ClusterName: ext.Name, + ClusterName: "172.16.60.14:9411", Endpoints: []*endpointv3.LocalityLbEndpoints{{ LbEndpoints: []*endpointv3.LbEndpoint{ LBEndpoint(&envoy_core_v3.Address{ Address: &envoy_core_v3.Address_SocketAddress{ SocketAddress: &envoy_core_v3.SocketAddress{ - Address: "172.16.60.14", + Protocol: envoy_core_v3.SocketAddress_TCP, + Ipv4Compat: true, + Address: "172.16.60.14", PortSpecifier: &envoy_core_v3.SocketAddress_PortValue{ PortValue: 9411, }, diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index 333017c89ce..093f98c38a4 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -18,7 +18,6 @@ import ( http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type "github.com/envoyproxy/go-control-plane/envoy/type/v3" - "github.com/projectcontour/contour/internal/dag" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" "google.golang.org/protobuf/types/known/wrapperspb" @@ -58,8 +57,8 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ - TraceId_128Bit: true, - CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + //CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + CollectorCluster: "172.16.60.14:9411", CollectorEndpoint: "/api/v2/spans", SharedSpanContext: wrapperspb.Bool(false), CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, From 47b00948559de3e783de6e119228b650d938b5d0 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Tue, 30 Apr 2024 09:59:42 +0330 Subject: [PATCH 5/8] set CollectorHostname --- host difference.png | Bin 133526 -> 0 bytes internal/envoy/v3/cluster.go | 11 ++++++++--- internal/envoy/v3/tracing.go | 5 +++-- 3 files changed, 11 insertions(+), 5 deletions(-) delete mode 100644 host difference.png diff --git a/host difference.png b/host difference.png deleted file mode 100644 index 87b4589c38f4b48325eab73110f4fac2285aa0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133526 zcmb@uWk6JG`!9?MNU10-s7Oh7gMlC|-5}lFts>phodeR{G1ARQcgN5}GxWLH?)~iN z{LeY>r`HcSjBD1+taabl^{Y$&Pf{XS4~QP1prBxheiV{LK|ysvLAhmvb{{;0D?HT* z{<>@XPE;NZ{Bc9m^8>#V+I>*Ale09ibJVucM=`XpG}ouM)wR*rx3D#`v_ss13V?$c zZw`8IqpxjeY-#aa-q>6pMG`z<;eP(s%H}x>6ARmOCQcqE4jyK<=bt2>(=xHLGP&y- z2cV!lM-dfzEAN!JHRGuKM1<_u9-|23gY=){PfMzl)7xiXj_dkUM87)LWFmT6XOv%( zFrF?tJTAV4MTZt}uf(y9=);>2GTnPuZ@IWbOEI!r$L8S9Zp#kvtnJ?E?f&h2(e=mr zix1zSz4(6fLxB0MM`L7;Dt$&7c%r$JGWb}6U1Gk*)@;1==+3gR-!oy@u z7w^Ac<`$rruJrc_T00~n1_=LizQ0a-^CK-p;_$(r_xR6qFIq)}|2@m!C;0wwk(?a2 z;hzuGDw6B5ty*p|z}LnkIZgC<8E(4ks7lD&c+Hao#Ssy8_0WoDOoS!o2)Y*^vgB$! z?M+E(vo*ABK1Z45y=u?!6r}6z8+xJ@B^HHt$lv@GTE*-<=Ig)tC~YgsZZg|Q|v39H!|flPQVIQQzh!hA&5-p${bjcBys zBKWzW*2ZXlPF0ad(j;9RCo1BZC$3dz0(9)^LnxxLZLqodd9p$9^u*biiPW=W?dwW< z%&i%W1IM%Q!3%cFY3i<0?2RE_$@SOtz9lU*^uF;+S$g%da-L!hMb>N3pYEHAUB{fn zrkhXZ)bdo>zg@U>#ZZOL9$%lGWYw~pmb#qEUf}G&=a0>McjG@MPuCnaQ$O>Kl${J6 z&NMYQZwvEqpD5GE&Bi`2b{)E3>p9i-+?-;`XV8u|>N;pWg0j@Ghw`=?cB%8x>smXb z(73p`4Ia_d%#;)4j#>!WbV?R7!Zf?~awM+=93e%<9l31i_2W35GI7u@Dw2H9TKxRc zf9|r7Pp(oO$Gro%VM}xYVbaqVgY@K62bZWg{!XX+UfJg_CMG6J^=3&l>-|0tw~8)z z$3@&~aM3Z>Z_8X~mG5v|-BO9KLcD2EtsofA<`fAzwcbMRorE1^<`^?xuPmMC1TBqn zjFuY@B$mNpwj66DDN6Zadeznup3Tj&p8FXNM;mPRjxA$zTHy9nn2tP#Cvrzj!#5V2 zBf_#txK}&C%V<_N#1MsZa=jx_FUUpKn@94G??ni^mf9jTJv58MbP5X(FRpma%*|r? zY!%}VI8B;gX+oU~T-`U1pEX>H4JoK%>-x&6VndG79qPsCXHHgh5m1rKi#>uB^k0Ym zxM*DN@%9N-D7$BU2|>M+t}-<`A3Uy%Sx|Av3>JPsxW=c3pi0snNvsKq&v*~c?A?fE zd9Z09tyib9%@ii_hIcXGZgQAY zF0aeIj->S!x%Q~8t)Az${;}c0e0=h_LPAn9j>UqmBZSOwdYPuRwf&*nNwNiW@Hn0A z=8lQEP5-+`!3K026qeraUZbmb)M7V(=Rif}f<@GPl)!nbb8-Gn4EFY^{;B16KKI<$ zjhr$v)98&o-6N(1<8}B9_b}Xk`)jfbcrTr6oor3m=5pGJ{Y8eMS=VJV#BMdc0DSlMhEkjG@4Dzz&A z6tj=-K;cntFhjrPThCo;h%eV3+{PSu#kf-Eu+!SrA|PL+>Mfaf_52t7x#wkNB3Om@ z_ntDy`#G~_S({yJN;#2zz6x4j?q5mFLQ0VyzvzU;v|~Xtg-X(0#Pjt_%fxNtSSKb1 z>aEF56!M~1xlqndwwg-ZUDtkRv7c9&znBl>6o+g>a?T_ng7xWxcdr?wd=cj?8jxjA;p zfOqgIIn%Fr9aV$trsT-{^fR;yCo3yUUeStE&qhaA*FVI+>7_q~#T+X8Hbuo!0;4o3 zcy~epr-vfPTRNbCTjgnmzOQpAwrz0E7UL=1ueem(*0#3w%F`sYU&F(Z0Vxg7q=#fRX=(HHPG}^RjJanGt0TL?LLFq$ zghUpW^Sj(f79Iw&l zr@}cew!7l9;ihtTtS4$ebGxIz!p_Q0@tQ}KlMr=Rw#fviEBJltg;Tw_sHZr?jL*@= zW4o(&0TK0K$JXREcDT~}l+{kBER>X#dR>dDQ(5KwdE0QTjnRRMrl)~;velnncrl4h z8jtlSq3s{&gX@CQo5Z0o=84OgmjBOsUim2TZ;$qKjHFhK{2&Nh{?IDUCmf=)T7T*$ zb83s%A8))%BE~8w*N7Mn*Usn|%+)n4w^pSLCCnsm1mc(r9Frp$x8#aj$t~S z+Qo4*-i!dUH!(RmI6RYNae4pu)}}*idwZ$XsD#%(CBg4Hs!9$HOp;@A4VR;Kgb)h& z>R(Ei9^vD6{6xp?+F0vMZFK*F#PEyg2-ZHiy1ckVwB>eoj%`iX#boX5xOA|njpobe z$;L@eT}jzq(xh=TMs9pCuCt+0{*sa{L5bYqzmIht?mjzv!R7QRz9*GU0~OU3uQ#y? zbQnUG!HBmlBE_zA9yUxKokNo9=EmW` zD;bC(x}+c(PpTj}-+f%GGfXd^>(1d6L)^R(+05N3GP|Fre6s0c5V0UK_HVyz;RL%a zR{a{)zvexmrVz;0V}i{CNn>YDiz%OqsHY8$*Vy0!KUnVRI7#BQ*=hbDbuU?x1BWK~ zy;z9IZOA2cgE&7J=dQ;-p`?Kg4gApFWXK7h7G&FQJFBm{!mRJa{p=RgsA)jqH7T$4 zJA5f)R~aHH<64t5wcGzy*_}kP9k!iLH=f?{!GiZeVbreRF>3>*3`F)r$TLq@mcjv} zSZ2rMov}4&(P^MDZu?RsJ+bt=cPMLP8N34n19k|(Fwi>gSY0hrI9N`;$zX&IOTK#@ zjA+Ubd2^AeZ)b;zLn2VIois+Bnyd%*bc)|wxlN3#w*R^ zyTO_td*@wTQKG#U@Kn9pju7Sg%a>Q1cOxqdDI&8l)&^a0qb|zO=7c_2Z}v~Y`5lag z;%`=Mg_dUn#+k{Pvv7G{Zyf8v%a^ya%~VcZXH+kw5s^hb&U1ouH$SjW&b zp^$}IQfUO4J&$~M@nI5dB9>xlMz_n*C9;RV4E4q2subxpVuMUhI;4}AkzElkQ^`I) zH$6sOL%rHz$tTz5%l_WP__jQKu<(0aPR@E9vKKFdd-mhw;}=g`K1Js%cMbji^x$b{ ziVjkPcr0RM;L(>P*Ao_lLA{1cN5mXwbzr_wi4Mv*MEl;i-^ENfFKFvg`Ww#>1=b;R{`Xxya~~-ihaDn1tQs z{!8ma4a6w7vSGhrOTKytHfduLSr@*?)Z3Oh5K~J_=^0h_Q}~{)a1e25O&s@~^Fy75 zd_uO<+N7O28`XAN_9Y9@$&jTM&sMMY^JZuA#iq*Q5fnthJ~?IZd3Pil$_eST;U$9B zcz9R5(roS)wPiNgF+xH@pN|pD53n%AOTo@z6l(z;P118{M7q@V9|GqmEuXX4#{JAm z(J}4re5~h18I^bxbs9bg_&#}KbDBn;`>#A$Mro#|R=RTCH2ujtLe?1sZt(4S46`FExRSU{!WIc<9xk1?P9PD#P1 zTR!AJ913+fzZ;t&;mfq>$Gxjq)=w zQY>Gtu2NZ5wbW#r=flGJHB(~p9aLt|y~ieFKbz1(U$~renqMXW1T|QxAkJdgEd<$5 z8GyLE>geeBiMI?61H#0N7;7WpvbzDlfIK-}%~m7;ocIbL9%Cua3L666#6g>%QIk$b zjf3uFvS)lslQ6-ePo%-ZEpv4a#I28riSy2<##2Pv0;(6utYnLJ+%E^OB^-2viN$)< z(v@YhBne>JbGnB_Y_SWv?cpsn#2B8*IVa4ctaQSE3!NxUq6&0@&6IJbg;rOq1fG932qu?9(k^j)MgpZQ4eSX4pfSDQG zqBTv^rA5ZXSA33=83SQm{UPmG#Dm2i?hPmL331lvQpLGQ0X!KQ8JCqWNUc&T`>&|; zDO8~m!Qy>;DC4E>RL`a=SN2EpYI!$iE37v;gq<)c1HJClBqdqX$UiJ1WR;^GMU7E! z_-U-9^6XiS+jhKWY%BizkxvmjfMgyLam50b#%x?p#W6ZMUGJVyqAADadgT^BsI=$~ z*_{6jlVD_Y3n5uKVfS3$mYagHHV5J}cIp|5C_8Z-#dDy}&JG;B40aT!jAgPX5{LKc zkF{g*oxz#4Dv_^ePA|hAGh~@mSi5*qO@~K?Z#SC4r4F}egHHovtS**CU%u3oW%Bee zkWSLE>QFXW`Ize9)=y0z&#`K3MBR90T=xkPOM%f)>k&G3NEjOzr)^;10~#R;UNoMv zipt*Ek!iz8;9P*183py58p+0}b zcDmvbeCZs?ltVy7T3E$T$0wn{hX{<{cR57Bmcpoll9wUGX)n1-`j_3R6M6&iuz$a);}8UU1sp; zijE{SJo&!k`@b5#vz;AV(M$59N`BA1#C(-f6hwB?YjZ|pW2G)pQ*MF6GNFG|sl_{f zeoi@cP7%LG+wZfovX0=sR4s`1^Fuo(;WA?4zMHvDm`Qd=TwL5Ma19$9`@0W?d)iA5 zj#J*WVGoo|^x|^dnF;Lp;sMkNa?73RyK@aaU95(~ zPxib%7HSTc=Yh7e#cDV@b-iQyB{r5oVs^s79O6lpI(h8&nkh`~>sJ5=yJP4B;l*hZ zNle&P(FGB7F(m}N8ero}FSYNj_7OKgIC0%DFE1RdnC{IwuWEd)cfM7Po7m{T=D}a9 zo5IcdUN~g&EI463U=vDBKIIPDz1dWaxFv}=A}PS610Hn4!3#`Alp8$Wmx||RwR0O{ zo8=em5wQ{#F=redOC~TSqlS_$94qAM&81k4*@icJ+v75ql#~P|@Oh`e8K2ih-~yoX z$};%|ycTLgle63!#dRM;(XtiKk1YxhGZW;w1%#?I|L3Z}Id|OepfTlWj)?oodJGR& z%%h;=BjHseZrG07Vxc$)!4a2q4t(O!1auvQR9D_u5iUNy;jWw7M|Tog8@?YAvVuT| zaXr}~zF?wSaE7%)+^0XW?5L_LGdZ5g=NA;L4VF3n*cLT*RUCr#_4SpMRE{QW^(At% zO22>q^<+pYsuI6q`!$6zjjxwi!+*(>2p-S%$Lx9TX^t=IT}EE-oj;~`%!$12lDi>4 zypD*h({J{&FJHdIj9!)q?TurRfl8S-H@Dcseu;&eMA6#L|9*ke9r@b7AQ&sANK<@8 z!v`#o&|8<*{o!8Gb9U)Kt_mXI`5uuCd+4;2s96mTDgmTHmBUm_QAEV!+*Uy~;Acns zWPJF0ey8IL?jd-uq@!Do%w!>hR)g?1(Fijq=NSE*IzXCUR^YpUUpoYB4Q8G}LHQ>7 zE-vmmYEqHNXX^uX+|IH*u>iNl>x8I|pH@=IUsD5`?KZ(;w>CNRnP&GcA}@tFPwVWA z4DS2&junl37%`{itxw?lfUVUbo#jqr`GrVJUcV!mf9vE}lq0C*yyM)6k*4dX15mlm zi__m0Y>bTH&p&G?O2H*KKgh^QAT}^CSXZq)9o^=&TOU!gRNH&`0cqX&d6nVp9#jY> zRmsFT=Gy-1&5CD77nSsT%tepmiyDi>t;rhP7t$#?G`tRLWbRJ>`eaFdE!Yi7#f;*?A_x%-qJ@jc^P-Z zqc+D*Ygd%Y%|;^u4a^80$=XcU1TtQGFfu$arYQ6Lox7PCogg;h_ksc}%h~!g&!S{L zCuA64uDMI#8*dEfzdau|npprt+P=e8Y8lO(>7y8CKEICvyEDr@tzWoWSE z#WUP!yl5e{wy+-VE5b5>LTis@8`V`@+@`!&uCEAEtHmjKcN&&ATDlEG@I!Pj=puoHo-wl_b&NFjVGm=yb!je04es(^z z)^i_J!9XC+E?(*1X)t8U@@DRU-vwewFk`NczWxVrE8kq;IDln~`445+xNP%;hlfYf$s`uV zvn@;p6T67VuJ*4;0B2xj+B?vwLUm&#_rp=H0)c=*eiJKqRHWn4J|q!~r=uca&#`$d zS26fz-;GS#^LgwG+5ea583}0Zpf`@-jdq+O2yUsu=I9WRT=NU^xomoIOigJwMswSa zXX?1OTrochXs+}nCFuAkYbQ)`QvvDc*8CUP3k_~iWZ1=5`_jzwqPND&V#HPiGpt(} zhvW_Y3IF2X*OS%gFftz&`(`JHof&b;I*CJMB?gdXbkrWhCM5sbHIc{UkaY`it)4>{bSR5> z+BxI4+J+KZQ%+nF&MO23zV`;JPn z9-*c#-%#XE(tMp!g*E2d(>a0nEzP^!F5jJ@bW){!?Itj>p=ZNYIP?h|15=g2+d+xG z-lHnRXSkhe)$|S2`da%Pp{o9*!{$05W_bDHD2#{;`}_H&x?X?1X**rI!UwNeey|gB zus9Adu7^wkO<@>Ml-=R_V?hHof1{Ybd|e8-0-%o5X>pNZU|>ikq3Z>W>8(m!iYi>; zvaTZY+sDa#BWAipPbLq1(@^r&8-x)S)j(=l+*s7H@>N$|l3PT~xc)qC!ynF5zyMl4 zDZfi=is@L1-3p>M>LJQYa;*s7Y*ws|;il={pu90lCM#qpl7u@x>*6#8E!Corh|PRC z#Jh&uac5Q+AkKWvDosWP$bY=DK^GYw%^XpDfeWt8$aoI{-5tK2**fWjqWGb7V_eXh zxvcjiXO|NP_i{l4585S2chvxX%xk3}=uo-X%vr6zjdUVU+jy7U+UZOcCNb9++OeXt z3z!1H)RGF^bNG-IjVfc-0hxjF>sofXj?g6qy;p$sF&VX@%@{i0hAf5sSW3I`ZaC@q z5(_WSSnb|;QU(QFTe$8^JeMXwv$yx#h%HgT#t*Pvy_F62E}!$*vySVsP<=PNMfWi4kHF;p zxU=^3KSnGSg;Iawa$kh+S9cd{#MPbp(9CP+A1EnG)UZm8y5+?Zq~6Uw%5!07Bf>f% z{L_|Ru z(iQDn44+0ZsC={_i!tR<5l~0h89syV0AzUx@Osum#4p;VG5*N{_^)8VSq(R&16s1FJfpfj+Yd!? zZ@k`H0;m)9E>AUh$~$^{w;Hm}uNQZBk|Ywi-dZN)Km<+)kdR1KpKHflS2ArmFvsy3=;u1viLf>muY|#BwKpA=kgHw|CZ>q1dh70z ztvb8>gEO#XZw%Nk1&ZU@isjh`8^Ft2TXM;&5%7(^te=;PWRhTlHcI#n3J6g$B z5zH7cqE@Kq0w!s5>D)ES=RO}Sl6`mA$L#hOT>W>GmWqOj?Wb-y&(3X!&1pg??k)9t zH;Nf+8tdz(_b)XY<=D`|I_R)WFh7i_)`i5grjH`m*FXtH;xG&gGzu`1OKJ#(efB~nej*o zYmpXI@#$Q3m!P(`aavWuzt(saJ-9hj6(;_+{fWZpfBV~Nm1F2nZM<`2GNSV-W%kBbFInn{z}y5f zA24u+dS`+KX6hg`*Vhz}7`1GcR_W6-GC+CyQ$hUn)+7%}1?>X>=DKYKC=$@Te{pJ6 z4M_6Yn~Y%t{(N@L6cm;%eammegiyffIV1odegP3jaXathyqg65^+mhIKQQpl=gp9$ zab>m5!CI?z7JLSc(S~H;d*hJt>&(5i%y_y}#-dNHRY*5;cEqWgm_x|lC2l=_xN5l{ zq;hwzF59)izC$WMKi_C$r#=4^0}Ttqm2ureEV6P4Q1Ov%?ux79!sU>uGDBF-?C)m< zisBuW=0p6A|#&hD!&!5!5JP;p-;%caxlL!WriLXCyL+5fAR&ew8B#2M7 zJ$C@eu(jbF$8KuagABH@_7P#BacY11zz2&cY{yDKBxLvH%Xe@6WsenxDD@m|(#KL? zs6(A`ztCZ0+pYgj){4H)s>}LpCbp@P^M4rduXqQ}0r4m0bL#}yUm^QI%WiR)rtvIG zSJ?3VALBXvo8B0S%hlpNPK!B8rT!}ML$|$Ccp}tE6!E?Hd^a5FuJC%ZQom=T^U@c` zE}|Y?^Mf!E{gRm7_Ow3`+HC-iZ`gLWfj655QPpvp&o66}VQ)`<9V3t~)$hy2FZ6_w zl1x?kVw_8yu%!aF zcN%EoW~xW1punAOR;@g-wU?B;5)c+Ws&b@ooCb-3-zF8pJ^xj=^bAbI@t&>AE__#l;`_cSS5l1}R*|xPGYB z);I)jn5mQn0C!ip!VVpfr#dHZw$GzNqoA?OGhvFnk3stxWqlv zT6jaI^PedtQ@(<-f?*)ViDqhQDlX^fSbIeLrmScR2)sSbDy&$^6-%R~>^FAnPIDUo zV?bgj;q~|ioa1$KSPUoQ2Mvtu>U_pG{yJ@betz>i8ZDypk%RZFtcnerdI|YluM%I7 z^AobU-K{&>rgD5tH6ga~L6ScqE`HxVI|P%MKN^HvGJ=O#oTp>i;Ltfx2tV_7@8bmZb1mwT=y(1@50zgc>(ck>z4L1=EX^GqVoK+0fe+^20o9v@2V_}9Z6r(QrgHk)WgN8BL+?f1pyna))|t9?{5 zdbT!1WRF431p}^XI61f{uDM81l^38xxRmJ z1v^;LzYA;)OL@6V00BWUGcyAitKRKMjPV;t764|^l}Hm|F%?vE(3!x?8PO4 zi?+j7gt>RY!e8vEwU0gTDRP1GD8(0=ro9`V94~fidoaV&dUflTXnRJc=J0TtaE5mK zv~#VN>viKQBQOC%)L?-Y~h$u#sgPpw%Fbg`Bk{{V= zX-{5<32H37YiU+4)uF&=)OxF%o2FS1?{+SUnpmo@+giO>Yb6FdU@`3P4fI0;Ppu&A zP4{@Mzr7$AZbOLMUA{5C%;APggsJiiIvsv=>`y`>mchliF&T9T*s&p29x36;-&>0o z@rdFNmr_x9DlB1v_>Y`|_FwVv#AkS1={a@_gH9kQ&+&KWv7U9H4&>ry=41v20R8cy zpglr7cXQ-k&8)oPvERL^HB&M~oG;Jpe^~SA_jCg^xQB!GyFtXf7K94Ge(?rrv3yPF z*8_aUeL$^6+aciIjvkC`T51V8KTfArY8EPrzo4-PRo_FSQT;?UgIT|;o_jq&j)vkA zOIFb0&q7CAqLs;~20;~gF@hPW0)g%Zu4fL2?&cK3!2(OqS)mWNKIQw-o@2Xgx+|R= z@g^?{SqA4SEK$7~DoM1;b}%m~FV_Q#hA_J0ax57zt=2UWylawX`O#TB7Iey`LMLu& z>~LokX6BN5x6>bnFs-#pib7h*Q8tGLlN3J{p54{$n|0nYS}^Uo`G&dd2Ry zO2Z~^#~rCIp`t&DM6%dfp`s3IAZ#V?U$oio@H=%Ta9Sdy+>bV%suqmSkL7__2&f1L zi%D7?CKaj;TGN$glivZ4|DCD*p2KqPs-9_Iz)}ZDhA?(rYVbOy10l6ntN!~E zmGt9Bdq2LN9gk)H17?>{hw_vq1EMUjq^XebbdNcN9LBoFZb+HLlJz-&0c zDC$#HR-wO;uku|GqeC~-uoPws#A~V-(l>bxaC)6VBWWPJ13`;Jw;{{w_`T8m!h! zEzlPojVn}lW}wou(=|txyztJifVwzdxsOWOa9lPdJ$lbi9ox$y)4mub+XjUkrB}O>XuFD|qoeOrLH}}UAa0Av$rrb_W~)+E)0pvDXsu|+bf;lZ@u$MI;BfUdcj zotJu37G=c_PMAODKq)@C{O8guWENvIUR}93#%nfsB!PMlatL3L2g}8~RsdWd&L)5a zXP32AakgTG3D}J zfT*wuj4@aShS&gslH)j5R=s8F!ntbWNG?G|Kz+sy`}3=|XU6`9-zPA-qvw_&s+Ou> zmZfKJw+x&?6nm3VlzHWJtxj;o#7|7;?w;;1Hw`v_+cks@CcvNATg)W`81Mu^R9RWd z(J2DN{s=6s0vmm75}vznK(w!dm--!+DoGt8pWwdlZFpn@eXAT;XMry7Wfg4^epxhh;_)LpXy6$X@MuQ8Kq2r4|f}@MVe+?04)kLy9kUqGH zQuX%r*^j->mCucBs(Jj^HD4UcFiAfNg^u1h6bA+pOQGzhUC|@qfFvz!B8nUr;p{GK zz`G{lv-1NPmM~Tksm9YS?R4Qhn>Zy z7T;<>L;!B1B;?@Wh$i#JY#tr;;k2Cn4N}H8)Ih+}QiA~1)z!>w(etaBv9@Tr0w##F ze?_hYr9hq1UVEZgrl;=;xW$H;Pu=V#InQMChX(%-sg`puk8OsB-SjsInqnhKRtE$_ zt@`64u+1mu9bf+X{8&M>;b)E^#qcuX`fL2LEJ%_804+0I!Gr>Ag%_YkOgVnTN>+%P z>GHQG_gG$Bq3x17%=MT4YxnzIi+Gw(e~07T>@q&ylO2i(4aytM|Hcekw?}X3Uqybi%SUwk9GTbo5k!v%T|+0JJ@|9=?!Fi?40oup zQHw!ZzW;vG(qtc!SHV;vPZ+5DH)#t}LFaUg>_a}wgX3p6yo(T*s?=(N1<+qn(61(d z2?9K++(N+$c#PPF3cZ@z)DzFomozFh23P>nvzi9r6LVO$jX)lPO4Pk(hW-~r-|LcL zA0T!^kn-Qh)cJVbD6vb@1&ZiI*)H7@`$T z4+obuSoKRQPq}fhV%|!TWP%(fr|qm;Z*Q-1qm=+29$q33ZYM!eS8v=|#M|-C&W{HD z39wXwhOTIOVnbMx;b8f?3)GJEZ*kalZbylc`xPAbvvm3!uPEm1~XZGLLwiAt~N&{o(YD4 zhIqr^Qy-BZk~RTyNz*Qs{0@d_)F1zKOTES;X~nZpY@e?HC|w}bo_UtUL*5vA{{Pg0 z69*6Kfh%8oLe|-t_CA)+;KtuqDbpsm#lK7kalIR?C$9=KiHnVW7~@iWEokinX|z7T zdoLWM^EpMcH-52gC2tIAJPNxn{{3%#b(S$=kfQrSD={13f)c|6N)GdLHO`WF%}dwg zR4|I+Hjt`ayW~Q4+Vj&cScUPWG2w{j--Pt9PuSWWKK5oaB@u1V0wyuH0yQ>6APTx^W|IQlMvC37Yq3qa z%#Bdv{Fr?HkT7HU?caQ!MZxj#D&~W5V^-Fbr(;}dQ1_f?gQn2na`m4z_oCI)3sCBc zT&4FJ16J2fUV1GGd9vOr5med+$9tM4T`OA>AzM-asD_F zW_tb+nh^v4n*cjsj407-Nq&HtDG9fkyEDM3<1Ux;$q@*W=uImPWj&JpxqjD6n3`?;THoW<= zolG{&YJYu}nz14+T(=VoAZmoS7eM>h=>GnQ0!)&^hHw7!dH;EsC6w14x<|2+4Q zj49^X`>a3KNhg&|HZXUC*yFRC z;~TwZ$=GIs(#xUxcF+rgvv7b;_i}P4>z`Ll)hur5q%2>Jz8BP;jutK___TTl-s=<~ z-`ihJAAETAG%t}{!@810J;Yj#XuxI7kjAGcdMeuBQjB#zX0omp@eR` zlCGnFqS!qryiS&T8ZNoG87yv8rO)mBI)+mg8*Aiz^?@#I>VTd=wM3KzFwu_bPe`*q8p z0Pd64^i>JQhWb^h-n@W6zOInbnCXxq$ZN^pTg3dj|+>DBFbEtsCef0f3i zfrK@Bx!hM7J}#erzPV*FUE5dPC07lChqJ^0X0`%--ils57F5Zbc=o#ODv_H}45L!? zEq+&7Kt+h;Dnwtu_~>>bJ6ivjy0pTq46SV4Hj%7}W1gKEo|rWt`u+Jg6*S}AL7k6X+5RDBvL7=J-Xs;oecUvgtW?M;RzAh=0PS75+>9H1 z5p;C)rqR*p4TU_GYD>!*J?vlgTKHuKEy8Ctqg!AngQhR6&1U|#(9N6q#mYW~eB+>eSku?H-5XykY~M;%uAFr53Q zH3f1Pdy*M(*{7<*vW@VzNa%oZvt+%C;l?=!d}5K@P0E5j{VwhIV>t>Xw#Cce5brtq zF@^Gim-@Xw?Wp^~EY;Qb*Gbjg6%a=hP!YCujRz=!o-vmF3ggLOt5fXG^H(zR;C!h_ z;#QItpj`XyE++5pTBV*+!`_t)3n3@A2%`_B_wM0+bow$L{PwVTGelDrOf9|bNO6YE=>o1y4{S0_(rd@`9?~d*rUPrk!dg? zd)cba)%F2UQkTy@rJb=;4`iWpgs7m^xFywHW&gl5Okw2I=dEhb5qiXym33je!;&3+ z(bePm&Q3d^%0y^Fs=&U;G{}vY(9y2jZRc5N3SC9df>4e_pY>~%yPI^_LePNag>~Dz zSB;vS#t9F#)*a}T$5yww)8wp`HY5p~8W%MA6uA8_j?UVQdgnA3#p`ccR0=tkq0s>v_3j={=0T#QbPXPt$YoCy8lGX*`@8SLyxLu9ojI z&6Z;pV4}V z-%&ncTjP2yaF8WEvRzhDA`@ltEp}Y_CXq8l8Pd_*{Ee(5NEe`VU|;z%NH`%`&s;E9 z4g#LWvU7XTM1rWE)pgoJ*U=4ALuwz!>TRw7a(qa-b(4Z%wJpU5Le53~=NIliPQ@-0 zvTXj*8!|rvz76yKlLdgb0{6KeMDsF71`HgqSnNMJ!`z!kRCumG!+|Uq^d@zHl+FNv_aGJUzO^TY zgvTWk1aI?_*A#5|B6o4nKIe};0hJ~bsBO2UQWoI%FcjLtV+S2l#-~3(WwYc(S0&ET zF>Eo8N%=lbLzQfYNjQOZoH^rF>hKg80l@KI7)=%EBd)PMo_021RFBlDr>Qtk|Db*| zC*NScwD~tG+O0zQfp!m7hb8Q_Kx8c!JMK zcu~a}PWg3~@{yvmhn-s8kG_l((1#-GQRd5BoPV1vaqV_IHQS~)V$J8fC&u%bn7Bi* zDn(b{Gz1b%XsOw@wwN=S{~Y%2rSsW51viFXmNo1LAGSwYf*XTMUmV~LEv;q~G zWi~*fvF6z|3s~UbuNC!GFQmh2{2m<{YWzse)r5-R57c;#d`?d>vCtGk^0q*;}1}=GmA}-l4mnr4)OQ* zZ*qPI>{{?Z`?&c7o8>ebNVnYNIDQY5YXr)qIy?7p zk0?Lp0X&72As+|R+*6K-G$1e$Ojk+&u$HG*3Ylcj9Xi}}049`{{VXmxje;b9w!(iI zq@Qo#8o}6M9%k4p}%1bH@raK>T>G!lpgdromrM4&c_D5*%V-oi#aPCo6 z-b5+0#$Ev+*9kOe6f1gpG&N#kydvc$Z}FI~NYN}uey1mb;rN87@oQ@YqM`Z< zP$%@&)zzE-ZQ{H)?iRH|Iu{V7%Ya%q^U4AYGRLt^MtHpUOuezoXKFCySmpS9u|@(J z$Dpv^#g&!K)6)_NsrvFvj8qV@027+t7*B8CgcUG}S)-|5yZ|5e{;!GzPG>O5$lrJw z{i7}L)}9t+#E&p4af}{NnnIyh&7I8@$DcU{`Z&l!{Hy~rT{!QJ z2eatU>)k1u3O8=0d&O=qH)m6Q>xSbRs9X5^dP|ZyGis{JpO~(vBC1C=IjulhitbA>WRfWa^L$gb-)?e}?)~anA!H(6 zwf30D#AR2JvMzrL5Kjm#{r@OHe#M-%kRV^WJn_|hMUol2mU)KR*2Qw`-ksH8?+U^@ z9y!4^-ZV82rmjO9>aar>kz`y~{S>V)ZascpT~~MCacr@i>j{1N8*9c70r<2Z9?aTQa4>Lm7>}DsS~$KZ$QF$^ypwLZ zxuv@7H8v}P!nPq7J7`}fdsN4lPYO4Fob7#IF@&eb%hBumdg(??+$Y?*K-9N%q&D3~ zD3u4_ZI2d2G zypikK)gkDiLd4IW8BPi~T&_y;RGEs8(#1I=JF6{R*WsZ_ zNze4fqM5|cB9C!jW1)7RF-OV%FS_14km~;ZA18NdkV0i^A=!J=LdeJ_BOzJYd$kZ5 zWs@1l-ZMK9S;yYv*n2zHImY)oclY~#|32T}_w!%3n{zm?=eVxNx`t5)NzkirZU4Y0 zq814v@C~N0#3mUM(j8#9ZGS$p7p6_?h-Z-Awdl2W5@@bZPw*|Y|0N65)X@+@wJcVv zk7mB%j{0{_2QyWZwQs+qcrmCAYOqATa!0^(pyzIl^7Szr%~FQcJx z^xQAugr)w6%x<<8_;y}G&Ok9hsXtF&U^H``&=eoYQz>-js=t2f-mk4$G-!Bus2(eY z)M(Zy#^;}O8ZZV?nRchEeKv=8W;|(s1C{-VCk!h5c|2mAO!Y>T}^(65Vpw zKuWuLuKlJOpsHA(x_oT+4cQ{f2PKTCX!Wb{^rx}!tIYPYQpA;%bHn2G?eytonRA+I zeK6N+mgR9+%iP|NdA=L>zkK*hlJqK#pNFjZN*r1a578P!Ds6I9JMEombX&h1jhFJo z^1?zIO;GFVwx`d1y*H7;EA4*_>s| zu^RdH$b3lr=_OQu<=SQ}>w(I2jHEpV%LfWlPiCC7Vc;zJ1i?&xC zxF{C_IchW)i_&fzQ$0&wj~_pG8$C9HGTX&2Wq4W_I=4R&6ntift)dqY)8E)ve{*B) zd~^?Yfs{f0ysVb)!ZZGBPWrx|>$=w1ou!b_2;U$eGln-y4g&s z2&%PKXfmclqPfbdrrg&DguIEpRS=VaHRF9h-X+F=dii^rpIf3p(s5F+P~p_F4f2)v z#{4z+CudxHuCe@9>5#*HaQOrHxZTeyR782kHM}rC|GLIl=1jKMXlJzT$aM%FIu_;O?y4o4B8;meE#tuzi;3{1md;{`y4SBjQo!RVLM* zg!B}8s6vk73bgqwWxWfH2Mg`eny+)*JFapOwBG;N^|d=q6d6N=b~MA%0=t*3RVH4? z>pALq{M{qRCuTa^u{M|8G+NyBrb$(mX2HuM+%Lf6_x z-{fQh{I`vY^FAMZNNH&;i-QtjU%8UdJOPJ56t64!uA}3q+s2!M&@|g2rnMcl8uA?V z){%+lj;kY0HSY-nOC=?xL&d%>YDctF@l7N+EdK^s+GJo)%DB~e7M5hgyn;>%J}TNH zPk&~O$YR!*Z9=ac?e=uPP$F~AAbO#9FT5`#t6N*2MbgVt;#@xA;o;4$&9dFsme;-d zKi|+5rs~bGER?qt4_n#GQ_IrIx2HUE-A&Y4>=qOjwmzABc!rqTV5>2$q@?7jdm_ht zo?fjwE&J}UwTxj^yv2(QA^LM&W+i|9bta^7XlMc3i?qozUb0)Q=)x3eaT~uFX#7A; zcTQ#~3XRUn5{T$w6+Nb_cTwKXh?GIQ#MCAOIpWrA$_^pSJ7%AI_E_pa$^ z=kvE3KjbWUF@(3o2=tWsETt^?B0iXhcZ3)l7`&CgD}D16ipqnY&ggLHL2})2UA%=_ zYiLQ~=KD}87P)uv>H75*_p*G*O$P#4%*(cZVyWO3O=+2tn!S9~d3&pFCWZ9)wbFLI zuZ$r)Lr+RE9|o_yM0j9OoF^E(C+yzFvfHoqjc`8B4(s-Oz<1;)`{$~p%mV)dji_q? zZJAwAQo zr01h;2aD1aNSJ{Xl)cK*n6B@`ZTVAhspQqpLB=r=Rp1$EX=zZuU7k;DX|e)xPm&8l z$NaCdH{^&oY1LrpE1VW%XRvCSs+&_`clBssV|uqnMx(JrK7o`bn$J{-O9V<~_YZ1c zU~|VHw?JaNY_Kgl7+}V(l=~jZ+vt6nQI&_1j~-p3qYKJe#hx*}ckjBXavJQPoyz;F zwHn8QB27n+j(u4_p0Ft*=IdKpT4wwf@~x-&oZ+*{h>JUSk;`*w%QD~Qp@4dBtdM5; z!V#v(hVPKHzI&^ORz|kt>+rP2#eyad&O5&su!+IqP0HG9CE9HDO@Z}|jg7DT#~PHi zJrOr@(IHHLBdppRfqg_@-o4*#lrKQk5>A1V)WHm2yyCdTVfh}? zZgk`j(&c`+qKg#hW-0R<)M%<8&9nsCUG>sJ(;aS&Zl)AP@Jyx*1jbt~%M7%EV zU6c?Sv(te}Zt}iWL7{+W{pfJrca&sWAL$jU#^liW(a{>z?fCTk@ASnV6?ZeQI9t!~ z4)Cw>y3a?A_wfdHak-D8^NWw{E3w<-?}MMMyl=zDPpF|=AFXUUkc->^jWU6BP@%_I z?O|sD0f6&L)e?xK56xW(>AQ8qi$(MKrr3+>99j)l(@otKcGrH6her+){-Tw*YsE|( zh+1)K{Y>X3BElF<**?RS99ViJZXl|dAd#lG9pST%vtvb$dk`f^xMKym!stv8*b=DY z*3hPdLqpvNjf6+FmaMpAb4PXO6jrBJA%pZ+;F-&JHSXl09NE^=Y+)JAv+Ef(#aE}; zIY=gRjTu{8bMEe*Q=|;PYb>kHYx=}t@2**hv#KE+1O2CVPR4#s;l$-C0I4N3rLHDAN0xV&fqxFgXWDiWIW$t zZCQufg9i_r69(*M^FI6xXVy9e-u&G$w)rdC6Y{Kx`CFDTypJR$DTyD9 ze|H$UU32PS%Vr1Tki4F&6Ns&F$S+F+`GZgGe*f;1^idWBx++5qIj5X{&lBlPm8WGl zH(D-Of0u3V)3G+vyLBA?FxhWuA5NmWw_=Bz&p{}GC$+$tT8+GY%YOQoLtgG-VJwJw z4NH&k&Ye_90Cd%{6p~*Mmi5Q{9ZlELpioaOqGtP|%Kg%#g=a?-I^q50`L26&SyG1g zgKnBKt2NobWVUNCS>8Bq?__C8ASI>n^FD2aT(+QE6e(C9tC;2W&}8G^R1)f&ObtHG$<6jfA>RB|H{>0HgC&A8@JM=oacCgH)Z%x2X&m>lN z^(;x?T6Wc1JJ znATe#XnFAPSMTDc^Y%MrqrHf9h3polCgH@{IbXxT~F@Ve}N^Q z_n<74p*)#zGkSH0*&Utw`EI;x3px|}4>Q_WZrq~VXtVwsjAnuq>~M#%H#7cC!px80P7Wou{} zPPihzPOQwd^_X-BdSZBqm-~|x0;%xe``&p8ynfLi)(qmH&I&Ca1=m=E{V1Dk{gQX8 z%z+7wt&t)E5NTxq8ZL4c9g0AN51a)QuS3GtG%{{ADdvNO%uL;m=^=&)=U*tH=2uFx zpiHJNdh_Gn1C*G|wab+E{jFKz#of*<5MFz+-8EUszanJ)*;C@=K@-2F^A3j3?pWs$ z)aK0ksl`jvH0WJ6NG3sG_jIQ`ZmF7zhh?hPh(ZWgqRe}Yk-eQ^$1%Z*h`k^ZCqO;q zH|M``BWZAOkkhK`1$RaH(@Ix|zDf8;SCYKB`Vp4iU~*D5L-TEZzV$_V5vgR?9qT;R zt~+I zANZ5d(dYCKw6q=p@Q9-@bwwQU(2BB6E%AI=1{KVF2TI!U5@CFDSAEdyO)01}6~v3v zVCPPCt({9jA7x$MKJDWTcipVGmT3>b4HyhN?uLjF2w@<#BgLu2Y*hiQy$m`BtgE{?dA9#i@R0IsMGOH&MLzoZV9o0mbOt4>52aoSqSec{q*)&)z9$nZkGDlp0dZG(pGO? z-Frj26qb+#i?vz#pDuZ058@V+GsHdbIPKBjnzH1)xTy16GxH8fP(s~aSY)%+)b`5H zD~08e^T%I$K2)KZzPh;-sA4)jaX zjO-s3u_ujFZ(SDI>-t5p_x1GX9)n`_(oE)R&`EpcLb3L^xXbHeb&Kqq-sf$W*Tw`< znyUx(dq&M+e($A&LvDDuDr;(Wm8eMD&bKum{*qIpB~uz#OfQw_(h1vj@?80n#{uyk zCcPXIc2mWKguyhYC!lpKv>&IbF&}ydN;#EOqjRw04bdau;bYg^<;NhGbSt6c@dZ`E zt*!%^^n||ACYPDc8>%@vey8OkpTe!0Y`o5{Q^8753%vLvQWd_=WxFF`4=*a&T0OBS zE*DY|s>MR0FUTq=$Ignn&wNtPGQ77QpCS_%Ghj7tjh;C-$EHncQZ?eZnyPesh+apK zSQ!}HM+`fJTEzX*5h^TtIix(tq16&bS#*|!gvkSg4&%`Ee|LZuxW%DYW7Iao%xm7; z$+>~g>Dh2r+i|JkJF`kOpM(F?D%^>>6iD6ntm*^2RbtPgpu_V7gNj=WShZWv`dMG` zUTxD&LFvczW@MV1LyIb^|sYauM@ zmb8JP;lptMD+eymPaY9}&mGIZ47qqCSKHe|ND#2Kr6DH?Cp+Zk4pC{!`=#M({R`OnCgYc2ixc7KA|{Zxe&o_2u2R*Yhvl$>h=fd(qZS)t=1l3E4HnxekZX^SW+hKVf76wCS=LLRPXtMcuY}s?i|~QG#Z-y^c#_ zk9;qxeADFeTLjKK7M zhDyMRC6(lbYd7PvvW9{asAQ3Oe>xFUTqhEPxt_HAdvvD=O4J)+BG4f7JE|KY6Jp?4 z$MWSSR`We1o5Qq9>rQ1ycqe+gDhrJ7* zBhBeLB+AbeoHNd{wjP@ng0@DvQqJ>~-UplIQ8_))&RShlQ&Ygy`}2LQvUx`6KR33= zKL{UlrY8U8N9^S6ymOS;(5KSz(XW4MTv%YS5OMn^Z%pO2BfOlC=JPa&AW_ zFzxs2NM-?H`)oJIz0lg6kbYt|VTCIG>We{Du0K1<{X+ZbWl}aZ>|Q8nBK2Z6xwLL?O$xAkfBFgP+ZE`d&0+2l?V1Hf?wEA4yM0c zdDYc>qeO{X$(fy9b{I|O+0t4*9!pI^Z8f=4HA`-a3K(_B+S*!T%RQ_N-y*1NqO|%g z=Y>S-Nqq@o`>j>Pt*M!h*v7m0E&$uUMlUWIGdjfFopicXfw}JIyLMX4<%2G61!m=x z#24j-tk25tB9CY#9AXqKYYhhz-=-)=UW`*{x`k>Ah!OOwZwk&5XP3pE>)U0D`P6-k z{GN>}ys`&AMG<$3ad8co#d+WPgYAGg?r=Q`_YMvMLhEfLZNy0tR5%SDp6zT&p6Yh= z^Kb^@H$>NpzxTb9`4HFsd~v=idH$-rKSI1ldz>yUMC9BF+0UOpGe)XTL*R)*H-1tF zZWkQ`3Eo4v8_f{Ak1BHCkvKf+pi)@rQS1;8;$e;}^j7|(2=7(ek;=OyJ2W(8>%P7=qu_JtCE3-h$U_FX zbfr>Oc6QTpyFEIV{#=C0$U2ch%IF_e_Lr(tNA+6VGq-1{jMJ1D1b{S>dQyC~wy92M z&pCdy8JlV`RQ`#bb{L9Gvg46rnVt3e7vD1G3fRsmGl~z8(25jdY8}p9+-meUUoyc# z3THPRKEH(^CZ&7H1rw073Mn%QkblN)-1eJ2^e{W@-CJ3H<5Ys-6^S@+wA$)b>*h)5Wh zFj7_rr@JU~=*vg)LXU&c9_hB;Tdc8sp`{Y`vrwEfj+lS1Tyz|kFnCdba836?P^Bs6h z{RQj!jz+RNcbalXwX)<~M-=kw8@x;bivaa3`L)~lN^pM<7r(mS_0#+D^h(=wTE}38 z9g}&#)pcRv;X4+gXLc6*AwYrW<&6A2JX{3UWMM5NyDL}gQ=6M(b{7;NVeF3PbqNSw zv?7@OGo{gdV%ZOyi88WSOAr`4i7Fku8g&|@R|F43{a&- zjvk!$i0eDTB4^s-<2pN)*mY{!R=mBo_M27uuxfUmc1Ep@A8)*8)=N2iBPj_?6u~Z^ zu96+p9jKA%vqH1)<#i$n-2o-9#b3U`^cr!&Bx+D+-1oqSu*tmy>3bXLeB`%Onma=D zveA_^wwbsJd21X}wTeM?GjR@VJtquVcg&v#u%697lsuJk@Ss-7W=gjmO zQ)!J~H;=6ykjn-7*dpX?FxgCC`0BkbC`chE*J`9N)Z! z*pF`_3}ySR#^0S}Y2dDBp!dEoX|PMl#~PiT*UPvWDi!)(> zNlTkn=AOBUmGtsU`SO+NdgFB#5LMnC-?+u}$S6Zc+Va_|0VoJIHF|bxyYRZTEIkSb6K)@@?}q+dTW)xr?|1%RM*mMWV)8 zhC}`8Q`b2ca;8uL@w`GAA%<6*qiaYdKPdzESh2T!(##n@-_cX`u!$q;&(6Q`L5KnO zvFn>xuKe~3?akGT>oE~4C@Mn0{=(tUF=}I>BBp25?y66qhl;{jbYn8ZSv>d%s#RXL zO?6H05g0>3*$8sg#+_xH92iDW5ZoIGqAfq!xN)md{$5&-4Z1Y$0TC<)yOgkqC)fkL;TzAS@_j|fot!#%CKwgjMVP?jC2^**a?wu$- zh}>P(EIzb)c$CarqiNcclBBrznpLmno&FhOrSRSFxC;{?6>tXc_31n`yTe8(+u^G` z$4)qh%qwrL?mmhUiN&3YeQu!45`*OxVN5 z=iFvOte#eKJh52Y&7_iD8@VrWWj$V=8f{tTVt0^he4$EA;R~PL%VcZNyqJyP&zTLJ zT9I&%ic!n@*7eFdPxFh&-um{+fnBI|b6-3RlM#5m*i!^#d6h@*lwQU+8H$o4LZ}zg zC)beqb?*gBO|I!llN7!FWt*MdTTQqzIiZ*hIe5>Z%USA0`mEc|{YFZzvp^SI?*xz! z$O)kFEW>CP@gh|*>0a=|-tSX{O7ul_1tNacPBf^G-fgmYQLMc+=jlZNiMry)hlY$+?;lcZ zE#tg)ioYPMM9`cOJgawJu*k_(I4=F>fMExPFzi5>4Q6|Ao$pDJe}=m>C#RdrJ@(jl zw2Qe9y+8O+{ha+B5!fepEp)suoGUbq(_%%iJ4L2_YRD_nO!( z%uZlXxZH5D>RtVy_7NwFUyBnH_u#9G<5qa`!^I4Yj6RTaOEs&}Zi9bB7C)eODTmHFNK^}Z^3k}Ql*ut%Xbf+8X~iS4QP@Ael5o)S^ z>n&ldGI3OVIKo>dYR00YL1DywxF=KvstwTXhWc*a_i%H)m!JoUnmikkllF^agd~a_ ztgNi0aY#*=HN*t>7>XpdLH^6l(_Qpzr^zW1`dPcvgajc!YjVDBirRjhc5~WRsil|s za#J#PGAx1xiqhD)*mUKBQ?$dybNd-RHZ?ivys_mi+o`J~1w|zYC%DTT9dEkzXG0Lq z7Z!~?o8#`;4u27Koq2(05v-!l=(C-*6Nz1~oF|sEP!T`su{OU5l`@@eaCCpwFFA3M z_GNynB)w1S_NyZ#I8vQz3DFZDZ*$C8v;0urYlCSIvw8~Wk?W4pV3f^YXHIwJ z*v)q!2h!Y;2TCoYvlDjiezqLAOXxy2-hXhyY^_%M3sTb{DV?0rhy%Y;gO~I#6yApH) zYV@JvGOr7U$nmwN^y*UIpxeghrRf(6U`3r?DYuhCRl6R=T=8PR zt(dC=4_!m;&l040^hnB`I{>2fwZF@;6^i5vwzTExYi9>@yV;rL-85f8Kir3q7wkX#R}W`c#64A=w*-srp$Fd ztyJu&yCWF3EQPp!rHzWiu(*1*wE>9Zk)x8I0>^W=J+?lK3fWP4;{t{7f@Jo6Fz|z# z6)zYdspXMjM$$_)r<(OnI#4}AM1R79^Pa`KSZ{JE+VSTb6xahG&XCtetv8Yz^wL1J$5xCnfTo;zSRSG#B-jSO};&bvE_0Bw$7qkN=x^HG6 zHe|`QHH4WAf)1V^EcHqCm}Klsbltjn^A=@yEj`#}KW#T}{dsZ=zSZ$OC zDamx~l!m1n=Er1mW)B%X=wfj0MIJr9Y|WznS0i(lB6r}XN0nII&kSQ`hSO4axa1am zF1n-_8)5}l>)<32v|phhyhv}bKe&m@XZ3Md{w$;-6}lnYs&M<7?%#edKtY({J9B?aRUEza>U*rBHCq;Uq?d>Pp}Xh5;u&9olinXY^Jp zI0^`IfX+d@&e4_{0kC&-Vlw&mkX1IQ`8GPb_j-Qqi@Q9iSGOd+a_vW|f6a?F0c9q(K;V*F#tugpN&2^sQtG0qYhV1$|Or0SeZ0c6OvGf zfQ=OzAklwHEqCIu(raPk5=_?^_EsU9s27QpBB3Vu%LA>IGh;yrMTsv&Hcd=Y?mc&a z6)?)8{s@x1945aR{Fquf*oFy0lyKSntgk0F=qpXr->+7Ui&wOTtoV`T3lw?eXia}LXvX7r31d-7HNAhB9>>VC{1=MDEnj@ND!>}o&sGX!#@sDC8 z+BwLDlh8tXnbp59s2@5ZnSTQ`C@PjWz)#|RPj$F)J)U}XV&YQ$geEIwPC(NevO@nF z;`87r0>bGfu;|eiiYjTu7jg0CB+!^@r3_987$Q8#2NY~WFRyudxjtvY9 zY?jY1D&omQEu?kJBd5FJ?g771ePQ_efK%YIpXOshdb4``1HG#D9R68gjnX(+qnZ zG7L$MVIf#Y5ZM4Y5vz>gJ|DT1+<}UjG?Wkvw}OZK0yP@Pvnmj3IV&4E1^2XFgcNi&7pk z2YP!FtL5~IdYmt?dOF`8Co+z&gP0VThRhp5hq-{Rkis`o{BVt-3F8AuYO9zu`8LnP2jkO6IbV z%XIw{cla^y?eOlY2CoyER-ILU&2uHmVdG``)t>LSj9V#=O5GQ`U&@(0XzR;WyDK!z z17Xl$>i{%BY;iC-Z8C2p_y``CpB?5UV%5|Rmr>O?BV*Ja8x1hm=F-lxb3Ngi(>B;O zT`0M5K-6)b9+ZWM+j9CkR!;|V)W~wwKXvRZGmenn)#ztdj&j$?4X7E#R&Qz0DlB@2 zZ*A`}!RQA~O-%|gzpz|`6pyNdhBu(lh)1cIAVb*9uR`32!G5m#jv4N6j2FqfTZ1K` z>qa=yC)c809^wBOmAJ+=Gw>yI+u$_>vH5gwUuH?#GFh`tw6B%TVB6Ejph#dbPstUW za)y-#z!^>w2SKy80J1=r3v-^rK@?_t*lUW{pZ!b`LffJwj+~CQYU7JdyE*d}tw7uS zi!#s7Pobe*#0iq9h2Uw<6$X9u=|}E{%Kh16P?&>J{9q z++8&}nXH#7M5Xv!P4`i{+AaM3{EvpDLc7|DJDnmLa(%OlN3)taZtGkOOYImP zcm}tu=~xwIt9tg~ia-y3W~D}wY5f@*Vb|Dsj`-<_8w4OmZ>;ZWO>bjTtNwE=G(;)^ z#-p6d8y~{MeKW)`4Q-_gQ$y}ldj%PIW)_{Lo26=7Y$AJwBM3BtZWn2OjLc_tm0pOfwgG~FL4*$$8!nq%jYZ=HFkCnV z;{zCGqBxCc^}$biLOHeoBq`Ku#BhqXLw^C9c}TF8N3*H`c=Q7hB6k;C0?gY|IDsM9 z|Ko_$j`{68-I{<_7{KDOPM7HQutN6Nd7N|@NjOb*S7QXyr02aaj8=H~!bNlb3hTXX zsXz!sWKSE<>B@w$u19y<*S)^-^FTTI1ZIAKZz8mti$Sb*{lVi`cSiPB)a;z`XXl+- zk-GM#s32TY&PHDC@2DFDP)0OCV&R6@j;xwH_!V`kRxHCVW;ylHpr9duCzX!$EoU$} z@d>d_M7uZ0rXKtJCxJ zdzgF!1B13$fds&BC#I%;&a#LN$3y0^(|3!K1=BMFXQ}zoIT^;tLwwKt{3OQ z8cf7ewHl;Q8rM^Dg(GluweQ35Q`z;AYIYqXbV@UNu|FK5o2)mtjIXk4HNxk>O;x4V z!;Xz%kaoj${V?%za&nr47KAo{;Mnv4?f_&$+kGu&eyU_ zS12Vb`E#Q9J!xQRIb(Hc4YVT z+Z1;A-zA4DUK6Ek!`u*9d4FqIYYp@Hca-zfU9K`+_P_EwGT4D7g2#D3k4D(B&B*OU zPt0^6li`Z_fV@v{ba1!(p;zW2nJ55(caC8;WKW_*T3_uIcl-2Dqwt3VYvRnKIDmfW>a*ge>45OhBkx_GOH1uLH zR6`{w_A$mZ^#k6KO7GeZ)t&QSfj&ns>ezrNaN5c8`^xmK_f>!1e%~g}DD7KO| zQYF{O(=}NM%V>_f{m+4?@gS@3i(uzeLudV#t60 z!@ZTaIS%j7O96KAFHg1f``$k>L;wBS19w9sK-d58Z?56u?)?Af_n;^!7x;?)4m=;W zdg+&?UXodC*5Au&!{7^F1l+G>V-Ml6-1H|(?Cj%iOilr=HK5Vc%P znHr1Q&yi_zEgq8~yGnpaj#_FrcLgPho%SB3ag_tgWiz*N9}er+rGmg9J%9BnUOd0U zVl$?-Y+Ub1y=6O690?Yz=a>|~m5~a{yky^@LPuiV;W7|SFMV3km-n1ru9bb_6%=xu zpI1KG6wx{;0VIoaJ&>Vq_}jmFB=sIy;i`xEAbR;VBfN718k+~PuH8CqLyDGb`ypB4 z`!UN&R=>*hQ11`ABS&}o20UZQy0?ATh1~WhuA!`K6UtJq6I8$4omu3G7x#J{@!d>4 zODZcBwdRd!T_}L6*8f-Qi9*DY*MC0?hu`5mgg7-xM{NX?lk!w=squwTZllL*Mz^&= z3J&9>U;cjM`7*dtEsec+WpHR^(=&JGRUT+$yWtGOVe@3z-TWOCpS>A&?3(<0(mB=+ zeT<+Jv`zt(-1(l{S0Qk?E<8&E*Gq$}@8l*{BNVld$s_GaNKTPhF<(m)vRk784D|npJMswRh`tSaxpWlD90FCm|ErBCt_|~%F{PFneNdb!M?nIICU&jJ5wF;Ka@w5h3b&7zKK4gO0ZZKAg3I^i9U}^dP## zk5eH00c#ic9<^87Oh7*X;pLgT*n$-H4zqM2q-;=vGCfEZDjcDMH|x9YU}n;XGi=`K zozajv38#{sQVFR^S<2%{6D_wba7NN+A6wDtU1JZqDR~~EAQX1)s*%#BbuY`CdKfFn zF7qLJcbTrT>3sb1(DyTsn`7wFOK5H4sQU|E9-X1;%W8$7oPDQhDJh}@zt5kQ&ID7` z0p*~&t|9LcPGQp*YSx{WLQh6o!`??D!LXU}h5Tq-cFBeht9CaDok8pLGzK-3PV&Qj zr<%%a=>|g+N5&e-R94;#=A8BL4|4unv9WOcA}4A*WFnDQ60!!Ocs+c&2ujVCWb6{k zth}Ytdbq%>3Y)k-ksf;rgI@-b)%klktK8Py|4Nu-+ZX_kG@w9xV2sw(c3cTiPcv@$ z&gHWTjB>2_vdmZvU!Z3sC|0*-o7=|;*5^0aqa^6Pj=4h1>TVDnINXN9Bn>C|iRB|} zuUu3GeZmj`5rNAC0`7zpA^dFNEs=(xCeGZxpaet+j?RJM%~QmYN}l*J#inxAS91j2 z4+YEC$N3s`;TxbaB%bW0nb#!1pnukl$G@#5N|Rd`cXoD#S~BUbNAxH+DJ@z3sHEJ2 z*x$pMuLB^?8YQH=YQPgBt}6^~RT@M z)J)559UWgl>N_B?n>~5SaM=9iMnZEtbOf6b+!}FLCSFGwA*T+|;f+Nj$eifaItdhX)I#(@F*OM^PS==XP4Yn5eX+-18XRgWCz zRDlG9Q4zSKMh|l^xxU^3%n5}6pN)A$X8CwnuZGNhnd;QAnBzyFWPo*?4@(zL$tOTV z+N|NGKKk{fs$@Sl!0aqF=W|Vi>GIpN`8}0gma)7T%v~;VHATkM1imECCy0Uakm)o= zafY_B^_*fl#V1}i?qMm4?cYDeU;}3|N!rviznYu6&Ffp@@hCyoU4lq zItQt5H&+LW2x0ChdO@O-bJnk;WO-$*>dP62B?`3{04+kxLn*bO@jtm5(4W7_fbe!u zHPj!j8nT-Y@Z4M4F;_n<{|pBW;2&eo z!S|I_To1*=I&GfbHQCNgBF92;HeOyz^Vdp7v=1!B}Xjt+a+Ioc#?id(NOp*&0wat*2R@8I~x zvu`XWsb;8J2} zTDJoeL6k6GCXZ9si<`;cpnhojXT?@oo!(@Y*H=alygeQc@Gv~Gt3q!#A(27c407&{ zI*EtE8ru2{rx|u)l+7??Y;0^WNDLnoA_UI?W&W-&9kt^0zi}{`uC=nuSq&fa;-5T` zFn@3qC7Wl*(4;8uE*n*edS)sXA9Xyne@8x{+vXZ#lflH}ITE8s%&_yhdpeSQk5G0A zQqrrttz~RtLq9=r3!?$RHgW1rlVU=?L7yycR&sw_CEn~#N;ycs8a60?fWIkwEdMQp zVdJukeFACatRH_|B;lp{4?iRS6Oyle$kG(4bId2_*E=5S>z|)%H78ex2e^#HdgUJ; zq6xcj;Q*E3vA6`;=W#K7M5w+jwa{cpNT;KFy`TFZy67@qthk+eZO-%i^-cn>$EHAF z#%n&>xuM&0hFH*f=FWYqzybQFA^Ln_GaAf%O+x)|>!l?`JYaJ`~(p~4nUtu2(JZk!)`G1|50va0EfYTHgdYo8HO9k{_Y5>I+naJ)M z-{Q(?urHICR3Rx-2Tlvl+VtPnNh?KxGP*v-VR>4GSP|E+Vr=uZrlG!Bi(w4v1hcI1p(RD_0%NuzHDYU61o?Vf~&K; z$wl-keatGGLpQ#z>WEi1NdLv&@={2|Vko0+W9z3Y=KYMO;>Wd0J^GQCOqiHFsU;#n z>1lJk{}ggar0Xjja4H+)ED~y5LF|IC;CidwL|71@$VqRx{`1 z^(tu}w`t{NEGqUc+UsoX^1JVPY~4m4`F!|LgS9$)V;xiQ@WI1^vNDxweZ-EMMXYQd z>cdiV1G*?CnVu|+R)PsDK*O4 zsH|!d9wx->b>@~LrfX196<{`S3vY3M%n2ZcR?exT zg8y(n3;%FFLmQG9lh82TWs8cpo+eGVg6xdYNHt zWt~5yXn$dY0I4~UV}A;mvbDFrex0*(q4IO565Jv(iwm#NNB>V6Y3VQ%al2MFT?|>E zxBp8*u{H$l0KE+8&rOa)5HRX52q+9&Q2VWzs?-iK`;!T?pOaZR_^0!59|HsQvv6@UO*nQ2&dB8V>-|BE7TEF6$1SEuC`=rQsO3xBq>z;JMCyg!~| zKBCmSrix4^aLP@t3zxju4haKg0^Wv~Wd*xYc8VaoEHj&i=W!mcUI4Msi|&P|J|$F5 z3h^yaMc%7L+HX{r40ER_b}SaH6S9L$jeCjwXt{#$&g zcT{6Z{G%#s7f&uAjvUT0!w?7NY-P^lGSf#=l21#N8Kg+Cr@_bxtn1fOOAXpIfT2Ks zsJXRw9v4KCbn1YT-}yQY2%OieCMLL?@;TDW$b=$z>IpfX+nKVHJ3Tidx*_Sr4xv3Koc|x ztbJpwnaL&zk$bSCq>OIO0-@C3C)zNU6L{Q(`O;yDlfz)XAGr`$N*#ARH^2^ddP0D*n==Dl69(V)6jJ6;AF6J zJ^xOS_?u~c|HmqqSRyFg0-3FztW+DUGZZw8R~9%)8git|^is(2!atwhCwfON`KZ9@ z*GJt;7iiY$KZJ&sUT~smK+U_jlfIr$T^(ORwyjwR+`MJTQ~;iC=vC|crS_2f7NtY> z$Bu20*UVX1Vwn_wx@_H!v$RW7oQBDryk>n;SS{HjQ^Vcq>7v$n+BYU0@l2Fb`csTX z;L!;;a&26h&k)Kz1=*Tsi5hx)!}7#WV*Qe(xlAysR3)!3+?!c`oSkEdw?9AmkY;|+$LNrRYn zU=~`mldUAW-H^+@(ev#WIkQd_HYrJ1Krr0_T(h{huCc}!a3a~YI1XKlt2LP{oXwni zig8ov*2^#s*ituSUo42_AU3qvstNLOO6Qb#DO>iWuR^f9?V+7C8S1~t7TvYtgGkKBd@zwiM zNpTCbLPnfHF5BH0EPF3ZYu!win()F9!Nj6P_Zw4vED%F4d+DjW_%S}nVErL$aAB5~ z0*^_-m5lE4eK_x4DV4FmUZbnRPUJ34e7*!SjBj>jCg8JpQRZP?rrMCD@x6jJ$zl8D zjJ@^5o&-N*Om4^)m8`R~bD^9u#kctI{K8^cYZIAvv%V0blS5QK1bLjRxuy?ekkU0O zufl`wDW_1(30qRkz|9t5kh{84XfojVmuw{Km+P?wyZczU*`MYcz&$JE@OuZT(^gGSoYF`@t^{aUT4VS6} z2jVz$c>4ScLgAy1ScCQZ8fSLb5FQ+hFe|m#W02NucZ%DKop5yYyZyoWTW3gq_Nrpl z^PbpKa+n(fNRIp6EPOCi$pe6s+pQ!4CCYR!tOq$fz$N?yMF&`xH~d}k0PR@PW9$Kjf1(loU3U< zA7D0Wzi#CQTDV!UCv9nTD5G~PoQ3(YnJHVR;;%H!PR60UBnae@Awm*ei3)LHw;nfq zEwi%OL#NpJULG_1~hcKg) z8MByXR8-Pe^I3#%Wp(BE`od#RY3V|3qhHzY8RNzm{|{wv9aiP~Z4HBkL8yo{SV(ub3W^d7 z0RfQ)X^`$%2nZr2B@NOI(hUOA0@4iv(y{1{Z!UHJ&OYxs?|WSz*ZyN)E?8?l&vW1N zo^#AG#w>UUBr;Z~9~jkH&);62X`?DX_cV62EQ0S1gL8%LfP|1-hH$deSp+O9sR;_< zkM-lRrYF0?!zG3h|7{hX={R@h9?_9sVlgGj+)fNXgP9V5n^NhD6`yuCCr$^y5ym+` z0Rl7laU{cNH4cNp2Xhr*`_F61^>l6`)F=DXwUKmcli;pCG4Ba$?7r9K9dXlNFB@_Df#2Im6vPk&_b9qRGZ+1pVu~Spi zxolIllk%^tR@m4b9vEO12uQ~!A^aA>3ij$%qUPoEKH;q9XAVnDCdVpl1sr!&`0Yc9 z{q>yt3xW>hwCmCWd$SZmvny=mawH8F2hy{T!+I;Yf)lL-9vRs8`Ku>$#3phHB~No4 zkmUB12#p~%W|O>oL8jnjzZpbr`^Ld)L2^CeG4IrBJfBc<4R`X2{F7800oJM>`EIr3 z$FeI))k}{jrhAEXbAls6I8XWLrT}H^^bP z*5Wx#mqnqo8o};Nf_GxyTx)lHAsOCmS6NppmRp)41sDV{BG#HoJmq_A`wk9iIG+pI z-9|q}f(6iw?^i3Df*7M6oD#nj7XFGup42u8yIz5t_txd-+O3?^U<0;>GPMJEWY!#b7AC!9^qZ!wY>{Nd%H@C6AqFEv@CL&MA|fmv zwjukQ60=7k`g?FnNQMgqgHh~{{Ac)*l9FkYy@Nm7%#&Xr#RajiXywkfrTIFS==1@EF$_)lVny;+u#B!BV?}5TB9f zcM0vb^B>*|@$Z>8szgi(R3W;PwXqtpNyWzn?1A_&xf4?%8O=(8W}IIMWxg zVyESh8bz@puk}9{8r8lWJ1Sw;p`K{vZTzsKvy5Zar||(S@e#+O0nG)~PR})%O^Fu1 zzJKW698AqU*Ab`p%fp*56NA=-db?_Z4L`WERiSy0`8nrDwq)@<`xO$jDGV_E{9?%e z=?N{+G>`aP4$Vv<%5l#8guU3~<`6oVh;7Bbbo$Kzj8R&odBGY@8LYR zdvI)s#ZR2}Usip82kyq}o2Et=tFJx+RV&(59MYP`j@YYwzPxG!=_aI&eq^;_eTG-b z$zxuZ-jpKIHZW+JUE%L$wf&u>UDC;!E8V__tafrb+#Zl5*}Mz#8nDV4p1}I2Lp4=n zFjswC>3cENdULk1qZO$D1lFOo0o^LejYiwoolO4AL&*a??1@0-SX1p(11WM0Kt|Vo zF4QjIHw~3*l0&RUe>910%m}kPy#jlpdEuuk^r!La>p)1wX7kAd!FNezJ4ENkV1X@J|LB#POK9&%Ieu>2@i1-o2@JkyzQ^9WM*>fK3^V(g#3Dyt-V>~G- zDaJ~>jzQKcsZVgYvX%Tg^X{T2nnJJwDOt_KO~qUrMujqlTIW+Wc*6qQP4%sXle0>U z46>m)hbL9%>>a5Naz�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 Gy#9Ya)C|`E diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go index a7e7d07c161..1ab4228c4a4 100644 --- a/internal/envoy/v3/cluster.go +++ b/internal/envoy/v3/cluster.go @@ -30,8 +30,8 @@ import ( "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/wrapperspb" "k8s.io/apimachinery/pkg/types" - endpointv3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" "strings" + endpointv3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" ) func clusterDefaults() *envoy_cluster_v3.Cluster { @@ -201,13 +201,18 @@ func ExtensionCluster(ext *dag.ExtensionCluster) *envoy_cluster_v3.Cluster { if !strings.Contains(ext.Name, "zipkin") { return cluster } + //else { + // cluster.Name = "172.16.60.14:9411" + // cluster.EdsClusterConfig.ServiceName = "172.16.60.14:9411" + // return cluster + //} return &envoy_cluster_v3.Cluster{ - Name: "172.16.60.14:9411", + Name: ext.Name, ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_STRICT_DNS), LbPolicy: envoy_cluster_v3.Cluster_ROUND_ROBIN, LoadAssignment: &endpointv3.ClusterLoadAssignment{ - ClusterName: "172.16.60.14:9411", + ClusterName: ext.Name, Endpoints: []*endpointv3.LocalityLbEndpoints{{ LbEndpoints: []*endpointv3.LbEndpoint{ LBEndpoint(&envoy_core_v3.Address{ diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index 093f98c38a4..6c71af429df 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -22,6 +22,7 @@ import ( "github.com/projectcontour/contour/internal/timeout" "google.golang.org/protobuf/types/known/wrapperspb" "k8s.io/apimachinery/pkg/types" + "github.com/projectcontour/contour/internal/dag" ) // TracingConfig returns a tracing config, @@ -57,8 +58,8 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ - //CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), - CollectorCluster: "172.16.60.14:9411", + CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + CollectorHostname: "172.16.60.14:9411", CollectorEndpoint: "/api/v2/spans", SharedSpanContext: wrapperspb.Bool(false), CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, From 7b52cb92a8cda6da34861ea6c1c0720c40b3e0c1 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Tue, 30 Apr 2024 12:00:17 +0330 Subject: [PATCH 6/8] default eds code --- internal/dag/dag.go | 4 --- internal/dag/gatewayapi_processor.go | 4 --- internal/dag/httpproxy_processor.go | 5 ---- internal/dag/ingress_processor.go | 2 -- internal/envoy/v3/cluster.go | 37 ++-------------------------- internal/envoy/v3/route.go | 1 - 6 files changed, 2 insertions(+), 51 deletions(-) diff --git a/internal/dag/dag.go b/internal/dag/dag.go index 2da47fc7cc7..95fb8bbff0f 100644 --- a/internal/dag/dag.go +++ b/internal/dag/dag.go @@ -378,10 +378,6 @@ type Route struct { // The stat_prefix to set on envoy route StatPrefix *string - - // The operation name of tracing spans reported for this request - // Check https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-msg-config-route-v3-decorator - TracingOperationName string } // HasPathPrefix returns whether this route has a PrefixPathCondition. diff --git a/internal/dag/gatewayapi_processor.go b/internal/dag/gatewayapi_processor.go index 690e2a989e9..8dd41f46119 100644 --- a/internal/dag/gatewayapi_processor.go +++ b/internal/dag/gatewayapi_processor.go @@ -2186,8 +2186,6 @@ func (p *GatewayAPIProcessor) clusterRoutes( route.StatPrefix = ref.To(fmt.Sprintf("%s_%s", namespace, name)) } - route.TracingOperationName = mc.path.String() - routes = append(routes, route) } @@ -2260,8 +2258,6 @@ func (p *GatewayAPIProcessor) redirectRoutes( route.StatPrefix = ref.To(fmt.Sprintf("%s_%s", namespace, name)) } - route.TracingOperationName = mc.path.String() - routes = append(routes, route) } diff --git a/internal/dag/httpproxy_processor.go b/internal/dag/httpproxy_processor.go index d021f87d852..bd6b9fb6334 100644 --- a/internal/dag/httpproxy_processor.go +++ b/internal/dag/httpproxy_processor.go @@ -863,11 +863,6 @@ func (p *HTTPProxyProcessor) computeRoutes( r.StatPrefix = ref.To(fmt.Sprintf("%s_httpproxy_%s_path_%s", proxy.Namespace, proxy.Name, path)) } - r.TracingOperationName = "/" - if len(route.Conditions) > 0 && route.Conditions[0].Prefix != "" { - r.TracingOperationName = route.Conditions[0].Prefix - } - // If the enclosing root proxy enabled authorization, // enable it on the route and propagate defaults // downwards. diff --git a/internal/dag/ingress_processor.go b/internal/dag/ingress_processor.go index bfc3004d828..22e1a29787f 100644 --- a/internal/dag/ingress_processor.go +++ b/internal/dag/ingress_processor.go @@ -320,8 +320,6 @@ func (p *IngressProcessor) route(ingress *networking_v1.Ingress, host string, pa r.StatPrefix = ref.To(fmt.Sprintf("%s_%s", ingress.Namespace, ingress.Name)) } - r.TracingOperationName = path - switch pathType { case networking_v1.PathTypePrefix: prefixMatchType := PrefixMatchSegment diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go index 1ab4228c4a4..3af39d55bf3 100644 --- a/internal/envoy/v3/cluster.go +++ b/internal/envoy/v3/cluster.go @@ -16,6 +16,7 @@ package v3 import ( "net" "time" + "strings" envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" @@ -30,8 +31,6 @@ import ( "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/wrapperspb" "k8s.io/apimachinery/pkg/types" - "strings" - endpointv3 "github.com/envoyproxy/go-control-plane/envoy/config/endpoint/v3" ) func clusterDefaults() *envoy_cluster_v3.Cluster { @@ -198,39 +197,7 @@ func ExtensionCluster(ext *dag.ExtensionCluster) *envoy_cluster_v3.Cluster { } cluster.TypedExtensionProtocolOptions = protocolOptions(httpVersion, ext.ClusterTimeoutPolicy.IdleConnectionTimeout, nil) - if !strings.Contains(ext.Name, "zipkin") { - return cluster - } - //else { - // cluster.Name = "172.16.60.14:9411" - // cluster.EdsClusterConfig.ServiceName = "172.16.60.14:9411" - // return cluster - //} - - return &envoy_cluster_v3.Cluster{ - Name: ext.Name, - ClusterDiscoveryType: ClusterDiscoveryType(envoy_cluster_v3.Cluster_STRICT_DNS), - LbPolicy: envoy_cluster_v3.Cluster_ROUND_ROBIN, - LoadAssignment: &endpointv3.ClusterLoadAssignment{ - ClusterName: ext.Name, - Endpoints: []*endpointv3.LocalityLbEndpoints{{ - LbEndpoints: []*endpointv3.LbEndpoint{ - LBEndpoint(&envoy_core_v3.Address{ - Address: &envoy_core_v3.Address_SocketAddress{ - SocketAddress: &envoy_core_v3.SocketAddress{ - Protocol: envoy_core_v3.SocketAddress_TCP, - Ipv4Compat: true, - Address: "172.16.60.14", - PortSpecifier: &envoy_core_v3.SocketAddress_PortValue{ - PortValue: 9411, - }, - }, - }, - }), - }, - }}, - }, - } + return cluster } // DNSNameCluster builds a envoy_cluster_v3.Cluster for the given *dag.DNSNameCluster. diff --git a/internal/envoy/v3/route.go b/internal/envoy/v3/route.go index b7beba5c053..6cb238347b0 100644 --- a/internal/envoy/v3/route.go +++ b/internal/envoy/v3/route.go @@ -114,7 +114,6 @@ func buildRoute(dagRoute *dag.Route, vhostName string, secure bool) *envoy_route Match: RouteMatch(dagRoute), Metadata: getRouteMetadata(dagRoute), Decorator: &envoy_route_v3.Decorator{ - //Operation: dagRoute.TracingOperationName, Operation: dagRoute.Name, Propagate: wrapperspb.Bool(true), }, From 88d944d91464c074cae6bb79fd8b06f3447f0262 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Sun, 5 May 2024 09:59:53 +0330 Subject: [PATCH 7/8] set collector hostname using service --- internal/envoy/v3/cluster.go | 2 +- internal/envoy/v3/tracing.go | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/envoy/v3/cluster.go b/internal/envoy/v3/cluster.go index 3af39d55bf3..36968f1397c 100644 --- a/internal/envoy/v3/cluster.go +++ b/internal/envoy/v3/cluster.go @@ -15,8 +15,8 @@ package v3 import ( "net" - "time" "strings" + "time" envoy_cluster_v3 "github.com/envoyproxy/go-control-plane/envoy/config/cluster/v3" envoy_core_v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index 6c71af429df..45601518084 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -14,15 +14,17 @@ package v3 import ( + "strings" + envoy_config_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/config/trace/v3" http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type "github.com/envoyproxy/go-control-plane/envoy/type/v3" + "github.com/projectcontour/contour/internal/dag" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" "google.golang.org/protobuf/types/known/wrapperspb" "k8s.io/apimachinery/pkg/types" - "github.com/projectcontour/contour/internal/dag" ) // TracingConfig returns a tracing config, @@ -58,8 +60,10 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ - CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), - CollectorHostname: "172.16.60.14:9411", + CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), + //CollectorHostname: "172.16.60.14:9411", + //CollectorHostname: tracing.SNI, + CollectorHostname: strings.ReplaceAll(dag.ExtensionClusterName(tracing.ExtensionService), "/", "."), CollectorEndpoint: "/api/v2/spans", SharedSpanContext: wrapperspb.Bool(false), CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, From 1fec1b8c3114cceab2ac85c223dbd4d48fd3fb05 Mon Sep 17 00:00:00 2001 From: Ahmad Karimi Date: Mon, 6 May 2024 10:40:48 +0330 Subject: [PATCH 8/8] add tracing system to config sources --- apis/projectcontour/v1alpha1/contourconfig.go | 16 +++- .../v1alpha1/contourconfig_helpers.go | 8 ++ .../v1alpha1/zz_generated.deepcopy.go | 5 ++ cmd/contour/serve.go | 1 + cmd/contour/servecontext.go | 10 +++ examples/contour/01-crds.yaml | 14 +++- examples/render/contour-deployment.yaml | 14 +++- .../render/contour-gateway-provisioner.yaml | 14 +++- examples/render/contour-gateway.yaml | 14 +++- examples/render/contour.yaml | 14 +++- internal/envoy/v3/route.go | 7 +- internal/envoy/v3/tracing.go | 36 +++++---- internal/envoy/v3/tracing_test.go | 79 ++++++++++++++++++- .../v3/routesourcemetadata_test.go | 9 +++ internal/xdscache/v3/listener.go | 3 + pkg/config/parameters.go | 23 +++++- .../docs/main/config/api-reference.html | 45 ++++++++++- 17 files changed, 274 insertions(+), 38 deletions(-) diff --git a/apis/projectcontour/v1alpha1/contourconfig.go b/apis/projectcontour/v1alpha1/contourconfig.go index c622206b305..4f9b4435468 100644 --- a/apis/projectcontour/v1alpha1/contourconfig.go +++ b/apis/projectcontour/v1alpha1/contourconfig.go @@ -82,7 +82,7 @@ type ContourConfigurationSpec struct { // +optional Metrics *MetricsConfig `json:"metrics,omitempty"` - // Tracing defines properties for exporting trace data to OpenTelemetry. + // Tracing defines properties for exporting trace data to the tracing system. Tracing *TracingConfig `json:"tracing,omitempty"` // FeatureFlags defines toggle to enable new contour features. @@ -256,6 +256,12 @@ const ( HTTPVersion2 HTTPVersionType = "HTTP/2" ) +// TracingSystem is the tracing system used in Envoy +type TracingSystem string + +const TracingSystemOpenTelemetry TracingSystem = "opentelemetry" +const TracingSystemZipkin TracingSystem = "zipkin" + // EnvoyConfig defines how Envoy is to be Configured from Contour. type EnvoyConfig struct { // Listener hold various configurable Envoy listener values. @@ -797,7 +803,7 @@ type RateLimitServiceConfig struct { DefaultGlobalRateLimitPolicy *contour_api_v1.GlobalRateLimitPolicy `json:"defaultGlobalRateLimitPolicy,omitempty"` } -// TracingConfig defines properties for exporting trace data to OpenTelemetry. +// TracingConfig defines properties for exporting trace data to the tracing system. type TracingConfig struct { // IncludePodDetail defines a flag. // If it is true, contour will add the pod name and namespace to the span of the trace. @@ -827,6 +833,12 @@ type TracingConfig struct { // ExtensionService identifies the extension service defining the otel-collector. ExtensionService *NamespacedName `json:"extensionService"` + + // System specifies the tracing system used in Evnoy. + // Supported systems are "opentelemetry" and "zipkin". + // Defaults to "opentelemetry". + // +optional + System *TracingSystem `json:"system"` } // CustomTag defines custom tags with unique tag name diff --git a/apis/projectcontour/v1alpha1/contourconfig_helpers.go b/apis/projectcontour/v1alpha1/contourconfig_helpers.go index 0af381adfbc..d39acac62ad 100644 --- a/apis/projectcontour/v1alpha1/contourconfig_helpers.go +++ b/apis/projectcontour/v1alpha1/contourconfig_helpers.go @@ -99,6 +99,14 @@ func (t *TracingConfig) Validate() error { } customTagNames = append(customTagNames, customTag.TagName) } + + if t.System != nil { + switch *t.System { + case TracingSystemOpenTelemetry, TracingSystemZipkin: + default: + return fmt.Errorf("invalid tracing system %q", *t.System) + } + } return nil } diff --git a/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go b/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go index 100a706fb27..bf998a1aca3 100644 --- a/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go +++ b/apis/projectcontour/v1alpha1/zz_generated.deepcopy.go @@ -1319,6 +1319,11 @@ func (in *TracingConfig) DeepCopyInto(out *TracingConfig) { *out = new(NamespacedName) **out = **in } + if in.System != nil { + in, out := &in.System, &out.System + *out = new(TracingSystem) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingConfig. diff --git a/cmd/contour/serve.go b/cmd/contour/serve.go index fe8f6bacf48..176e7a3eb68 100644 --- a/cmd/contour/serve.go +++ b/cmd/contour/serve.go @@ -821,6 +821,7 @@ func (s *Server) setupTracingService(tracingConfig *contour_api_v1alpha1.Tracing OverallSampling: overallSampling, MaxPathTagLength: ref.Val(tracingConfig.MaxPathTagLength, 256), CustomTags: customTags, + System: ref.Val(tracingConfig.System, contour_api_v1alpha1.TracingSystemOpenTelemetry), }, nil } diff --git a/cmd/contour/servecontext.go b/cmd/contour/servecontext.go index 72b384fc1c3..4a1540daf67 100644 --- a/cmd/contour/servecontext.go +++ b/cmd/contour/servecontext.go @@ -392,6 +392,15 @@ func (ctx *serveContext) convertToContourConfigurationSpec() contour_api_v1alpha RequestHeaderName: customTag.RequestHeaderName, }) } + var tracingSystem *contour_api_v1alpha1.TracingSystem + if ctx.Config.Tracing.System != nil { + switch *ctx.Config.Tracing.System { + case config.TracingSystemOpenTelemetry: + tracingSystem = ref.To(contour_api_v1alpha1.TracingSystemOpenTelemetry) + case config.TracingSystemZipkin: + tracingSystem = ref.To(contour_api_v1alpha1.TracingSystemZipkin) + } + } tracingConfig = &contour_api_v1alpha1.TracingConfig{ IncludePodDetail: ctx.Config.Tracing.IncludePodDetail, ServiceName: ctx.Config.Tracing.ServiceName, @@ -402,6 +411,7 @@ func (ctx *serveContext) convertToContourConfigurationSpec() contour_api_v1alpha Name: namespacedName.Name, Namespace: namespacedName.Namespace, }, + System: tracingSystem, } } diff --git a/examples/contour/01-crds.yaml b/examples/contour/01-crds.yaml index 7381782771f..ed2edb60f2b 100644 --- a/examples/contour/01-crds.yaml +++ b/examples/contour/01-crds.yaml @@ -1087,7 +1087,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1145,6 +1145,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -4856,7 +4861,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -4915,6 +4920,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-deployment.yaml b/examples/render/contour-deployment.yaml index 55722d8fbd8..871a7e6a001 100644 --- a/examples/render/contour-deployment.yaml +++ b/examples/render/contour-deployment.yaml @@ -1306,7 +1306,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1364,6 +1364,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5075,7 +5080,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5134,6 +5139,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-gateway-provisioner.yaml b/examples/render/contour-gateway-provisioner.yaml index 6e1b6b1e562..d4f97baac8f 100644 --- a/examples/render/contour-gateway-provisioner.yaml +++ b/examples/render/contour-gateway-provisioner.yaml @@ -1098,7 +1098,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1156,6 +1156,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -4867,7 +4872,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -4926,6 +4931,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour-gateway.yaml b/examples/render/contour-gateway.yaml index f64276cb687..9e7fadc5746 100644 --- a/examples/render/contour-gateway.yaml +++ b/examples/render/contour-gateway.yaml @@ -1309,7 +1309,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1367,6 +1367,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5078,7 +5083,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5137,6 +5142,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/examples/render/contour.yaml b/examples/render/contour.yaml index 01d4a3f3993..58415abf01d 100644 --- a/examples/render/contour.yaml +++ b/examples/render/contour.yaml @@ -1306,7 +1306,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data to - OpenTelemetry. + the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with unique @@ -1364,6 +1364,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object @@ -5075,7 +5080,7 @@ spec: type: object tracing: description: Tracing defines properties for exporting trace data - to OpenTelemetry. + to the tracing system. properties: customTags: description: CustomTags defines a list of custom tags with @@ -5134,6 +5139,11 @@ spec: description: ServiceName defines the name for the service. contour's default is contour. type: string + system: + description: System specifies the tracing system used in Evnoy. + Supported systems are "opentelemetry" and "zipkin". Defaults + to "opentelemetry". + type: string required: - extensionService type: object diff --git a/internal/envoy/v3/route.go b/internal/envoy/v3/route.go index 6cb238347b0..5270e2afabf 100644 --- a/internal/envoy/v3/route.go +++ b/internal/envoy/v3/route.go @@ -113,10 +113,11 @@ func buildRoute(dagRoute *dag.Route, vhostName string, secure bool) *envoy_route route := &envoy_route_v3.Route{ Match: RouteMatch(dagRoute), Metadata: getRouteMetadata(dagRoute), - Decorator: &envoy_route_v3.Decorator{ + } + if dagRoute.Name != "" { + route.Decorator = &envoy_route_v3.Decorator{ Operation: dagRoute.Name, - Propagate: wrapperspb.Bool(true), - }, + } } if dagRoute.StatPrefix != nil { diff --git a/internal/envoy/v3/tracing.go b/internal/envoy/v3/tracing.go index 45601518084..fe82e5f5faa 100644 --- a/internal/envoy/v3/tracing.go +++ b/internal/envoy/v3/tracing.go @@ -20,6 +20,7 @@ import ( http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type "github.com/envoyproxy/go-control-plane/envoy/type/v3" + contour_api_v1alpha1 "github.com/projectcontour/contour/apis/projectcontour/v1alpha1" "github.com/projectcontour/contour/internal/dag" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" @@ -41,36 +42,40 @@ func TracingConfig(tracing *EnvoyTracingConfig) *http.HttpConnectionManager_Trac } } - return &http.HttpConnectionManager_Tracing{ + connManagerTracing := &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type.Percent{ Value: tracing.OverallSampling, }, MaxPathTagLength: wrapperspb.UInt32(tracing.MaxPathTagLength), CustomTags: customTags, - //Provider: &envoy_config_trace_v3.Tracing_Http{ - // Name: "envoy.tracers.opentelemetry", - // ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ - // TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.OpenTelemetryConfig{ - // GrpcService: GrpcService(dag.ExtensionClusterName(tracing.ExtensionService), tracing.SNI, tracing.Timeout), - // ServiceName: tracing.ServiceName, - // }), - // }, - //}, - Provider: &envoy_config_trace_v3.Tracing_Http{ + } + switch tracing.System { + case contour_api_v1alpha1.TracingSystemOpenTelemetry: + connManagerTracing.Provider = &envoy_config_trace_v3.Tracing_Http{ + Name: "envoy.tracers.opentelemetry", + ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ + TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.OpenTelemetryConfig{ + GrpcService: GrpcService(dag.ExtensionClusterName(tracing.ExtensionService), tracing.SNI, tracing.Timeout), + ServiceName: tracing.ServiceName, + }), + }, + } + case contour_api_v1alpha1.TracingSystemZipkin: + connManagerTracing.Provider = &envoy_config_trace_v3.Tracing_Http{ Name: "envoy.tracers.zipkin", ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ - CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), - //CollectorHostname: "172.16.60.14:9411", - //CollectorHostname: tracing.SNI, + CollectorCluster: dag.ExtensionClusterName(tracing.ExtensionService), CollectorHostname: strings.ReplaceAll(dag.ExtensionClusterName(tracing.ExtensionService), "/", "."), CollectorEndpoint: "/api/v2/spans", SharedSpanContext: wrapperspb.Bool(false), CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, }), }, - }, + } } + + return connManagerTracing } func customTag(tag *CustomTag) *envoy_trace_v3.CustomTag { @@ -118,6 +123,7 @@ type EnvoyTracingConfig struct { OverallSampling float64 MaxPathTagLength uint32 CustomTags []*CustomTag + System contour_api_v1alpha1.TracingSystem } type CustomTag struct { diff --git a/internal/envoy/v3/tracing_test.go b/internal/envoy/v3/tracing_test.go index 72cffe7269e..a1dba5b1138 100644 --- a/internal/envoy/v3/tracing_test.go +++ b/internal/envoy/v3/tracing_test.go @@ -22,6 +22,7 @@ import ( http "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3" envoy_trace_v3 "github.com/envoyproxy/go-control-plane/envoy/type/tracing/v3" envoy_type_v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3" + contour_api_v1alpha1 "github.com/projectcontour/contour/apis/projectcontour/v1alpha1" "github.com/projectcontour/contour/internal/k8s" "github.com/projectcontour/contour/internal/protobuf" "github.com/projectcontour/contour/internal/timeout" @@ -39,7 +40,7 @@ func TestTracingConfig(t *testing.T) { tracing: nil, want: nil, }, - "normal config": { + "opentelemtry normal config": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -61,6 +62,7 @@ func TestTracingConfig(t *testing.T) { RequestHeaderName: ":path", }, }, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -112,7 +114,7 @@ func TestTracingConfig(t *testing.T) { }, }, }, - "no custom tag": { + "opentelemtry no custom tag": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -121,6 +123,7 @@ func TestTracingConfig(t *testing.T) { OverallSampling: 100, MaxPathTagLength: 256, CustomTags: nil, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -147,7 +150,7 @@ func TestTracingConfig(t *testing.T) { }, }, }, - "no SNI set": { + "opentelemtry no SNI set": { tracing: &EnvoyTracingConfig{ ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), ServiceName: "contour", @@ -156,6 +159,7 @@ func TestTracingConfig(t *testing.T) { OverallSampling: 100, MaxPathTagLength: 256, CustomTags: nil, + System: contour_api_v1alpha1.TracingSystemOpenTelemetry, }, want: &http.HttpConnectionManager_Tracing{ OverallSampling: &envoy_type_v3.Percent{ @@ -182,6 +186,75 @@ func TestTracingConfig(t *testing.T) { }, }, }, + "zipkin normal config": { + tracing: &EnvoyTracingConfig{ + ExtensionService: k8s.NamespacedNameFrom("projectcontour/otel-collector"), + ServiceName: "contour", + SNI: "some-server.com", + Timeout: timeout.DurationSetting(5 * time.Second), + OverallSampling: 100, + MaxPathTagLength: 256, + CustomTags: []*CustomTag{ + { + TagName: "literal", + Literal: "this is literal", + }, + { + TagName: "podName", + EnvironmentName: "HOSTNAME", + }, + { + TagName: "requestHeaderName", + RequestHeaderName: ":path", + }, + }, + System: contour_api_v1alpha1.TracingSystemZipkin, + }, + want: &http.HttpConnectionManager_Tracing{ + OverallSampling: &envoy_type_v3.Percent{ + Value: 100.0, + }, + MaxPathTagLength: wrapperspb.UInt32(256), + CustomTags: []*envoy_trace_v3.CustomTag{ + { + Tag: "literal", + Type: &envoy_trace_v3.CustomTag_Literal_{ + Literal: &envoy_trace_v3.CustomTag_Literal{ + Value: "this is literal", + }, + }, + }, + { + Tag: "podName", + Type: &envoy_trace_v3.CustomTag_Environment_{ + Environment: &envoy_trace_v3.CustomTag_Environment{ + Name: "HOSTNAME", + }, + }, + }, + { + Tag: "requestHeaderName", + Type: &envoy_trace_v3.CustomTag_RequestHeader{ + RequestHeader: &envoy_trace_v3.CustomTag_Header{ + Name: ":path", + }, + }, + }, + }, + Provider: &envoy_config_trace_v3.Tracing_Http{ + Name: "envoy.tracers.zipkin", + ConfigType: &envoy_config_trace_v3.Tracing_Http_TypedConfig{ + TypedConfig: protobuf.MustMarshalAny(&envoy_config_trace_v3.ZipkinConfig{ + CollectorCluster: "extension/projectcontour/otel-collector", + CollectorHostname: "extension.projectcontour.otel-collector", + CollectorEndpoint: "/api/v2/spans", + SharedSpanContext: wrapperspb.Bool(false), + CollectorEndpointVersion: envoy_config_trace_v3.ZipkinConfig_HTTP_JSON, + }), + }, + }, + }, + }, } for name, tc := range tests { t.Run(name, func(t *testing.T) { diff --git a/internal/featuretests/v3/routesourcemetadata_test.go b/internal/featuretests/v3/routesourcemetadata_test.go index 50f21b4f2e4..b88fa645227 100644 --- a/internal/featuretests/v3/routesourcemetadata_test.go +++ b/internal/featuretests/v3/routesourcemetadata_test.go @@ -95,6 +95,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "ingress-kuard", + }, }), ), ), @@ -140,6 +143,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "httpproxy-kuard", + }, }), ), ), @@ -192,6 +198,9 @@ func TestRouteSourceMetadataIsSet(t *testing.T) { }, }, }, + Decorator: &envoy_route_v3.Decorator{ + Operation: "httproute-kuard", + }, }), ), ), diff --git a/internal/xdscache/v3/listener.go b/internal/xdscache/v3/listener.go index 13aee02d28b..3fac6c27fa9 100644 --- a/internal/xdscache/v3/listener.go +++ b/internal/xdscache/v3/listener.go @@ -168,6 +168,8 @@ type TracingConfig struct { MaxPathTagLength uint32 CustomTags []*CustomTag + + System contour_api_v1alpha1.TracingSystem } type CustomTag struct { @@ -672,6 +674,7 @@ func envoyTracingConfig(config *TracingConfig) *envoy_v3.EnvoyTracingConfig { OverallSampling: config.OverallSampling, MaxPathTagLength: config.MaxPathTagLength, CustomTags: envoyTracingConfigCustomTag(config.CustomTags), + System: config.System, } } diff --git a/pkg/config/parameters.go b/pkg/config/parameters.go index 57d3e2af3a4..496ebddf31a 100644 --- a/pkg/config/parameters.go +++ b/pkg/config/parameters.go @@ -156,6 +156,21 @@ func (h HTTPVersionType) Validate() error { const HTTPVersion1 HTTPVersionType = "http/1.1" const HTTPVersion2 HTTPVersionType = "http/2" +// TracingSystem is the tracing system used in Envoy +type TracingSystem string + +func (h TracingSystem) Validate() error { + switch h { + case TracingSystemOpenTelemetry, TracingSystemZipkin: + return nil + default: + return fmt.Errorf("invalid tracing system %q", h) + } +} + +const TracingSystemOpenTelemetry TracingSystem = "opentelemetry" +const TracingSystemZipkin TracingSystem = "zipkin" + // NamespacedName defines the namespace/name of the Kubernetes resource referred from the configuration file. // Used for Contour configuration YAML file parsing, otherwise we could use K8s types.NamespacedName. type NamespacedName struct { @@ -699,7 +714,7 @@ type Parameters struct { // MetricsParameters holds configurable parameters for Contour and Envoy metrics. Metrics MetricsParameters `yaml:"metrics,omitempty"` - // Tracing holds the relevant configuration for exporting trace data to OpenTelemetry. + // Tracing holds the relevant configuration for exporting trace data to the tracing system. Tracing *Tracing `yaml:"tracing,omitempty"` // FeatureFlags defines toggle to enable new contour features. @@ -710,7 +725,7 @@ type Parameters struct { FeatureFlags []string `yaml:"featureFlags,omitempty"` } -// Tracing defines properties for exporting trace data to OpenTelemetry. +// Tracing defines properties for exporting trace data to the tracing system. type Tracing struct { // IncludePodDetail defines a flag. // If it is true, contour will add the pod name and namespace to the span of the trace. @@ -737,6 +752,10 @@ type Tracing struct { // ExtensionService identifies the extension service defining the otel-collector, // formatted as /. ExtensionService string `yaml:"extensionService"` + + // System Specifies the tracing system to use. Supported systems are + // "zipkin" and "opentelemetry". + System *TracingSystem `yaml:"system"` } // CustomTag defines custom tags with unique tag name diff --git a/site/content/docs/main/config/api-reference.html b/site/content/docs/main/config/api-reference.html index bf47f593e3a..c40004b61ee 100644 --- a/site/content/docs/main/config/api-reference.html +++ b/site/content/docs/main/config/api-reference.html @@ -5394,7 +5394,7 @@

ContourConfiguration -

Tracing defines properties for exporting trace data to OpenTelemetry.

+

Tracing defines properties for exporting trace data to the tracing system.

@@ -6187,7 +6187,7 @@

ContourConfiguratio -

Tracing defines properties for exporting trace data to OpenTelemetry.

+

Tracing defines properties for exporting trace data to the tracing system.

@@ -9097,7 +9097,7 @@

TracingSystem +(string alias)

+

+(Appears on: +TracingConfig) +

+

+

TracingSystem is the tracing system used in Envoy

+

+ + + + + + + + + + + + +
ValueDescription

"opentelemetry"

"zipkin"

WorkloadType (string alias)

TracingConfig ContourConfigurationSpec)

-

TracingConfig defines properties for exporting trace data to OpenTelemetry.

+

TracingConfig defines properties for exporting trace data to the tracing system.

@@ -9194,8 +9194,47 @@

TracingConfig

ExtensionService identifies the extension service defining the otel-collector.

+

+ + +
+system +
+ + +TracingSystem + + +
+(Optional) +

System specifies the tracing system used in Evnoy. +Supported systems are “opentelemetry” and “zipkin”. +Defaults to “opentelemetry”.

+
+