/** * {@inheritDoc} */ @Override public Span get(SpanIdent spanIdent) { StorageIndexQuery query = spanQueryFactory.get(spanIdent); List<AbstractSpan> spans = super.executeQuery(query); if (CollectionUtils.isNotEmpty(spans)) { return spans.iterator().next(); } else { return null; } }
/** * {@inheritDoc} */ @Override public Collection<? extends Span> getSpans(long traceId) { StorageIndexQuery query = spanQueryFactory.getSpans(traceId); return super.executeQuery(query); }
/** * Returns root spans for given time-frame. * * @param limit * number of results returned by service. Value <code>-1</code> means no limit. * @param fromDate * From date to search for. Can be <code>null</code> not to set any boundary. * @param toDate * To date to search for. Can be <code>null</code> not to set any boundary. * @param resultComparator * Comparator that will be used to sort the results. Can be <code>null</code> and in * that case default time-stamp sorting will be done. * @return All root spans. */ public Collection<AbstractSpan> getRootSpans(int limit, Date fromDate, Date toDate, ResultComparator<AbstractSpan> resultComparator) { IIndexQuery query = spanQueryFactory.getRootSpansQuery(fromDate, toDate); if (null != resultComparator) { return super.executeQuery(query, resultComparator, limit, false); } else { return super.executeQuery(query, DefaultDataComparatorEnum.TIMESTAMP, limit, false); } }
/** * Returns query for searching root spans. * * @param fromDate * From date to search for. Can be <code>null</code> not to set any boundary. * @param toDate * To date to search for. Can be <code>null</code> not to set any boundary. * @return Query */ public E getRootSpansQuery(Date fromDate, Date toDate) { E query = getIndexQueryProvider().getIndexQuery(); // set classes searched query.setObjectClasses(CLASSES_LIST); // only root spans query.addIndexingRestriction(IndexQueryRestrictionFactory.equal("root", true)); // set time bounds if (fromDate != null) { query.setFromDate(new Timestamp(fromDate.getTime())); } if (toDate != null) { query.setToDate(new Timestamp(toDate.getTime())); } return query; }
/** * {@inheritDoc} */ @Override public Collection<? extends Span> getRootSpans(int limit, Date fromDate, Date toDate, ResultComparator<AbstractSpan> resultComparator) { StorageIndexQuery query = spanQueryFactory.getRootSpansQuery(fromDate, toDate); if (null != resultComparator) { resultComparator.setCachedDataService(getStorageRepositoryDefinition().getCachedDataService()); return super.executeQuery(query, resultComparator, limit); } else { return super.executeQuery(query, DefaultDataComparatorEnum.TIMESTAMP, limit); } }
/** * Returns query for searching spans that belong to the same trace. * * @param traceId * Trace id. * @return Query */ public E getSpans(long traceId) { E query = getIndexQueryProvider().getIndexQuery(); // set classes searched query.setObjectClasses(CLASSES_LIST); // only spans in the trace spans query.addIndexingRestriction(IndexQueryRestrictionFactory.equal("spanIdent.traceId", traceId)); return query; }
/** * Returns the span with given span ident. * * @param spanIdent * {@link SpanIdent} * @return Span with given span ident. */ public AbstractSpan get(SpanIdent spanIdent) { IIndexQuery query = spanQueryFactory.get(spanIdent); Collection<AbstractSpan> results = getIndexingTree().query(query); if (CollectionUtils.isNotEmpty(results)) { return results.iterator().next(); } else { return null; } }
/** * Returns spans that belong to the given trace. * * @param traceId * Trace id. * @return All spans for the trace. */ public Collection<AbstractSpan> getSpans(long traceId) { IIndexQuery query = spanQueryFactory.getSpans(traceId); return getIndexingTree().query(query); }
/** * Returns query for getting span with given ident. * * @param spanIdent * {@link SpanIdent}. * @return Query */ public E get(SpanIdent spanIdent) { E query = getIndexQueryProvider().getIndexQuery(); // set classes searched query.setObjectClasses(CLASSES_LIST); // only span with specific id query.addIndexingRestriction(IndexQueryRestrictionFactory.equal("spanIdent.id", spanIdent.getId())); return query; }