使用Gitlab语言API为Gitlab存储库生成普罗米修斯数据源文本文件的实用程序
gitlab-languages的Python项目详细描述
Gitlab_语言
为Gitlab实例生成普罗米修斯数据源文本文件的实用程序 使用GitLab Language API
从PYPI安装
从pypi安装为程序
pip install -U gitlab-languages
运行程序
gitlab_languages --cache cache.json --args owned=True # more info about usage: see below
从源安装
安装pipenv
pip install pipenv
安装python依赖项
pipenv install pipenv shell
设置所需的环境变量
exportGITLAB_ACCESS_TOKEN=<SOME_TOKEN_WITH_API_SCOPE> exportGITLAB_URL=https://gitlab.com # optional, defaults to https://gitlab.com# optional:exportWORKER_COUNT=24
运行脚本
python gitlab_languages.py
用法
usage: gitlab_languages [-h] [--project_limit PROJECT_LIMIT] [--args ARGS [ARGS ...]] [--groups GROUPS [GROUPS ...]] [--ignore_groups IGNORE_GROUPS [IGNORE_GROUPS ...]] [--cache CACHE] [-o OUTPUT] optional arguments: -h, --help show this help message and exit --project_limit PROJECT_LIMIT Set project limit to scan --args ARGS [ARGS ...] Provide custom args to the GitLab API --groups GROUPS [GROUPS ...] Scan only certain groups --ignore_groups IGNORE_GROUPS [IGNORE_GROUPS ...] Ignore certain groups and their projects --cache CACHE Cache file to use -o OUTPUT, --output OUTPUT Location of the metrics file output
附加参数
您可以指定其他参数,这些参数将直接提供给 python-gitlab library或gitlab api端点。 示例:
python3 gitlab_languages --args owned=True
有关可用附加参数的更多信息,请在此处找到:
示例输出
输出如下:
metrics.txt # HELP languages_percent Languages scanned in percent # TYPE languages_percent gauge languages_percent{language="Java"} 11.73 languages_percent{language="CSS"} 1.97 languages_percent{language="TypeScript"} 3.5 languages_percent{language="HTML"} 6.14 languages_percent{language="JavaScript"} 17.16 languages_percent{language="Python"} 10.4 languages_percent{language="Modelica"} 3.7 languages_percent{language="TeX"} 1.64 languages_percent{language="Shell"} 6.35 languages_percent{language="Batchfile"} 0.76 languages_percent{language="HCL"} 7.15 languages_percent{language="BitBake"} 0.56 languages_percent{language="C"} 5.25 languages_percent{language="C++"} 0.72 languages_percent{language="Matlab"} 2.77 languages_percent{language="TXL"} 0.05 languages_percent{language="Objective-C"} 1.48 languages_percent{language="XSLT"} 1.68 languages_percent{language="Perl"} 1.71 languages_percent{language="Ruby"} 0.03 languages_percent{language="C#"} 10.3 languages_percent{language="PowerShell"} 0.11 languages_percent{language="Pascal"} 0.01 languages_percent{language="ASP"} 0.0 languages_percent{language="PLpgSQL"} 0.0 languages_percent{language="Makefile"} 2.06 languages_percent{language="SQLPL"} 0.0 languages_percent{language="Puppet"} 0.0 languages_percent{language="Groovy"} 2.56 languages_percent{language="M4"} 0.01 languages_percent{language="Roff"} 0.15 languages_percent{language="CMake"} 0.01 languages_percent{language="NSIS"} 0.01 languages_percent{language="PHP"} 0.0 languages_percent{language="Go"} 0.0 languages_percent{language="Smalltalk"} 0.02 languages_percent{language="Visual Basic"} 0.0 languages_percent{language="Smarty"} 0.0 # HELP languages_scanned_total Total languages scanned # TYPE languages_scanned_total gauge languages_scanned_total 38.0 # HELP projects_scanned_total Total projects scanned # TYPE projects_scanned_total gauge projects_scanned_total 61.0 # HELP projects_skipped_total Total projects skipped # TYPE projects_skipped_total gauge projects_skipped_total 0.0 # HELP projects_no_language_total Projects without language detected # TYPE projects_no_language_total gauge projects_no_language_total 39.0 # HELP groups_scanned_total Total groups scanned # TYPE groups_scanned_total gauge groups_scanned_total 0.0
通过gitlab ci和schedules运行脚本,并将metrics.txt文件导出为gitlab页面。 然后可以将其作为scrape source添加到prometheus实例中。