Skip to main content

Python 中监控的多处理队列

项目描述

圈子CI 更新 蟒蛇 3 资源

什么是mnqueues?

mnqueues代表 Monitored Queues - Python multiprocessingQueue() 和 Monitor 实体之间的耦合。监视器收集队列使用统计信息并发出警报。

跟踪措施

mnqueues跟踪每个队列的几个度量:

  1. 每分钟写入队列的平均次数,
  2. 每分钟要排队的平均读取次数,
  3. 在队列中花费的时间(延迟)以毫秒为单位。

安装

要安装mnqueues类型:

pip install mnqueues

如何使用

创建监控队列:

import mnqueues as mnq
from mnqueues.gcp_monitor import GCPMonitor

q = mnq.MNQueue(monitor=GCPMonitor("some-unique-name"))

MNQueue()对象封装了 Pythonmultiprocessing.Queue()并支持相同的功能。MNQueue() 对象可以在进程之间传递,就像 Queue() 对象一样。

监视器

文件记录器

from mnqueues.log_monitor import LOGMonitor

monitor = LOGMonitor("log-file-name")

记录所有put()get()调用到具有log-file-name.log以下格式的名称的日志文件:

[<OS process-id>]->2021-07-07 21:31:14 INFO:get counter: 5003
[<OS process-id>]->2021-07-07 21:31:14 INFO:get counter: 4997

谷歌云监视器(使用 StackDriver)

from mnqueues.gcp_monitor import GCPMonitor

monitor = GCPMonitor("unique-name")

所有对 Google Cloud Monitor 的调用put()get()发送到 Google Cloud Monitor。Monitor 类将数据发送到两个自定义度量:

  1. OpenCensus/mnqueues.{name}.number_queue_get(行,不需要 GCP 上的聚合)
  2. OpenCensus/mnqueues.{name}.number_queue_put(行,不需要 GCP 上的聚合)
  3. OpenCensus/mnqueues.{name}.time_in_queue_distribution(带有总和的热图,显示延迟分布)

请注意,{name}在构建 Monitor 时将其作为参数传递,它旨在帮助为特定用例创建仪表板。

详情请参阅

例子

GCP

  1. 查看显示 queue.put() 和 queue.get() 每秒速率的 Google Cloud (GCP) 监控仪表板,通过pytest在项目测试文件夹上运行生成。
  2. 使用LiuAlgoTrader的实时网络套接字交易数据监控队列。

更多示例

可以在测试文件夹中找到。

贡献

高度赞赏贡献。请查看我们 的行为准则。错误报告和功能请求可以留在该Issues部分,或发送电子邮件至amor71@sgeltd.com

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mnqueues-0.0.39.tar.gz (5.5 kB 查看哈希

已上传 source