private AlertStreamEvent createAlertEvent(long timestamp, Object[] triggerEvent) { String is = policyDef.getInputStreams().get(0); final StreamDefinition sd = sds.get(is); AlertStreamEvent event = new AlertStreamEvent(); event.setTimestamp(timestamp); event.setData(triggerEvent); event.setStreamId(policyDef.getOutputStreams().get(0)); event.setPolicyId(context.getPolicyDefinition().getName()); if (this.context.getPolicyEvaluator() != null) { event.setCreatedBy(context.getPolicyEvaluator().getName()); } event.setCreatedTime(System.currentTimeMillis()); event.setSchema(sd); return event; }
private AlertStreamEvent createAlertEvent(StreamDefinition sd, long timestamp, Object[] triggerEvent) { AlertStreamEvent event = new AlertStreamEvent(); event.setTimestamp(timestamp); event.setData(triggerEvent); event.setStreamId(policyDef.getOutputStreams().get(0)); event.setPolicyId(context.getPolicyDefinition().getName()); if (this.context.getPolicyEvaluator() != null) { event.setCreatedBy(context.getPolicyEvaluator().getName()); } event.setCreatedTime(System.currentTimeMillis()); event.setSchema(sd); return event; }
@Test public void testNormal() throws Exception { doReturn(streamCounter).when(streamContext).counter(); publishPartitions.add(createPublishPartition(samplePublishId, samplePolicyId, sampleStreamId)); publishPartitions.add(createPublishPartition(samplePublishId2, samplePolicyId, sampleStreamId2)); alertBoltOutputCollectorWrapper.onAlertBoltSpecChange(publishPartitions, new HashSet<>(), new HashSet<>()); AlertStreamEvent event = new AlertStreamEvent(); event.setPolicyId(samplePolicyId); StreamDefinition sd = new StreamDefinition(); sd.setStreamId(sampleStreamId); sd.setColumns(new ArrayList<>()); event.setSchema(sd); alertBoltOutputCollectorWrapper.emit(event); verify(streamCounter, times(1)).incr(anyString()); verify(outputCollector, times(1)).emit(anyObject()); }
/** * Create alert stream event for publisher. */ public static AlertStreamEvent createAlertEvent(StreamEvent event, PolicyHandlerContext context, Map<String, StreamDefinition> sds) { PolicyDefinition policyDef = context.getPolicyDefinition(); AlertStreamEvent alertStreamEvent = new AlertStreamEvent(); alertStreamEvent.setTimestamp(event.getTimestamp()); alertStreamEvent.setData(event.getData()); alertStreamEvent.setStreamId(policyDef.getOutputStreams().get(0)); alertStreamEvent.setPolicyId(policyDef.getName()); if (context.getPolicyEvaluator() != null) { alertStreamEvent.setCreatedBy(context.getPolicyEvaluator().getName()); } alertStreamEvent.setCreatedTime(System.currentTimeMillis()); String is = policyDef.getInputStreams().get(0); StreamDefinition sd = sds.get(is); alertStreamEvent.setSchema(sd); return alertStreamEvent; } }
@Test public void testExceptional() throws Exception { doReturn(streamCounter).when(streamContext).counter(); publishPartitions.add(createPublishPartition(samplePublishId, samplePolicyId, sampleStreamId)); publishPartitions.add(createPublishPartition(samplePublishId, samplePolicyId, sampleStreamId)); alertBoltOutputCollectorWrapper.onAlertBoltSpecChange(publishPartitions, new HashSet<>(), new HashSet<>()); AlertStreamEvent event = new AlertStreamEvent(); event.setPolicyId(samplePolicyId); StreamDefinition sd = new StreamDefinition(); sd.setStreamId(sampleStreamId); sd.setColumns(new ArrayList<>()); event.setSchema(sd); alertBoltOutputCollectorWrapper.emit(event); verify(streamCounter, times(1)).incr(anyString()); verify(outputCollector, times(1)).emit(anyObject()); }
@Override public void send(StreamEvent event) throws Exception { AlertStreamEvent alert = new AlertStreamEvent(); alert.setPolicyId(context.getPolicyDefinition().getName()); alert.setSchema(sds.get(event.getStreamId())); this.collector.emit(alert); }
event.setSchema(definition);
private AlertStreamEvent createEvent(StreamDefinition stream, PolicyDefinition policy, Object[] data) { AlertStreamEvent event = new AlertStreamEvent(); event.setPolicyId(policy.getName()); event.setSchema(stream); event.setStreamId(stream.getStreamId()); event.setTimestamp(System.currentTimeMillis()); event.setCreatedTime(System.currentTimeMillis()); event.setData(data); return event; }
event.setSchema(originalEvent.getSchema()); event.setPolicyId(originalEvent.getPolicyId()); event.setCreatedTime(originalEvent.getCreatedTime());
@Test public void testAlertPublishEvent1() { thrown.expect(NullPointerException.class); List<StreamColumn> streamColumns = new ArrayList<>(); streamColumns.add(new StreamColumn.Builder().name("name").type(StreamColumn.Type.STRING).build()); streamColumns.add(new StreamColumn.Builder().name("host").type(StreamColumn.Type.STRING).build()); streamColumns.add(new StreamColumn.Builder().name("flag").type(StreamColumn.Type.BOOL).build()); streamColumns.add(new StreamColumn.Builder().name("value").type(StreamColumn.Type.DOUBLE).build()); streamColumns.add(new StreamColumn.Builder().name("data").type(StreamColumn.Type.LONG).build()); streamColumns.add(new StreamColumn.Builder().name("salary").type(StreamColumn.Type.FLOAT).build()); streamColumns.add(new StreamColumn.Builder().name("object").type(StreamColumn.Type.OBJECT).build()); streamColumns.add(new StreamColumn.Builder().name("int").type(StreamColumn.Type.INT).build()); StreamDefinition streamDefinition = new StreamDefinition(); streamDefinition.setColumns(streamColumns); AlertStreamEvent alertStreamEvent = new AlertStreamEvent(); alertStreamEvent.setSchema(streamDefinition); AlertPublishEvent.createAlertPublishEvent(alertStreamEvent); }
public static AlertStreamEvent createEvent(StreamDefinition stream, PolicyDefinition policy, Object[] data) { AlertStreamEvent event = new AlertStreamEvent(); event.setPolicyId(policy.getName()); event.setSchema(stream); event.setStreamId(stream.getStreamId()); event.setTimestamp(System.currentTimeMillis()); event.setCreatedTime(System.currentTimeMillis()); event.setSubject("Namenode Disk Used 98%"); event.setBody("Disk Usage of Test cluster's name node (<a href=\"#\">namenode.hostname.domain</a>) is <strong style=\"color: red\">98%</strong> at <strong>2016-11-30 12:30:45</strong>, exceeding alert threshold <strong>90</strong>%"); event.setData(data); event.ensureAlertId(); event.setSeverity(AlertSeverity.CRITICAL); event.setCategory("HDFS"); event.setContext(new HashMap<String,Object>(){{ put(AlertPublishEvent.SITE_ID_KEY,"TestCluster"); }}); Assert.assertNotNull(event.getAlertId()); return event; }
private AlertStreamEvent createWithStreamDef(String hostname, String appName, String state) { AlertStreamEvent alert = new AlertStreamEvent(); PolicyDefinition policy = new PolicyDefinition(); policy.setName("perfmon_cpu_host_check"); alert.setPolicyId(policy.getName()); alert.setCreatedTime(System.currentTimeMillis()); alert.setData(new Object[] {appName, hostname, state}); alert.setStreamId("testAlertStream"); alert.setCreatedBy(this.toString()); // build stream definition StreamDefinition sd = new StreamDefinition(); StreamColumn appColumn = new StreamColumn(); appColumn.setName("appname"); appColumn.setType(StreamColumn.Type.STRING); StreamColumn hostColumn = new StreamColumn(); hostColumn.setName("hostname"); hostColumn.setType(StreamColumn.Type.STRING); StreamColumn stateColumn = new StreamColumn(); stateColumn.setName("state"); stateColumn.setType(StreamColumn.Type.STRING); sd.setColumns(Arrays.asList(appColumn, hostColumn, stateColumn)); alert.setSchema(sd); return alert; }
@Test public void testAlertStreamEvent() { List<StreamColumn> streamColumns = new ArrayList<>(); streamColumns.add(new StreamColumn.Builder().name("name").type(StreamColumn.Type.STRING).build()); streamColumns.add(new StreamColumn.Builder().name("host").type(StreamColumn.Type.STRING).build()); streamColumns.add(new StreamColumn.Builder().name("flag").type(StreamColumn.Type.BOOL).build()); streamColumns.add(new StreamColumn.Builder().name("value").type(StreamColumn.Type.DOUBLE).build()); streamColumns.add(new StreamColumn.Builder().name("data").type(StreamColumn.Type.LONG).build()); streamColumns.add(new StreamColumn.Builder().name("salary").type(StreamColumn.Type.FLOAT).build()); streamColumns.add(new StreamColumn.Builder().name("object").type(StreamColumn.Type.OBJECT).build()); streamColumns.add(new StreamColumn.Builder().name("int").type(StreamColumn.Type.INT).build()); StreamDefinition streamDefinition = new StreamDefinition(); streamDefinition.setColumns(streamColumns); AlertStreamEvent alertStreamEvent = new AlertStreamEvent(); alertStreamEvent.setSchema(streamDefinition); alertStreamEvent.setData(new Object[]{"namevalue", "hostvalue", "1", 10, 0.1, -0.2, "{\"name\":\"heap.COMMITTED\", \"Value\":\"175636480\"}", 1}); AlertStreamEvent alertStreamEvent1 = new AlertStreamEvent(alertStreamEvent); Assert.assertFalse(alertStreamEvent1 == alertStreamEvent); Assert.assertTrue(alertStreamEvent1.equals(alertStreamEvent)); Assert.assertTrue(alertStreamEvent1.hashCode() == alertStreamEvent.hashCode()); } }
private AlertStreamEvent createWithStreamDef(String hostname, String appName, String state) { AlertStreamEvent alert = new AlertStreamEvent(); PolicyDefinition policy = new PolicyDefinition(); policy.setName("perfmon_cpu_host_check"); alert.setPolicyId(policy.getName()); alert.setCreatedTime(System.currentTimeMillis()); alert.setData(new Object[] {appName, hostname, state}); alert.setStreamId("testAlertStream"); alert.setCreatedBy(this.toString()); // build stream definition StreamDefinition sd = new StreamDefinition(); StreamColumn appColumn = new StreamColumn(); appColumn.setName("appname"); appColumn.setType(StreamColumn.Type.STRING); StreamColumn hostColumn = new StreamColumn(); hostColumn.setName("hostname"); hostColumn.setType(StreamColumn.Type.STRING); StreamColumn stateColumn = new StreamColumn(); stateColumn.setName("state"); stateColumn.setType(StreamColumn.Type.STRING); sd.setColumns(Arrays.asList(appColumn, hostColumn, stateColumn)); alert.setSchema(sd); return alert; }
private AlertStreamEvent mockAlertEvent (String policyId) { AlertStreamEvent event = new AlertStreamEvent(); event.setSiteId("test"); event.setCreatedBy("junit"); event.setCreatedTime(1480491075923L); event.setPolicyId(policyId); event.setStreamId("ALERT_STREAM"); event.setSchema(mockAlertStreamDefinition("ALERT_STREAM")); event.setMetaVersion("SAMPLE_META_VERSION"); event.setTimestamp(1480491075923L); event.setData(new Object[]{"test_cluster", "cpu.usage", "localhost", "hadoop", 0.98}); event.ensureAlertId(); return event; }
AlertStreamEvent alertStreamEvent = new AlertStreamEvent(); alertStreamEvent.setData(new Object[]{"namevalue", "hostvalue", "1", 10, 0.1, -0.2, "{\"name\":\"heap.COMMITTED\", \"Value\":\"175636480\"}", 1}); alertStreamEvent.setSchema(streamDefinition); alertStreamEvent.setPolicyId("setPolicyId"); alertStreamEvent.setCreatedTime(1234);
alert.setSchema(sd); return alert;