     /// Access Token or an attribute value in a SAML 2.0 Assertion.
     case enduserScope = "enduser.scope"
 
+    // MARK: General thread attributes
+
+    /// Current "managed" thread ID (as opposed to OS thread ID).
+    case threadId = "thread.id"
+    /// Current thread name.
+    case threadName = "thread.name"
+    
+    // MARK: Source Code Attributes
+    
+    /// The method or function name, or equivalent (usually rightmost part of the code unit's name).
+    case codeFunction = "code.function"
+    /// The "namespace" within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit.
+    case codeNamespace = "code.namespace"
+    /// The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).
+    case codeFilePath = "code.filepath"
+    /// The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function.
+    case codeLineNumber = "code.lineno"
+    
     // MARK: HTTP attributes
 
     /// HTTP request method. E.g. "GET".

    case faasDocumentTime = "faas.document.time"
    /// The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.
    case faasDocumentName = "faas.document.name"
    
    // MARK: Exception Attributes
    

    // MARK: General network connection attributes

    /// Transport protocol used.
    ///
    /// **MUST** be one of the following:
    /// - IP.TCP
    /// - IP.UDP
    /// - IP: Another IP-based protocol.
    /// - Unix: Unix Domain socket.
    /// - pipe: Named or anonymous pipe.
    /// - inproc: In-process communication.
    /// - other: Something else (non IP-based).
    case netTransport = "net.transport"
    /// Remote address of the peer (dotted decimal for IPv4 or RFC5952 for IPv6).
    case netPeerIP = "net.peer.ip"
