/*
 * Copyright (c) 2011-2019 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 */

package io.vertx.core.spi.metrics;

import io.vertx.core.eventbus.Message;
import io.vertx.core.eventbus.ReplyFailure;

The event bus metrics SPI which Vert.x will use to call when each event occurs.
Author:Nick Scavelli
/** * The event bus metrics SPI which Vert.x will use to call when each event occurs. * * @author <a href="mailto:nscavell@redhat.com">Nick Scavelli</a> */
public interface EventBusMetrics<H> extends Metrics {
Called when a handler is registered on the event bus.

No specific thread and context can be expected when this method is called.
Params:
  • address – the address used to register the handler
  • repliedAddress – null when the handler is not a reply handler, otherwise the address this handler is replying to
/** * Called when a handler is registered on the event bus.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the address used to register the handler * @param repliedAddress null when the handler is not a reply handler, otherwise the address this handler is replying to */
default H handlerRegistered(String address, String repliedAddress) { return null; }
Called when a handler has been unregistered from the event bus.

No specific thread and context can be expected when this method is called.
Params:
  • handler – the unregistered handler
/** * Called when a handler has been unregistered from the event bus.<p/> * * No specific thread and context can be expected when this method is called. * * @param handler the unregistered handler */
default void handlerUnregistered(H handler) { }
Schedule a message for processing.

No specific thread and context can be expected when this method is called.
Params:
  • handler – the handler processing the message
  • local – when the scheduled message is local
/** * Schedule a message for processing.<p/> * * No specific thread and context can be expected when this method is called. * * @param handler the handler processing the message * @param local when the scheduled message is local */
default void scheduleMessage(H handler, boolean local) { }
Discard a message.
Params:
  • handler – the handler processing the message
  • local – when the scheduled message is local
  • msg – the discarded message
/** * Discard a message. * @param handler the handler processing the message * @param local when the scheduled message is local * @param msg the discarded message */
default void discardMessage(H handler, boolean local, Message<?> msg) { }
Called when an handler has been delivered a message. No specific thread and context can be expected when this method is called.
Params:
  • handler – the handler processing the message
  • local – when the handled message is local
/** * Called when an handler has been delivered a message. * * No specific thread and context can be expected when this method is called. * * @param handler the handler processing the message * @param local when the handled message is local */
default void messageDelivered(H handler, boolean local) { }
Called when a message has been sent or published.

No specific thread and context can be expected when this method is called.
Params:
  • address – the address
  • publish – true when the message is published
  • local – the message is processed locally
  • remote – the message is sent on the cluster
/** * Called when a message has been sent or published.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the address * @param publish true when the message is published * @param local the message is processed locally * @param remote the message is sent on the cluster */
default void messageSent(String address, boolean publish, boolean local, boolean remote) { }
Called when a message is received.

No specific thread and context can be expected when this method is called.
Params:
  • address – the address
  • publish – true when the message is published
  • local – true when the message is received locally
  • handlers – the number of handlers that process the message
/** * Called when a message is received.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the address * @param publish true when the message is published * @param local true when the message is received locally * @param handlers the number of handlers that process the message */
default void messageReceived(String address, boolean publish, boolean local, int handlers) { }
A message has been sent over the network.

No specific thread and context can be expected when this method is called.
Params:
  • address – the message address
  • numberOfBytes – the number of bytes written
/** * A message has been sent over the network.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the message address * @param numberOfBytes the number of bytes written */
default void messageWritten(String address, int numberOfBytes) { }
A message has been received from the network.

No specific thread and context can be expected when this method is called.
Params:
  • address – the message address
  • numberOfBytes – the number of bytes read
/** * A message has been received from the network.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the message address * @param numberOfBytes the number of bytes read */
default void messageRead(String address, int numberOfBytes) { }
Called whenever the event bus delivers a reply failure to the sender/publisher, the reply failure indicates the nature of the failure.

No specific thread and context can be expected when this method is called.
Params:
/** * Called whenever the event bus delivers a reply failure to the sender/publisher, the * {@link io.vertx.core.eventbus.ReplyFailure reply failure} indicates the nature of the failure.<p/> * * No specific thread and context can be expected when this method is called. * * @param address the address * @param failure the {@link io.vertx.core.eventbus.ReplyFailure} */
default void replyFailure(String address, ReplyFailure failure) { } }