jetstack / jetstack/version-checker
[FEATURE] Expose application name as a label in Prometheus metrics
- Langage dominant
- Go
- Étoiles
- 778
- Forks
- 82
- Merge moyen
- 2 min
- PR mergées (30 j)
- 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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- go, grafana, kubernetes, prometheus
- Domaine
- devops, observability
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100