use of org.apache.skywalking.oap.server.core.query.type.ServiceInstance in project incubator-skywalking by apache.
the class IoTDBMetadataQueryDAO method buildInstances.
private List<ServiceInstance> buildInstances(List<? super StorageData> storageDataList) {
List<ServiceInstance> serviceInstanceList = new ArrayList<>(storageDataList.size());
storageDataList.forEach(storageData -> {
InstanceTraffic instanceTraffic = (InstanceTraffic) storageData;
if (instanceTraffic.getName() == null) {
instanceTraffic.setName("");
}
ServiceInstance serviceInstance = new ServiceInstance();
serviceInstance.setId(instanceTraffic.id());
serviceInstance.setName(instanceTraffic.getName());
serviceInstance.setInstanceUUID(serviceInstance.getId());
serviceInstance.setLayer(instanceTraffic.getLayer().name());
JsonObject properties = instanceTraffic.getProperties();
if (properties != null) {
for (Map.Entry<String, JsonElement> property : properties.entrySet()) {
String key = property.getKey();
String value = property.getValue().getAsString();
if (key.equals(InstanceTraffic.PropertyUtil.LANGUAGE)) {
serviceInstance.setLanguage(Language.value(value));
} else {
serviceInstance.getAttributes().add(new Attribute(key, value));
}
}
} else {
serviceInstance.setLanguage(Language.UNKNOWN);
}
serviceInstanceList.add(serviceInstance);
});
return serviceInstanceList;
}
use of org.apache.skywalking.oap.server.core.query.type.ServiceInstance in project incubator-skywalking by apache.
the class MetadataQueryEsDAO method buildInstances.
private List<ServiceInstance> buildInstances(SearchResponse response) {
List<ServiceInstance> serviceInstances = new ArrayList<>();
for (SearchHit searchHit : response.getHits()) {
Map<String, Object> sourceAsMap = searchHit.getSource();
final InstanceTraffic instanceTraffic = new InstanceTraffic.Builder().storage2Entity(new HashMapConverter.ToEntity(sourceAsMap));
ServiceInstance serviceInstance = new ServiceInstance();
serviceInstance.setId(instanceTraffic.id());
serviceInstance.setName(instanceTraffic.getName());
serviceInstance.setInstanceUUID(serviceInstance.getId());
JsonObject properties = instanceTraffic.getProperties();
if (properties != null) {
for (Map.Entry<String, JsonElement> property : properties.entrySet()) {
String key = property.getKey();
String value = property.getValue().getAsString();
if (key.equals(LANGUAGE)) {
serviceInstance.setLanguage(Language.value(value));
} else {
serviceInstance.getAttributes().add(new Attribute(key, value));
}
}
} else {
serviceInstance.setLanguage(Language.UNKNOWN);
}
serviceInstances.add(serviceInstance);
}
return serviceInstances;
}
use of org.apache.skywalking.oap.server.core.query.type.ServiceInstance in project incubator-skywalking by apache.
the class MetadataQueryEsDAO method getInstance.
@Override
public ServiceInstance getInstance(final String instanceId) throws IOException {
final String index = IndexController.LogicIndicesRegister.getPhysicalTableName(InstanceTraffic.INDEX_NAME);
final BoolQueryBuilder query = Query.bool().must(Query.term("_id", instanceId));
final SearchBuilder search = Search.builder().query(query).size(1);
final SearchResponse response = getClient().search(index, search.build());
final List<ServiceInstance> instances = buildInstances(response);
return instances.size() > 0 ? instances.get(0) : null;
}
use of org.apache.skywalking.oap.server.core.query.type.ServiceInstance in project incubator-skywalking by apache.
the class BanyanDBMetadataQueryDAO method listInstances.
@Override
public List<ServiceInstance> listInstances(long startTimestamp, long endTimestamp, String serviceId) throws IOException {
MeasureQueryResponse resp = query(InstanceTraffic.INDEX_NAME, INSTANCE_TRAFFIC_TAGS, Collections.emptySet(), new QueryBuilder<MeasureQuery>() {
@Override
protected void apply(MeasureQuery query) {
if (StringUtil.isNotEmpty(serviceId)) {
query.and(eq(InstanceTraffic.SERVICE_ID, serviceId));
}
final long minuteTimeBucket = TimeBucket.getMinuteTimeBucket(startTimestamp);
query.and(gte(InstanceTraffic.LAST_PING_TIME_BUCKET, minuteTimeBucket));
}
});
final List<ServiceInstance> instances = new ArrayList<>();
for (final DataPoint dataPoint : resp.getDataPoints()) {
instances.add(buildInstance(dataPoint));
}
return instances;
}
use of org.apache.skywalking.oap.server.core.query.type.ServiceInstance in project incubator-skywalking by apache.
the class BanyanDBMetadataQueryDAO method buildInstance.
private ServiceInstance buildInstance(DataPoint dataPoint) {
ServiceInstance serviceInstance = new ServiceInstance();
serviceInstance.setId(dataPoint.getId());
serviceInstance.setName(dataPoint.getTagValue(InstanceTraffic.NAME));
serviceInstance.setInstanceUUID(dataPoint.getId());
final String propString = dataPoint.getTagValue(InstanceTraffic.PROPERTIES);
JsonObject properties = null;
if (StringUtil.isNotEmpty(propString)) {
properties = GSON.fromJson(propString, JsonObject.class);
}
if (properties != null) {
for (Map.Entry<String, JsonElement> property : properties.entrySet()) {
String key = property.getKey();
String value = property.getValue().getAsString();
if (key.equals(LANGUAGE)) {
serviceInstance.setLanguage(Language.value(value));
} else {
serviceInstance.getAttributes().add(new Attribute(key, value));
}
}
} else {
serviceInstance.setLanguage(Language.UNKNOWN);
}
return serviceInstance;
}
Aggregations