mirror of
https://github.com/containers/podman.git
synced 2025-05-17 15:18:43 +08:00
Show Health Status events
Previously, health status events were not being generated at all. Both the API and `podman events` will generate health_status events. ``` {"status":"health_status","id":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","from":"localhost/healthcheck-demo:latest","Type":"container","Action":"health_status","Actor":{"ID":"ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63","Attributes":{"containerExitCode":"0","image":"localhost/healthcheck-demo:latest","io.buildah.version":"1.26.1","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"healthcheck-demo"}},"scope":"local","time":1656082205,"timeNano":1656082205882271276,"HealthStatus":"healthy"} ``` ``` 2022-06-24 11:06:04.886238493 -0400 EDT container health_status ae498ac3aa6c63db8b69a37583a6eae1a9cefbdbdbeeadcf8e1d66d745f0df63 (image=localhost/healthcheck-demo:latest, name=healthcheck-demo, health_status=healthy, io.buildah.version=1.26.1, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>) ``` Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
This commit is contained in:
@ -40,6 +40,8 @@ type Event struct {
|
||||
Time time.Time
|
||||
// Type of event that occurred
|
||||
Type Type
|
||||
// Health status of the current container
|
||||
HealthStatus string `json:"health_status,omitempty"`
|
||||
|
||||
Details
|
||||
}
|
||||
@ -141,6 +143,8 @@ const (
|
||||
Exited Status = "died"
|
||||
// Export ...
|
||||
Export Status = "export"
|
||||
// HealthStatus ...
|
||||
HealthStatus Status = "health_status"
|
||||
// History ...
|
||||
History Status = "history"
|
||||
// Import ...
|
||||
|
@ -76,7 +76,7 @@ func (e *Event) ToHumanReadable(truncate bool) string {
|
||||
}
|
||||
switch e.Type {
|
||||
case Container, Pod:
|
||||
humanFormat = fmt.Sprintf("%s %s %s %s (image=%s, name=%s", e.Time, e.Type, e.Status, id, e.Image, e.Name)
|
||||
humanFormat = fmt.Sprintf("%s %s %s %s (image=%s, name=%s, health_status=%s", e.Time, e.Type, e.Status, id, e.Image, e.Name, e.HealthStatus)
|
||||
// check if the container has labels and add it to the output
|
||||
if len(e.Attributes) > 0 {
|
||||
for k, v := range e.Attributes {
|
||||
@ -168,6 +168,8 @@ func StringToStatus(name string) (Status, error) {
|
||||
return Exited, nil
|
||||
case Export.String():
|
||||
return Export, nil
|
||||
case HealthStatus.String():
|
||||
return HealthStatus, nil
|
||||
case History.String():
|
||||
return History, nil
|
||||
case Import.String():
|
||||
|
@ -58,6 +58,7 @@ func (e EventJournalD) Write(ee Event) error {
|
||||
}
|
||||
m["PODMAN_LABELS"] = string(b)
|
||||
}
|
||||
m["PODMAN_HEALTH_STATUS"] = ee.HealthStatus
|
||||
case Network:
|
||||
m["PODMAN_ID"] = ee.ID
|
||||
m["PODMAN_NETWORK_NAME"] = ee.Network
|
||||
@ -214,6 +215,7 @@ func newEventFromJournalEntry(entry *sdjournal.JournalEntry) (*Event, error) { /
|
||||
newEvent.Details = Details{Attributes: labels}
|
||||
}
|
||||
}
|
||||
newEvent.HealthStatus = entry.Fields["PODMAN_HEALTH_STATUS"]
|
||||
case Network:
|
||||
newEvent.ID = entry.Fields["PODMAN_ID"]
|
||||
newEvent.Network = entry.Fields["PODMAN_NETWORK_NAME"]
|
||||
|
Reference in New Issue
Block a user