Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public final class ConcurrentQueryProfileBreakdown extends ContextualProfileBrea
static final String MAX_PREFIX = "max_";
static final String MIN_PREFIX = "min_";
static final String AVG_PREFIX = "avg_";
static final String SLICES_INFO = "slices_info";
private long queryNodeTime = Long.MIN_VALUE;
private long maxSliceNodeTime = Long.MIN_VALUE;
private long minSliceNodeTime = Long.MAX_VALUE;
Expand All @@ -59,13 +60,18 @@ public final class ConcurrentQueryProfileBreakdown extends ContextualProfileBrea
private final Set<String> timingMetrics;
private final Set<String> nonTimingMetrics;

private final SlicesInformation slicesInformation;

public ConcurrentQueryProfileBreakdown(Collection<Supplier<ProfileMetric>> metricSuppliers) {
super(metricSuppliers);
this.metricSuppliers = metricSuppliers;
this.timingMetrics = getTimingMetrics();
this.nonTimingMetrics = getNonTimingMetrics();
this.slicesInformation = new SlicesInformation();
}



@Override
public AbstractProfileBreakdown context(Object context) {
// See please https://bugs.openjdk.java.net/browse/JDK-8161372
Expand Down Expand Up @@ -481,4 +487,9 @@ long getAvgSliceNodeTime() {
return avgSliceNodeTime;
}

@Override
public Map<String, Object> toDebugMap() {
return Map.of(SLICES_INFO, slicesInformation.toMap());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.opensearch.search.profile.query;

import java.util.Map;

public class SegmentInformation {
static final String SEGMENT_ID = "segment_id";
static final String FROM = "from";
static final String TO = "to";

private final String segmentId;
private final int from;
private final int to;

public SegmentInformation(String segmentId, int from, int to) {
this.segmentId = segmentId;
this.from = from;
this.to = to;
}

public Map<String, Object> toMap() {
return Map.of(SEGMENT_ID, segmentId, FROM, from, TO, to);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.opensearch.search.profile.query;

import java.util.List;
import java.util.Map;

public class SingleSliceInformation {
static final String PARTITION_COUNT = "partition_count";
static final String DOC_COUNT = "doc_count";
static final String SEGMENTS = "segments";

private final int partitionCount;
private final int docCount;
private final List<SegmentInformation> segments;

public SingleSliceInformation(int partitionCount, int docCount, List<SegmentInformation> segments) {
this.partitionCount = partitionCount;
this.docCount = docCount;
this.segments = List.of();
}

public Map<String, Object> toMap() {
return Map.of(PARTITION_COUNT, partitionCount, DOC_COUNT, docCount, SEGMENTS, segments);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.opensearch.search.profile.query;

import java.util.List;
import java.util.Map;

public class SlicesInformation {
static final String SLICE_COUNT = "slice_count";
static final String SLICES = "slices";

private final List<SingleSliceInformation> slices;

public SlicesInformation() {
this.slices = List.of();
}

public Map<String, Object> toMap() {
return Map.of(SLICE_COUNT, slices.size(), SLICES, slices);
}
}
Loading