
pl.allegro.tech.hermes.api.SubscriptionNameWithMetrics Maven / Gradle / Ivy
package pl.allegro.tech.hermes.api;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Objects;
public class SubscriptionNameWithMetrics {
private final String topicName;
private final String name;
private final long delivered;
private final long discarded;
private final long volume;
private final MetricDecimalValue timeouts;
private final MetricLongValue lag;
private final MetricDecimalValue rate;
private final MetricDecimalValue throughput;
@JsonCreator
public SubscriptionNameWithMetrics(
@JsonProperty("topicName") String topicName,
@JsonProperty("name") String name,
@JsonProperty("delivered") long delivered,
@JsonProperty("discarded") long discarded,
@JsonProperty("volume") long volume,
@JsonProperty("timeouts") MetricDecimalValue timeouts,
@JsonProperty("lag") MetricLongValue lag,
@JsonProperty("rate") MetricDecimalValue rate,
@JsonProperty("throughput") MetricDecimalValue throughput) {
this.topicName = topicName;
this.name = name;
this.delivered = delivered;
this.discarded = discarded;
this.volume = volume;
this.timeouts = timeouts;
this.lag = lag;
this.rate = rate;
this.throughput = throughput;
}
public static SubscriptionNameWithMetrics from(
SubscriptionMetrics metrics, String name, String topicQualifiedName) {
return new SubscriptionNameWithMetrics(
topicQualifiedName,
name,
metrics.getDelivered(),
metrics.getDiscarded(),
metrics.getVolume(),
metrics.getTimeouts(),
metrics.getLag(),
metrics.getRate(),
metrics.getThroughput());
}
public String getTopicName() {
return topicName;
}
public String getName() {
return name;
}
public long getDelivered() {
return delivered;
}
public long getDiscarded() {
return discarded;
}
public MetricDecimalValue getTimeouts() {
return timeouts;
}
public MetricLongValue getLag() {
return lag;
}
public MetricDecimalValue getRate() {
return rate;
}
public MetricDecimalValue getThroughput() {
return throughput;
}
public long getVolume() {
return volume;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
SubscriptionNameWithMetrics that = (SubscriptionNameWithMetrics) o;
return Objects.equals(this.topicName, that.topicName)
&& Objects.equals(this.name, that.name)
&& Objects.equals(this.delivered, that.delivered)
&& Objects.equals(this.discarded, that.discarded)
&& Objects.equals(this.timeouts, that.timeouts)
&& Objects.equals(this.lag, that.lag)
&& Objects.equals(this.rate, that.rate)
&& Objects.equals(this.throughput, that.throughput)
&& Objects.equals(this.volume, that.volume);
}
@Override
public int hashCode() {
return Objects.hash(
this.topicName,
this.name,
this.delivered,
this.discarded,
this.timeouts,
this.lag,
this.rate,
this.throughput,
this.volume);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy