def call_server(): channel = grpc.intercept_channel(grpc.insecure_channel("localhost:50051"), PromClientInterceptor()) stub = hello_world_grpc.GreeterStub(channel) # Call the unary-unary. response = stub.SayHello(hello_world_pb2.HelloRequest(name="Unary")) _LOGGER.info("Unary response: %s", response.message) _LOGGER.info("") # Call the unary stream. _LOGGER.info("Running Unary Stream client") response_iter = stub.SayHelloUnaryStream( hello_world_pb2.HelloRequest(name="unary stream")) _LOGGER.info("Response for Unary Stream") for response in response_iter: _LOGGER.info("Unary Stream response item: %s", response.message) _LOGGER.info("") # Call the stream_unary. _LOGGER.info("Running Stream Unary client") response = stub.SayHelloStreamUnary(generate_requests("Stream Unary")) _LOGGER.info("Stream Unary response: %s", response.message) _LOGGER.info("") # Call stream & stream. _LOGGER.info("Running Bidi Stream client") response_iter = stub.SayHelloBidiStream(generate_requests("Bidi Stream")) for response in response_iter: _LOGGER.info("Bidi Stream response item: %s", response.message) _LOGGER.info("")
def test_grpc_server_handled_latency_seconds_with_normal( target_count, grpc_server, grpc_stub ): # pylint: disable=unused-argument for i in range(target_count): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name=str(i))) target_metric = get_server_metric("grpc_server_handled_latency_seconds") assert target_metric.samples == []
def test_grpc_server_msg_sent_with_normal(target_count, grpc_server, grpc_stub): # pylint: disable=unused-argument for i in range(target_count): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name=str(i))) target_metric = get_server_metric("grpc_server_msg_sent") # None streaming request has no this metrics assert target_metric.samples == []
def test_grpc_server_handled_with_server_error( target_count, grpc_server, grpc_stub ): # pylint: disable=unused-argument for _ in range(target_count): with pytest.raises(grpc.RpcError): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name="unknownError")) target_metric = get_server_metric("grpc_server_handled") assert target_metric.samples == []
def test_grpc_server_handled_before_request_error( target_count, grpc_server, grpc_stub ): # pylint: disable=unused-argument for _ in range(target_count): with patch( 'py_grpc_prometheus.grpc_utils.wrap_iterator_inc_counter', side_effect=Exception('mocked error') ): assert grpc_stub.SayHello( hello_world_pb2.HelloRequest(name="unary") ).message == "Hello, unary!"
def test_grpc_server_handled_with_interceptor_error( target_count, grpc_server, grpc_stub ): # pylint: disable=unused-argument for _ in range(target_count): with patch( 'py_grpc_prometheus.prometheus_server_interceptor.'\ 'PromServerInterceptor._compute_status_code', side_effect=Exception('mocked error') ): with pytest.raises(grpc.RpcError): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name="unary"))
def test_grpc_server_handled_with_interceptor_error_and_skip_exceptions( target_count, grpc_server_with_exception_handling, grpc_stub ): # pylint: disable=unused-argument for _ in range(target_count): with patch( 'py_grpc_prometheus.prometheus_server_interceptor.'\ 'PromServerInterceptor._compute_status_code', side_effect=Exception('mocked error') ): assert grpc_stub.SayHello( hello_world_pb2.HelloRequest(name="unary") ).message == "Hello, unary!" target_metric = get_server_metric("grpc_server_handled") assert target_metric.samples == []
def test_legacy_grpc_server_handled_latency_seconds_with_normal( target_count, grpc_legacy_server, grpc_stub ): # pylint: disable=unused-argument for i in range(target_count): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name=str(i))) target_metric = get_server_metric("grpc_server_handled_latency_seconds") assert reduce( lambda acc, x: acc if acc > x.value else x.value, list( filter( lambda x: x.name == "grpc_server_handled_latency_seconds_bucket", target_metric.samples ) ), 0 ) == target_count assert reduce( lambda acc, x: acc if acc > x.value else x.value, list( filter( lambda x: x.name == "grpc_server_handled_latency_seconds_count", target_metric.samples ) ), 0 ) == target_count assert reduce( lambda acc, x: acc if acc > x.value else x.value, list( filter( lambda x: x.name == "grpc_server_handled_latency_seconds_sum", target_metric.samples ) ), 0 ) > 0
def generate_requests(name): for i in range(10): yield hello_world_pb2.HelloRequest(name="%s %s" % (name, i))
def test_grpc_server_started_with_normal(target_count, grpc_server, grpc_stub): # pylint: disable=unused-argument for i in range(target_count): grpc_stub.SayHello(hello_world_pb2.HelloRequest(name=str(i))) target_metric = get_server_metric("grpc_server_started") assert target_metric.samples[0].value == target_count
def _generate_requests(number_of_names): for i in range(number_of_names): yield hello_world_pb2.HelloRequest(name="{}".format(i))