Add container status tag to docker input (#4259)
This commit is contained in:
		
							parent
							
								
									4e9e57e210
								
							
						
					
					
						commit
						98d86df797
					
				|  | @ -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{}{ | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
| 		}, | 		}, | ||||||
| 	) | 	) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -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", | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue