groups:
  - id: client
    type: attribute_group
    brief: >
      General client attributes.
    attributes:
      - ref: client.address
      - ref: client.port
  - id: server
    type: attribute_group
    brief: >
      General server attributes.
    attributes:
      - ref: server.address
      - ref: server.port
  - id: source
    type: attribute_group
    brief: >
      General source attributes.
    attributes:
      - ref: source.address
      - ref: source.port
  - id: destination
    type: attribute_group
    brief: >
      General destination attributes.
    attributes:
      - ref: destination.address
      - ref: destination.port
  - id: peer
    prefix: peer
    type: span
    brief: "Operations that access some remote service."
    attributes:
      - ref: peer.service
        requirement_level: recommended
  - id: identity
    type: span
    brief: >
      These attributes may be used for any operation with an authenticated and/or authorized enduser.
    attributes:
      - ref: enduser.id
        requirement_level: recommended
      - ref: enduser.role
        requirement_level: recommended
      - ref: enduser.scope
        requirement_level: recommended
  - id: thread
    type: span
    brief: >
      These attributes may be used for any operation to store information about a thread that started a span.
    attributes:
      - ref: thread.id
      - ref: thread.name
  - id: code
    type: span
    brief: >
      These attributes allow to report this unit of code and therefore to provide more context about the span.
    attributes:
      - ref: code.function
      - ref: code.namespace
      - ref: code.filepath
      - ref: code.lineno
      - ref: code.column
      - ref: code.stacktrace
        requirement_level: opt_in
