TestClientRPCEventsLogAll tests the observability system configured with a client RPC event that logs every call. It performs a Unary and Bidirectional Streaming RPC, and expects certain grpcLogEntries to make it's way to the exporter.
(t *testing.T)
| 127 | // Streaming RPC, and expects certain grpcLogEntries to make it's way to the |
| 128 | // exporter. |
| 129 | func (s) TestClientRPCEventsLogAll(t *testing.T) { |
| 130 | fle := &fakeLoggingExporter{ |
| 131 | t: t, |
| 132 | } |
| 133 | defer func(ne func(ctx context.Context, config *config) (loggingExporter, error)) { |
| 134 | newLoggingExporter = ne |
| 135 | }(newLoggingExporter) |
| 136 | |
| 137 | newLoggingExporter = func(context.Context, *config) (loggingExporter, error) { |
| 138 | return fle, nil |
| 139 | } |
| 140 | |
| 141 | clientRPCEventLogAllConfig := &config{ |
| 142 | ProjectID: "fake", |
| 143 | CloudLogging: &cloudLogging{ |
| 144 | ClientRPCEvents: []clientRPCEvents{ |
| 145 | { |
| 146 | Methods: []string{"*"}, |
| 147 | MaxMetadataBytes: 30, |
| 148 | MaxMessageBytes: 30, |
| 149 | }, |
| 150 | }, |
| 151 | }, |
| 152 | } |
| 153 | cleanup, err := setupObservabilitySystemWithConfig(clientRPCEventLogAllConfig) |
| 154 | if err != nil { |
| 155 | t.Fatalf("error setting up observability: %v", err) |
| 156 | } |
| 157 | defer cleanup() |
| 158 | |
| 159 | ss := &stubserver.StubServer{ |
| 160 | UnaryCallF: func(context.Context, *testpb.SimpleRequest) (*testpb.SimpleResponse, error) { |
| 161 | return &testpb.SimpleResponse{}, nil |
| 162 | }, |
| 163 | FullDuplexCallF: func(stream testgrpc.TestService_FullDuplexCallServer) error { |
| 164 | if _, err := stream.Recv(); err != nil { |
| 165 | return err |
| 166 | } |
| 167 | if err := stream.Send(&testpb.StreamingOutputCallResponse{}); err != nil { |
| 168 | return err |
| 169 | } |
| 170 | if _, err := stream.Recv(); err != io.EOF { |
| 171 | return err |
| 172 | } |
| 173 | return nil |
| 174 | }, |
| 175 | } |
| 176 | if err := ss.Start(nil); err != nil { |
| 177 | t.Fatalf("Error starting endpoint server: %v", err) |
| 178 | } |
| 179 | defer ss.Stop() |
| 180 | |
| 181 | ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout) |
| 182 | defer cancel() |
| 183 | if _, err := ss.Client.UnaryCall(ctx, &testpb.SimpleRequest{}); err != nil { |
| 184 | t.Fatalf("Unexpected error from UnaryCall: %v", err) |
| 185 | } |
| 186 |
nothing calls this directly
no test coverage detected