Add stats server with debugging data
What does this MR do?
This MR adds a HTTP Statistics Server with some debugging and statistic data that can be used by monitoring and performance tools.
Server can listen on a tcp
or unix
socket and can be configured both from the config.toml
file and from the command line. Data is returned as JSON which should be a format easy to parse and use in most of present programing languages.
Example of the output:
{
"started_at": "2016-07-01T23:26:58+02:00",
"config_reloaded_at": "2016-07-01T23:26:58+02:00",
"builds_count": 0,
"runners_builds_counts": {
"abc1234": 0,
"def5678": 0
},
"uptime": 0.0517,
"version_info": {
"name": "gitlab-ci-multi-runner",
"version": "1.3.0~beta.25.g9a1953d",
"revision": "9a1953d",
"branch": "feature/stats-server",
"go_version": "go1.6.2",
"built_at": "2016-07-01T23:26:43+02:00",
"os": "linux",
"architecture": "amd64"
}
}
Why was this MR needed?
We need more debugging and statistic data to improve runner's monitoring mechanisms. We also need statistic data to work on performance improvements.
Does this MR meet the acceptance criteria?
-
CHANGELOG entry added -
Documentation created/updated -
Tests -
Added for this feature/bug -
Shared runners are enabled (if you are using a forked repository as a source of this MR) -
All builds are passing
-
-
Branch has no merge conflicts with master (if it does - rebase it please)
/cc @ayufan