从你的普罗米修斯应用程序中获取软件版本。

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 variableDescription
^{tt1}$The path to the stored os packages file.

与django一起使用

  1. 将应用程序标签添加到django设置:

    INSTALLED_APPS=(# ...'versions_client',# ...)...VERSIONS_AUTH=[('admin','secret')]VERSIONS_LABELS={'version':'v1.0','revision':'d0935f4',}
  2. 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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java检查整数是0还是检查变量是null更好?   java Android Kotlin(初学者)使用File(),并从ACTION\u GET\u内容返回Uri   java JavaFx在“内部场景”和根场景之间切换   spring将XMLBean配置转换为java配置   java JPA HIBERNATE映射列两次(embeddedID和POJO)   c#单态模式模型在什么情况下适用?   java请求。getRemoteUser在特定时间后返回null?   spring boot中PUT api控制器的java my单元测试用例失败   java在字符串中互换地解析和替换值   java Android JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起异常   JavaSpringDataMongo:使用非简单键持久化映射   爪哇玻璃鱼连接被拒绝   java如何在用户注册时发送特定电子邮件id的自动回复?   Java列表:实例化时和之后的赋值之间的差异