Exporter gathering periodic statistics about GitLab pages via GitLab's API.
There is no builtin way in GitLab to find information about what projects expose pages.
The exporter periodically scrapes the GitLab API to get information about pages
deployments. Since there is no built-in way in GitLab to get all projects with
pages deployments the exporter checks if a project has CI/CD enabled and if so
if there is a job named pages
which was successfully run. If those conditions
are met, the exporter assumes pages are deployed.
Note: Scraping may issue a lot of requests depending on how large your instance is and you might need to check your rate-limiting settings.
The following metrics will be exposed to :2112/metrics
:
Metric Name | Description |
---|---|
gpe_project_pages_enabled |
If GitLab pages are enabled |
gpe_project_pages_total |
Total number of projects with deployed pages |
gpe_custom_domains_verified |
If a custom Domain is verified |
gpe_custom_domains_total |
Total number of custom domains registered |
gpe_projects_checked_total |
Number of projects processed |
gpe_check_running |
If the check is currently running |
gpe_last_check_duration_seconds |
How long the last check took |
gpe_last_check_run_finished_seconds |
When the last check happened |
gpe_next_check_run_scheduled_seconds |
When the next check will happen |
gpe_number_of_scrapes |
How many times the exporter ran since restart |
Currently configuration can only be achieved with environment variables, it is recommended to use the docker image to run the exporter.
Variable Name | Description | Default |
---|---|---|
GPE_GITLAB_ADMIN_READ_TOKEN |
A read-only API token with admin permissions (to be able to fetch all projects). | `` |
GPE_GITLAB_API_URL |
The base URL to your GitLab instance. | `` |
GPE_CRON_SCHEDULE |
Schedule for tests in cron format (seconds, minutes, hours, day of month, month, day of week). | 0 0 2 * * * |
GPE_SET_ALL_PROJECT_METRICS |
If all projects should be exposed as metric, by default only project with pages deployed are exposed. Only set to true if really needed as this grows quick! | false |
Example usage:
docker run -it --rm \
-e GPE_GITLAB_ADMIN_READ_TOKEN=<TOKEN> \
-e GPE_GITLAB_API_URL=<URL> \
-e TZ=Europe/Zurich \
-p 2112:2112 \
ghcr.io/bossm8/gitlab-pages-exporter:latest
Find an example dashboard in the grafana
folder.
Originally developed at Bern University of Applied Sciences (TI): BFH