用于创建普罗米修斯导出器的异步库。

prometheus-aioexporter的Python项目详细描述


Latest VersionBuild StatusCoverage Status

Prometheus AioExporter是一个Aysncio驱动的库,可以简化编写 Prometheus出口商。

导出器通常被实现为公开度量的小守护进程 以文本格式通过web端点(通常是/metrics)。

用法

库提供了一个PrometheusExporterScript类,它充当 创建通过http导出prometheus度量的服务的入口点 端点。

创建一个新的导出器只是一个子类化的问题 PrometheusExporterScript并根据需要实现一些方法。

示例用法如下:

fromprometheus_aioexporterimportPrometheusExporterScriptclassMyExporter(PrometheusExporterScript):"""My Prometheus exporter."""defconfigure_argument_parser(self,parser):# Additional arguments to the scriptparser.add_argument('an-option',help='an option')# ...defconfigure(self,args):# Save attributes that are needed for laterself.data=do_stuff()# ...asyncdefon_application_startup(self,application):# Start other asyncio tasks at application startupuse(self.data)# ...asyncdefon_application_shutdown(self,application):# Stop other asyncio tasks at application shutdownuse(self.data)# ...script=MyExporter()

导出器命令行

PrometheusExporterScript默认情况下提供一些命令行参数:

optional arguments:
  -h, --help            show this help message and exit
  -H HOST, --host HOST  host address to bind (default: localhost)
  -p PORT, --port PORT  port to run the webserver on (default: 9090)
  -L {CRITICAL,ERROR,WARNING,INFO,DEBUG}, --log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG}
                        minimum level for log messages (default: WARNING)
  --process-stats       include process stats in metrics (default: False)

通过实现configure_argument_parser(),可以添加更多选项, 它接收脚本使用的argparse.ArgumentParser实例。

上面例子中的script变量可以在 setup.py生成脚本,如

setup(...,entry_points={'console_scripts':['script = path.to.script:script']},...)

导出器的namedescription可以通过 在脚本类中设置相应的属性。

启动配置

附加的初始设置(例如配置文件解析)可以由 通过实现configure()编写脚本。在启动时调用 已分析参数(一个argparse.Namespace实例)。

指标配置

脚本导出的度量可以通过调用^{tt13}来设置$ 有一个MetricConfigs的列表。这通常在configure()

中完成
defconfigure(self,args):# ...self.create_metrics([MetricConfig('metric1','a metric','gauge',{}),MetricConfig('metric2','another metric','counter',{})])

Web应用程序设置

启动时,PrometheusExporterScript创建一个PrometheusExporter,它 包括公开度量的web应用程序。

可以通过以下方式自定义和执行其他启动/关闭任务 实现on_application_startupon_application_shutdown 协同路由方法,以应用程序作为参数调用。

PrometheusExporter实例可以通过 application['exporter'],并提供一个set_metric_update_handler 方法在 将响应返回给客户端。注册的函数必须返回 协同路由,并通过dict将度量名称映射到度量对象来调用:

asyncdefon_application_startup(self,application):# ...application.set_metric_update_handler(self._update_handler)asyncdef_update_handler(self,metrics):forname,metricinmetrics.items():metric.set(...)

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

推荐PyPI第三方库


热门话题
java如何为ConcurrentHashMap使用并设置适当的并发级别?   java泛型方法,运行时错误,   java在页面上显示加载的图像   java Paypal定期直接支付问题   java如何延迟重新绘制组件   JavaSpringBoot+Hibernate如何维护@Transient字段   java在其方法中获取关于类的信息   在java中将别名添加到枚举   java如何解决向google报告成绩时“需要重新连接客户端”的问题   清晰的java图像背景   java未找到适合JDateChooser的构造函数(字符串、字符串、字符)   java LRU缓存实现。某些测试用例的代码失败   if语句Java嵌套的if/Else条件   java JSoup“wrap”并非每次都按预期工作   Java Spring引导循环依赖于一个环境   ssl证书无法通过Java和IntelliJ连接到SOAP服务   带整数验证的Java扫描器   java在Flex中呈现具有动态列的datagrid   java Android:通过用户选择的选项将文件上载到服务器   子类中的java抛出错误、异常和运行时异常