Alice Overwatch:通过HLT进行在线监控

aliceoverwatch的Python项目详细描述


爱丽丝守望

doidocumentation status构建状态

欢迎来到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上提供 开发服务器(不用于生产)。使用在 配置文件。

目录

  1. 监控概述和体系结构
  2. 监控配置
  3. overwatch可执行文件
  4. 调度部署
  5. 使用加班数据
  6. 引文
  7. 附加资源
  8. < > >

    监视架构

     src=

    监视架构如上图所示。接收端处理传入的数据,然后使该数据 可由处理模块处理。然后通过webapp可视化处理的输出。 在代码方面,依赖关系如下:

    python modules
    ---
    base <- processing <- webApp
         <- dqmReceiver
    
    c++
    ---
    zmqReceiver
    

    有关每个组件的详细信息,请参阅以下各节。更详细的技术信息 在每个软件包的自述文件以及代码文档中都有。

    加班处理

    Overwatch的主要处理组件负责将接收到的数据转换为可视的 表单,同时还提取派生数量并检查警报。主要处理模块是 用python编写,并且在很大程度上依赖pyroot,一些功能是通过numpy实现的。模块 位于overwatch/processing中,文件processruns.py驱动处理。

    在较高级别上,处理管道看起来像:

    • 提取运行元数据(运行编号、HLT模式、正在处理的检测子系统、特定运行中的可用直方图等)。
    • 确定哪些运行需要处理。
      • 例如,如果某个特定运行的新文件已到达,则应处理该运行。
    • 如果运行是新的,请确定包含哪些对象(直方图)以及它们属于哪些组,需要运行哪些处理函数,等等。
      • 处理功能由每个检测器实现,并在特定检测器请求时调用。
    • 对每个对象应用这些处理函数(直方图),并存储输出。

    每个探测器(也称为子系统)都有机会在几乎每个阶段插入处理管道。每个探测器都由三个字母的探测器名称标识。探测器特定代码位于Overwatch/processing/detectors/中,可通过处理配置启用。

    监视webapp

    an overwatch run page

    web应用程序可视化处理提供的信息。webapp是基于flask的 各种形式的可视化,以及提供一个接口来请求按需处理对…的抱怨 具有自定义参数的数据。注意,这会导致对处理模块的直接依赖。主要 可视化模式是通过json文件显示的,使用jsroot,它提供与数据的交互。

    监视数据接收器

    接收器负责接收来自各种输入源的数据并将其写出。 接收者写出具有相同文件名信息的根文件,从而允许对它们进行处理 无论来源如何,都一样。

    请注意,这些接收器需要部署在生产环境中,但如果有的话, 需要由标准的监视用户使用!< /P>

    HLT接收器

    HLT中的数据由通过ZeroMQ(ZMQ)发送的根对象派生对象组成。接收器是用C++内置的, 当 已编译接收器。

    安装遵循源代码外构建的典型cmake模式。配置时,请记住指定 根据需要确定zmq和根的位置。一旦构建,接收器可执行文件就被命名为zmqreceive。各种各样的 选项可用-有关精确选项,请参见帮助(-h--help)。

    注意,如果根版本不匹配(例如,hlt上的根5,而overwatch上的根6),则 必须使用"--request streamers"选项请求相关根拖缆。注意这个选项可以 可能触发内部根错误,因此不应使用太频繁。因此,请求只是 接收器启动时发送一次,不应频繁重新启动。

    DQM接收器

    来自dqm的数据由通过rest api发送的根文件组成。DQM接收器代码作为烧瓶应用程序编写。 web应用程序是作为overwatch包的一部分安装的,可以使用flask开发服务器运行 通过OverWatchdQMReceiver。它的配置使用与其他overwatch包相同的系统,如下所示 此处介绍了

    对于可用的api,请参见overwatch/receiver/dqmceiver.py中的主服务器代码

    监视配置

    通过在yaml配置文件中定义的选项配置overwatch。每个有一个配置文件 监视模块(DQM接收器、处理和WebApp)。假设每个模块上的各个模块的依赖关系 另外,配置文件也是相互连接的。例如,如果加载了webapp,它也将加载 处理配置,以及处理所依赖的其他配置。特别地, 下面是配置文件的顺序优先级。

    ./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文件。

    监视可执行文件

    除了处理和web应用程序之外,在 调度项目。它们主要为这两个主要软件包起支持作用。

    大量可执行文件基于overwatch.base中定义的模块。有关详细信息,请参见 overwatch.base中的文档和自述文件。此处定义了以下可执行文件:

    dqm接收器在overwatch.receiver中定义。有关更多信息,请参阅文档和 在OverWatch.Receiver中自述。此处定义了以下可执行文件:

    zmq接收器在receiver.src中定义。它是一个小型的C++代码库,它从HLT接收文件。 并将它们写入磁盘。它会自动下载并编译一些较小的aliroot依赖类,如下所示 需要,因此必须安装的唯一依赖项是zmq和root。有关详细信息,请参见 接收器中的文档和自述文件。此处定义了以下可执行文件:

    监视部署

    overwatch的所有组件都可以由overwatchdeploy可执行文件配置和启动。 Overwatch计划使用Docker映像进行部署。在此映像中,配置由 主管。所有Web应用程序都部署在nginx

    dockerfile和其他信息可在docker目录中找到。

    配置部署

    有关包含所有可用选项的配置文件,请参见overwatch/base/deployconfig.yaml。注意 配置部署时不考虑此特定文件-它只考虑传递的文件 对它。

    使用Docker映像进行部署

    映像的角色由传递到环境变量config的配置决定。 本节介绍了可用的配置选项 在配置部署的overwatch上

    然后,可以使用以下内容运行映像(使用外部配置文件call config.yaml):

    $ 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

    更新数据库中的用户

    有一个简单的实用程序来更新zodb数据库中的用户。可以通过 OverwatchUpdateUsers(不带参数)。它将使用存储在 config.yaml

    使用监视数据

    Overwatch有时间戳,持久存储的EMCAL和HLT子系统数据可以追溯到2015年11月。这个 TPC于2016年4月加入(注意,HLT包含来自不同子系统的一些数据,如V0)。 该数据可在2018年12月第2轮结束前获取,但以下期间除外 大约在2018年8月中旬至10月中旬,由于基础设施问题,一些数据丢失。

    有关不使用此数据的更多详细信息,请参阅附加资源

    访问数据

    可以通过几种不同的方式访问这些数据:

    • 对于小型数据卷,可以通过web应用程序直接访问底层数据文件。简单选择 从主运行列表中选择子系统根文件,并选择要下载的文件。
    • 对于较大的卷,有几个选项:
      • 未处理的数据也存档在eos上。它存储在/eos/experiment/alice/overwatch中。访问 此数据,将请求脱机发送给Raymond和Alice。
      • 在某些情况下也可以访问rest api文件-如果需要,请与raymond联系。

    利用数据

    要成功使用监视数据,必须记住以下几点:

    • 每个时间戳都在CERN时区内。为了正确处理这些时间,我建议使用钟摆 python包。有关具体示例,请参见overwatch.utilities.base.extractTimestampFromFileName
    • 每个数据文件都是累积的。要获取在时间n和n+1之间接收到的数据,必须减去 在时间n+1处的直方图、图表或其他对象,从时间n处的对象。从 有关如何执行此操作的信息,请参见overwatch.processing.mergefiles
    • 数据每分钟都被请求一次,但数据并不仅仅来自那一分钟。HLT负责 通过hlt集群进行循环配置的qa组件。接收到的新数据 对应于在该分钟内发送到合并中的组件的数据。质量保证 组件发送数据取决于特定的子系统,但通常是每5个组件的顺序 分钟。因此,数据的精度大约只有几分钟。

    一般来说,即使您不想使用 所有的监视处理功能。关于如何处理这些问题的更详细的信息可以 可在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

    其他资源

    名称含义

    守望onlinev合并tr结束并weba的实现使用hlt的可接受的detectorc条件。

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

    推荐PyPI第三方库


热门话题
java如何使用Scanner用文件中的文本填充数组,然后从数组中随机选择文本?   java如何在windows中使用BlueJ进行无限缓冲   java为什么JPA中存在“太多连接”?   java如何在recyclerview中创建和填充公共字段?   当我在Google Play上发布应用程序时,很多设备都不支持java xWalkWebView 64位   HTML文档文本中位置或偏移量的java含义   java如何在JTextArea中打开文件,并使用FileReader和FileWriter类进行读写   java`elementtobelickable`只是检查它是否可见并已启用   安卓中图像下方的java绘图文本   java我如何为我的Android应用程序启用Google signin,使其只允许来自特定Google域的用户?   在超级Java调用中调用父级的内部类   java在没有定时器的情况下运行代码   java使用hashset值作为hashmap中的键   java我需要为我的应用程序获取API密钥,为此,我需要证书的MD5签名   java编写一个方法来查看字符串x是否包含字母“G”