Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for readable_format parameter when printing out time and size values #3433

Merged
merged 1 commit into from Aug 6, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -126,8 +126,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
builder.field(Fields.GENERATION, segment.getGeneration());
builder.field(Fields.NUM_DOCS, segment.getNumDocs());
builder.field(Fields.DELETED_DOCS, segment.getDeletedDocs());
builder.field(Fields.SIZE, segment.getSize().toString());
builder.field(Fields.SIZE_IN_BYTES, segment.getSizeInBytes());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, segment.getSizeInBytes());
builder.field(Fields.COMMITTED, segment.isCommitted());
builder.field(Fields.SEARCH, segment.isSearch());
if (segment.getVersion() != null) {
Expand Down
Expand Up @@ -126,10 +126,8 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params, @Nulla

builder.startObject(Fields.INDEX);
if (indexStatus.getStoreSize() != null) {
builder.field(Fields.PRIMARY_SIZE, indexStatus.getPrimaryStoreSize().toString());
builder.field(Fields.PRIMARY_SIZE_IN_BYTES, indexStatus.getPrimaryStoreSize().bytes());
builder.field(Fields.SIZE, indexStatus.getStoreSize().toString());
builder.field(Fields.SIZE_IN_BYTES, indexStatus.getStoreSize().bytes());
builder.byteSizeField(Fields.PRIMARY_SIZE, Fields.PRIMARY_SIZE_IN_BYTES, indexStatus.getPrimaryStoreSize());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, indexStatus.getStoreSize());
}
builder.endObject();
if (indexStatus.getTranslogOperations() != -1) {
Expand Down Expand Up @@ -177,8 +175,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params, @Nulla
builder.field(Fields.STATE, shardStatus.getState());
if (shardStatus.getStoreSize() != null) {
builder.startObject(Fields.INDEX);
builder.field(Fields.SIZE, shardStatus.getStoreSize().toString());
builder.field(Fields.SIZE_IN_BYTES, shardStatus.getStoreSize().bytes());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, shardStatus.getStoreSize());
builder.endObject();
}
if (shardStatus.getTranslogId() != -1) {
Expand Down Expand Up @@ -215,19 +212,14 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params, @Nulla
builder.startObject(Fields.PEER_RECOVERY);
builder.field(Fields.STAGE, peerRecoveryStatus.getStage());
builder.field(Fields.START_TIME_IN_MILLIS, peerRecoveryStatus.getStartTime());
builder.field(Fields.TIME, peerRecoveryStatus.getTime());
builder.field(Fields.TIME_IN_MILLIS, peerRecoveryStatus.getTime().millis());
builder.timeValueField(Fields.TIME, Fields.TIME_IN_MILLIS, peerRecoveryStatus.getTime());

builder.startObject(Fields.INDEX);
builder.field(Fields.PROGRESS, peerRecoveryStatus.getIndexRecoveryProgress());
builder.field(Fields.SIZE, peerRecoveryStatus.getIndexSize());
builder.field(Fields.SIZE_IN_BYTES, peerRecoveryStatus.getIndexSize().bytes());
builder.field(Fields.REUSED_SIZE, peerRecoveryStatus.getReusedIndexSize());
builder.field(Fields.REUSED_SIZE_IN_BYTES, peerRecoveryStatus.getReusedIndexSize().bytes());
builder.field(Fields.EXPECTED_RECOVERED_SIZE, peerRecoveryStatus.getExpectedRecoveredIndexSize());
builder.field(Fields.EXPECTED_RECOVERED_SIZE_IN_BYTES, peerRecoveryStatus.getExpectedRecoveredIndexSize().bytes());
builder.field(Fields.RECOVERED_SIZE, peerRecoveryStatus.getRecoveredIndexSize());
builder.field(Fields.RECOVERED_SIZE_IN_BYTES, peerRecoveryStatus.getRecoveredIndexSize().bytes());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, peerRecoveryStatus.getIndexSize());
builder.byteSizeField(Fields.REUSED_SIZE, Fields.REUSED_SIZE_IN_BYTES, peerRecoveryStatus.getReusedIndexSize());
builder.byteSizeField(Fields.EXPECTED_RECOVERED_SIZE, Fields.EXPECTED_RECOVERED_SIZE_IN_BYTES, peerRecoveryStatus.getExpectedRecoveredIndexSize());
builder.byteSizeField(Fields.RECOVERED_SIZE, Fields.RECOVERED_SIZE_IN_BYTES, peerRecoveryStatus.getRecoveredIndexSize());
builder.endObject();

builder.startObject(Fields.TRANSLOG);
Expand All @@ -242,19 +234,14 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params, @Nulla
builder.startObject(Fields.GATEWAY_RECOVERY);
builder.field(Fields.STAGE, gatewayRecoveryStatus.getStage());
builder.field(Fields.START_TIME_IN_MILLIS, gatewayRecoveryStatus.getStartTime());
builder.field(Fields.TIME, gatewayRecoveryStatus.getTime());
builder.field(Fields.TIME_IN_MILLIS, gatewayRecoveryStatus.getTime().millis());
builder.timeValueField(Fields.TIME, Fields.TIME_IN_MILLIS, gatewayRecoveryStatus.getTime());

builder.startObject(Fields.INDEX);
builder.field(Fields.PROGRESS, gatewayRecoveryStatus.getIndexRecoveryProgress());
builder.field(Fields.SIZE, gatewayRecoveryStatus.getIndexSize());
builder.field(Fields.SIZE_IN_BYTES, gatewayRecoveryStatus.getIndexSize().bytes());
builder.field(Fields.REUSED_SIZE, gatewayRecoveryStatus.getReusedIndexSize());
builder.field(Fields.REUSED_SIZE_IN_BYTES, gatewayRecoveryStatus.getReusedIndexSize().bytes());
builder.field(Fields.EXPECTED_RECOVERED_SIZE, gatewayRecoveryStatus.getExpectedRecoveredIndexSize());
builder.field(Fields.EXPECTED_RECOVERED_SIZE_IN_BYTES, gatewayRecoveryStatus.getExpectedRecoveredIndexSize().bytes());
builder.field(Fields.RECOVERED_SIZE, gatewayRecoveryStatus.getRecoveredIndexSize());
builder.field(Fields.RECOVERED_SIZE_IN_BYTES, gatewayRecoveryStatus.getRecoveredIndexSize().bytes());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, gatewayRecoveryStatus.getIndexSize());
builder.byteSizeField(Fields.REUSED_SIZE, Fields.REUSED_SIZE_IN_BYTES, gatewayRecoveryStatus.getReusedIndexSize());
builder.byteSizeField(Fields.EXPECTED_RECOVERED_SIZE, Fields.EXPECTED_RECOVERED_SIZE_IN_BYTES, gatewayRecoveryStatus.getExpectedRecoveredIndexSize());
builder.byteSizeField(Fields.RECOVERED_SIZE, Fields.RECOVERED_SIZE_IN_BYTES, gatewayRecoveryStatus.getRecoveredIndexSize());
builder.endObject();

builder.startObject(Fields.TRANSLOG);
Expand All @@ -269,12 +256,10 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params, @Nulla
builder.startObject(Fields.GATEWAY_SNAPSHOT);
builder.field(Fields.STAGE, gatewaySnapshotStatus.getStage());
builder.field(Fields.START_TIME_IN_MILLIS, gatewaySnapshotStatus.getStartTime());
builder.field(Fields.TIME, gatewaySnapshotStatus.getTime());
builder.field(Fields.TIME_IN_MILLIS, gatewaySnapshotStatus.getTime().millis());
builder.timeValueField(Fields.TIME, Fields.TIME_IN_MILLIS, gatewaySnapshotStatus.getTime());

builder.startObject(Fields.INDEX);
builder.field(Fields.SIZE, gatewaySnapshotStatus.getIndexSize());
builder.field(Fields.SIZE_IN_BYTES, gatewaySnapshotStatus.getIndexSize().bytes());
builder.byteSizeField(Fields.SIZE, Fields.SIZE_IN_BYTES, gatewaySnapshotStatus.getIndexSize());
builder.endObject();

builder.startObject(Fields.TRANSLOG);
Expand Down
Expand Up @@ -27,6 +27,8 @@
import org.elasticsearch.common.io.BytesStream;
import org.elasticsearch.common.io.stream.BytesStreamOutput;
import org.elasticsearch.common.text.Text;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.unit.TimeValue;
import org.joda.time.DateTimeZone;
import org.joda.time.ReadableInstant;
import org.joda.time.format.DateTimeFormatter;
Expand All @@ -48,15 +50,15 @@ public final class XContentBuilder implements BytesStream {

public static enum FieldCaseConversion {
/**
* No came conversion will occur.
* No conversion will occur.
*/
NONE,
/**
* Camel Case will be converted to Underscore casing.
*/
UNDERSCORE,
/**
* Underscore will be converted to Camel case conversion.
* Underscore will be converted to Camel case.
*/
CAMELCASE
}
Expand All @@ -73,7 +75,6 @@ public static XContentBuilder builder(XContent xContent) throws IOException {
return new XContentBuilder(xContent, new BytesStreamOutput());
}


private XContentGenerator generator;

private final OutputStream bos;
Expand All @@ -82,6 +83,7 @@ public static XContentBuilder builder(XContent xContent) throws IOException {

private StringBuilder cachedStringBuilder;

private boolean readableFormat = false;

/**
* Constructs a new builder using the provided xcontent and an OutputStream. Make sure
Expand All @@ -106,6 +108,15 @@ public XContentBuilder prettyPrint() {
return this;
}

public XContentBuilder readableFormat(boolean readableFormat) {
this.readableFormat = readableFormat;
return this;
}

public boolean readableFormat() {
return this.readableFormat;
}

public XContentBuilder field(String name, ToXContent xContent) throws IOException {
field(name);
xContent.toXContent(this, ToXContent.EMPTY_PARAMS);
Expand Down Expand Up @@ -825,6 +836,38 @@ public XContentBuilder rawField(String fieldName, BytesReference content) throws
return this;
}

public XContentBuilder timeValueField(XContentBuilderString rawFieldName, XContentBuilderString readableFieldName, TimeValue timeValue) throws IOException {
if (readableFormat) {
field(readableFieldName, timeValue.toString());
}
field(rawFieldName, timeValue.millis());
return this;
}

public XContentBuilder timeValueField(XContentBuilderString rawFieldName, XContentBuilderString readableFieldName, long rawTime) throws IOException {
if (readableFormat) {
field(readableFieldName, new TimeValue(rawTime).toString());
}
field(rawFieldName, rawTime);
return this;
}

public XContentBuilder byteSizeField(XContentBuilderString rawFieldName, XContentBuilderString readableFieldName, ByteSizeValue byteSizeValue) throws IOException {
if (readableFormat) {
field(readableFieldName, byteSizeValue.toString());
}
field(rawFieldName, byteSizeValue.bytes());
return this;
}

public XContentBuilder byteSizeField(XContentBuilderString rawFieldName, XContentBuilderString readableFieldName, long rawSize) throws IOException {
if (readableFormat) {
field(readableFieldName, new ByteSizeValue(rawSize).toString());
}
field(rawFieldName, rawSize);
return this;
}

public XContentBuilder value(Boolean value) throws IOException {
if (value == null) {
return nullValue();
Expand Down
Expand Up @@ -82,8 +82,7 @@ public void writeTo(StreamOutput out) throws IOException {
@Override
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
builder.startObject(Fields.FILTER_CACHE);
builder.field(Fields.MEMORY_SIZE, getMemorySize().toString());
builder.field(Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.byteSizeField(Fields.MEMORY_SIZE, Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.field(Fields.EVICTIONS, getEvictions());
builder.endObject();
return builder;
Expand Down
Expand Up @@ -73,8 +73,7 @@ public void writeTo(StreamOutput out) throws IOException {
@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.ID_CACHE);
builder.field(Fields.MEMORY_SIZE, getMemorySize().toString());
builder.field(Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.byteSizeField(Fields.MEMORY_SIZE, Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.endObject();
return builder;
}
Expand Down
Expand Up @@ -119,16 +119,14 @@ public void writeTo(StreamOutput out) throws IOException {
@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.FIELDDATA);
builder.field(Fields.MEMORY_SIZE, getMemorySize().toString());
builder.field(Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.byteSizeField(Fields.MEMORY_SIZE, Fields.MEMORY_SIZE_IN_BYTES, memorySize);
builder.field(Fields.EVICTIONS, getEvictions());
if (fields != null) {
builder.startObject(Fields.FIELDS);
for (TObjectLongIterator<String> it = fields.iterator(); it.hasNext(); ) {
it.advance();
builder.startObject(it.key(), XContentBuilder.FieldCaseConversion.NONE);
builder.field(Fields.MEMORY_SIZE, new ByteSizeValue(it.value()).toString());
builder.field(Fields.MEMORY_SIZE_IN_BYTES, it.value());
builder.byteSizeField(Fields.MEMORY_SIZE, Fields.MEMORY_SIZE_IN_BYTES, it.value());
builder.endObject();
}
builder.endObject();
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/org/elasticsearch/index/flush/FlushStats.java
Expand Up @@ -88,8 +88,7 @@ public static FlushStats readFlushStats(StreamInput in) throws IOException {
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.FLUSH);
builder.field(Fields.TOTAL, total);
builder.field(Fields.TOTAL_TIME, getTotalTime().toString());
builder.field(Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.timeValueField(Fields.TOTAL_TIME, Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.endObject();
return builder;
}
Expand Down
9 changes: 3 additions & 6 deletions src/main/java/org/elasticsearch/index/get/GetStats.java
Expand Up @@ -105,14 +105,11 @@ public long current() {
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.GET);
builder.field(Fields.TOTAL, getCount());
builder.field(Fields.TIME, getTime().toString());
builder.field(Fields.TIME_IN_MILLIS, getTimeInMillis());
builder.timeValueField(Fields.TIME, Fields.TIME_IN_MILLIS, getTimeInMillis());
builder.field(Fields.EXISTS_TOTAL, existsCount);
builder.field(Fields.EXISTS_TIME, getExistsTime().toString());
builder.field(Fields.EXISTS_TIME_IN_MILLIS, existsTimeInMillis);
builder.timeValueField(Fields.EXISTS_TIME, Fields.EXISTS_TIME_IN_MILLIS, existsTimeInMillis);
builder.field(Fields.MISSING_TOTAL, missingCount);
builder.field(Fields.MISSING_TIME, getMissingTime().toString());
builder.field(Fields.MISSING_TIME_IN_MILLIS, missingTimeInMillis);
builder.timeValueField(Fields.MISSING_TIME, Fields.MISSING_TIME_IN_MILLIS, missingTimeInMillis);
builder.field(Fields.CURRENT, current);
builder.endObject();
return builder;
Expand Down
Expand Up @@ -132,13 +132,11 @@ public void writeTo(StreamOutput out) throws IOException {
@Override
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.field(Fields.INDEX_TOTAL, indexCount);
builder.field(Fields.INDEX_TIME, getIndexTime().toString());
builder.field(Fields.INDEX_TIME_IN_MILLIS, indexTimeInMillis);
builder.timeValueField(Fields.INDEX_TIME, Fields.INDEX_TIME_IN_MILLIS, indexTimeInMillis);
builder.field(Fields.INDEX_CURRENT, indexCurrent);

builder.field(Fields.DELETE_TOTAL, deleteCount);
builder.field(Fields.DELETE_TIME, getDeleteTime().toString());
builder.field(Fields.DELETE_TIME_IN_MILLIS, deleteTimeInMillis);
builder.timeValueField(Fields.DELETE_TIME, Fields.DELETE_TIME_IN_MILLIS, deleteTimeInMillis);
builder.field(Fields.DELETE_CURRENT, deleteCurrent);

return builder;
Expand Down
9 changes: 3 additions & 6 deletions src/main/java/org/elasticsearch/index/merge/MergeStats.java
Expand Up @@ -133,14 +133,11 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
builder.startObject(Fields.MERGES);
builder.field(Fields.CURRENT, current);
builder.field(Fields.CURRENT_DOCS, currentNumDocs);
builder.field(Fields.CURRENT_SIZE, getCurrentSize().toString());
builder.field(Fields.CURRENT_SIZE_IN_BYTES, currentSizeInBytes);
builder.byteSizeField(Fields.CURRENT_SIZE, Fields.CURRENT_SIZE_IN_BYTES, currentSizeInBytes);
builder.field(Fields.TOTAL, total);
builder.field(Fields.TOTAL_TIME, getTotalTime().toString());
builder.field(Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.timeValueField(Fields.TOTAL_TIME, Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.field(Fields.TOTAL_DOCS, totalNumDocs);
builder.field(Fields.TOTAL_SIZE, getTotalSize().toString());
builder.field(Fields.TOTAL_SIZE_IN_BYTES, totalSizeInBytes);
builder.byteSizeField(Fields.TOTAL_SIZE, Fields.TOTAL_SIZE_IN_BYTES, totalSizeInBytes);
builder.endObject();
return builder;
}
Expand Down
Expand Up @@ -47,8 +47,7 @@ public long getCurrent() {
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.PERCOLATE);
builder.field(Fields.TOTAL, percolateCount);
builder.field(Fields.TIME, getTime().toString());
builder.field(Fields.TIME_IN_MILLIS, percolateTimeInMillis);
builder.timeValueField(Fields.TIME, Fields.TIME_IN_MILLIS, percolateTimeInMillis);
builder.field(Fields.CURRENT, current);
builder.endObject();
return builder;
Expand Down
Expand Up @@ -88,8 +88,7 @@ public static RefreshStats readRefreshStats(StreamInput in) throws IOException {
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject(Fields.REFRESH);
builder.field(Fields.TOTAL, total);
builder.field(Fields.TOTAL_TIME, getTotalTime().toString());
builder.field(Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.timeValueField(Fields.TOTAL_TIME, Fields.TOTAL_TIME_IN_MILLIS, totalTimeInMillis);
builder.endObject();
return builder;
}
Expand Down