Added new metrics 'roompicker_rooms'
This commit is contained in:
parent
d185072ee0
commit
da8833932e
@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
|
|||||||
import ru.dragonestia.picker.event.UpdateRoomLockStateEvent;
|
import ru.dragonestia.picker.event.UpdateRoomLockStateEvent;
|
||||||
import ru.dragonestia.picker.model.Node;
|
import ru.dragonestia.picker.model.Node;
|
||||||
import ru.dragonestia.picker.model.Room;
|
import ru.dragonestia.picker.model.Room;
|
||||||
|
import ru.dragonestia.picker.repository.RoomRepository;
|
||||||
import ru.dragonestia.picker.repository.UserRepository;
|
import ru.dragonestia.picker.repository.UserRepository;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -29,6 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
@Log4j2
|
@Log4j2
|
||||||
public class UserMetricsAspect {
|
public class UserMetricsAspect {
|
||||||
|
|
||||||
|
private final RoomRepository roomRepository;
|
||||||
private final UserRepository userRepository;
|
private final UserRepository userRepository;
|
||||||
private final MeterRegistry meterRegistry;
|
private final MeterRegistry meterRegistry;
|
||||||
|
|
||||||
@ -95,7 +97,11 @@ public class UserMetricsAspect {
|
|||||||
.tag("nodeId", nodeId)
|
.tag("nodeId", nodeId)
|
||||||
.register(meterRegistry);
|
.register(meterRegistry);
|
||||||
|
|
||||||
data.put(nodeId, new NodeData(gauge, new AtomicInteger(0), counter, new HashSet<>(), lockedGauge));
|
var roomsGauge = Gauge.builder("roompicker_rooms", () -> roomRepository.all(node).size())
|
||||||
|
.tag("nodeId", nodeId)
|
||||||
|
.register(meterRegistry);
|
||||||
|
|
||||||
|
data.put(nodeId, new NodeData(gauge, new AtomicInteger(0), counter, new HashSet<>(), lockedGauge, roomsGauge));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After(value = "execution(* ru.dragonestia.picker.repository.NodeRepository.delete(ru.dragonestia.picker.model.Node)) && args(node)", argNames = "node")
|
@After(value = "execution(* ru.dragonestia.picker.repository.NodeRepository.delete(ru.dragonestia.picker.model.Node)) && args(node)", argNames = "node")
|
||||||
@ -105,6 +111,7 @@ public class UserMetricsAspect {
|
|||||||
meterRegistry.remove(data.usersGauge());
|
meterRegistry.remove(data.usersGauge());
|
||||||
meterRegistry.remove(data.picksPerMinute());
|
meterRegistry.remove(data.picksPerMinute());
|
||||||
meterRegistry.remove(data.lockedGauge());
|
meterRegistry.remove(data.lockedGauge());
|
||||||
|
meterRegistry.remove(data.roomsGauge());
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterReturning(value = "execution(* ru.dragonestia.picker.repository.RoomRepository.pickFree(ru.dragonestia.picker.model.Node, *)) && args(node, ..)", argNames = "node")
|
@AfterReturning(value = "execution(* ru.dragonestia.picker.repository.RoomRepository.pickFree(ru.dragonestia.picker.model.Node, *)) && args(node, ..)", argNames = "node")
|
||||||
@ -122,5 +129,5 @@ public class UserMetricsAspect {
|
|||||||
userRepository.countUsersForNodes().forEach((nodeId, users) -> data.get(nodeId).users().set(users));
|
userRepository.countUsersForNodes().forEach((nodeId, users) -> data.get(nodeId).users().set(users));
|
||||||
}
|
}
|
||||||
|
|
||||||
private record NodeData(Gauge usersGauge, AtomicInteger users, Counter picksPerMinute, Set<Room> locked, Gauge lockedGauge) {}
|
private record NodeData(Gauge usersGauge, AtomicInteger users, Counter picksPerMinute, Set<Room> locked, Gauge lockedGauge, Gauge roomsGauge) {}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user