Skip to content

Commit

Permalink
os_release.go: Added support end parsing support.
Browse files Browse the repository at this point in the history
Fixes: prometheus#2977

Signed-off-by: Jonathan Davies <jpds@protonmail.com>
  • Loading branch information
jpds committed Apr 2, 2024
1 parent 3accd4c commit 0509388
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions collector/os_release.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ type osRelease struct {
BuildID string
ImageID string
ImageVersion string
SupportEnd string
}

type osReleaseCollector struct {
Expand All @@ -65,6 +66,8 @@ type osReleaseCollector struct {
osReleaseFilenames []string // all os-release file names to check
version float64
versionDesc *prometheus.Desc
supportEnd time.Time
supportEndDesc *prometheus.Desc
}

type Plist struct {
Expand Down Expand Up @@ -97,6 +100,11 @@ func NewOSCollector(logger log.Logger) (Collector, error) {
"Metric containing the major.minor part of the OS version.",
[]string{"id", "id_like", "name"}, nil,
),
supportEndDesc: prometheus.NewDesc(
prometheus.BuildFQName(namespace, "os", "support_end_timestamp"),
"Metric containing the end-of-life date of the OS.",
nil, nil,
),
}, nil
}

Expand All @@ -115,6 +123,7 @@ func parseOSRelease(r io.Reader) (*osRelease, error) {
BuildID: env["BUILD_ID"],
ImageID: env["IMAGE_ID"],
ImageVersion: env["IMAGE_VERSION"],
SupportEnd: env["SUPPORT_END"],
}, err
}

Expand Down Expand Up @@ -169,6 +178,12 @@ func (c *osReleaseCollector) UpdateStruct(path string) error {
} else {
c.version = 0
}

c.supportEnd, err = time.Parse("2006-01-02", c.os.SupportEnd)
if err != nil {
return err
}

return nil
}

Expand All @@ -195,6 +210,9 @@ func (c *osReleaseCollector) Update(ch chan<- prometheus.Metric) error {
ch <- prometheus.MustNewConstMetric(c.versionDesc, prometheus.GaugeValue, c.version,
c.os.ID, c.os.IDLike, c.os.Name)
}

ch <- prometheus.MustNewConstMetric(c.supportEndDesc, prometheus.GaugeValue, float64(c.supportEnd.Unix()))

return nil
}

Expand Down

0 comments on commit 0509388

Please sign in to comment.