Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
649b6879
Commit
649b6879
authored
Feb 26, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #22053 from gmarek/resources
Auto commit by PR queue bot
parents
286e017e
94c08fbf
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
4 deletions
+25
-4
resource_usage_gatherer.go
test/e2e/resource_usage_gatherer.go
+25
-4
No files found.
test/e2e/resource_usage_gatherer.go
View file @
649b6879
...
...
@@ -134,6 +134,7 @@ type resourceGatherWorker struct {
containerIDs
[]
string
stopCh
chan
struct
{}
dataSeries
[]
resourceUsagePerContainer
finished
bool
}
func
(
w
*
resourceGatherWorker
)
singleProbe
()
{
...
...
@@ -153,6 +154,7 @@ func (w *resourceGatherWorker) gather(initialSleep time.Duration) {
defer
utilruntime
.
HandleCrash
()
defer
w
.
wg
.
Done
()
defer
Logf
(
"Closing worker for %v"
,
w
.
nodeName
)
defer
func
()
{
w
.
finished
=
true
}()
select
{
case
<-
time
.
After
(
initialSleep
)
:
w
.
singleProbe
()
...
...
@@ -223,6 +225,7 @@ func NewResourceUsageGatherer(c *client.Client) (*containerResourceGatherer, err
containerIDToNameMap
:
g
.
containerIDToNameMap
,
containerIDs
:
g
.
containerIDs
,
stopCh
:
g
.
stopCh
,
finished
:
false
,
})
}
return
&
g
,
nil
...
...
@@ -236,16 +239,34 @@ func (g *containerResourceGatherer) startGatheringData() {
func
(
g
*
containerResourceGatherer
)
stopAndSummarize
(
percentiles
[]
int
,
constraints
map
[
string
]
resourceConstraint
)
*
ResourceUsageSummary
{
close
(
g
.
stopCh
)
Logf
(
"Closed stop channel. Waiting for %v workers"
,
len
(
g
.
workers
))
g
.
workerWg
.
Wait
()
Logf
(
"Waitgroup finished."
)
finished
:=
make
(
chan
struct
{})
go
func
()
{
g
.
workerWg
.
Wait
()
finished
<-
struct
{}{}
}()
select
{
case
<-
finished
:
Logf
(
"Waitgroup finished."
)
case
<-
time
.
After
(
2
*
time
.
Minute
)
:
unfinished
:=
make
([]
string
,
0
)
for
i
:=
range
g
.
workers
{
if
!
g
.
workers
[
i
]
.
finished
{
unfinished
=
append
(
unfinished
,
g
.
workers
[
i
]
.
nodeName
)
}
}
Logf
(
"Timed out while waiting for waitgroup, some workers failed to finish: %v"
,
unfinished
)
}
if
len
(
percentiles
)
==
0
{
Logf
(
"Warning! Empty percentile list for stopAndPrintData."
)
return
&
ResourceUsageSummary
{}
}
data
:=
make
(
map
[
int
]
resourceUsagePerContainer
)
for
i
:=
range
g
.
workers
{
stats
:=
computePercentiles
(
g
.
workers
[
i
]
.
dataSeries
,
percentiles
)
data
=
leftMergeData
(
stats
,
data
)
if
g
.
workers
[
i
]
.
finished
{
stats
:=
computePercentiles
(
g
.
workers
[
i
]
.
dataSeries
,
percentiles
)
data
=
leftMergeData
(
stats
,
data
)
}
}
// Workers has been stopped. We need to gather data stored in them.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment