diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 5cdf4f43e7d..ef883f187cc 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -212,83 +212,83 @@ }, { "ImportPath": "github.com/google/cadvisor/api", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/container", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/events", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/fs", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/healthz", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/http", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/info/v1", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/info/v2", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/manager", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/metrics", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/pages", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/storage", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/summary", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/utils", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/validate", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/cadvisor/version", - "Comment": "0.10.1-103-gbfaf70b", - "Rev": "bfaf70b2555fcaba212130da04a21302344e38f5" + "Comment": "0.10.1-106-gfd9f7e0", + "Rev": "fd9f7e0e820c7916e052e2180ee51e5ef8ad6614" }, { "ImportPath": "github.com/google/gofuzz", diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go b/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go index 703d3c57011..18c848aeb6f 100644 --- a/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go +++ b/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go @@ -164,11 +164,7 @@ func streamResults(results chan *events.Event, w http.ResponseWriter, r *http.Re } func getContainerInfoRequest(body io.ReadCloser) (*info.ContainerInfoRequest, error) { - var query info.ContainerInfoRequest - - // Default stats and samples is 64. - query.NumStats = 64 - + query := info.DefaultContainerInfoRequest() decoder := json.NewDecoder(body) err := decoder.Decode(&query) if err != nil && err != io.EOF { diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/info/v1/container.go b/Godeps/_workspace/src/github.com/google/cadvisor/info/v1/container.go index 14ce7d9539d..a6e70fb10f6 100644 --- a/Godeps/_workspace/src/github.com/google/cadvisor/info/v1/container.go +++ b/Godeps/_workspace/src/github.com/google/cadvisor/info/v1/container.go @@ -81,7 +81,9 @@ func (self ContainerReferenceSlice) Less(i, j int) bool { return self[i].Name < // ContainerInfoQuery is used when users check a container info from the REST api. // It specifies how much data users want to get about a container type ContainerInfoRequest struct { - // Max number of stats to return. + // Max number of stats to return. Specify -1 for all stats currently available. + // If start and end time are specified this limit is ignored. + // Default: 60 NumStats int `json:"num_stats,omitempty"` // Start time for which to query information. @@ -93,6 +95,13 @@ type ContainerInfoRequest struct { End time.Time `json:"end,omitempty"` } +// Returns a ContainerInfoRequest with all default values specified. +func DefaultContainerInfoRequest() ContainerInfoRequest { + return ContainerInfoRequest{ + NumStats: 60, + } +} + func (self *ContainerInfoRequest) Equals(other ContainerInfoRequest) bool { return self.NumStats == other.NumStats && self.Start.Equal(other.Start) && diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer.go b/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer.go index a1ed74581f6..f5438c652fd 100644 --- a/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer.go +++ b/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer.go @@ -47,13 +47,19 @@ func (self *StatsBuffer) Add(item *info.ContainerStats) { } // Returns up to maxResult elements in the specified time period (inclusive). -// Results are from first to last. maxResults of -1 means no limit. +// Results are from first to last. maxResults of -1 means no limit. When first +// and last are specified, maxResults is ignored. func (self *StatsBuffer) InTimeRange(start, end time.Time, maxResults int) []*info.ContainerStats { // No stats, return empty. if self.size == 0 { return []*info.ContainerStats{} } + // Return all results in a time range if specified. + if !start.IsZero() && !end.IsZero() { + maxResults = -1 + } + // NOTE: Since we store the elments in descending timestamp order "start" will // be a higher index than "end". diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer_test.go b/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer_test.go index 4ac28e63fe7..f142e931624 100644 --- a/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer_test.go +++ b/Godeps/_workspace/src/github.com/google/cadvisor/storage/memory/stats_buffer_test.go @@ -161,6 +161,9 @@ func TestInTimeRange(t *testing.T) { expectElements(t, sb.InTimeRange(createTime(3), createTime(5), 10), []int32{3, 4}) assert.Empty(sb.InTimeRange(createTime(5), createTime(5), 10)) + // Start and end time ignores maxResults. + expectElements(t, sb.InTimeRange(createTime(1), createTime(5), 1), []int32{1, 2, 3, 4}) + // No start time. expectElements(t, sb.InTimeRange(empty, createTime(5), 10), []int32{1, 2, 3, 4}) expectElements(t, sb.InTimeRange(empty, createTime(4), 10), []int32{1, 2, 3, 4})