From e6d71bdb659c22249a75499e10557eae0379598c Mon Sep 17 00:00:00 2001 From: masuyama-ascade Date: Sat, 22 Jun 2019 04:20:35 +0900 Subject: [PATCH] Add container_id field to docker_container_status metrics (#6019) --- plugins/inputs/docker/README.md | 1 + plugins/inputs/docker/docker.go | 7 ++++--- plugins/inputs/docker/docker_test.go | 26 ++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/plugins/inputs/docker/README.md b/plugins/inputs/docker/README.md index a26b5763e..e8c8d6366 100644 --- a/plugins/inputs/docker/README.md +++ b/plugins/inputs/docker/README.md @@ -273,6 +273,7 @@ status if configured. - container_status - container_version - fields: + - container_id - oomkilled (boolean) - pid (integer) - exitcode (integer) diff --git a/plugins/inputs/docker/docker.go b/plugins/inputs/docker/docker.go index c57ed5c48..355b8cd8a 100644 --- a/plugins/inputs/docker/docker.go +++ b/plugins/inputs/docker/docker.go @@ -463,9 +463,10 @@ func (d *Docker) gatherContainerInspect( if info.State != nil { tags["container_status"] = info.State.Status statefields := map[string]interface{}{ - "oomkilled": info.State.OOMKilled, - "pid": info.State.Pid, - "exitcode": info.State.ExitCode, + "oomkilled": info.State.OOMKilled, + "pid": info.State.Pid, + "exitcode": info.State.ExitCode, + "container_id": container.ID, } finished, err := time.Parse(time.RFC3339, info.State.FinishedAt) diff --git a/plugins/inputs/docker/docker_test.go b/plugins/inputs/docker/docker_test.go index 376d3ed0c..bf2c26a30 100644 --- a/plugins/inputs/docker/docker_test.go +++ b/plugins/inputs/docker/docker_test.go @@ -756,6 +756,32 @@ func TestDockerGatherInfo(t *testing.T) { "container_status": "running", }, ) + + acc.AssertContainsTaggedFields(t, + "docker_container_status", + map[string]interface{}{ + "container_id": "b7dfbb9478a6ae55e237d4d74f8bbb753f0817192b5081334dc78476296e2173", + "exitcode": int(0), + "oomkilled": false, + "pid": int(1234), + "started_at": int64(1528955333266176036), + //"finished_at": float64(0), + }, + map[string]string{ + "engine_host": "absol", + "container_name": "etcd2", + "container_image": "quay.io:4443/coreos/etcd", + "container_version": "v2.2.2", + "ENVVAR1": "loremipsum", + "ENVVAR2": "dolorsitamet", + "ENVVAR3": "=ubuntu:10.04", + "ENVVAR7": "ENVVAR8=ENVVAR9", + "label1": "test_value_1", + "label2": "test_value_2", + "server_version": "17.09.0-ce", + "container_status": "running", + }, + ) } func TestDockerGatherSwarmInfo(t *testing.T) {