基于Tornado和Apscheduler的非常简单、可配置的监控服务。

rakomon的Python项目详细描述


Rakomon是为最简单、最愚蠢的监视任务而设计的,不需要日志记录、缓存等。
它只是封装了一些Tornado和Apscheduler功能,以便定期运行简单的任务,将结果存储在内存中,并在application/json中提供。
您可以使用monitor和endpoint模块自动提供度量,也可以单独实例化monitor.monitor类,以便在您认为合适的情况下使用它。

我建立这个存储库主要是为了学习如何维护一个开源项目。这取决于你的评估,如果拉科蒙是生产准备。

依赖关系
rakomon仅限于python 3。它还需要Tornado和Apscheduler。

您只需要获得默认的“monitor”实例,然后将度量定义为函数,并用“monitor.metric”装饰符装饰它们。
度量函数应返回数字或字符串。ITerables的支持计划在未来。
定义度量之后,调用“endpoint.run()”启动一个简单的Tornado服务器来为它们提供服务。默认情况下,它将绑定到本地主机上的端口80。
``python
import psutil

端点

m=monitor.default()

@m.metric
def cpu():
return psutil.cpu百分比(interval=1)

@m.metric
def ram():
return psutil.virtual_memory().percent

endpoint.run()
``````
``sh
$curl http://127.0.0.1/rakomon
{“cpu”:2.3,“ram”:33.1}
```

可以将配置作为关键字参数传递。如果未提供kwargs,rakomon将使用默认值。

\monitor.monitor
*`scheduler`-继承自'apscheduler.schedulers.base.basescheduler'的类。当您希望在不包含端点的情况下单独使用监视器时非常有用。有关调度程序的详细信息,请参阅[apscheduler docs](http://apscheduler.readthedocs.io)。默认为“tornado scheduler”。
*`metric_interval`-度量运行之间的空闲秒数。默认值为“5”。
*“round\u ndigts”-舍入度量值时的位数。当然,仅适用于数值。默认为“2”。

默认为“monitor.default()”。
*`address`-要将Tornado终结点绑定到的地址。默认为“127.0.0.1”。
*`port`-要将龙卷风端点绑定到的端口。默认值为“80”。
*`url_path`-默认值为'r'/rakomon`。

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

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List