Если будете использовать групповой токен, например чтобы собирать одним токеном сразу по всем проектам группы, то "сам себя" он видеть не будет, у группового токена другое API. Но мониторить все же можно, например задать статично переменную
gitlab с timestamp вида:<gitlab_domain_name> : <timestamp> ,<gitlab_domain_name> : <timestamp>, <gitlab_domain_name> : <timestamp>
И далее получить так:
vector(${gitlab:value} - time())
Если используется точечный проект из конфига exporter-а, то токен доступа видит сам себя.
Код тут.
Также приложу статичный scrape для витории на всякий случай
- job_name: gitlab-access-token-exporter
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: monitoring;gitlab-access-token-exporter;http
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name]
replacement: ${1}/${2}
target_label: kubernetes_service
- target_label: gitlab
replacement: <you gitlab domain name>
И вырожение для grafana alerts:
gitlab_project_access_token_expires_in_seconds > 0 and gitlab_project_access_token_expires_in_seconds < 14 * 24 * 3600
Тут алерт придет по токену, которому осталось 14 дней.
#monitoring