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
示例#3
0
    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
示例#4
0
    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)