Alice Overwatch:通过HLT进行在线监控
aliceoverwatch的Python项目详细描述
爱丽丝守望
欢迎来到Alice Overwatch,这是一个提供实时在线数据监控和 使用来自alice高级触发器(hlt)的时间戳数据的质量保证和数据质量监控 (DQM)。要访问显示Alice数据的OverWatch,请参见Web应用程序。
快速启动
设置监视
除了可以由pip处理的各种依赖项之外,还需要root。建议使用根6。
当地发展
为本地开发设置相当简单。
$ git clone https://github.com/raymondEhlers/OVERWATCH.git overwatch $ cd overwatch # Install webApp static data (Google Polymer and jsRoot) $ cd overwatch/webApp/static && bower install && git clone https://github.com/root-project/jsroot.git jsRoot &&cd - # Probably best to do this in a virtualenv. The overwatch setup.py can't install this automatically. $ pip install git+https://github.com/SpotlightKid/flask-zodb.git # Install for local development $ pip install -e .
Docker图像
作为高级用户或部署的替代方案,Docker Hub上有一个Docker映像,名为
重新安装/监视
。一定要将包含数据的目录装载到映像中,以便使用它!注释
您可能希望以交互方式使用此图像(-it),并且可能希望在您
完成了(--rm)。如果数据位于名为data
的文件夹中,则它应该类似于:
$ docker run -it --rm -v data:/overwatch/data rehlers/overwatch:latest-py3.6.7 /bin/bash
安装仅用于运行监视
只需运行overwatch(即根本不执行任何开发),它也可以在 pypi通过pip安装。
# Required as a prerequisite since it is not available on PyPI. $ pip install git+https://github.com/SpotlightKid/flask-zodb.git # Install the final package $ pip install aliceOverwatch
请注意,pypi上的overwatch包包括所有的jsroot和聚合物组件,这样它就可以用完了 盒子里!虽然这很有用,但重要的是要记住,这些依赖项还必须保持 日期:
使用监视
检索测试数据
要使用OverWatch项目的大部分内容,您需要HLT提供一些数据。最近五次的数据 可访问由OverWatch接收的 这里。登录凭据在 alice twiki。它至少包括 文件和从中生成它的文件。如果运行足够长,它将包含一个附加文件 用于测试时间片功能。
使用"调度处理"处理数据
创建一个名为config.yaml
的基本配置文件,其中包含如下内容:
# Main options# Enable debug settings, messages at the debug leveldebug:trueloggingLevel:"DEBUG"# Reprocess the data each time, even if it is not detected as needed. It can be useful# to test modifications to the processingforceReprocessing:true# The directory defaults to "data", which is the recommended namedataFolder:&dataFolder"path/to/data"
然后,使用以下命令开始处理数据:
$ overwatchProcessing
使用OverWatchWebApp可视化数据
对于webapp,在您的config.yaml
中添加类似于以下内容的内容:
# Define users for local usage_users:!bcrypt# The key, (below is "username") is the the name of your user, while the value, (below is "password") is your passwordusername:"password"# Continue to keep debug: true . It often helps with ZODB difficulties.
然后,要启动用于数据可视化的webapp,请运行:
$ overwatchWebApp
默认情况下,webapp将在使用烧瓶的http://127.0.0.1:8850" rel="nofollow">http://127.0.0.1:8850上提供 开发服务器(不用于生产)。使用在 配置文件。
目录
- 监控概述和体系结构
- 处理
- 网络应用程序
- 数据接收器
- 监控配置
- overwatch可执行文件
- 调度部署
- 使用加班数据
- 引文
- 附加资源 < > >
- 提取运行元数据(运行编号、HLT模式、正在处理的检测子系统、特定运行中的可用直方图等)。
- 确定哪些运行需要处理。
- 例如,如果某个特定运行的新文件已到达,则应处理该运行。
- 如果运行是新的,请确定包含哪些对象(直方图)以及它们属于哪些组,需要运行哪些处理函数,等等。
- 处理功能由每个检测器实现,并在特定检测器请求时调用。
- 对每个对象应用这些处理函数(直方图),并存储输出。
overwatchdeploy
-处理部署中overwatch可执行文件的执行。虽然不推荐,但是 也可在本地使用. 另请参见下面的OverWatchUpdateUsers
-使用配置中定义的用户信息更新数据库的简单助手。OverwatchReceiver数据传输
-将ZMQ和DQM接收器接收到的数据传输到其他Overwatch 站点和EOS。overwatch replay
-replay处理的overwatch数据与新接收的数据一样。允许全面趋势分析和 数据接收过程的其他测试。overwatchreplaydatatransfer
-重播进程将数据以高速率重播到指定的数据。这是一个 比overwatchreplay更通用的工具,用于通过OverwatchReceiverDataTransfer
overwatchdqm receiver
-来自amore dqm系统的接收器数据。使用需要与DQM项目协调。 <>代码> ExcWistRealVelueCudio >通过C++可执行文件编写的时间戳监视ZMQ接收器,以确保
他们还没有死。zmqreceive
-处理从hlt接收qa信息的主要可执行文件。- 对于小型数据卷,可以通过web应用程序直接访问底层数据文件。简单选择 从主运行列表中选择子系统根文件,并选择要下载的文件。
- 对于较大的卷,有几个选项:
- 未处理的数据也存档在eos上。它存储在
/eos/experiment/alice/overwatch
中。访问 此数据,将请求脱机发送给Raymond和Alice。 - 在某些情况下也可以访问rest api文件-如果需要,请与raymond联系。
- 未处理的数据也存档在eos上。它存储在
- 每个时间戳都在CERN时区内。为了正确处理这些时间,我建议使用钟摆
python包。有关具体示例,请参见
overwatch.utilities.base.extractTimestampFromFileName
- 每个数据文件都是累积的。要获取在时间n和n+1之间接收到的数据,必须减去 在时间n+1处的直方图、图表或其他对象,从时间n处的对象。从 有关如何执行此操作的信息,请参见overwatch.processing.mergefiles
- 数据每分钟都被请求一次,但数据并不仅仅来自那一分钟。HLT负责 通过hlt集群进行循环配置的qa组件。接收到的新数据 对应于在该分钟内发送到合并中的组件的数据。质量保证 组件发送数据取决于特定的子系统,但通常是每5个组件的顺序 分钟。因此,数据的精度大约只有几分钟。
监视架构
监视架构如上图所示。接收端处理传入的数据,然后使该数据 可由处理模块处理。然后通过webapp可视化处理的输出。 在代码方面,依赖关系如下:
python modules
---
base <- processing <- webApp
<- dqmReceiver
c++
---
zmqReceiver
有关每个组件的详细信息,请参阅以下各节。更详细的技术信息 在每个软件包的自述文件以及代码文档中都有。
加班处理
Overwatch的主要处理组件负责将接收到的数据转换为可视的
表单,同时还提取派生数量并检查警报。主要处理模块是
用python编写,并且在很大程度上依赖pyroot,一些功能是通过numpy实现的。模块
位于overwatch/processing
中,文件processruns.py
驱动处理。
在较高级别上,处理管道看起来像:
每个探测器(也称为子系统)都有机会在几乎每个阶段插入处理管道。每个探测器都由三个字母的探测器名称标识。探测器特定代码位于Overwatch/processing/detectors/
中,可通过处理配置启用。
监视webapp
web应用程序可视化处理提供的信息。webapp是基于flask的
各种形式的可视化,以及提供一个接口来请求按需处理对…的抱怨
具有自定义参数的数据。注意,这会导致对处理模块的直接依赖。主要
可视化模式是通过json文件显示的,使用jsroot
,它提供与数据的交互。
监视数据接收器
接收器负责接收来自各种输入源的数据并将其写出。 接收者写出具有相同文件名信息的根文件,从而允许对它们进行处理 无论来源如何,都一样。
请注意,这些接收器需要部署在生产环境中,但如果有的话,
需要由标准的监视用户使用!< /P> HLT中的数据由通过ZeroMQ(ZMQ)发送的根对象派生对象组成。接收器是用C++内置的,
当
已编译接收器。 安装遵循源代码外构建的典型cmake模式。配置时,请记住指定
根据需要确定zmq和根的位置。一旦构建,接收器可执行文件就被命名为 注意,如果根版本不匹配(例如,hlt上的根5,而overwatch上的根6),则
必须使用"--request streamers"选项请求相关根拖缆。注意这个选项可以
可能触发内部根错误,因此不应使用太频繁。因此,请求只是
接收器启动时发送一次,不应频繁重新启动。 来自dqm的数据由通过rest api发送的根文件组成。DQM接收器代码作为烧瓶应用程序编写。
web应用程序是作为overwatch包的一部分安装的,可以使用flask开发服务器运行
通过OverWatchdQMReceiver。它的配置使用与其他overwatch包相同的系统,如下所示
此处介绍了 对于可用的api,请参见 通过在yaml配置文件中定义的选项配置overwatch。每个有一个配置文件
监视模块(DQM接收器、处理和WebApp)。假设每个模块上的各个模块的依赖关系
另外,配置文件也是相互连接的。例如,如果加载了webapp,它也将加载
处理配置,以及处理所依赖的其他配置。特别地,
下面是配置文件的顺序优先级。 配置文件的顺序意味着可以在定义了
具有更高的优先权。例如,要启用调试,只需在 有关可用配置选项的列表,请参见所需模块中的 除了处理和web应用程序之外,在
调度项目。它们主要为这两个主要软件包起支持作用。 大量可执行文件基于 dqm接收器在 zmq接收器在 overwatch的所有组件都可以由 dockerfile和其他信息可在 有关包含所有可用选项的配置文件,请参见 映像的角色由传递到环境变量config的配置决定。
本节介绍了可用的配置选项
在配置部署的overwatch上 然后,可以使用以下内容运行映像(使用外部配置文件call config.yaml): 有一个简单的实用程序来更新zodb数据库中的用户。可以通过
Overwatch有时间戳,持久存储的EMCAL和HLT子系统数据可以追溯到2015年11月。这个
TPC于2016年4月加入(注意,HLT包含来自不同子系统的一些数据,如V0)。
该数据可在2018年12月第2轮结束前获取,但以下期间除外
大约在2018年8月中旬至10月中旬,由于基础设施问题,一些数据丢失。 有关不使用此数据的更多详细信息,请参阅附加资源
可以通过几种不同的方式访问这些数据: 要成功使用监视数据,必须记住以下几点: 一般来说,即使您不想使用
所有的监视处理功能。关于如何处理这些问题的更详细的信息可以
可在 请引用"监视"作为: 守望:onlinev合并tr结束并weba的实现使用hlt的可接受的detectorc条件。HLT接收器
zmqreceive
。各种各样的
选项可用-有关精确选项,请参见帮助(-h
或--help
)。DQM接收器
overwatch/receiver/dqmceiver.py中的主服务器代码
监视配置
./config.yaml
~/overwatch{Module}.yaml
overwatch/webApp/config.yaml
overwatch/processing/config.yaml
overwatch/receiver/config.yaml
overwatch/base/config.yaml
/config.yaml
中设置debug:true
。
(存储在当前工作目录中)-它将在基中重写debug
的定义为false
配置。config.yaml
文件。监视可执行文件
overwatch.base
中定义的模块。有关详细信息,请参见
overwatch.base
中的文档和自述文件。此处定义了以下可执行文件:overwatch.receiver
中定义。有关更多信息,请参阅文档和
在OverWatch.Receiver中自述。此处定义了以下可执行文件:receiver.src
中定义。它是一个小型的C++代码库,它从HLT接收文件。
并将它们写入磁盘。它会自动下载并编译一些较小的aliroot依赖类,如下所示
需要,因此必须安装的唯一依赖项是zmq和root。有关详细信息,请参见
接收器中的文档和自述文件。此处定义了以下可执行文件:
监视部署
overwatchdeploy
可执行文件配置和启动。
Overwatch计划使用Docker映像进行部署。在此映像中,配置由
主管
。所有Web应用程序都部署在nginx
docker
目录中找到。配置部署
overwatch/base/deployconfig.yaml
。注意
配置部署时不考虑此特定文件-它只考虑传递的文件
对它。使用Docker映像进行部署
$ git clone https://github.com/raymondEhlers/OVERWATCH.git overwatch
$ cd overwatch
# Install webApp static data (Google Polymer and jsRoot)
$ cd overwatch/webApp/static && bower install && git clone https://github.com/root-project/jsroot.git jsRoot &&cd -
# Probably best to do this in a virtualenv. The overwatch setup.py can't install this automatically.
$ pip install git+https://github.com/SpotlightKid/flask-zodb.git
# Install for local development
$ pip install -e .
0
更新数据库中的用户
OverwatchUpdateUsers
(不带参数)。它将使用存储在
config.yaml
使用监视数据
访问数据
利用数据
overwatch.processing.movefiles中的文档和代码中找到
引文
$ git clone https://github.com/raymondEhlers/OVERWATCH.git overwatch
$ cd overwatch
# Install webApp static data (Google Polymer and jsRoot)
$ cd overwatch/webApp/static && bower install && git clone https://github.com/root-project/jsroot.git jsRoot &&cd -
# Probably best to do this in a virtualenv. The overwatch setup.py can't install this automatically.
$ pip install git+https://github.com/SpotlightKid/flask-zodb.git
# Install for local development
$ pip install -e .
1
其他资源
名称含义
推荐PyPI第三方库