Skip to content

Prometheus exporter for OS, kernel, and installed software End-of-Life (EOL) information.

License

Notifications You must be signed in to change notification settings

dpavle/eol-exporter

Repository files navigation

eol-exporter

License: GPL v3 Go Version Build Status Latest Release Prometheus Exporter

eol-exporter is a Prometheus exporter that exposes End-of-Life (EOL) information about your operating system, kernel, and installed software. By default, it collects and exports EOL data for your OS and kernel.

Additional software or products can be included via a simple plugin system, allowing you to monitor EOL status for any software or product.

The EOL data is pulled from the endoflife.date API and is refreshed every 24 hours.

Partially inspired by reimlima/endoflife_exporter


Installation

Build from source:

git clone https://github.com/dpavle/eol-exporter.git
cd eol-exporter
go build -o eol-exporter

Or download a pre-built binary from Releases.

Usage

Start the exporter with default settings:

./eol-exporter

Options:

  • --config — Path to config file
  • --listen-port — Port to start HTTP exporter on (default: 3020)
  • --listen-address — Address to start HTTP exporter on (default: 0.0.0.0)

Example:

./eol-exporter --listen-port=3020 --listen-address=127.0.0.1

Prometheus Scrape Config

Add to your prometheus.yml:

scrape_configs:
  - job_name: 'eol-exporter'
    static_configs:
      - targets: ['localhost:3020']

Plugins

Extend monitoring to additional software/products by adding plugins. See the plugins documentation for details.

Example Metrics

# HELP eol_date End of life date for the product release cycle. Expressed in seconds since Unix epoch (Unix Timestamp).
# TYPE eol_date gauge
eol_date{codename="",host="fedora",label="6.14",name="6.14",product="linux"} 1.7495136e+09
eol_date{codename="Adams",host="fedora",label="42 (Adams)",name="42",product="fedora"} 1.7786304e+09
# HELP product_details_info Full details of a product.
# TYPE product_details_info gauge
product_details_info{category="os",host="fedora",label="Fedora Linux",name="fedora",product="fedora",versionCommand="cat /etc/fedora-release"} 1
product_details_info{category="os",host="fedora",label="Linux Kernel",name="linux",product="linux",versionCommand="uname -r"} 1
# HELP product_release_info Full information about a product release cycle.
# TYPE product_release_info gauge
product_release_info{codename="",host="fedora",isEoas="false",isEoes="false",isEol="true",isLts="false",isMaintained="false",label="6.14",latest_link="https://kernelnewbies.org/Linux_6.14",latest_name="6.14.11",name="6.14",product="linux"} 1
product_release_info{codename="Adams",host="fedora",isEoas="false",isEoes="false",isEol="false",isLts="false",isMaintained="true",label="42 (Adams)",latest_link="",latest_name="",name="42",product="fedora"} 1
# HELP release_date Release date of the product release cycle. Expressed in seconds since Unix epoch (Unix Timestamp).
# TYPE release_date gauge
release_date{codename="",host="fedora",label="6.14",name="6.14",product="linux"} 1.7427744e+09
release_date{codename="Adams",host="fedora",label="42 (Adams)",name="42",product="fedora"} 1.7446752e+09

Data Source

License

This project is licensed under the GNU GPLv3 License. See LICENSE for details.

Contributing

Contributions are welcome!


Acknowledgements: endoflife.date for lifecycle data.

About

Prometheus exporter for OS, kernel, and installed software End-of-Life (EOL) information.

Topics

Resources

License

Stars

Watchers

Forks

Languages