从你的普罗米修斯应用程序中获取软件版本。
versions-client的Python项目详细描述
将普罗米修斯导出器添加到Web应用程序中以读取版本信息。
安装
pip install versions-client
# This stores the OS packages upfront because it's very resource intensive
os-package-versions > /var/local/os-package-versions.yaml
用法
>>>importversions_client>>>versions_client.generate_versions(version='1.0',revision='d0935f4')# HELP version_application version info.# TYPE version_application gaugeversion_application{version="1.0",revision="d0935f4"}1# HELP version_platform version info.# TYPE version_platform gaugeversion_platform{achitecture="64bit",name="linux",system="4.13.3-coreos",distro_version="8.9",distro_id="debian",distro_name="debian",type="x86_64"}1# HELP version_python version info.# TYPE version_python gaugeversion_python{date="2017-10-10 02:49:49",implementation="cpython",version="2.7.14",compiler="gcc 4.9.2"}1# HELP version_package version info.# TYPE version_package gaugeversion_package{version="4.9.2",group="os",name="libgcc1"}1version_package{version="4.9.2",group="os",name="libitm1"}1version_package{version="2.0.21",group="os",name="libevent-2.0-5"}1...version_package{version="0.30.0",group="python",name="wheel"}1version_package{version="15.1.0",group="python",name="virtualenv"}1version_package{version="1.0.0",group="python",name="versions-client"}1version_package{version="36.5.0",group="python",name="setuptools"}1version_package{version="3.12",group="python",name="pyyaml"}1version_package{version="0.0.21",group="python",name="prometheus-client"}1version_package{version="9.0.1",group="python",name="pip"}1version_package{version="0.2.0",group="python",name="envparse"}1...
设置
Environment variable | Description |
---|---|
^{tt1}$ | The path to the stored os packages file. |
与django一起使用
将应用程序标签添加到django设置:
INSTALLED_APPS=(# ...'versions_client',# ...)...VERSIONS_AUTH=[('admin','secret')]VERSIONS_LABELS={'version':'v1.0','revision':'d0935f4',}
a.添加包含的URL:
# urls.pyfromdjango.conf.urlsimportinclude,urlurlpatterns=[url(r'^',include('versions_client.django.urls')),]
这将在/versionz上创建一个端点。
b.或创建自己的url和视图:
# urls.pyfromdjango.conf.urlsimportinclude,urlfrom.importviewsurlpatterns=[url(r'^metrics$',views.metrics_view,name='prometheus-django-metrics'),]
为了获得更多的度量,可以集成django-prometheus。
在本例中,我们将我们的度量与来自prometheus-client的度量结合起来。
# views.pyimportprometheus_clientfromdjango.confimportsettingsfromdjango.http.responseimportHttpResponseimportversions_client@versions_client.django.auth.basicdefmetrics_view(request):application_labels=getattr(settings,'VERSIONS_LABELS',{})metrics_page=prometheus_client.generate_latest()version_page=versions_client.generate_versions(**application_labels)returnHttpResponse(metrics_page+version_page,content_type=prometheus_client.CONTENT_TYPE_LATEST)