End-of-Life Exporter
A Prometheus exporter to track product versions and their End-of-Life (EOL) dates via the endoflife.date API. Information is fetched only when Prometheus scrapes /metrics.
Configuration
Configure products and release cycles as shown below.
Always verify names on endoflife.date. If no release is specified, it defaults to the latest available.
---
products:
- name: mongo
releases:
- "8.0"
Deployment
Usages
Usage: endoflife_exporter [flags]
Flags:
-h, --help Show context-sensitive help.
--address=":8080" The address where the server should listen on ($ADDRESS).
--config="config.yml" Configuration file path ($CONFIG_FILE)
--log.format="json" Set the output format of the logs. Must be "console" or "json" ($LOG_FORMAT).
--log.level=INFO Set the log level. Must be "DEBUG", "INFO", "WARN" or "ERROR" ($LOG_LEVEL).
--log.add-source Whether to add source file and line number to log records ($LOG_ADD_SOURCE).
Docker Compose
---
services:
endoflife_exporter:
image: ghcr.io/veerendra2/endoflife_exporter:latest
container_name: endoflife_exporter
restart: unless-stopped
environment:
ADDRESS: ":8080"
CONFIG_FILE: "/config.yml"
volumes:
- ./config.yml:/config.yml
ports:
- 8080:8080
docker compose up -d
📊 Metrics
# HELP endoflife_eol_from_timestamp_seconds Unix timestamp when a product's release cycle reaches its End-of-Life (EOL) or maintenance end.
# TYPE endoflife_eol_from_timestamp_seconds gauge
endoflife_eol_from_timestamp_seconds{product_name="mongo",release_cycle_name="8.1"} 1.7591904e+09
# HELP endoflife_latest_version_timestamp_seconds Unix timestamp of the latest version release date for a product's release cycle.
# TYPE endoflife_latest_version_timestamp_seconds gauge
endoflife_latest_version_timestamp_seconds{product_name="mongo",release_cycle_name="8.1"} 1.751328e+09
# HELP endoflife_product_info Information about the End-of-Life (EOL) status and details of a product.
# TYPE endoflife_product_info gauge
endoflife_product_info{is_eol="false",is_lts="false",is_maintained="true",latest_version="8.1.2",product_name="mongo",release_cycle_name="8.1"} 1
# HELP endoflife_release_cycle_timestamp_seconds Unix timestamp of the release cycle's official release date.
# TYPE endoflife_release_cycle_timestamp_seconds gauge
endoflife_release_cycle_timestamp_seconds{product_name="mongo",release_cycle_name="8.1"} 1.7503776e+09