https://github.com/jamf/gitlab_license_exporter
Gitlab License Information exporter
https://github.com/jamf/gitlab_license_exporter
Last synced: 11 months ago
JSON representation
Gitlab License Information exporter
- Host: GitHub
- URL: https://github.com/jamf/gitlab_license_exporter
- Owner: jamf
- License: mit
- Archived: true
- Created: 2020-06-16T13:09:57.000Z (about 6 years ago)
- Default Branch: prod
- Last Pushed: 2023-06-27T17:57:52.000Z (almost 3 years ago)
- Last Synced: 2025-04-04T17:50:27.436Z (about 1 year ago)
- Language: Go
- Size: 16.6 KB
- Stars: 3
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://jenkins.jamf.build/job/Devops/job/Build%20Infrastructure/job/Gitlab/job/gitlab-exporter-github/job/master/)
# Gitlab license exporter
Exposes License expiration date and active users from the Gitlab API, to a Prometheus compatible endpoint.
## Configuration
This exporter is setup to take input from environment variables:
### Required
* `TOKEN`: Admin token
### Optional
* `URL`: Gitlab url example: `https://gitlab.domain.com` (by default will use k8s service `gitlab-web`)
## Build and run
### Manually
```
go get
go build gitlabgoexporter.go
export TOKEN=token123token
export URL=https://gitlab.domain.com
./gitlabgoexporter.go
```
Visit http://localhost:2222
### Docker
Build a docker image:
`docker build -t .`
Run:
* Custom URL:
`docker image --env TOKEN=token123token --env URL=https://gitlab.domain.com `
* Kubernetes Gitlab-Web service:
`docker image --env TOKEN=token123token `
### Kubernetes
```
apiVersion: v1
kind: Secret
metadata:
name: gitlab-token
namespace: {{ NAMESPACE }}
labels:
app: gitlab-exporter
type: Opaque
data:
token: {{ TOKEN | b64encode }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitlab-exporter
namespace: {{ NAMESPACE }}
labels:
app: gitlab-exporter
spec:
replicas: 1
selector:
matchLabels:
app: gitlab-exporter
template:
metadata:
labels:
app: gitlab-exporter
spec:
containers:
- name: gitlab-exporter
image: {{{ image-name }}}
ports:
- containerPort: 2222
env:
- name: TOKEN
valueFrom:
secretKeyRef:
name: gitlab-token
key: token
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
---
apiVersion: v1
kind: Service
metadata:
name: gitlab-exporter-svc
namespace: {{ NAMESPACE }}
labels:
app: gitlab-exporter
spec:
selector:
app: gitlab-exporter
ports:
- name: metrics
port: 8080
targetPort: 2222
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: gitlab-export-metrics
namespace: {{ NAMESPACE }}
spec:
selector:
matchLabels:
app: gitlab-exporter
endpoints:
- port: metrics
path: /
interval: 30s
```
## Metrics
Metrics will be available on port 2222 by default
## Collectors
```
# HELP gitlab_active_users Gitlab active users
# HELP gitlab_license_expires_at Gitlab expiration day
# HELP gitlab_scrape_success Gitlab go exporter scrape status when try to read the API
# HELP gitlab_user_limit Users allowed by license
```