jetstack / jetstack/version-checker

[FEATURE] Expose application name as a label in Prometheus metrics

Open
#448 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
778
Forks
82
Avg merge
2m
Merged PRs (30d)
3

Description

**Is your feature request related to a problem? Please describe.**
I'm always frustrated when I look at the version-checker Grafana dashboard and see an outdated image (for example, `bitnami/redis`), but I can't immediately tell which specific third-party application or internal service is using it. In clusters with many deployments, I have to manually cross-reference the namespace or pod name to figure out which application owns the image before I can take action.

**Describe the solution you'd like**
I would like `version-checker` to natively expose the application name as a label in its generated Prometheus metrics.

Ideally, the controller could extract this from a dedicated annotation like `version-checker.io/app-name`, or fallback to standard Kubernetes resource labels (such as `app.kubernetes.io/name` or `app`) on the pod/deployment. Mapping this to an `app_name` or `application` label in the exported metric would allow the official Grafana dashboards to easily display which specific application is associated with which image(s), significantly improving visibility.

**Describe alternatives you've considered**
My current alternative/workaround is manually adding custom annotations to my deployments alongside the standard version-checker configs, like this:

```
podAnnotations:
enable.version-checker.io/controller: "true"
version-checker.io/app-name: "Karpenter"
match-regex.version-checker.io/controller: ^v?\d+\.\d+\.\d+.*
```
While this allows me to attach the metadata to the pod, it still requires complex, expensive PromQL queries using `kube-state-metrics` (e.g., `kube_pod_annotations`) to join this custom annotation with the actual `version-checker` metrics in Grafana. This slows down dashboard load times and makes the PromQL very difficult to maintain.

**Additional context**
Add any other context or screenshots about the feature request here.

---

**Message from the maintainers**:

If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Contributor guide

Open the contributing guide

Research direction

Start by locating the code that generates version-checker Prometheus metrics and the code that reads Kubernetes pod or deployment metadata. Compare the dedicated version-checker.io/app-name annotation with app.kubernetes.io/name and app labels, then define the exported label behavior and verify that the resulting metrics support the intended Grafana dashboard use case.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, grafana, kubernetes, prometheus
Domain
devops, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.