public static AlertListenerMessage create(DistributedMember recipient, int alertLevel,
      Instant timestamp,
      String connectionName, String threadName, long threadId, String message,
      String exceptionText) {
    AlertListenerMessage alertListenerMessage = new AlertListenerMessage();
    alertListenerMessage.setRecipient((InternalDistributedMember) recipient);
    alertListenerMessage.alertLevel = alertLevel;
    alertListenerMessage.date = new Date(timestamp.toEpochMilli());
    alertListenerMessage.connectionName = connectionName;
    if (alertListenerMessage.connectionName == null) {
      alertListenerMessage.connectionName = "";
    }
    alertListenerMessage.threadName = threadName;
    if (alertListenerMessage.threadName == null) {
      alertListenerMessage.threadName = "";
    }
    alertListenerMessage.threadId = threadId;
    alertListenerMessage.message = message;
    if (alertListenerMessage.message == null) {
      alertListenerMessage.message = "";
    }
    alertListenerMessage.exceptionText = exceptionText;
    if (alertListenerMessage.exceptionText == null) {
      alertListenerMessage.exceptionText = "";
    }
    return alertListenerMessage;
  }
A message that is sent to an admin member or manager to notify it of an alert.

<p>
Alerts are sent from remote members to the manager via {@link AlertListenerMessage} which is
no-ack (asynchronous). This means you cannot log a warning in one VM and immediately verify that
it arrives in the manager VM. You have to use {@code Mockito#timeout(long)} or
{@code Awaitility}.
geode-core/src/main/java/org/apache/geode/internal/admin/remote/AlertListenerMessage.java