Update cAdvisor dependency.

Includes new handling of ContainerInfoRequest.
This commit is contained in:
Victor Marmol 2015-03-25 13:46:25 -07:00
parent 9615849874
commit eeb62634d2
5 changed files with 53 additions and 39 deletions

64
Godeps/Godeps.json generated
View File

@ -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",

View File

@ -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 {

View File

@ -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) &&

View File

@ -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".

View File

@ -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})