package com.espertech.esper.example.qos_sla.monitor;
import com.espertech.esper.client.EPRuntime;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.example.qos_sla.eventbean.LatencyLimit;
import com.espertech.esper.example.qos_sla.eventbean.OperationMeasurement;
import junit.framework.TestCase;
public class TestDynamicLatencyAlertMonitor extends TestCase {
private EPRuntime runtime;
public void setUp() {
DynaLatencySpikeMonitor.start();
runtime = EPServiceProviderManager.getDefaultProvider().getEPRuntime();
}
public void testLatencyAlert() {
String services[] = {"s0", "s1", "s2"};
String customers[] = {"c0", "c1", "c2"};
long limitSpike[] = {15000, 10000, 10040};
// Set up limits for 3 services/customer combinations
for (int i = 0; i < services.length; i++) {
LatencyLimit limit = new LatencyLimit(services[i], customers[i], limitSpike[i]);
runtime.sendEvent(limit);
}
// Send events
for (int i = 0; i < 100; i++) {
for (int index = 0; index < services.length; index++) {
OperationMeasurement measurement = new OperationMeasurement(services[index], customers[index],
9950 + i, true);
runtime.sendEvent(measurement);
}
}
// Send a new limit
LatencyLimit limit = new LatencyLimit(services[1], customers[1], 8000);
runtime.sendEvent(limit);
// Send a new spike
OperationMeasurement measurement = new OperationMeasurement(services[1], customers[1], 8001, true);
runtime.sendEvent(measurement);
}
}