public static void addReceiptInfo(final AttributeMap attributeMap,
                                      final Instant receiveTime,
                                      final UniqueId receiptId) {
        // Add ReceiptId and ReceiptIdPath
        // Create a new receipt id for the request, so we can track progress of the stream
        // through the various proxies and into stroom and report back the ID to the sender,
        AttributeMapUtil.setAndAppendReceiptId(attributeMap, receiptId);

        // Add ReceivedTime and ReceivedTimeHistory
        AttributeMapUtil.setAndAppendReceivedTime(
                attributeMap, Objects.requireNonNullElseGet(receiveTime, Instant::now));

        // Include this host in the ReceivedPath
        attributeMap.appendItemIfDifferent(
                StandardHeaderArguments.RECEIVED_PATH, HostNameUtil.determineHostName());
    }
Creates a new {@link AttributeMap} from a {@link HttpServletRequest}.
<p>All HTTP headers and query parameters on the request will be added.</p>
<p>In addition, entries for the following keys may be set depending on
whether values are available:</p>
<ul>
<li>RemoteDN</li>
<li>RemoteCertExpiry</li>
<li>GUID</li>
<li>RemoteAddress</li>
<li>RemoteHost</li>
<li>ReceiptId</li>
<li>ReceiptIdPath</li>
<li>ReceivedTime</li>
<li>ReceivedTimeHistory</li>
<li>ReceivedPath</li>
</ul>
stroom-meta/stroom-meta-api/src/main/java/stroom/meta/api/AttributeMapUtil.java