/** * Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you * send matches that of an existing trace, any fields in the existing trace and its spans are * overwritten by the provided values, and any new fields provided are merged with the existing * trace data. If the ID does not match, a new trace is created. * * <p>Sample code: * * <pre><code> * try (TraceServiceClient traceServiceClient = TraceServiceClient.create()) { * String projectId = ""; * Traces traces = Traces.newBuilder().build(); * traceServiceClient.patchTraces(projectId, traces); * } * </code></pre> * * @param projectId ID of the Cloud project where the trace data is stored. * @param traces The body of the message. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final void patchTraces(String projectId, Traces traces) { PatchTracesRequest request = PatchTracesRequest.newBuilder().setProjectId(projectId).setTraces(traces).build(); patchTraces(request); }
@Test @SuppressWarnings("all") public void patchTracesExceptionTest() throws Exception { StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT); mockTraceService.addException(exception); try { String projectId = "projectId-1969970175"; Traces traces = Traces.newBuilder().build(); client.patchTraces(projectId, traces); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { // Expected exception } }
@Test @SuppressWarnings("all") public void patchTracesTest() { Empty expectedResponse = Empty.newBuilder().build(); mockTraceService.addResponse(expectedResponse); String projectId = "projectId-1969970175"; Traces traces = Traces.newBuilder().build(); client.patchTraces(projectId, traces); List<GeneratedMessageV3> actualRequests = mockTraceService.getRequests(); Assert.assertEquals(1, actualRequests.size()); PatchTracesRequest actualRequest = (PatchTracesRequest) actualRequests.get(0); Assert.assertEquals(projectId, actualRequest.getProjectId()); Assert.assertEquals(traces, actualRequest.getTraces()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Override public void receive(Traces traces) { this.client.patchTraces(this.projectId, traces); }
@Override public void receive(Traces traces) { if (traces.getTracesCount() == 0) { return; } String projectId = traces.getTraces(0).getProjectId(); PatchTracesRequest.Builder requestBuilder = PatchTracesRequest.newBuilder() .setProjectId(projectId) .setTraces(traces); traceService.patchTraces(requestBuilder.build()); }