# Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: ${ENVOY_PORT} filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager codec_type: AUTO stat_prefix: ingress_http tracing: provider: name: envoy.tracers.opentelemetry typed_config: "@type": type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig grpc_service: envoy_grpc: cluster_name: opentelemetry_collector_grpc timeout: 0.250s service_name: frontend-proxy route_config: name: local_route virtual_hosts: - name: frontend domains: - "*" routes: - match: { prefix: "/feature" } route: { cluster: featureflag, prefix_rewrite: "/" } - match: { prefix: "/loadgen" } route: { cluster: loadgen, prefix_rewrite: "/" } - match: { prefix: "/oltp-http/" } route: { cluster: opentelemetry_collector_http, prefix_rewrite: "/" } - match: { prefix: "/jaeger" } route: { cluster: jaeger } - match: { prefix: "/grafana" } route: { cluster: grafana } - match: { prefix: "/" } route: { cluster: frontend } http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router clusters: - name: opentelemetry_collector_grpc type: STRICT_DNS lb_policy: ROUND_ROBIN typed_extension_protocol_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions: "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions explicit_http_config: http2_protocol_options: {} load_assignment: cluster_name: opentelemetry_collector_grpc endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${OTEL_COLLECTOR_HOST} port_value: ${OTEL_COLLECTOR_PORT_GRPC} - name: opentelemetry_collector_http type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: opentelemetry_collector_http endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${OTEL_COLLECTOR_HOST} port_value: ${OTEL_COLLECTOR_PORT_HTTP} - name: frontend type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: frontend endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${FRONTEND_HOST} port_value: ${FRONTEND_PORT} - name: featureflag type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: featureflag endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${FEATURE_FLAG_SERVICE_HOST} port_value: ${FEATURE_FLAG_SERVICE_PORT} - name: loadgen type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: loadgen endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${LOCUST_WEB_HOST} port_value: ${LOCUST_WEB_PORT} - name: grafana type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: grafana endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${GRAFANA_SERVICE_HOST} port_value: ${GRAFANA_SERVICE_PORT} - name: jaeger type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: jaeger endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ${JAEGER_SERVICE_HOST} port_value: ${JAEGER_SERVICE_PORT} admin: address: socket_address: address: 0.0.0.0 port_value: 10000 layered_runtime: layers: - name: static_layer_0 static_layer: envoy: resource_limits: listener: example_listener_name: connection_limit: 10000