Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
d6ccfd92
Unverified
Commit
d6ccfd92
authored
Jun 17, 2019
by
Péter Szilágyi
Committed by
GitHub
Jun 17, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #19725 from karalabe/goroutine-metrics
metrics: gather and export threads and goroutines
parents
79c90dce
5298eb75
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
21 deletions
+21
-21
metrics.go
metrics/metrics.go
+21
-21
No files found.
metrics/metrics.go
View file @
d6ccfd92
...
...
@@ -73,28 +73,26 @@ func CollectProcessMetrics(refresh time.Duration) {
diskstats
[
i
]
=
new
(
DiskStats
)
}
// Define the various metrics to collect
cpuSysLoad
:=
GetOrRegisterGauge
(
"system/cpu/sysload"
,
DefaultRegistry
)
cpuSysWait
:=
GetOrRegisterGauge
(
"system/cpu/syswait
"
,
DefaultRegistry
)
cpuProcLoad
:=
GetOrRegisterGauge
(
"system/cpu/procload
"
,
DefaultRegistry
)
memPauses
:=
GetOrRegisterMeter
(
"system/memory/pause
s"
,
DefaultRegistry
)
memAllocs
:=
GetOrRegisterMeter
(
"system/memory/alloc
s"
,
DefaultRegistry
)
memFrees
:=
GetOrRegisterMeter
(
"system/memory/frees"
,
DefaultRegistry
)
memHeld
:=
GetOrRegisterGauge
(
"system/memory/held
"
,
DefaultRegistry
)
memUsed
:=
GetOrRegisterGauge
(
"system/memory/used
"
,
DefaultRegistry
)
var
diskReads
,
diskReadBytes
,
diskWrites
,
diskWriteBytes
Meter
var
diskReadBytesCounter
,
diskWriteBytesCounter
Counter
if
err
:=
ReadDiskStats
(
diskstats
[
0
]);
err
==
nil
{
diskReads
=
GetOrRegisterMeter
(
"system/disk/readcount"
,
DefaultRegistry
)
diskReadBytes
=
GetOrRegisterMeter
(
"system/disk/readdata"
,
DefaultRegistry
)
diskReadBytesCounter
=
GetOrRegisterCounter
(
"system/disk/readbytes"
,
DefaultRegistry
)
diskWrites
=
GetOrRegisterMeter
(
"system/disk/writecount"
,
DefaultRegistry
)
diskWriteBytes
=
GetOrRegisterMeter
(
"system/disk/writedata"
,
DefaultRegistry
)
var
(
cpuSysLoad
=
GetOrRegisterGauge
(
"system/cpu/sysload
"
,
DefaultRegistry
)
cpuSysWait
=
GetOrRegisterGauge
(
"system/cpu/syswait
"
,
DefaultRegistry
)
cpuProcLoad
=
GetOrRegisterGauge
(
"system/cpu/procload"
,
DefaultRegistry
)
cpuThreads
=
GetOrRegisterGauge
(
"system/cpu/thread
s"
,
DefaultRegistry
)
cpuGoroutines
=
GetOrRegisterGauge
(
"system/cpu/goroutine
s"
,
DefaultRegistry
)
memPauses
=
GetOrRegisterMeter
(
"system/memory/pauses
"
,
DefaultRegistry
)
memAllocs
=
GetOrRegisterMeter
(
"system/memory/allocs
"
,
DefaultRegistry
)
memFrees
=
GetOrRegisterMeter
(
"system/memory/frees"
,
DefaultRegistry
)
memHeld
=
GetOrRegisterGauge
(
"system/memory/held"
,
DefaultRegistry
)
memUsed
=
GetOrRegisterGauge
(
"system/memory/used"
,
DefaultRegistry
)
diskReads
=
GetOrRegisterMeter
(
"system/disk/readcount"
,
DefaultRegistry
)
diskReadBytes
=
GetOrRegisterMeter
(
"system/disk/readdata"
,
DefaultRegistry
)
diskReadBytesCounter
=
GetOrRegisterCounter
(
"system/disk/readbytes"
,
DefaultRegistry
)
diskWrites
=
GetOrRegisterMeter
(
"system/disk/writecount"
,
DefaultRegistry
)
diskWriteBytes
=
GetOrRegisterMeter
(
"system/disk/writedata"
,
DefaultRegistry
)
diskWriteBytesCounter
=
GetOrRegisterCounter
(
"system/disk/writebytes"
,
DefaultRegistry
)
}
else
{
log
.
Debug
(
"Failed to read disk metrics"
,
"err"
,
err
)
}
)
// Iterate loading the different stats and updating the meters
for
i
:=
1
;
;
i
++
{
location1
:=
i
%
2
...
...
@@ -104,6 +102,8 @@ func CollectProcessMetrics(refresh time.Duration) {
cpuSysLoad
.
Update
((
cpuStats
[
location1
]
.
GlobalTime
-
cpuStats
[
location2
]
.
GlobalTime
)
/
refreshFreq
)
cpuSysWait
.
Update
((
cpuStats
[
location1
]
.
GlobalWait
-
cpuStats
[
location2
]
.
GlobalWait
)
/
refreshFreq
)
cpuProcLoad
.
Update
((
cpuStats
[
location1
]
.
LocalTime
-
cpuStats
[
location2
]
.
LocalTime
)
/
refreshFreq
)
cpuThreads
.
Update
(
int64
(
threadCreateProfile
.
Count
()))
cpuGoroutines
.
Update
(
int64
(
runtime
.
NumGoroutine
()))
runtime
.
ReadMemStats
(
memstats
[
location1
])
memPauses
.
Mark
(
int64
(
memstats
[
location1
]
.
PauseTotalNs
-
memstats
[
location2
]
.
PauseTotalNs
))
...
...
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