use of io.gravitee.gateway.services.monitoring.event.InstanceEventPayload in project gravitee-gateway by gravitee-io.
the class MonitoringService method createInstanceInfo.
private InstanceEventPayload createInstanceInfo() {
InstanceEventPayload instanceInfo = new InstanceEventPayload();
instanceInfo.setId(node.id());
instanceInfo.setVersion(Version.RUNTIME_VERSION.toString());
Optional<List<String>> shardingTags = gatewayConfiguration.shardingTags();
instanceInfo.setTags(shardingTags.isPresent() ? shardingTags.get() : null);
instanceInfo.setPlugins(plugins());
instanceInfo.setSystemProperties(new HashMap<>((Map) System.getProperties()));
instanceInfo.setPort(port);
Optional<String> tenant = gatewayConfiguration.tenant();
instanceInfo.setTenant(tenant.isPresent() ? tenant.get() : null);
try {
instanceInfo.setHostname(InetAddress.getLocalHost().getHostName());
instanceInfo.setIp(InetAddress.getLocalHost().getHostAddress());
} catch (UnknownHostException uhe) {
LOGGER.warn("Could not get hostname / IP", uhe);
}
return instanceInfo;
}
use of io.gravitee.gateway.services.monitoring.event.InstanceEventPayload in project gravitee-gateway by gravitee-io.
the class MonitoringService method prepareEvent.
private Event prepareEvent() {
Event event = new Event();
event.setId(UUID.random().toString());
event.setType(EventType.GATEWAY_STARTED);
event.setCreatedAt(new Date());
event.setUpdatedAt(event.getCreatedAt());
Map<String, String> properties = new HashMap<>();
properties.put("id", node.id());
properties.put("started_at", Long.toString(event.getCreatedAt().getTime()));
properties.put("last_heartbeat_at", Long.toString(event.getCreatedAt().getTime()));
event.setProperties(properties);
InstanceEventPayload instance = createInstanceInfo();
try {
String payload = objectMapper.writeValueAsString(instance);
event.setPayload(payload);
} catch (JsonProcessingException jsex) {
LOGGER.error("An error occurs while transforming instance information into JSON", jsex);
}
return event;
}
Aggregations