envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.95k stars 4.8k forks source link

No healthy stream GRPC-JSON transcoding helloworld example #24508

Closed NikolaiBirolini closed 1 year ago

NikolaiBirolini commented 1 year ago

Title: No healthy stream GRPC-JSON transcoding on localhost

Description: Hello everyone, I want to do a basic helloworld program to understand the Envoy proxy transcoding.
I read the official example on https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter
The proxy will listen on the 51050 port and my GRPC server will listen on the 50051.

What I want ? I want to return a "Hello" on the http://localhost:51050/say.

What I have ? This link returns me : "no healthy upstream"

Repro steps: I writ a GRPC server and a .proto file to define his services.

GRPC Server :

/*
 *
 * Copyright 2015 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

#include <iostream>
#include <memory>
#include <string>

#include <grpcpp/ext/proto_server_reflection_plugin.h>
#include <grpcpp/grpcpp.h>
#include <grpcpp/health_check_service_interface.h>

#ifdef BAZEL_BUILD
#include "examples/protos/helloworld.grpc.pb.h"
#else
#include "helloworld.grpc.pb.h"
#endif

using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
using helloworld::Greeter;
using helloworld::HelloReply;
using helloworld::HelloRequest;

// Logic and data behind the server's behavior.
class GreeterServiceImpl final : public Greeter::Service {
  Status SayHello(ServerContext* context, const HelloRequest* request,
                  HelloReply* reply) override {
    std::string prefix("Hello ");
    reply->set_message(prefix);
    return Status::OK;
  }
};

void RunServer() {
  std::string server_address("0.0.0.0:50051");
  GreeterServiceImpl service;

  grpc::EnableDefaultHealthCheckService(true);
  grpc::reflection::InitProtoReflectionServerBuilderPlugin();
  ServerBuilder builder;
  // Listen on the given address without any authentication mechanism.
  builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
  // Register "service" as the instance through which we'll communicate with
  // clients. In this case it corresponds to an *synchronous* service.
  builder.RegisterService(&service);
  // Finally assemble the server.
  std::unique_ptr<Server> server(builder.BuildAndStart());
  std::cout << "Server listening on " << server_address << std::endl;

  // Wait for the server to shutdown. Note that some other thread must be
  // responsible for shutting down the server for this call to ever return.
  server->Wait();
}

int main(int argc, char** argv) {
  RunServer();

  return 0;
}

Proto file :

syntax = "proto3";

option java_multiple_files = true;
option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";

package helloworld;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

I generate his associated files and I compile him. The above files are original examples from GRPC repository.

For the proxy : I modify my proto file to include the google api library and to associate my sayHello service with /say.

My proto file :

syntax = "proto3";

package helloworld;

import "google/api/annotations.proto";

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello(HelloRequest) returns (HelloReply) {
    option (google.api.http) = {
      get: "/say"
    };
  }
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

I generate helloworld.pb for the proxy with this command :

protoc -I. --include_imports --include_source_info --descriptor_set_out=helloworld.pb helloworld.proto"

Finally, I launch my proxy with docker :

docker run -it --rm --name envoy-config --network="host" -v "$(pwd)/protos/helloworld.pb:/protos/helloworld.pb:ro" -v "$(pwd)/envoy-config.yml:/etc/envoy/envoy.yaml:ro" envoyproxy/envoy-dev

Config:

admin:
  address:
    socket_address: {address: 0.0.0.0, port_value: 9901}

static_resources:
  listeners:
  - name: listener1
    address:
      socket_address: {address: 0.0.0.0, port_value: 51051}
    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
          stat_prefix: grpc_json
          codec_type: AUTO
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              # NOTE: by default, matching happens based on the gRPC route, and not on the incoming request path.
              # Reference: https://envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter#route-configs-for-transcoded-requests
              - match: {prefix: "/helloworld.Greeter"}
                route: {cluster: grpc, timeout: 60s}
          http_filters:
          - name: envoy.filters.http.grpc_json_transcoder
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder
              proto_descriptor: "protos/helloworld.pb"
              services: ["helloworld.Greeter"]
              print_options:
                add_whitespace: true
                always_print_primitive_fields: true
                always_print_enums_as_ints: false
                preserve_proto_field_names: false
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

  clusters:
  - name: grpc
    type: LOGICAL_DNS
    lb_policy: ROUND_ROBIN
    dns_lookup_family: V4_ONLY
    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: grpc
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                # WARNING: "docker.for.mac.localhost" has been deprecated from Docker v18.03.0.
                # If you're running an older version of Docker, please use "docker.for.mac.localhost" instead.
                # Reference: https://docs.docker.com/docker-for-mac/release-notes/#docker-community-edition-18030-ce-mac59-2018-03-26
                address: host.docker.internal
                port_value: 50051

Logs:

[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:407] initializing epoch 0 (base id=0, hot restart version=11.104)
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:409] statically linked extensions:
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.dubbo_proxy.protocols: dubbo
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.upstreams: envoy.filters.connection_pools.tcp.generic
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.filters.http.upstream: envoy.buffer, envoy.filters.http.admission_control, envoy.filters.http.buffer, envoy.filters.http.upstream_codec
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.health_checkers: envoy.health_checkers.redis, envoy.health_checkers.thrift
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.thrift_proxy.transports: auto, framed, header, unframed
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.dubbo_proxy.serializers: dubbo.hessian2
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.listener_manager_impl: envoy.listener_manager_impl.default
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.regex_engines: envoy.regex_engines.google_re2
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.route.early_data_policy: envoy.route.early_data_policy.default
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.request_id: envoy.request_id.uuid
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.formatter: envoy.formatter.metadata, envoy.formatter.req_without_query
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.resolvers: envoy.ip
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.input_matchers: envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.header_validators: envoy.http.header_validators.envoy_default
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.upstreams.http.http_protocol_options
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.path.match: envoy.path.match.uri_template.uri_template_matcher
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.cache: envoy.extensions.http.cache.simple
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.retry_priorities: envoy.retry_priorities.previous_priorities
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.cors, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.common.key_value: envoy.key_value.file_based
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   network.connection.client: default, envoy_internal
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.http.input: envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.quic.proof_source: envoy.quic.proof_source.filter_chain
[2022-12-13 09:14:59.124][1][info][main] [source/server/server.cc:411]   envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name
[2022-12-13 09:14:59.127][1][info][main] [source/server/server.cc:459] HTTP header map info:
[2022-12-13 09:14:59.127][1][info][main] [source/server/server.cc:462]   request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id
[2022-12-13 09:14:59.127][1][info][main] [source/server/server.cc:462]   request trailer map: 120 bytes: 
[2022-12-13 09:14:59.127][1][info][main] [source/server/server.cc:462]   response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id
[2022-12-13 09:14:59.127][1][info][main] [source/server/server.cc:462]   response trailer map: 144 bytes: grpc-message,grpc-status
[2022-12-13 09:14:59.132][1][info][main] [source/server/server.cc:824] runtime: {}
[2022-12-13 09:14:59.133][1][info][admin] [source/server/admin/admin.cc:67] admin address: 0.0.0.0:9901
[2022-12-13 09:14:59.133][1][info][config] [source/server/configuration_impl.cc:131] loading tracing configuration
[2022-12-13 09:14:59.133][1][info][config] [source/server/configuration_impl.cc:91] loading 0 static secret(s)
[2022-12-13 09:14:59.133][1][info][config] [source/server/configuration_impl.cc:97] loading 1 cluster(s)
[2022-12-13 09:14:59.134][1][info][config] [source/server/configuration_impl.cc:101] loading 1 listener(s)
[2022-12-13 09:14:59.136][1][info][config] [source/server/configuration_impl.cc:113] loading stats configuration
[2022-12-13 09:14:59.137][1][info][main] [source/server/server.cc:920] starting main dispatch loop
[2022-12-13 09:14:59.167][1][info][runtime] [source/common/runtime/runtime_impl.cc:463] RTDS has finished initialization
[2022-12-13 09:14:59.167][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:226] cm init: all clusters initialized
[2022-12-13 09:14:59.167][1][info][main] [source/server/server.cc:901] all clusters initialized. initializing init manager
[2022-12-13 09:14:59.167][1][info][config] [source/extensions/listener_managers/listener_manager/listener_manager_impl.cc:852] all dependencies initialized. starting workers
[2022-12-13 09:14:59.168][1][warning][main] [source/server/server.cc:799] there is no configured limit to the number of allowed active connections. Set a limit via the runtime key overload.global_downstream_max_connections
[2022-12-13 09:29:59.178][1][info][main] [source/server/drain_manager_impl.cc:171] shutting down parent after drain
NikolaiBirolini commented 1 year ago

Admin and Stats Output:

For /clusters :

grpc::observability_name::grpc
grpc::default_priority::max_connections::1024
grpc::default_priority::max_pending_requests::1024
grpc::default_priority::max_requests::
grpc::default_priority::max_retries::3
grpc::high_priority::max_connections::1024
grpc::high_priority::max_pending_requests::1024
grpc::high_priority::max_requests::1024
grpc::high_priority::max_retries::3
grpc::added_via_api::false

server_info.txt 1024

phlax commented 1 year ago

if you figure out the issue @NikolaiBirolini it would be good to turn this example into a sandbox (there is already one for a go k/v store using a grpc bridge here - which might help https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/grpc_bridge)

cc @qiwzhang @lizan

NikolaiBirolini commented 1 year ago

Thank you for your answer ! Yes I will !

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

NikolaiBirolini commented 1 year ago

I didn't found a solution yet

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.

github-actions[bot] commented 1 year ago

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions.