@CheckReturnValue
    public HttpResponse sendHeartBeat(String appName, String instanceId, InstanceInfo instanceInfo,
                                      @Nullable InstanceStatus overriddenStatus) {
        requireNonNull(appName, "appName");
        requireNonNull(instanceId, "instanceId");
        requireNonNull(instanceInfo, "instanceInfo");
        final String path = APPS + appName + '/' + instanceId;
        final QueryParamsBuilder queryBuilder =
                QueryParams.builder()
                           .add("status", instanceInfo.getStatus().toString())
                           .addLong("lastDirtyTimestamp", instanceInfo.getLastDirtyTimestamp());
        if (overriddenStatus != null) {
            queryBuilder.add("overriddenstatus", overriddenStatus.toString());
        }
        final RequestHeaders headers =
                RequestHeaders.builder(HttpMethod.PUT, path + '?' + queryBuilder.toQueryString())
                              .accept(MediaType.JSON)
                              .build();
        return webClient.execute(headers);
    }
Sends the heart beat to the Eureka registry.
eureka/src/main/java/com/linecorp/armeria/internal/common/eureka/EurekaWebClient.java