Merge branch 'guice' into guice-rt

This commit is contained in:
fjy 2013-08-22 10:20:53 -07:00
commit 3f51ef63a4
3 changed files with 87 additions and 15 deletions

View File

@ -1,9 +1,29 @@
/*
* Druid - a distributed column store.
* Copyright (C) 2013 Metamarkets Group Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package com.metamx.druid.http; package com.metamx.druid.http;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
/** /**
*/ */
@ -11,21 +31,73 @@ import javax.ws.rs.core.Response;
public class StatusResource public class StatusResource
{ {
@GET @GET
@Produces("text/plain") @Produces("application/json")
public Response doGet() public Status doGet()
{ {
StringBuffer buf = new StringBuffer(); return new Status(
StatusResource.class.getPackage().getImplementationVersion(),
new Memory(Runtime.getRuntime())
);
}
Runtime runtime = Runtime.getRuntime(); public static class Status {
long maxMemory = runtime.maxMemory(); final String version;
long totalMemory = runtime.totalMemory(); final Memory memory;
long freeMemory = runtime.freeMemory();
buf.append(String.format("Max Memory:\t%,18d\t%1$d%n", maxMemory)); public Status(String version, Memory memory)
buf.append(String.format("Total Memory:\t%,18d\t%1$d%n", totalMemory)); {
buf.append(String.format("Free Memory:\t%,18d\t%1$d%n", freeMemory)); this.version = version;
buf.append(String.format("Used Memory:\t%,18d\t%1$d%n", totalMemory - freeMemory)); this.memory = memory;
}
return Response.ok(buf.toString()).build(); @JsonProperty
public String getVersion()
{
return version;
}
@JsonProperty
public Memory getMemory()
{
return memory;
}
}
public static class Memory {
final long maxMemory;
final long totalMemory;
final long freeMemory;
final long usedMemory;
public Memory(Runtime runtime) {
maxMemory = runtime.maxMemory();
totalMemory = runtime.totalMemory();
freeMemory = runtime.freeMemory();
usedMemory = totalMemory - freeMemory;
}
@JsonProperty
public long getMaxMemory()
{
return maxMemory;
}
@JsonProperty
public long getTotalMemory()
{
return totalMemory;
}
@JsonProperty
public long getFreeMemory()
{
return freeMemory;
}
@JsonProperty
public long getUsedMemory()
{
return usedMemory;
}
} }
} }

View File

@ -211,7 +211,7 @@ public class OmniSegmentLoader implements SegmentLoader
private synchronized void addSegment(DataSegment segment) private synchronized void addSegment(DataSegment segment)
{ {
if (! segments.add(segment)) { if (segments.add(segment)) {
currSize += segment.getSize(); currSize += segment.getSize();
} }
} }

View File

@ -210,7 +210,7 @@ public class SingleSegmentLoader implements SegmentLoader
private synchronized void addSegment(DataSegment segment) private synchronized void addSegment(DataSegment segment)
{ {
if (! segments.add(segment)) { if (segments.add(segment)) {
currSize += segment.getSize(); currSize += segment.getSize();
} }
} }