Add container status tag to docker input (#4259)

This commit is contained in:
prashanthjbabu 2018-06-19 04:03:14 +05:30 committed by Daniel Nelson
parent cc63c25549
commit f74503087c
3 changed files with 25 additions and 0 deletions

View File

@ -435,6 +435,23 @@ func (d *Docker) gatherContainer(
} }
} }
} }
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,
}
container_time, err := time.Parse(time.RFC3339, info.State.StartedAt)
if err == nil && !container_time.IsZero() {
statefields["started_at"] = container_time.UnixNano()
}
container_time, err = time.Parse(time.RFC3339, info.State.FinishedAt)
if err == nil && !container_time.IsZero() {
statefields["finished_at"] = container_time.UnixNano()
}
acc.AddFields("docker_container_status", statefields, tags, time.Now())
}
if info.State.Health != nil { if info.State.Health != nil {
healthfields := map[string]interface{}{ healthfields := map[string]interface{}{

View File

@ -653,6 +653,7 @@ func TestDockerGatherInfo(t *testing.T) {
"label1": "test_value_1", "label1": "test_value_1",
"label2": "test_value_2", "label2": "test_value_2",
"server_version": "17.09.0-ce", "server_version": "17.09.0-ce",
"container_status": "running",
}, },
) )
acc.AssertContainsTaggedFields(t, acc.AssertContainsTaggedFields(t,
@ -676,6 +677,7 @@ func TestDockerGatherInfo(t *testing.T) {
"label1": "test_value_1", "label1": "test_value_1",
"label2": "test_value_2", "label2": "test_value_2",
"server_version": "17.09.0-ce", "server_version": "17.09.0-ce",
"container_status": "running",
}, },
) )
} }

View File

@ -484,6 +484,12 @@ var containerInspect = types.ContainerJSON{
FailingStreak: 1, FailingStreak: 1,
Status: "Unhealthy", Status: "Unhealthy",
}, },
Status: "running",
OOMKilled: false,
Pid: 1234,
ExitCode: 0,
StartedAt: "2018-06-14T05:48:53.266176036Z",
FinishedAt: "0001-01-01T00:00:00Z",
}, },
}, },
} }