Stackdriver Trace API . projects . traces . spans

Instance Methods

createSpan(name, body, x__xgafv=None)

Creates a new span.

Method Details

createSpan(name, body, x__xgafv=None)
Creates a new span.

Args:
  name: 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. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # 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 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.
  }