groups:
  - id: exception
    type: span
    prefix: exception
    brief: >
      This document defines the shared attributes used to
      report a single exception associated with a span or log.
    attributes:
      - id: type
        type: string
        brief: >
          The type of the exception (its fully-qualified class name, if applicable).
          The dynamic type of the exception should be preferred over the static type
          in languages that support it.
        examples: ["java.net.ConnectException", "OSError"]
      - id: message
        type: string
        brief: The exception message.
        examples: ["Division by zero", "Can't convert 'int' object to str implicitly"]
      - id: stacktrace
        type: string
        brief: >
          A stacktrace as a string in the natural representation for the language runtime.
          The representation is to be determined and documented by each language SIG.
        examples: 'Exception in thread "main" java.lang.RuntimeException: Test exception\n
        at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n
        at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n
        at com.example.GenerateTrace.main(GenerateTrace.java:5)'

    constraints:
      - any_of:
          - "exception.type"
          - "exception.message"
