# Stackdriver Trace API . projects . traces

## Instance Methods

Returns the spans Resource.

Sends new spans to new or existing traces. You cannot update

### Method Details

`batchWrite(name, body, x__xgafv=None)`

    Sends new spans to new or existing traces. You cannot update
    existing spans.

    Args:
      name: string, Required. The name of the project where the spans belong. The format is
    `projects/[PROJECT_ID]`. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # The request message for the `BatchWriteSpans` method.
        "spans": [ # A list of new spans. The span names must not match existing
            # spans, or the results are undefined.
          { # A span represents a single operation within a trace. Spans can be
              # nested to form a trace tree. Often, a trace contains a root span
              # that describes the end-to-end latency, and one or more subspans for
              # its sub-operations. A trace can also contain multiple root spans,
              # or none at all. Spans do not need to be contiguous—there may be
              # gaps or overlaps between spans in a trace.
            "status": { # The `Status` type defines a logical error model that is suitable for # An optional final status for this span.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
            },
            "stackTrace": { # A call stack appearing in a trace. # Stack trace captured at the start of the span.
              "stackTraceHashId": "A String", # The hash ID is used to conserve network bandwidth for duplicate
                  # stack traces within a single trace.
                  #
                  # Often multiple spans will have identical stack traces.
                  # The first occurrence of a stack trace should contain both the
                  # `stackFrame` content and a value in `stackTraceHashId`.
                  #
                  # Subsequent spans within the same request can refer
                  # to that stack trace by only setting `stackTraceHashId`.
              "stackFrames": { # A collection of stack frames, which can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
                "frame": [ # Stack frames in this call stack.
                  { # Represents a single stack frame in a stack trace.
                    "columnNumber": "A String", # The column number where the function call appears, if available.
                        # This is important in JavaScript because of its anonymous functions.
                    "functionName": { # Represents a string that might be shortened to a specified length. # The fully-qualified name that uniquely identifies the function or
                        # method that is active in this frame (up to 1024 bytes).
                      "value": "A String", # The shortened string. For example, if the original string is 500
                          # bytes long and the limit of the string is 128 bytes, then
                          # `value` contains the first 128 bytes of the 500-byte string.
                          #
                          # Truncation always happens on a UTF8 character boundary. If there
                          # are multi-byte characters in the string, then the length of the
                          # shortened string might be less than the size limit.
                      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                          # value is 0, then the string was not shortened.
                    },
                    "fileName": { # Represents a string that might be shortened to a specified length. # The name of the source file where the function call appears (up to 256
                        # bytes).
                      "value": "A String", # The shortened string. For example, if the original string is 500
                          # bytes long and the limit of the string is 128 bytes, then
                          # `value` contains the first 128 bytes of the 500-byte string.
                          #
                          # Truncation always happens on a UTF8 character boundary. If there
                          # are multi-byte characters in the string, then the length of the
                          # shortened string might be less than the size limit.
                      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                          # value is 0, then the string was not shortened.
                    },
                    "sourceVersion": { # Represents a string that might be shortened to a specified length. # The version of the deployed source code (up to 128 bytes).
                      "value": "A String", # The shortened string. For example, if the original string is 500
                          # bytes long and the limit of the string is 128 bytes, then
                          # `value` contains the first 128 bytes of the 500-byte string.
                          #
                          # Truncation always happens on a UTF8 character boundary. If there
                          # are multi-byte characters in the string, then the length of the
                          # shortened string might be less than the size limit.
                      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                          # value is 0, then the string was not shortened.
                    },
                    "loadModule": { # Binary module. # The binary module from where the code was loaded.
                      "buildId": { # Represents a string that might be shortened to a specified length. # A unique identifier for the module, usually a hash of its
                          # contents (up to 128 bytes).
                        "value": "A String", # The shortened string. For example, if the original string is 500
                            # bytes long and the limit of the string is 128 bytes, then
                            # `value` contains the first 128 bytes of the 500-byte string.
                            #
                            # Truncation always happens on a UTF8 character boundary. If there
                            # are multi-byte characters in the string, then the length of the
                            # shortened string might be less than the size limit.
                        "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                            # value is 0, then the string was not shortened.
                      },
                      "module": { # Represents a string that might be shortened to a specified length. # For example: main binary, kernel modules, and dynamic libraries
                          # such as libc.so, sharedlib.so (up to 256 bytes).
                        "value": "A String", # The shortened string. For example, if the original string is 500
                            # bytes long and the limit of the string is 128 bytes, then
                            # `value` contains the first 128 bytes of the 500-byte string.
                            #
                            # Truncation always happens on a UTF8 character boundary. If there
                            # are multi-byte characters in the string, then the length of the
                            # shortened string might be less than the size limit.
                        "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                            # value is 0, then the string was not shortened.
                      },
                    },
                    "lineNumber": "A String", # The line number in `file_name` where the function call appears.
                    "originalFunctionName": { # Represents a string that might be shortened to a specified length. # An un-mangled function name, if `function_name` is
                        # [mangled](http://www.avabodh.com/cxxin/namemangling.html). The name can
                        # be fully-qualified (up to 1024 bytes).
                      "value": "A String", # The shortened string. For example, if the original string is 500
                          # bytes long and the limit of the string is 128 bytes, then
                          # `value` contains the first 128 bytes of the 500-byte string.
                          #
                          # Truncation always happens on a UTF8 character boundary. If there
                          # are multi-byte characters in the string, then the length of the
                          # shortened string might be less than the size limit.
                      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                          # value is 0, then the string was not shortened.
                    },
                  },
                ],
                "droppedFramesCount": 42, # The number of stack frames that were dropped because there
                    # were too many stack frames.
                    # If this value is 0, then no stack frames were dropped.
              },
            },
            "displayName": { # Represents a string that might be shortened to a specified length. # A description of the span's operation (up to 128 bytes).
                # Stackdriver Trace displays the description in the
                # Google Cloud Platform Console.
                # For example, the display name can be a qualified method name or a file name
                # and a line number where the operation is called. A best practice is to use
                # the same display name within an application and at the same call point.
                # This makes it easier to correlate spans in different traces.
              "value": "A String", # The shortened string. For example, if the original string is 500
                  # bytes long and the limit of the string is 128 bytes, then
                  # `value` contains the first 128 bytes of the 500-byte string.
                  #
                  # Truncation always happens on a UTF8 character boundary. If there
                  # are multi-byte characters in the string, then the length of the
                  # shortened string might be less than the size limit.
              "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                  # value is 0, then the string was not shortened.
            },
            "name": "A String", # The resource name of the span in the following format:
                #
                #     projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/SPAN_ID is a unique identifier for a trace within a project;
                # it is a 32-character hexadecimal encoding of a 16-byte array.
                #
                # [SPAN_ID] is a unique identifier for a span within a trace; it
                # is a 16-character hexadecimal encoding of an 8-byte array.
            "links": { # A collection of links, which are references from this span to a span # Links associated with the span. You can have up to 128 links per Span.
                # in the same or different trace.
              "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
                  # this value is 0, then no links were dropped.
              "link": [ # A collection of links.
                { # A pointer from the current span to another span in the same trace or in a
                    # different trace. For example, this can be used in batching operations,
                    # where a single batch handler processes multiple requests from different
                    # traces or when the handler receives a request from a different project.
                  "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the link. You have have up to  32 attributes per
                      # link.
                    "droppedAttributesCount": 42, # The number of attributes that were discarded. Attributes can be discarded
                        # because their keys are too long or because there are too many attributes.
                        # If this value is 0 then all attributes are valid.
                    "attributeMap": { # The set of attributes. Each attribute's key can be up to 128 bytes
                        # long. The value can be a string up to 256 bytes, a signed 64-bit integer,
                        # or the Boolean values `true` and `false`. For example:
                        #
                        #     "/instance_id": "my-instance"
                        #     "/http/user_agent": ""
                        #     "/http/request_bytes": 300
                        #     "abc.com/myattribute": true
                      "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
                        "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
                          "value": "A String", # The shortened string. For example, if the original string is 500
                              # bytes long and the limit of the string is 128 bytes, then
                              # `value` contains the first 128 bytes of the 500-byte string.
                              #
                              # Truncation always happens on a UTF8 character boundary. If there
                              # are multi-byte characters in the string, then the length of the
                              # shortened string might be less than the size limit.
                          "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                              # value is 0, then the string was not shortened.
                        },
                        "boolValue": True or False, # A Boolean value represented by `true` or `false`.
                        "intValue": "A String", # A 64-bit signed integer.
                      },
                    },
                  },
                  "traceId": "A String", # The [TRACE_ID] for a trace within a project.
                  "type": "A String", # The relationship of the current span relative to the linked span.
                  "spanId": "A String", # The [SPAN_ID] for a span within a trace.
                },
              ],
            },
            "childSpanCount": 42, # An optional number of child spans that were generated while this span
                # was active. If set, allows implementation to detect missing child spans.
            "parentSpanId": "A String", # The [SPAN_ID] of this span's parent span. If this is a root span,
                # then this field must be empty.
            "startTime": "A String", # The start time of the span. On the client side, this is the time kept by
                # the local machine where the span execution starts. On the server side, this
                # is the time when the server's application handler starts running.
            "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the span. You can have up to 32 attributes per
                # span.
              "droppedAttributesCount": 42, # The number of attributes that were discarded. Attributes can be discarded
                  # because their keys are too long or because there are too many attributes.
                  # If this value is 0 then all attributes are valid.
              "attributeMap": { # The set of attributes. Each attribute's key can be up to 128 bytes
                  # long. The value can be a string up to 256 bytes, a signed 64-bit integer,
                  # or the Boolean values `true` and `false`. For example:
                  #
                  #     "/instance_id": "my-instance"
                  #     "/http/user_agent": ""
                  #     "/http/request_bytes": 300
                  #     "abc.com/myattribute": true
                "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
                  "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
                    "value": "A String", # The shortened string. For example, if the original string is 500
                        # bytes long and the limit of the string is 128 bytes, then
                        # `value` contains the first 128 bytes of the 500-byte string.
                        #
                        # Truncation always happens on a UTF8 character boundary. If there
                        # are multi-byte characters in the string, then the length of the
                        # shortened string might be less than the size limit.
                    "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                        # value is 0, then the string was not shortened.
                  },
                  "boolValue": True or False, # A Boolean value represented by `true` or `false`.
                  "intValue": "A String", # A 64-bit signed integer.
                },
              },
            },
            "spanId": "A String", # The [SPAN_ID] portion of the span's resource name.
            "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A set of time events. You can have up to 32 annotations and 128 message
                # events per span.
                # on the span, consisting of either user-supplied key:value pairs, or
                # details of a message sent/received between Spans.
              "droppedMessageEventsCount": 42, # The number of dropped message events in all the included time events.
                  # If the value is 0, then no message events were dropped.
              "timeEvent": [ # A collection of `TimeEvent`s.
                { # A time-stamped annotation or message event in the Span.
                  "messageEvent": { # An event describing a message sent/received between Spans. # An event describing a message sent/received between Spans.
                    "uncompressedSizeBytes": "A String", # The number of uncompressed bytes sent or received.
                    "type": "A String", # Type of MessageEvent. Indicates whether the message was sent or
                        # received.
                    "id": "A String", # An identifier for the MessageEvent's message that can be used to match
                        # SENT and RECEIVED MessageEvents. It is recommended to be unique within
                        # a Span.
                    "compressedSizeBytes": "A String", # The number of compressed bytes sent or received. If missing assumed to
                        # be the same size as uncompressed.
                  },
                  "annotation": { # Text annotation with a set of attributes. # Text annotation with a set of attributes.
                    "attributes": { # A set of attributes, each in the format `[KEY]:[VALUE]`. # A set of attributes on the annotation. You can have up to 4 attributes
                        # per Annotation.
                      "droppedAttributesCount": 42, # The number of attributes that were discarded. Attributes can be discarded
                          # because their keys are too long or because there are too many attributes.
                          # If this value is 0 then all attributes are valid.
                      "attributeMap": { # The set of attributes. Each attribute's key can be up to 128 bytes
                          # long. The value can be a string up to 256 bytes, a signed 64-bit integer,
                          # or the Boolean values `true` and `false`. For example:
                          #
                          #     "/instance_id": "my-instance"
                          #     "/http/user_agent": ""
                          #     "/http/request_bytes": 300
                          #     "abc.com/myattribute": true
                        "a_key": { # The allowed types for [VALUE] in a `[KEY]:[VALUE]` attribute.
                          "stringValue": { # Represents a string that might be shortened to a specified length. # A string up to 256 bytes long.
                            "value": "A String", # The shortened string. For example, if the original string is 500
                                # bytes long and the limit of the string is 128 bytes, then
                                # `value` contains the first 128 bytes of the 500-byte string.
                                #
                                # Truncation always happens on a UTF8 character boundary. If there
                                # are multi-byte characters in the string, then the length of the
                                # shortened string might be less than the size limit.
                            "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                                # value is 0, then the string was not shortened.
                          },
                          "boolValue": True or False, # A Boolean value represented by `true` or `false`.
                          "intValue": "A String", # A 64-bit signed integer.
                        },
                      },
                    },
                    "description": { # Represents a string that might be shortened to a specified length. # A user-supplied message describing the event. The maximum length for
                        # the description is 256 bytes.
                      "value": "A String", # The shortened string. For example, if the original string is 500
                          # bytes long and the limit of the string is 128 bytes, then
                          # `value` contains the first 128 bytes of the 500-byte string.
                          #
                          # Truncation always happens on a UTF8 character boundary. If there
                          # are multi-byte characters in the string, then the length of the
                          # shortened string might be less than the size limit.
                      "truncatedByteCount": 42, # The number of bytes removed from the original string. If this
                          # value is 0, then the string was not shortened.
                    },
                  },
                  "time": "A String", # The timestamp indicating the time the event occurred.
                },
              ],
              "droppedAnnotationsCount": 42, # The number of dropped annotations in all the included time events.
                  # If the value is 0, then no annotations were dropped.
            },
            "endTime": "A String", # The end time of the span. On the client side, this is the time kept by
                # the local machine where the span execution ends. On the server side, this
                # is the time when the server application handler stops running.
            "sameProcessAsParentSpan": True or False, # (Optional) Set this parameter to indicate whether this span is in
                # the same process as its parent. If you do not set this parameter,
                # Stackdriver Trace is unable to take advantage of this helpful
                # information.
          },
        ],
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }