Search in sources :

Example 1 with ServiceInstance

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;
}
Also used : Attribute(org.apache.skywalking.oap.server.core.query.type.Attribute) JsonElement(com.google.gson.JsonElement) ArrayList(java.util.ArrayList) ServiceInstance(org.apache.skywalking.oap.server.core.query.type.ServiceInstance) JsonObject(com.google.gson.JsonObject) HashMap(java.util.HashMap) Map(java.util.Map) InstanceTraffic(org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic)

Example 2 with ServiceInstance

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;
}
Also used : SearchHit(org.apache.skywalking.library.elasticsearch.response.search.SearchHit) HashMapConverter(org.apache.skywalking.oap.server.core.storage.type.HashMapConverter) Attribute(org.apache.skywalking.oap.server.core.query.type.Attribute) ArrayList(java.util.ArrayList) ServiceInstance(org.apache.skywalking.oap.server.core.query.type.ServiceInstance) JsonObject(com.google.gson.JsonObject) JsonElement(com.google.gson.JsonElement) JsonObject(com.google.gson.JsonObject) Map(java.util.Map) InstanceTraffic(org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic)

Example 3 with ServiceInstance

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;
}
Also used : BoolQueryBuilder(org.apache.skywalking.library.elasticsearch.requests.search.BoolQueryBuilder) SearchBuilder(org.apache.skywalking.library.elasticsearch.requests.search.SearchBuilder) ServiceInstance(org.apache.skywalking.oap.server.core.query.type.ServiceInstance) SearchResponse(org.apache.skywalking.library.elasticsearch.response.search.SearchResponse)

Example 4 with ServiceInstance

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;
}
Also used : MeasureQueryResponse(org.apache.skywalking.banyandb.v1.client.MeasureQueryResponse) DataPoint(org.apache.skywalking.banyandb.v1.client.DataPoint) ArrayList(java.util.ArrayList) ServiceInstance(org.apache.skywalking.oap.server.core.query.type.ServiceInstance) MeasureQuery(org.apache.skywalking.banyandb.v1.client.MeasureQuery)

Example 5 with ServiceInstance

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;
}
Also used : Attribute(org.apache.skywalking.oap.server.core.query.type.Attribute) JsonElement(com.google.gson.JsonElement) ServiceInstance(org.apache.skywalking.oap.server.core.query.type.ServiceInstance) JsonObject(com.google.gson.JsonObject) Map(java.util.Map)

Aggregations

ServiceInstance (org.apache.skywalking.oap.server.core.query.type.ServiceInstance)22 ArrayList (java.util.ArrayList)14 JsonObject (com.google.gson.JsonObject)12 JsonElement (com.google.gson.JsonElement)10 Map (java.util.Map)10 Attribute (org.apache.skywalking.oap.server.core.query.type.Attribute)10 BoolQueryBuilder (org.apache.skywalking.library.elasticsearch.requests.search.BoolQueryBuilder)4 SearchBuilder (org.apache.skywalking.library.elasticsearch.requests.search.SearchBuilder)4 SearchResponse (org.apache.skywalking.library.elasticsearch.response.search.SearchResponse)4 InstanceTraffic (org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic)4 IOException (java.io.IOException)2 Connection (java.sql.Connection)2 ResultSet (java.sql.ResultSet)2 SQLException (java.sql.SQLException)2 HashMap (java.util.HashMap)2 List (java.util.List)2 DataPoint (org.apache.skywalking.banyandb.v1.client.DataPoint)2 MeasureQuery (org.apache.skywalking.banyandb.v1.client.MeasureQuery)2 MeasureQueryResponse (org.apache.skywalking.banyandb.v1.client.MeasureQueryResponse)2 SearchHit (org.apache.skywalking.library.elasticsearch.response.search.SearchHit)2