# Google Tracing API . projects . traces . spans

## Instance Methods

Creates a new Span.

### Method Details

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

    Creates a new Span.

    Args:
      name: string, The resource name of Span in the format
    `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
    `TRACE_ID` is a unique identifier for a trace within a project and is a
    base16-encoded, case-insensitive string and is required to be 32 char long.
    `SPAN_ID` is a unique identifier for a span within a trace. It is a
    base 16-encoded, case-insensitive string of a 8-bytes array and is required
    to be 16 char long. (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, optionally, one or more subspans for
        # its sub-operations. (A trace could alternatively contain multiple root spans,
        # or none at all.) Spans do not need to be contiguous. There may be gaps
        # and/or overlaps between spans in a trace.
      "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
          # programming environments, including REST APIs and RPC APIs. It is used by
          # [gRPC](https://github.com/grpc). The error model is designed to be:
          #
          # - Simple to use and understand for most users
          # - Flexible enough to meet unexpected needs
          #
          # # Overview
          #
          # The `Status` message contains three pieces of data: error code, error message,
          # and error details. The error code should be an enum value of
          # google.rpc.Code, but it may accept additional error codes if needed.  The
          # error message should be a developer-facing English message that helps
          # developers *understand* and *resolve* the error. If a localized user-facing
          # error message is needed, put the localized message in the error details or
          # localize it in the client. The optional error details may contain arbitrary
          # information about the error. There is a predefined set of error detail types
          # in the package `google.rpc` that can be used for common error conditions.
          #
          # # Language mapping
          #
          # The `Status` message is the logical representation of the error model, but it
          # is not necessarily the actual wire format. When the `Status` message is
          # exposed in different client libraries and different wire protocols, it can be
          # mapped differently. For example, it will likely be mapped to some exceptions
          # in Java, but more likely mapped to some error codes in C.
          #
          # # Other uses
          #
          # The error model and the `Status` message can be used in a variety of
          # environments, either with or without APIs, to provide a
          # consistent developer experience across different environments.
          #
          # Example uses of this error model include:
          #
          # - Partial errors. If a service needs to return partial errors to the client,
          #     it may embed the `Status` in the normal response to indicate the partial
          #     errors.
          #
          # - Workflow errors. A typical workflow has multiple steps. Each step may
          #     have a `Status` message for error reporting.
          #
          # - Batch operations. If a client uses batch request and batch response, the
          #     `Status` message should be used directly inside batch response, one for
          #     each error sub-response.
          #
          # - Asynchronous operations. If an API call embeds asynchronous operation
          #     results in its response, the status of those operations should be
          #     represented directly using the `Status` message.
          #
          # - Logging. If some API errors are stored in logs, the message `Status` could
          #     be used directly after any stripping needed for security/privacy reasons.
        "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 will be a
            # common set of message types for APIs to use.
          {
            "a_key": "", # Properties of the object. Contains field @type with type URL.
          },
        ],
      },
      "stackTrace": { # StackTrace collected 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": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
          "frame": [ # Stack frames in this stack trace.
            { # Represents a single stack frame in a stack trace.
              "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
                  # May not be available in some languages.
              "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
                  # method (up to 1024 characters).
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
              "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
              "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
                  # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
                  # fully-qualified (up to 1024 characters).
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
              "loadModule": { # Binary module. # Binary module the code is loaded from.
                "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
                    # contents (up to 128 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
                "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
                    # such as libc.so, sharedlib.so (up to 256 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
              },
              "lineNumber": "A String", # Line number of the frame.
              "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
            },
          ],
          "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
              # If 0 then no frames were dropped.
        },
      },
      "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
          # the Stackdriver Trace tool in the
          # {% dynamic print site_values.console_name %}.
          # The display_name may be a method name or some other per-call site
          # name. For the same executable and the same call point, a best practice is
          # to use a consistent operation name, which makes it easier to correlate
          # cross-trace spans.
          # The maximum length for the display_name is 128 bytes.
        "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
            # means that the string value was not truncated.
        "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
            # 256 bytes.
      },
      "name": "A String", # The resource name of Span in the format
          # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
          # `TRACE_ID` is a unique identifier for a trace within a project and is a
          # base16-encoded, case-insensitive string and is required to be 32 char long.
          # `SPAN_ID` is a unique identifier for a span within a trace. It is a
          # base 16-encoded, case-insensitive string of a 8-bytes array and is required
          # to be 16 char long.
      "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
          # in the same or different trace.
        "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
            # 0 then no links were dropped.
        "link": [ # A collection of links.
          { # A pointer from this span to another span in a different `Trace` within
              # the same service project or within a different service project. Used
              # (for example) in batching operations, where a single batch handler
              # processes multiple requests from different traces or when receives a
              # request from a different service project.
            "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
                # base16-encoded, case-insensitive string of a 8-bytes array and is
                # required to be 16 char long.
            "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
                # a base16-encoded, case-insensitive string of a 16-bytes array and is
                # required to be 32 char long.
            "type": "A String", # The relationship of the current span relative to the linked span.
          },
        ],
      },
      "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
          # a 8-bytes array and is required to be 16 char long. If this is a root span,
          # the value must be empty.
      "startTime": "A String", # Start time of the span.
          # On the client side, this is the local machine clock time at which the span
          # execution was started; on the server
          # side, this is the time at which the server application handler started
          # running.
      "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
          # case-insensitive string of a 8-bytes array and is required.
      "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
          # Span.
        "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
            # 0 then no attributes were dropped.
        "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
            # key size is larger than the maximum allowed). The value can be a string
            # (up to 256 bytes), integer, or boolean (true/false). Some common pair
            # examples:
            #
            #     "/instance_id": "my-instance"
            #     "/zone": "us-central1-a"
            #     "/grpc/peer_address": "ip:port" (dns, etc.)
            #     "/grpc/deadline": "Duration"
            #     "/http/user_agent"
            #     "/http/request_bytes": 300
            #     "/http/response_bytes": 1200
            #     "/http/url": google.com/apis
            #     "abc.com/myattribute": true
          "a_key": { # The allowed types for the value side of an attribute key:value pair.
            "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
              "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                  # means that the string value was not truncated.
              "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                  # 256 bytes.
            },
            "intValue": "A String", # An integer value.
            "boolValue": True or False, # A boolean value.
          },
        },
      },
      "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
          # on the span, consisting of either user-supplied key:value pairs, or
          # details of an RPC message sent/received on the network.
        "timeEvent": [ # A collection of `TimeEvent`s.
          { # A time-stamped annotation in the Span.
            "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
                # maximum of 128 network events are allowed per Span.
              "messageSize": "A String", # The number of bytes sent or received.
              "messageId": "A String", # An identifier for the message, which must be unique in this span.
              "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
                  # received.
              "time": "A String", # If available, this is the kernel time:
                  #
                  # *  For sent messages, this is the time at which the first bit was sent.
                  # *  For received messages, this is the time at which the last bit was
                  #    received.
            },
            "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
                # allowed per Span.
              "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
                  # allowed per Annotation.
                "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
                    # 0 then no attributes were dropped.
                "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
                    # key size is larger than the maximum allowed). The value can be a string
                    # (up to 256 bytes), integer, or boolean (true/false). Some common pair
                    # examples:
                    #
                    #     "/instance_id": "my-instance"
                    #     "/zone": "us-central1-a"
                    #     "/grpc/peer_address": "ip:port" (dns, etc.)
                    #     "/grpc/deadline": "Duration"
                    #     "/http/user_agent"
                    #     "/http/request_bytes": 300
                    #     "/http/response_bytes": 1200
                    #     "/http/url": google.com/apis
                    #     "abc.com/myattribute": true
                  "a_key": { # The allowed types for the value side of an attribute key:value pair.
                    "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
                      "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                          # means that the string value was not truncated.
                      "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                          # 256 bytes.
                    },
                    "intValue": "A String", # An integer value.
                    "boolValue": True or False, # A boolean value.
                  },
                },
              },
              "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
                  # the description is 256 bytes.
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
            },
            "time": "A String", # The timestamp indicating the time the event occurred.
          },
        ],
        "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
            # If 0 then no annotations were dropped.
        "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
            # 0 then no annotations were dropped.
      },
      "endTime": "A String", # End time of the span.
          # On the client side, this is the local machine clock time at which the span
          # execution was ended; on the server
          # side, this is the time at which the server application handler stopped
          # running.
    }

      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, optionally, one or more subspans for
          # its sub-operations. (A trace could alternatively contain multiple root spans,
          # or none at all.) Spans do not need to be contiguous. There may be gaps
          # and/or overlaps between spans in a trace.
        "status": { # The `Status` type defines a logical error model that is suitable for different # An optional final status for this span.
            # programming environments, including REST APIs and RPC APIs. It is used by
            # [gRPC](https://github.com/grpc). The error model is designed to be:
            #
            # - Simple to use and understand for most users
            # - Flexible enough to meet unexpected needs
            #
            # # Overview
            #
            # The `Status` message contains three pieces of data: error code, error message,
            # and error details. The error code should be an enum value of
            # google.rpc.Code, but it may accept additional error codes if needed.  The
            # error message should be a developer-facing English message that helps
            # developers *understand* and *resolve* the error. If a localized user-facing
            # error message is needed, put the localized message in the error details or
            # localize it in the client. The optional error details may contain arbitrary
            # information about the error. There is a predefined set of error detail types
            # in the package `google.rpc` that can be used for common error conditions.
            #
            # # Language mapping
            #
            # The `Status` message is the logical representation of the error model, but it
            # is not necessarily the actual wire format. When the `Status` message is
            # exposed in different client libraries and different wire protocols, it can be
            # mapped differently. For example, it will likely be mapped to some exceptions
            # in Java, but more likely mapped to some error codes in C.
            #
            # # Other uses
            #
            # The error model and the `Status` message can be used in a variety of
            # environments, either with or without APIs, to provide a
            # consistent developer experience across different environments.
            #
            # Example uses of this error model include:
            #
            # - Partial errors. If a service needs to return partial errors to the client,
            #     it may embed the `Status` in the normal response to indicate the partial
            #     errors.
            #
            # - Workflow errors. A typical workflow has multiple steps. Each step may
            #     have a `Status` message for error reporting.
            #
            # - Batch operations. If a client uses batch request and batch response, the
            #     `Status` message should be used directly inside batch response, one for
            #     each error sub-response.
            #
            # - Asynchronous operations. If an API call embeds asynchronous operation
            #     results in its response, the status of those operations should be
            #     represented directly using the `Status` message.
            #
            # - Logging. If some API errors are stored in logs, the message `Status` could
            #     be used directly after any stripping needed for security/privacy reasons.
          "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 will be a
              # common set of message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
        },
        "stackTrace": { # StackTrace collected 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": { # Represents collection of StackFrames that can be truncated. # Stack frames in this stack trace. A maximum of 128 frames are allowed.
            "frame": [ # Stack frames in this stack trace.
              { # Represents a single stack frame in a stack trace.
                "columnNumber": "A String", # Column number is important in JavaScript (anonymous functions).
                    # May not be available in some languages.
                "functionName": { # Represents a string value that might be truncated. # The fully-qualified name that uniquely identifies this function or
                    # method (up to 1024 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
                "fileName": { # Represents a string value that might be truncated. # The filename of the file containing this frame (up to 256 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
                "originalFunctionName": { # Represents a string value that might be truncated. # Used when the function name is
                    # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
                    # fully-qualified (up to 1024 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
                "loadModule": { # Binary module. # Binary module the code is loaded from.
                  "buildId": { # Represents a string value that might be truncated. # Build_id is a unique identifier for the module, usually a hash of its
                      # contents (up to 128 characters).
                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                        # means that the string value was not truncated.
                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                        # 256 bytes.
                  },
                  "module": { # Represents a string value that might be truncated. # E.g. main binary, kernel modules, and dynamic libraries
                      # such as libc.so, sharedlib.so (up to 256 characters).
                    "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                        # means that the string value was not truncated.
                    "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                        # 256 bytes.
                  },
                },
                "lineNumber": "A String", # Line number of the frame.
                "sourceVersion": { # Represents a string value that might be truncated. # The version of the deployed source code (up to 128 characters).
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
              },
            ],
            "droppedFramesCount": 42, # The number of dropped stack frames after the maximum size was enforced.
                # If 0 then no frames were dropped.
          },
        },
        "displayName": { # Represents a string value that might be truncated. # Description of the operation in the span. It is sanitized and displayed in
            # the Stackdriver Trace tool in the
            # {% dynamic print site_values.console_name %}.
            # The display_name may be a method name or some other per-call site
            # name. For the same executable and the same call point, a best practice is
            # to use a consistent operation name, which makes it easier to correlate
            # cross-trace spans.
            # The maximum length for the display_name is 128 bytes.
          "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
              # means that the string value was not truncated.
          "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
              # 256 bytes.
        },
        "name": "A String", # The resource name of Span in the format
            # `projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.
            # `TRACE_ID` is a unique identifier for a trace within a project and is a
            # base16-encoded, case-insensitive string and is required to be 32 char long.
            # `SPAN_ID` is a unique identifier for a span within a trace. It is a
            # base 16-encoded, case-insensitive string of a 8-bytes array and is required
            # to be 16 char long.
        "links": { # A collection of links, which are references from this span to a span # A maximum of 128 links are allowed per Span.
            # in the same or different trace.
          "droppedLinksCount": 42, # The number of dropped links after the maximum size was enforced. If
              # 0 then no links were dropped.
          "link": [ # A collection of links.
            { # A pointer from this span to another span in a different `Trace` within
                # the same service project or within a different service project. Used
                # (for example) in batching operations, where a single batch handler
                # processes multiple requests from different traces or when receives a
                # request from a different service project.
              "spanId": "A String", # `SPAN_ID` is a unique identifier for a span within a trace. It is a
                  # base16-encoded, case-insensitive string of a 8-bytes array and is
                  # required to be 16 char long.
              "traceId": "A String", # `TRACE_ID` is a unique identifier for a trace within a project. It is
                  # a base16-encoded, case-insensitive string of a 16-bytes array and is
                  # required to be 32 char long.
              "type": "A String", # The relationship of the current span relative to the linked span.
            },
          ],
        },
        "parentSpanId": "A String", # ID of parent span which is a base 16-encoded, case-insensitive string of
            # a 8-bytes array and is required to be 16 char long. If this is a root span,
            # the value must be empty.
        "startTime": "A String", # Start time of the span.
            # On the client side, this is the local machine clock time at which the span
            # execution was started; on the server
            # side, this is the time at which the server application handler started
            # running.
        "spanId": "A String", # Unique identifier for a span within a trace. It is a base 16-encoded,
            # case-insensitive string of a 8-bytes array and is required.
        "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the span. A maximum of 32 attributes are allowed per
            # Span.
          "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
              # 0 then no attributes were dropped.
          "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
              # key size is larger than the maximum allowed). The value can be a string
              # (up to 256 bytes), integer, or boolean (true/false). Some common pair
              # examples:
              #
              #     "/instance_id": "my-instance"
              #     "/zone": "us-central1-a"
              #     "/grpc/peer_address": "ip:port" (dns, etc.)
              #     "/grpc/deadline": "Duration"
              #     "/http/user_agent"
              #     "/http/request_bytes": 300
              #     "/http/response_bytes": 1200
              #     "/http/url": google.com/apis
              #     "abc.com/myattribute": true
            "a_key": { # The allowed types for the value side of an attribute key:value pair.
              "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
                "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                    # means that the string value was not truncated.
                "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                    # 256 bytes.
              },
              "intValue": "A String", # An integer value.
              "boolValue": True or False, # A boolean value.
            },
          },
        },
        "timeEvents": { # A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation # A maximum of 32 annotations and 128 network events are allowed per Span.
            # on the span, consisting of either user-supplied key:value pairs, or
            # details of an RPC message sent/received on the network.
          "timeEvent": [ # A collection of `TimeEvent`s.
            { # A time-stamped annotation in the Span.
              "networkEvent": { # An event describing an RPC message sent/received on the network. A # An event describing an RPC message sent/received on the network.
                  # maximum of 128 network events are allowed per Span.
                "messageSize": "A String", # The number of bytes sent or received.
                "messageId": "A String", # An identifier for the message, which must be unique in this span.
                "type": "A String", # Type of NetworkEvent. Indicates whether the RPC message was sent or
                    # received.
                "time": "A String", # If available, this is the kernel time:
                    #
                    # *  For sent messages, this is the time at which the first bit was sent.
                    # *  For received messages, this is the time at which the last bit was
                    #    received.
              },
              "annotation": { # Text annotation with a set of attributes. A maximum of 32 annotations are # One or more key:value pairs.
                  # allowed per Span.
                "attributes": { # Attributes of a span with a key:value format. # A set of attributes on the annotation. A maximum of 4 attributes are
                    # allowed per Annotation.
                  "droppedAttributesCount": 42, # The number of dropped attributes after the maximum size was enforced. If
                      # 0 then no attributes were dropped.
                  "attributeMap": { # The maximum key length is 128 bytes (attributes are dropped if the
                      # key size is larger than the maximum allowed). The value can be a string
                      # (up to 256 bytes), integer, or boolean (true/false). Some common pair
                      # examples:
                      #
                      #     "/instance_id": "my-instance"
                      #     "/zone": "us-central1-a"
                      #     "/grpc/peer_address": "ip:port" (dns, etc.)
                      #     "/grpc/deadline": "Duration"
                      #     "/http/user_agent"
                      #     "/http/request_bytes": 300
                      #     "/http/response_bytes": 1200
                      #     "/http/url": google.com/apis
                      #     "abc.com/myattribute": true
                    "a_key": { # The allowed types for the value side of an attribute key:value pair.
                      "stringValue": { # Represents a string value that might be truncated. # A string value (up to 256 bytes).
                        "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                            # means that the string value was not truncated.
                        "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                            # 256 bytes.
                      },
                      "intValue": "A String", # An integer value.
                      "boolValue": True or False, # A boolean value.
                    },
                  },
                },
                "description": { # Represents a string value that might be truncated. # A user-supplied message describing the event. The maximum length for
                    # the description is 256 bytes.
                  "truncatedCharacterCount": 42, # The number of characters truncated from the original string value. If 0 it
                      # means that the string value was not truncated.
                  "value": "A String", # The truncated string value. E.g. for a string attribute this may have up to
                      # 256 bytes.
                },
              },
              "time": "A String", # The timestamp indicating the time the event occurred.
            },
          ],
          "droppedNetworkEventsCount": 42, # The number of dropped network events after the maximum size was enforced.
              # If 0 then no annotations were dropped.
          "droppedAnnotationsCount": 42, # The number of dropped annotations after the maximum size was enforced. If
              # 0 then no annotations were dropped.
        },
        "endTime": "A String", # End time of the span.
            # On the client side, this is the local machine clock time at which the span
            # execution was ended; on the server
            # side, this is the time at which the server application handler stopped
            # running.
      }