in oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/EventHookCallback.java [82:185]
private List<Event> constructCurrentEvent(AlarmMessage msg) throws IOException {
List<Event> events = new ArrayList<>(2);
long now = System.currentTimeMillis();
Event.Builder builder = Event.newBuilder()
.setUuid(UUID.randomUUID().toString())
.setName("Alarm")
.setStartTime(now - (msg.getPeriod() * 60 * 1000))
.setMessage(msg.getAlarmMessage())
.setType(Type.Error)
.setEndTime(now);
switch (msg.getScopeId()) {
case DefaultScopeDefine.SERVICE :
IDManager.ServiceID.ServiceIDDefinition serviceIdDef = IDManager.ServiceID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setService(serviceIdDef.getName())
.build()
);
builder.setLayer(getLayer(msg.getId0()));
events.add(builder.build());
break;
case DefaultScopeDefine.SERVICE_RELATION :
IDManager.ServiceID.ServiceIDDefinition sourceServiceIdDef = IDManager.ServiceID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setService(sourceServiceIdDef.getName())
.build()
);
builder.setLayer(getLayer(msg.getId0()));
events.add(builder.build());
IDManager.ServiceID.ServiceIDDefinition destServiceIdDef = IDManager.ServiceID.analysisId(msg.getId1());
builder.setSource(
Source.newBuilder()
.setService(destServiceIdDef.getName())
.build()
).setUuid(UUID.randomUUID().toString());
builder.setLayer(getLayer(msg.getId1()));
events.add(builder.build());
break;
case DefaultScopeDefine.SERVICE_INSTANCE :
IDManager.ServiceInstanceID.InstanceIDDefinition instanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setServiceInstance(instanceIdDef.getName())
.setService(IDManager.ServiceID.analysisId(instanceIdDef.getServiceId()).getName())
.build()
);
builder.setLayer(getLayer(instanceIdDef.getServiceId()));
events.add(builder.build());
break;
case DefaultScopeDefine.SERVICE_INSTANCE_RELATION :
IDManager.ServiceInstanceID.InstanceIDDefinition sourceInstanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setServiceInstance(sourceInstanceIdDef.getName())
.setService(IDManager.ServiceID.analysisId(sourceInstanceIdDef.getServiceId()).getName())
.build()
);
builder.setLayer(getLayer(sourceInstanceIdDef.getServiceId()));
events.add(builder.build());
IDManager.ServiceInstanceID.InstanceIDDefinition destInstanceIdDef = IDManager.ServiceInstanceID.analysisId(msg.getId1());
builder.setSource(
Source.newBuilder()
.setServiceInstance(destInstanceIdDef.getName())
.setService(IDManager.ServiceID.analysisId(destInstanceIdDef.getServiceId()).getName())
.build()
).setUuid(UUID.randomUUID().toString());
builder.setLayer(getLayer(destInstanceIdDef.getServiceId()));
events.add(builder.build());
break;
case DefaultScopeDefine.ENDPOINT :
IDManager.EndpointID.EndpointIDDefinition endpointIDDef = IDManager.EndpointID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setEndpoint(endpointIDDef.getEndpointName())
.setService(IDManager.ServiceID.analysisId(endpointIDDef.getServiceId()).getName())
.build()
);
builder.setLayer(getLayer(endpointIDDef.getServiceId()));
events.add(builder.build());
break;
case DefaultScopeDefine.ENDPOINT_RELATION :
IDManager.EndpointID.EndpointIDDefinition sourceEndpointIDDef = IDManager.EndpointID.analysisId(msg.getId0());
builder.setSource(
Source.newBuilder()
.setEndpoint(sourceEndpointIDDef.getEndpointName())
.setService(IDManager.ServiceID.analysisId(sourceEndpointIDDef.getServiceId()).getName())
.build()
);
builder.setLayer(getLayer(sourceEndpointIDDef.getServiceId()));
events.add(builder.build());
IDManager.EndpointID.EndpointIDDefinition destEndpointIDDef = IDManager.EndpointID.analysisId(msg.getId1());
builder.setSource(
Source.newBuilder()
.setEndpoint(destEndpointIDDef.getEndpointName())
.setService(IDManager.ServiceID.analysisId(destEndpointIDDef.getServiceId()).getName())
.build()
).setUuid(UUID.randomUUID().toString());
builder.setLayer(getLayer(destEndpointIDDef.getServiceId()));
events.add(builder.build());
break;
}
return events;
}