def batch_write_spans(self, name, spans, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None): """ Sends new spans to new or existing traces. You cannot update existing spans. Example: >>> from google.cloud import trace_v2 >>> >>> client = trace_v2.TraceServiceClient() >>> >>> name = client.project_path('[PROJECT]') >>> spans = [] >>> >>> client.batch_write_spans(name, spans) Args: name (str): Required. The name of the project where the spans belong. The format is ``projects/[PROJECT_ID]``. spans (list[Union[dict, ~google.cloud.trace_v2.types.Span]]): A list of new spans. The span names must not match existing spans, or the results are undefined. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.trace_v2.types.Span` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ if metadata is None: metadata = [] metadata = list(metadata) request = tracing_pb2.BatchWriteSpansRequest( name=name, spans=spans, ) self._batch_write_spans(request, retry=retry, timeout=timeout, metadata=metadata)
def test_batch_write_spans(self): channel = ChannelStub() client = trace_v2.TraceServiceClient(channel=channel) # Setup Request name = client.project_path('[PROJECT]') spans = [] client.batch_write_spans(name, spans) assert len(channel.requests) == 1 expected_request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) actual_request = channel.requests[0][1] assert expected_request == actual_request
def test_batch_write_spans(self): channel = ChannelStub() patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v2.TraceServiceClient() # Setup Request name = client.project_path("[PROJECT]") spans = [] client.batch_write_spans(name, spans) assert len(channel.requests) == 1 expected_request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) actual_request = channel.requests[0][1] assert expected_request == actual_request
def batch_write_spans(self, name, spans, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT): """ Sends new spans to Stackdriver Trace or updates existing traces. If the name of a trace that you send matches that of an existing trace, new spans are added to the existing trace. Attempt to update existing spans results undefined behavior. If the name does not match, a new trace is created with given set of spans. Example: >>> from google.cloud import trace_v2 >>> >>> client = trace_v2.TraceServiceClient() >>> >>> name = client.project_path('[PROJECT]') >>> spans = [] >>> >>> client.batch_write_spans(name, spans) Args: name (str): Required. Name of the project where the spans belong. The format is ``projects/PROJECT_ID``. spans (list[Union[dict, ~google.cloud.trace_v2.types.Span]]): A collection of spans. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.trace_v2.types.Span` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) self._batch_write_spans(request, retry=retry, timeout=timeout)
def batch_write_spans( self, name, spans, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, ): """ Sends new spans to new or existing traces. You cannot update existing spans. Example: >>> from google.cloud import trace_v2 >>> >>> client = trace_v2.TraceServiceClient() >>> >>> name = client.project_path('[PROJECT]') >>> >>> # TODO: Initialize `spans`: >>> spans = [] >>> >>> client.batch_write_spans(name, spans) Args: name (str): Required. The name of the project where the spans belong. The format is ``projects/[PROJECT_ID]``. spans (list[Union[dict, ~google.cloud.trace_v2.types.Span]]): A list of new spans. The span names must not match existing spans, or the results are undefined. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.trace_v2.types.Span` retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. timeout (Optional[float]): The amount of time, in seconds, to wait for the request to complete. Note that if ``retry`` is specified, the timeout applies to each individual attempt. metadata (Optional[Sequence[Tuple[str, str]]]): Additional metadata that is provided to the method. Raises: google.api_core.exceptions.GoogleAPICallError: If the request failed for any reason. google.api_core.exceptions.RetryError: If the request failed due to a retryable error and retry attempts failed. ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. if "batch_write_spans" not in self._inner_api_calls: self._inner_api_calls[ "batch_write_spans"] = google.api_core.gapic_v1.method.wrap_method( self.transport.batch_write_spans, default_retry=self._method_configs["BatchWriteSpans"]. retry, default_timeout=self._method_configs["BatchWriteSpans"]. timeout, client_info=self._client_info, ) request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) if metadata is None: metadata = [] metadata = list(metadata) try: routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( routing_header) metadata.append(routing_metadata) self._inner_api_calls["batch_write_spans"](request, retry=retry, timeout=timeout, metadata=metadata)