CN105122257A - 用于动态显示跟踪器数据的转换函数插入 - Google Patents

用于动态显示跟踪器数据的转换函数插入 Download PDF

Info

Publication number
CN105122257A
CN105122257A CN201380075219.1A CN201380075219A CN105122257A CN 105122257 A CN105122257 A CN 105122257A CN 201380075219 A CN201380075219 A CN 201380075219A CN 105122257 A CN105122257 A CN 105122257A
Authority
CN
China
Prior art keywords
data
conversion
frame
user interface
diagram data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380075219.1A
Other languages
English (en)
Other versions
CN105122257B (zh
Inventor
R·S·克莱杰克
A·G·古纳雷斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Concurix Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Concurix Corp filed Critical Concurix Corp
Publication of CN105122257A publication Critical patent/CN105122257A/zh
Application granted granted Critical
Publication of CN105122257B publication Critical patent/CN105122257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

用于跟踪器的可视化系统可包括处理流水线,该处理流水线可生成跟踪数据、预处理该数据、以及可视化该数据。预处理步骤可包括处理用户定义的表达式或其他可执行代码的机制。该可执行代码可执行各种函数,包括数学、统计、与其他数据的聚集等。预处理器可执行恶意软件分析、测试功能性、随后实现该可执行代码。可向用户呈现编辑器或其他基于文本的用户界面组件以用于输入和编辑该可执行代码。该可执行代码可被保存并随后作为可选择转换被调用以与其他数据流一起使用。

Description

用于动态显示跟踪器数据的转换函数插入
相关申请的交叉引用
本申请要求于2013年2月1日提交的题为“TransformationFunctionInsertionforDynamicallyDisplayedTracerData(用于动态显示跟踪器数据的转换函数插入)”的美国专利申请序列号13/757,631的优先权和权益,该申请的整体内容通过援引被明确地纳入于此。
背景
消息传递计算环境通过在执行期间使独立的处理元素(诸如线程或其他计算组件)将消息从一个元素传递到另一元素来操作。在各组件间传递的消息可包含可由接收者消费的数据和其他信息。
发明内容
用于跟踪器(tracer)的可视化系统可包括处理流水线,该处理流水线可生成跟踪数据、预处理该数据、以及可视化该数据。预处理步骤可包括处理用户定义的表达式或其他可执行代码的机制。该可执行代码可执行各种函数,包括数学、统计、与其他数据的聚集等。预处理器可执行恶意软件分析、测试功能性、随后实现该可执行代码。可向用户呈现编辑器或其他基于文本的用户界面组件以用于输入和编辑该可执行代码。该可执行代码可被保存并随后作为可选择转换被调用以与其他数据流一起使用。
力导向图可担当针对跟踪器的用户控制的一部分。跟踪器可在监视正在执行的应用的同时收集数据,随后该数据可被处理并显示在力导向图上。用户可以能够选择个体节点、边、或其他元素,随后使该跟踪器改变可收集什么数据。该用户可以能够选择个体节点、边或图上的元素的组,随后使用所选择的元素对跟踪器执行更新。该选择机制可包括点击及拖动窗口以选择可能相关的节点,以及从图例或其他编组中选择。
力导向图可使用一组回放控制以暂停、播放、反转、快进、慢进、或以其他方式控制时间序列数据的显示来显示时间序列数据。该回放控制可在向其显示数据集以及可显示该数据集的速度的实时或近实时应用中使用。在一个架构中,力导向图可使用渲染引擎来部署,该渲染引擎接收数据并将该数据渲染到图中。回放控制器可根据来自回放控制的用户输入向渲染引擎发送更新。
可通过示出在消息传递计算环境内传递的消息来将该环境可视化。该消息可包含由函数或其他计算元素消费的数据,并可被用于启动或产生各种计算元素。一个可视化可以是力导向图,该力导向图的每个功能均作为节点,其中被传递的消息作为图的边。在一些实施例中,边可通过将边显示得更宽或更窄、或通过改变所显示的边的颜色来显示消息的数目、数据量、或其他度量。节点可用不同颜色、大小或形状示出以显示不同方面。一些实施例可具有用于存储和回放随时间对图的改变的机制。
力导向图可将消息传递系统的最近活动作为高亮(highlight)特征显示在更大的图上。力导向图可显示表示过程和消息路由的节点和边的超集(superset),随后将最近活动显示为更大的超集内的高亮元素。高亮元素可显示在一时间序列的最近时间元素期间传递的消息或执行的计算。在一些实施例中,可通过使高亮的视觉元素随时间衰减来显示活动的影响。
提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
在附图中:
图1是示出力导向图的实施例的图示。
图2是示出使用图的数据收集和显示的环境的实施例的图示。
图3是示出用于收集数据的方法的实施例的流程图。
图4是示出用于可视化之前聚集数据的方法的实施例的流程图。
图5是示出用于部署和更新图的方法的实施例的流程图示。
图6是示出用于生成图上的对象的踪迹(trace)的方法的实施例的流程图示。
图7是示出显示一时间序列的样本力导向图的实施例的图示。
图8A、8B和8C是用力导向图示出选择机制的实施例的图示的序列。
图9A、9B和9C是用力导向图示出第二选择机制的实施例的图示的序列。
图10是用于通过交互式图来控制跟踪器的方法的实施例的流程图示。
图11是示出用于可视化踪迹数据的网络环境的实施例的图示。
图12是示出用于用转换来可视化踪迹数据的方法的实施例的图示。
图13是示出具有转换编辑器的样本用户界面的实施例的图示。
图14是示出具有转换的网络环境的实施例的图示。
图15是示出用于使用数据浏览器来控制显示的方法的实施例的流程图。
详细描述
用于可视化消息传递计算环境的图
消息传递计算环境可通过显示在计算元素之间传递的消息的图来可视化。所述图可将计算元素示为节点,而消息为图的边。一种类型的这种可视化可以是力导向图。
该可视化可将数据的不同特性(诸如消息的数目、数据量、消息的方向、或其他特性)显示为线宽、颜色、或其他视觉元素。在力导向图的情况下,各元素之间的力可表示这种数据特性。
图的节点可表示计算元素。计算元素可以是可发送或接收消息的任何可执行代码、设备、或其他元素。节点可以用不同大小、颜色、形状或其他特性来示出以示出所消耗的计算时间量、调用频率、组中的成员资格、与其他元素的交互、或其他数据项。
该可视化可使用数据集的序列来执行,其中每个数据集可随时间被收集。在这些实施例中,当应用执行时,图可扩展、收缩、以及改变形状。这些实施例可以能够存储和回放数据集的序列。在一些情况下,这种回放可被减慢或加速以示出执行期间的改变。
可视化系统可具有检测机制系统(instrumentationsystem),该检测系统收集执行期间的消息信息,随后处理或格式化该信息以用于显示。显示系统可生成图并向用户显示图。在一些情况下,图可以是交互式的,其中用户可以能够探询(probe)该图来获得附加洞察。在一个示例中,用户可以能够点击节点来寻找关于该节点的细节,诸如节点名称、关于该节点的性能度量、或其他信息。
可视化系统可被用来监视和显示在单一设备内传递的消息,以及其中消息在设备间传递的实施例。例如,一些函数式语言可在可在单一处理器上或跨单一设备内的若干处理器执行的进程之间传递消息。在另一示例中,高性能计算系统可组合位于许多不同设备上的处理器来执行大型应用。可通过显示例如从设备到设备、以及在每个个体设备中从一个处理器到另一处理器传递的所有消息来可视化这种应用。
用于具有高亮的时间序列数据的力导向图
通过维持节点和边的超集,以及通过高亮图内表示最近活动的那些元素来显示最近活动,力导向图可显示时间序列数据。节点和边的超集可通过捕捉可通过时间序列来定义的每个节点和边并在时间序列的回放或显示期间维持该超集来创建。
通过高亮表示所述活动的那些元素,同时以非高亮方式显示节点和边的超集中的至少一些,最近活动可被覆盖在元素的超集上。在这种可视化的一种样式中,节点和边的超集可按变灰淡化的方式呈现,而最近活跃的节点和边可按有颜色的方式呈现。
通过使元素对于被激活之后的后续时间段在高亮上减弱来将最近活动示出为淡出或溶解。这种视觉衰减可高亮活跃元素,同时保持视觉线索达一定数量的时间片,并且在以下情况下可以是有用的:其中时间片足够短而使得单一时间片中的活动可能未被完全理解。
用力导向图来可视化时间序列数据
时间序列数据的动态可视化可在力导向图中被渲染。时间序列数据可包括表示任何给定时间处系统的状态的数据集。可视化可示出随时间前进的状态变化。
可视化可具有一组控件,所述控件允许用户在数据集中向前或向后移动。所述控件可允许用户控制数据的回放。在一些情况下,数据可在正常时间基础上呈现,其中回放可对应于数据收集的速度。在其他情况下,回放可相对于数据被收集的周期性被加速或减慢。
用于可视化系统的架构可具有可被绑定到数据源的可视化器。可视化器可显示力导向图,包括渲染力的任何经动画化的运动。所述控件可配置数据浏览器,该数据浏览器可选择要呈现的数据集,要呈现的数据集可通过数据绑定而被传输到可视化器。在一些情况下,可视化器可收集用户输入,所述用户输入可以由数据浏览器在其上操作的远程设备处理。
力导向图作为跟踪器的输入机制
跟踪器可使用力导向图作为输入机制。力导向图可允许用户选择并操纵可表示应用的各种元素的图的节点和边。一旦被选择,用户可以能够向元素应用各种动作,比如使得附加跟踪被应用于元素或被应用于相关元素。
力导向图或其他可视化可将应用元素呈现在不同编组或呈现中,这可帮助用户看到各元素内的关系。通过使用力导向图或其他可视化作为对跟踪器的输入,用户可以能够容易地选择元素和相关元素,它们原本是难以选择的。
图可包含可显示元素的组的图例。图例可包括用户可用以选择元素的子集的热点或其他用户界面控件。
用户界面可包括可使用所选择的元素作为输入的附加的选项菜单。该附加菜单可包括可由提供所显示的数据的跟踪器采取的各种动作。配置文件可被更新并发送至跟踪器以改变跟踪器行为。
踪迹数据的转换定义
通过应用预定义的或用户定义的转换,踪迹数据可被准备以用于显示。数据的可视化可包括用户界面,通过该用户界面,用户可选择一个或多个预定义转换或输入可创建新转换的可执行代码或表达式。
用户输入的表达式可定义在准备可视化时可被应用到数据的改变。所述改变可执行统计分析、应用算术函数、组合数据字段、合并外部数据或其他函数。该表达式可允许用户创建解决在可创建可视化时不可预见的特定场景的转换。
表达式可被插入到用于数据馈送的数据处理流水线中。在一些情况下,数据处理流水线可以是可接收、处理和显示实时数据的实时流水线。
贯穿本说明书和权利要求书,术语“剖析器”、“跟踪器”和“检测机制”(“instrumentation)”被可互换地使用。这些术语指代可在应用被执行时收集数据的任何机制。在经典定义中,“检测机制”可指代可向其插入可执行代码并藉此改变该可执行代码的存根(stub)、挂钩(hook)或其他数据收集机制,而“剖析器”或“跟踪器”可经典地指代不可改变可执行代码的数据收集机制。使用这些术语及其派生词中的任一者都可蕴含或暗示彼此。例如使用“跟踪器”的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以及用其中可执行代码可被改变的“检测机制”的经典意义的数据收集来执行。相似地,通过“检测机制”收集的数据可包括使用非接触式数据收集机制的数据收集。
此外,通过“剖析”、“跟踪”和“检测机制”收集的数据可包括可收集的任何类型的数据,包括诸如处理时间、吞吐量、性能计数器之类的与性能相关的数据等等。收集到的数据可包括函数名称、所传递的参数、存储器对象名称和内容、所传递的消息、消息内容、注册表设置、注册表内容、差错标志、中断或与正被跟踪的应用有关的任何其他参数或其他可收集的数据。
贯穿本说明书和权利要求书,术语“执行环境”可用于指代用于执行应用的任何类型的支持软件。执行环境的一个示例是操作系统。在一些图示中,执行环境摂可被示为与操作系统分开。这可能是为了示出为应用提供各支持函数的虚拟机,诸如过程虚拟机。在其他实施例中,虚拟机可以是可包括其自己的内部操作系统并可模拟整个计算机系统的系统虚拟机。
贯穿本说明书和权利要求书,术语“执行环境”包括操作系统和可具有或可不具有可容易标识的“虚拟机”或其他支持软件的其他系统。
贯穿本说明书,在对附图的整个描述中,相同的附图标记表示相同的元素。
当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。
本主题可被体现为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本主题可以采用计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介质中收录了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算机可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、储存、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。
当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
图1是示出示例力导向图的实施例100的图示。实施例100是力导向图以及各种控件的示例,该力导线图可在与彼此的消息传递关系中显示对象,该各种控件可被用于查看具有数据集序列的该图。
实施例100的力导向图可解说在消息传递环境内传递的消息。作为这种环境的示例,独立计算元素可处理应用的诸部分。在处理期间,每个计算元素可向另一计算元素传递包含数据、指令或其他元素的消息。在这种环境中,力导向图可被用来可视化各计算元素以及所述元素之间的活动。在许多情况下,力导向图可被用来标识执行期间的瓶颈或其他异常。
实施例100的力导向图可示出应用执行期间的一个时间段。在这些实施例中,应用的执行可随时间被跟踪器且力导向图可示出应用如何行动。实施例100的力导向图可用新收集的数据被周期性地更新,这可视觉地示出该应用的各操作。
实施例100的力导向图可示出应用的各操作。在一些实施例中,力导向图可示出各离散时间段处的设备或应用的系统状态。示出系统状态的图的一个示例可包括表示存储器对象、函数、输入/输出设备、存储器存储设备、或其他硬件或软件对象的状态的节点。在一些实施例中,力导向图可示出两个时间段之间可能发生的活动。这种图的示例可包括函数或进程以及在各进程间传递的消息。
力导向图可示出由各条边连接的节点102、104、106和108。边112连接节点102和104。边114连接节点102和106,而边116连接节点102和108且边118连接节点106和104。还示出了附加节点和边。
可通过施加用边连接两个节点的引力,并同时向各节点一般性地施加斥力来计算力导向图。在许多实施例中,力导向图可以可交互方式来显示,以使得用户可以能够通过点击和拖动对象或通过某种其他机制来扰动该图。在引入扰动时,交互式图可显示各节点和边改变位置。
实施例100的力导向图可显示附加数据元素。例如,各节点的相对大小、形状和颜色可被配置成指示节点的不同性质。在另一示例中,边可使用粗细度、颜色和其他视觉元素来显示性质。
当力导向图显示应用的执行时,节点可表示计算元素。计算元素可以是进程、线程、处理器、设备、或可向其他元素传递消息的其他元素。在这种图中,边可表示在计算元素之间传递的消息。
表示计算元素的节点可被修改以反映附加数据。例如,节点的颜色或形状可被修改以显示计算元素的编组。在实施例100的示例中,图例126示出应用到节点的不同颜色或图案以及所述图案的含义。表示来自库A120的计算元素的节点可包括节点102和108。表示来自库B122的计算元素的节点可包括节点104和106。节点110可表示核心进程124。
编组可反映各对象的不同共享性质。例如,节点可按照库、代码模块、或其他组来编组,且这种编组可帮助开发者理解程序流。在另一示例中,节点可按存储器消耗来编组,其中表示消耗大量数据的计算元素的那些节点被编组在一起,或者其中引用特定存储器对象组的计算元素被编组在一起。在另一示例中,在特定进程调度器上操作的进程或函数可被显示为组。在又一示例中,可能与一存储器域有关的节点可被编组。
在一些实施例中,图例可作为图的一部分来显示。图例可具有颜色、形状、或其他视觉元素和相应标签。在一些实施例中,图例可具有选择机制,藉由该选择机制,用户可以能够使用下拉菜单或其他选择工具来选择一编组。在一些此类实施例中,用户可以能够选择一个视觉效果以对应于一个编组,而另一视觉效果可对应于另一编组。例如,图例可被用来按照要通过表示每个域的形状示出的存储器域来配置编组,而与特定服务有关的节点可按照颜色编组。
图例126可具有用于选择要被显示的编组的选择工具。切换按钮136可打开下拉列表,该下拉列表可包含若干选项。在实施例100的情况中,选项可包括按照处理器138、存储器域140、调度器142、以及服务144的编组。服务144选择当前被选择,如由星星所指示。当用户选择一不同编组时,可通过改变颜色、形状或其他视觉元素来向各节点应用该编组。
各节点的大小可反映计算元素的不同方面。例如,大小可表示特定元素执行的计算量、该元素被调用的次数、该元素处理的数据量、或其他因素。在一些情况下,特定颜色可被应用到接收来自外部源的输入数据的元素,而一不同颜色可被应用到传送输出数据的元素。
类似地,可修改边来显示消息的各方面。例如,消息可被聚集来显示沿特定路径的消息数目、消息的频率、消息的数据有效载荷、以及消息的方向性以及其他特性。对应于消息的边可使用不同的粗细度、颜色、或其他视觉元素来修改以示出所聚集的参数中的一个或多个参数。
应用的操作可产生可随时间传递的许多消息。这种与时间有关的数据可使用数据集的时间序列来显示,其中每个数据集可反映在一时间段该应用的状态或者作为在一时间间隔期间传递的消息的聚集。
在一些实施例中,跟踪系统可从活跃应用收集消息传递信息并将所收集的数据存储在数据库中。聚集器可分析该数据库来概括针对个体时间间隔的消息传递活动。在一些情况下,这种概括可由跟踪系统执行而不将消息传递数据存储在独立的数据库中。
可通过更新力导向图内的数据来在该力导向图中显示经聚集的数据。在力导向图的许多可视化中,可更新数据集,从而使得力导向图用更新后的数据重新定位自身。
力导向图可实时反映应用的操作。在这种实施例中,跟踪器系统可收集来自计算环境的消息传递数据并聚集该数据以供呈现。可按一周期间隔(诸如每秒)更新该数据,随后将该数据传送到显示力导向图的系统。力导向图可被更新且随着每次更新改变,从而允许用户实时或近实时地可视化应用的操作。
当在这种实施例中数据集可被收集并存储时,控制面板用户界面可允许用户浏览和查看各数据集。例如,反转按钮128可使得按照相反的次序来显示较旧的数据集。播放按钮130和暂停按钮132可开始和停止更新力导向图。快进按钮134可使得回放按照比正常速度更快的速度进行。
图2是显示可收集并在图中显示消息传递数据的计算环境的实施例200的图示。实施例200示出可呈递实施例100以及其他实施例中描述的操作的硬件组件。
图2的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例200示出了可具有硬件平台204和各软件组件的设备202。示出的设备202表示常规的计算设备,但是其它实施例可具有不同配置、架构、或组件。
在许多实施例中,优化服务器202可以是服务器计算机。在一些实施例中,优化服务器202仍然还可以是台式计算机、膝上型计算机、上网本计算机、平板或平板式计算机、无线手机、蜂窝电话、游戏控制台或任何其他类型的计算设备。在一些情况下,优化服务器202可被部署在计算群集、云计算环境、或其他硬件平台上。
硬件平台204可以包括处理器208、随机存取存储器210、以及非易失性存储212。硬件平台204还可包括用户接口214和网络接口216。
随机存取存储器210可以是包含可由处理器208快速访问的数据对象和可执行代码的存储。在许多实施例中,随机存取存储器210可具有将存储器210连接到处理器208的高速总线。
非易失性存储212可以是在关闭设备202之后持久保持的存储。非易失性存储212可以是任何类型的存储设备,包括硬盘、固态存储器设备、磁带盒、光学存储、或其他类型的存储。非易失性存储212可以是只读、或能够读/写。在一些实施例中,非易失性存储212可以是基于云的网络存储或可通过网络连接访问的其他存储。
用户接口214可以是能够显示输出并且从用户接收输入的任何类型的硬件。在许多情况下,输出显示可以是图形显示监视器,但是输出设备可包括灯光和其他视觉输出、音频输出、动力致动器输出、以及其他输出设备。常规输入设备可包括键盘和定点设备,诸如鼠标、指示笔、跟踪球、或其他定点设备。其他输入设备可包括各种传感器,包括生物测定输入设备、音频和视频输入设备、以及其他传感器。
网络接口216可以是到另一计算机的任何类型的连接。在许多实施例中,网络接口216可以是有线以太网连接。其他实施例可包括基于各种通信协议的有线或无线连接。
软件组件206可包括操作系统218,各种应用244和服务可在操作系统218上操作。操作系统可在执行例程和硬件组件204之间提供抽象层,并且可包括与各个硬件组件直接通信的各种例程和功能。
实施例200中所示的各种设备的每一个可具有硬件平台。相应硬件平台可类似于硬件平台204。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
分析器设备202可包含操作系统208,该操作系统可支持各种其他软件组件。所述组件可包括分析器220,该分析器可为可视化准备数据。分析器220可使用提取器222取得在应用运行时收集的数据并且使用聚集器224聚集该数据来创建可由可视化器226可视化的数据。
收集器系统230可在硬件平台232上操作且具有收集器234,该收集器可收集在应用执行时收集的踪迹数据并将该数据存储在数据库236中。这些数据随后可由分析器220处理。
客户端设备238可具有硬件平台240,浏览器242可在该硬件平台中执行。浏览器242可显示可由可视化器226生成的图244。
实施例200的架构示出了其中分析器202可为可视化器226准备数据以显示可在浏览器242中渲染的图244的系统。在这种架构中,可在持续进行的基础上收集消息传递数据,随后可由分析器220执行独立的处理步骤。这种架构可允许执行对原始数据的多次分析。
例如,当原始数据在分析之前被存储时,数据集的时间序列可被配置成具有不同时段。例如,可创建针对长时间段的时间序列,其示出可在长时间段期间发生的改变。同时,可针对非常小的时间段创建详细时间序列。较长的时间段可帮助用户理解在应用中发生的长期活动,而详细的时间序列可显示高得多的细节层次以例如用于调试。
另一实施例可将收集器234和分析器220的操作中的一些包括在单一组件中。在这种实施例中,数据可被分析、聚集、并准备以供在单一软件组件中查看。这种组件可被集成到跟踪器中,在一些情况下该跟踪器与被测试的应用在同一设备上运行。一些其他架构可执行类似操作但被不同地配置。
计算环境246的示例示出了可与高性能计算环境或其中消息传递可被部署的其他环境交互的多个设备。每个设备248、256、264和272可具有相应的硬件平台250、258、266和274。应用252、260、268和272可与相应硬件平台上的相应跟踪器254、262、270和278一起执行。
计算环境246的示例可被部署在群集环境、分散计算环境、或某种其他方式中,以使得各设备可彼此通信。应用可包含可被配置成向其他设备传递消息的相同或不同的可执行代码以便执行比在单一设备上所执行的更大的工作负载。
计算环境的另一示例可以是应用设备280,该应用设备280可具有可包含一个或多个处理器的硬件平台282。在每个处理器上,多个进程可执行且在各进程之间传递消息。在设备280的示例中,四个处理器284、288、292和296被示出为正在执行进程286、290、294和298。
这种系统的一个示例可部署函数式语言(诸如Erlang),藉由该语言,单一应用可使用许多个体进程、线程或其他计算元素来执行。各元素可通过在设备280内传递消息来彼此通信。在一些应用中,数千、数万、或甚至数百万进程和消息可在执行期间构成应用。
图3是示出用于监视数据的方法的实施例300的流程图。实施例300示出了跟踪器的操作,该跟踪器可收集消息传递数据并将数据存储在数据库中以供稍后分析。实施例300的操作可反映跟踪器254的操作,例如在实施例200中。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例300可示出藉此所传递的每个消息可被分析以收集各种数据的方法。实施例300的架构示出了可监视应用的一个例程,且当消息被标识时,数据收集器实例可被部署。数据收集器实例可收集各种数据并存储该数据。
应用可在框302中开始且监视可在框304中开始。当消息在框306中被标识时,数据收集器实例312可被部署。监视可在框308中继续,直到另一消息被标识为止,使得该过程返回到框306并启动另一数据收集器实例312。当在框308中没有标识更多消息时,该过程可在框310中结束。
数据收集器实例312可反映可对单一消息操作的进程或函数的操作。根据该消息,发送者和接收者可在框314中被标识。在该消息有效载荷中传送的数据可在框316中被收集。
关于发送者的信息可在框318中被收集,且关于接收者的信息可在框320中被收集。这种信息可包括可执行多少处理、处理的性质、或其他信息。一旦已收集了所有信息,则可在框322中存储该消息数据。
图4是示出用于分析并聚集数据的方法的实施例400的流程图。实施例400示出了分析器的操作,该分析器分析并聚集在实施例300中收集的数据。实施例400的操作可反映分析器220的操作,例如在实施例200中。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例400示出了在可视化之前可如何分析消息传递数据的示例。在一些实施例中,实施例400的操作可与数据监视方法的操作内联地执行。一些这样的实施例可在跟踪器内应用聚集方法400来创建可尽快地准备好以供显示的数据,以便允许应用的实时或近实时的可视化。
可在框402中确定数据集的周期性。周期性可定义时间序列的时间间隔。为了监视应用,时间序列的周期性可以是小于1微秒、在亚秒范围内、在几秒内、或更长的值。取决于该应用,一些实例可具有数十秒、几分钟、数十分钟、数小时、数天、数周或更长的时间段。
开始时间段可在框404中被选择。在该时间段内传递的消息可在框406中被标识。在一些情况下,所选择的消息可具有在计算元素间传递的多个消息,所述多个消息可按照消息路径在框408中排序。
对于框410中的每个消息路径,可在框412中对所传递的消息做出概括。该概括可包括消息的数目、那些消息的方向、所传递的数据量、频率、或其他统计数据。在一些情况下,概括可以是非线性概括。例如,对数、平方、立方或其他函数可被用来生成经聚集的概括。在许多数据收集场景中,一些对象可被访问一次、两次或数次,而其他对象可被访问数千或甚至数百万次。为了在图内呈现这种数据比较,可使用数据的非线性缩放(scaling)。
每个节点可在框414中被标识。对于框416中的每个节点,在框418中可概括节点活动。该概括可包括该计算元素所执行的计算量、传递至该元素或从该元素传递的输入或输出数据、所执行的计算的类型、以及与计算有关的统计数据,诸如繁忙时间、等待、执行垃圾收集、堆大小、存储器调用、或其他信息。
在分析针对该时间段的所有消息数据之后,可在框420中将该消息数据存储为数据集。如果在框422中要分析另一时间段,则可在框424中递增该时间段且该过程可返回至框404。当在框422中没有更多时间段要被分析时,该过程可在框426中结束。
图5是示出用于部署和更新图的方法的实施例500的流程图示。实施例500示出了实施例400中聚集的数据的可视化器的操作。实施例500的操作可反映可视化器226的操作,例如在实施例200中。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例500示出了可被执行以显示图的两个独立的活动。基线图可在框502中被创建并显示并且可在持续进行的基础上在框504中添加高亮。
框502的基线图可显示包含来自大型数据库的所有节点和边的图。在许多实例中,这种图可表示应用的长期操作并可对于理解该应用而言有用。
数据库可在框506中被选择以可视化。所有时间段可在框508中被分析以在框510中标识所有节点且在框512中标识所有消息路径。在一些实施例中,概括统计数据可分别在框510和512中在所有节点和边上生成。相应的图可在框514中被生成。
在框514中生成的基线图可以是示出来自许多时间段的概括统计数据的静态图。在许多实施例中,基线图可担当用于其他图示的框架。
例如,在框504中高亮活动的操作可标识从一特定时间段对该图的改变且将那些改变覆盖在基线图上。在一个这样的示例中,基线图可包含所有计算元素以及可在应用的寿命期间被传递的消息的表示。为了看到最近的操作,当前时间段中的操作可被标识且用视觉高亮来显示,其中不是在该时间段中实施的其他计算元素和消息可不带高亮地被显示。在这样的示例中,所有节点和边可按照变灰淡出(greyed-out)的方式被显示,其中当前正在执行的节点和消息用鲜亮的颜色示出。
在这种显示中,基线图可提供视觉上下文,当前改变可在该视觉上下文上显示。
在框504中高亮活动的操作可包括在框518中接收选择时间段的用户输入。针对所选择的时间段的数据集可在框520中被检索。
所选择的时间段内的节点和边可在框522中被标识且在框524中被显示为被高亮。该时间段内的未改变的那些节点和边可在框526中被标识且在框528中被显示为不被高亮。
在许多情况下,用户可选择当前时间段来显示。这种选择可实时或近实时地更新图。当一实施例包括各种导航工具(诸如实施例100的控制按钮)时,用户可以能够浏览、滚动、或使用某种其他机制来标识要显示的数据集。
当在应用执行时的时间段上更新可视化时,一些实施例可仅显示在时间序列的上一采样时间段中已改变的那些元素。在这样的实施例中,力导向图或其他可视化的形状可快速改变,特别是当该时间段非常短时。
一些此类实施例可随着多次更新衰减并移除元素。在这种实施例中,每个节点或边可被显示达预定义数目的时间段,随后被从该图移除。当该节点变得更旧且没有被使用时,在一些此类实施例中,该节点可按照变灰淡出的方式被显示。
图6是示出用于生成图内的对象的踪迹的方法的实施例600的流程图示。实施例600示出了与实施例500的操作类似的可对基线图做出的改变的另一版本。在一些情况下,实施例600的操作可被修改以在不使用基线图的情况下更新图。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例600的操作可示出藉此可在图(诸如力导向图)内示出对象及其影响的一种方法。在定义对象之后,源于该对象的消息的一个、两个、或更多生成可被高亮以创建对基线图的更新。该更新可作为高亮的节点和边被显示在基线图上以示出所选择的对象的影响。
基线图可在框602中被创建和显示。框602的操作的示例可在实施例500的框502中找到。
对跟踪对象的选择可在框604中被接收。跟踪对象可以是任何事件、存储器对象、条件、函数、或用户可能希望检查的其他参数。用户可以能够定义要跟踪的存储器对象,例如,当该存储器对象被改变或被设置成特定值时。一旦满足这一条件,则可示出该条件的影响。
在定义跟踪对象之后,可在消息传递数据库中搜索该跟踪对象的实例。在一些情况下,该条件的多个实例可被标识。当存在多个实例时,可针对每个实例生成数据集的时间序列且用户可以能够在各实例间选择以查看时间序列数据集。
对于框608中的每个实例,该序列的起点可被标识。该起点可以是该条件源起的开始时间或时间段。
引用该跟踪对象的任何消息可在框612中被标识并被添加到踪迹列表。在所选择的对象与计算元素交互且该计算元素向另一计算元素传递消息时,消息可引用跟踪对象。例如,跟踪对象可以是可由第一计算元素处理的输入事件,该第一计算元素可向两个其他计算元素发送消息。这些消息可在框612中被添加到踪迹列表。
框612的操作可标识可由跟踪对象或条件触发的原始消息集。对于框614中的踪迹列表中的每个消息,下游消息可在框616中被标识且被添加到踪迹列表。下游消息可以是可能已经由在框612中标识的原始消息触发的消息。如果在框618中期望消息的附加生成,则该过程可返回至框614以添加附加消息。
当在框618中可标识了消息的所有期望生成时,消息的所有生成的时间序列可在框620中被创建。该时间序列可包括表示响应于该踪迹条件可从计算元素传递到计算元素的消息的个体生成的独立的数据集。
一实例可在框622中被选择,且消息可在框624中被显示为高亮消息。在许多情况下,高亮消息可被显示在可在框602中创建并显示的基线图的框架上。
图7是示出被显示为力导向图的数据集的时间序列的实施例700的图示。实施例700示出时间A702、时间B704、时间C706、以及时间D708。实施例700是可随时间增长和衰减的力导向图的简化示例。
实施例700示出了可被创建并且可随每个后续时步增长和衰减的简单力导向图。
在初始时步处,时间A702、节点710、712和714被示出。在第二时步处,时间B704、节点716可被添加。
在第三时步中,时间C706、节点718被添加而节点712可被移除或按变灰淡出模式显示。在第四时步中,时间D708、节点720被添加而节点710和712可被移除或按变灰淡出模式显示。
实施例700示出了应用随时间的踪迹的进展。在每个时间段中,计算元素可由节点表示,且在计算元素之间传递的消息可由图中的边来表示。初始地,在时间A702中存在三个计算元素且两个消息路径被运用。随着时间前进,附加的计算元素被使用且附加的消息路径被运用。
在时间C706,所述节点和消息路径之一可能不再被使用。在这种情况下,一些实施例可保留节点712的表示作为变灰淡化的版本。其他实施例可在节点712未被运用时移除节点712。
一些实施例可随时间衰减该表示。在这种实施例中,每个节点可被示出达若干时间段,即使在该节点在后续时间段中未被运用时。该节点可在被初始显示时用全色彩强度来示出,随后该节点可在每个随后的时间段用较少强度来示出,直到该节点可被从该图移除的时刻为止。这种实施例可保留节点可见达若干个时间段,以使得用户可可视化该节点,但是可在该节点未被运用时移除该节点。
在一示例中,在经动画化的表示中,节点可用全强度被显示达两个、三个、或更多时间段。在初始显示之后,该节点可用逐渐减小的强度来示出达另15个时间段,之后该节点可被从该图移除。在一些实施例中,针对衰减和针对初始表示的时间段可以是能够由用户调整的。
图8A、8B和8C是在用户界面中示出力导向图的示例实施例802、804和806的图示。实施例802、804和806示出了交互的序列,所述交互可用用户输入来执行以选择一组图像元素,随后对所选择的元素执行动作。元素802、804和806中的每个元素包括力导向图和图例808。
实施例802、804和806可示出用于从力导向图中选择多个元素的一种机制。这种机制可以是使用矩形窗口的区域选择。其他实施例可准许用户通过其他选择机制来选择元素组,所述其他选择机制诸如是套索工具、在连续元素上点击、或其他机制。
实施例802、804和806的节点被共同标记。力导向图由节点810、812、814、816、818和820构成。
实施例802可表示在用户界面中显示的力导向图。实施例804可示出具有窗口选择的实施例802的力导向图。该窗口选择由点822和824定义以定义选择框826。
选择框826可由用户通过定义点822和824来创建。用于创建点822和824的一种机制可以是在力导向图的所显示区域内点击和拖拽指示笔、光标、或其他指点工具。
选择框826可捕捉节点812和节点组814,其可示出一个使用场景。具体而言,力导向图或其他可视化可按照在没有可视化的情况下可能没有那么明显的方式来示出元素的关系和组。用该可视化执行的选择机制可允许用户快速且简单地选择相关对象,特别是在通过其他机制该关系可能并不明显时。
例如,节点812可表示库中的一个函数而节点814可表示第二库中的一组函数。当初始开始时,编程者或许能够或者或许不能够确定这两个函数集是相关的。在运行跟踪器并在力导向图802中可视化该关系之后,编程者可以能够标识所述关系。
在选择节点812和节点组814之后,用户可执行附加操作,如在实施例806中所示出的。
在实施例806中,所选择的项812和814可被示出为被高亮的,而该力导向图的剩余部分可被示出为未被高亮的。一些实施例可使用透明度、诸如变灰淡出颜色等颜色方案、或其他视觉提示来显示非高亮元素。一些实施例可使用更明亮或更鲜亮的颜色、不同的调色板、粗细度或其他视觉提示来显示高亮的元素。
一旦被选择,则所述项可向所选择的组应用某种活动或改变。这种改变可从用户界面组件828选择,该用户界面组件可具有各种选项830和832。
在一些实施例中,所选择的活动可使得跟踪器改变数据被收集的方式。在这种实施例中,力导向图可以是用于控制或管理跟踪器的用户界面组件。这种改变的一个示例可以是增加所选择的元素的跟踪的细节。这种改变可增加后续时间片的跟踪数据。在另一示例中,可指示跟踪器从未来数据集中移除所选择的元素。在这种改变中,跟踪器可减少在未来时间片中收集的数据量。
在一些实施例中,所选择的活动可使得预处理器改变踪迹数据被处理或在用户界面上呈现的方式。一个示例可以是针对所选择的元素显示累积数据或者视觉上高亮可从所选择的元素流动的对象。这种选择可以不使得跟踪器改变所收集的数据但是可以使得预处理器或可视化器改变数据被示出的方式。
图9A、9B和9C是在用户界面中示出力导向图的示例实施例902、904和906的图示。实施例902、904和906示出了交互的序列,所述交互可用用户输入来执行以选择一组图像元素,随后对所选择的元素执行动作。元素902、904和906中的每个元素包括力导向图和图例908。
实施例902、904和906可示出用于从力导向图中选择多个元素的一种机制。这种机制可使用图例标签来选择元素的组的成员。
实施例902、904和906的节点被共同标记。力导向图由节点910、912、914、916、918和920构成。
实施例902可表示在用户界面中显示的力导向图。实施例904可示出具有从图例908做出的选择的实施例902的力导向图。在图例908内的选择922可使得在组B中具有成员资格的所有对象被选择并高亮。
实施例904将节点910和920示出为组B的所选成员,而剩余元素可被示出为未被高亮。节点910和920的关系也被示出为被高亮,而剩余关系或边可被示出为未被高亮。
一旦与选择922相关联的元素被选择,则用户界面组件924可被呈现。用户可以能够在选项926和928之间选择以应用对跟踪器的改变或对数据如何被预处理和显示的改变,其方式与用户界面组件828类似。当做出选择时,启动按钮930可被用来使该改变被实现。
图10是用于通过与图的用户交互来控制跟踪器的方法的实施例1000的流程图示意。实施例1000示出了可与实施例802、804和806以及实施例902、904和906的用户界面示例一起执行的简化方法。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
在框1002中可接收初始数据集,且在框1004中可显示图。如果在框1006中没有用户选择,则在框1008可接收新数据集且该过程可返回至框1004以示出更新后的图。
框1004到1008的循环可示出针对时间序列数据的用户界面显示的正常操作。该图可随着时间序列内的数据集的序列而持续更新。
在框1006,用户可选择该图的一个或多个元素。在一些实施例中,在框1010中可暂停更新。更新在其中该图可能快速改变且在图改变时用户或许不能选择期望元素集合的情况下被暂停。
一旦元素可被选择,则在框1012中可选择对那些项要执行的改变。在框1014中所述改变可被传送至跟踪器,且该过程可返回至框1008,在该处可接收新数据集。
图11是示出计算环境的实施例1100的图示,该计算环境可收集并在图中显示消息传递数据,随后使用该图来控制如何收集那些数据。实施例1100示出可呈递实施例1000以及其他实施例中描述的操作的硬件组件。
图11的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例1100示出网络环境,其中踪迹数据的可视化可被用来控制跟踪器操作。可视化设备1102可显示图并提供用户界面,而控制器设备1104可控制要被显示的数据集,以及管理跟踪器的操作。控制器设备1104可从数据储存库1106检索数据。跟踪器设备1108在运行应用1138时可收集踪迹数据。所有各设备可与网络1110连接。
可视化器设备1102可包括在硬件平台1112上,浏览器1114可在该硬件平台上执行。可视化器1116可以是在浏览器1114中运行的可在用户界面1118内生成图的代码。
控制器设备1104可作为后端服务器操作,该后端服务器执行支持可视化器设备1102的操作的若干服务。
实施例1100的示例示出了其中可视化器1116可驻留于客户端设备上、而其他服务可驻留于服务器设备上的架构。可视化器1116可位于客户端设备上以改善与经动画化的图的用户体验。当可视化器1116位于用户的设备上时,动画的流畅性和图的响应性可相对于其中渲染和可视化可在远程设备上执行的架构被改善。
其中远程设备执行部分或全部可视化的实施例可以下情形中可以是有用的:其中客户端设备可能不具有足够的处理能力来渲染图。与用客户端侧可视化工具可生成的相比,此类实施例可允许更复杂和详细的渲染。
控制器设备1104可提供两个不同的功能,其中之一可以是数据浏览器1126,通过该数据浏览器可检索并准备用于可视化的数据,以及跟踪器配置管理器1122,其中对跟踪器的改变可被创建和分派。用户界面通信器1124可通过浏览器1114中的组件访问以导致浏览器1126或跟踪器配置管理器1122中的改变。
在一些实施例中,用户界面1118可包括可被用来配置或改变跟踪器的配置的对话框、选择工具、或其他用户界面组件。此类配置可包括与跟踪器的一般性操作有关的项,诸如采样频率、分配给跟踪器的资源、开始或停止跟踪器的条件、以及其他一般性操作选项。在一些实施例中,此类改变可一般性地被应用或被应用至从该图中选择的项。
数据浏览器1126可从数据储存库1106检索数据集1128并准备所述数据集以通过可视化器1116来查看。数据浏览器1126可响应于回放控件,诸如实施例100中的控件128到134。
处于正常回放模式的数据浏览器1126可检索数据集1128并使得该数据集对可视化器1116可用。在许多实施例中,这种动作可根据由数据集1128表示的时间序列在重复的、周期性的基础上执行。例如,一时间序列可被创建,其中数据集1128可表示一时间序列期间的每秒时间。在这一示例中,数据浏览器1126可每秒使每个后续数据集可用。
用户界面通信器1124可接收来自浏览器1114的命令来暂停、倒带、快进、播放、停止和其他命令。这些命令可被传递至数据浏览器1126,该数据浏览器可开始检索数据集1128并按照所请求的序列以及按照所请求的帧率或速度来呈现数据集。
跟踪器配置管理器1122可接收来自用户界面通信器1124的输入,其中所述输入可定义要对踪迹数据所做的改变。所述改变可反映可被收集的附加数据点,以及可被移除的数据点或其他改变。在一些情况下,所述改变可反映行为或操作改变,诸如在跟踪器可被执行时,数据收集频率,或其他改变。
跟踪器设备1108可在硬件平台1130上操作并具有仪表化(instrumented)执行环境1132,该执行环境可包括跟踪器1134和针对跟踪器1134的配置1136。跟踪器配置管理器1122可更新配置1136以使跟踪器1134改变行为。
应用1138可在仪表化的执行环境1132中执行,从而允许跟踪器1134生成踪迹数据。踪迹数据可被数据传送方1140传送至数据储存库1106。数据传送方1140可周期性地与数据储存库1106通信以传送来自跟踪器1134的任何所收集的数据。
图12是示出用于可视化来自跟踪器的数据的过程的实施例1200的图示。实施例1200可示出处理流水线,其中转换可被插入该处理流水线。在一些实施例中,用户编写的可执行代码可被插入到该处理流水线中以按照许多不同方式准备数据以用于可视化。
跟踪器1202可生成可由存储流水线1204处理的踪迹数据流。存储流水线1204可使用框1206中的转换的集合来准备和处理踪迹数据以在框1208中存储。在一些实施例中,踪迹数据可以是可由跟踪器1202生成的连续数据项流。这种数据流可随时间在量上增加和减少。在其他实施例中,踪迹数据可以是在特定间隔报告的数据的快照。这种数据流可被常规性地重复。
存储流水线1204可以是向数据流应用框1206中的转换的集合,随后使数据在框1208中被存储的过程集合。框1206中的转换可在存储之前向数据应用格式化、数据分析、聚集、或其他改变。在许多情况下,框1206中的转换可执行去重复、压缩、差异化或可减少框1208中的踪迹数据侧的其他操作,以及格式化该数据以用于稍后检索。
框1206中的转换可在框1208中的踪迹数据的存储之前被应用。当这种转换可以是有损的或者以其他方式降低数据的准确度、保真性或完整性时,这种转换可以在以下意义上是持久的:稍后的分析可能无法重新创建原始数据。
在框1208中的存储之后,可视化流水线1210可在框1216中可视化数据之前在框1214中应用附加转换集合。可视化流水线1210可准备该数据以用于可视化。框1214中的转换可能在以下意义上不是持久的:框1208中的原始数据仍旧保留,从而允许在稍后的分析中应用不同的转换集合。
框1214中的转换可执行用于准备数据以用于可视化的各种操作。在一些情况下,框1214中的转换可执行格式化和其他操作,以使得框1216中的可视化器可接受并解析传入数据。在一些情况下,框1214中的转换可执行过滤、聚集、统计分析、和可影响哪些数据被显示以及数据被如何显示的其他操作。
框1216中的可视化器可以是用户可藉以查看数据并控制数据被如何显示的用户界面1218的部分。用于控制数据可被如何显示的一种机制可以是框1220中的用户界面,用户可在该用户界面创建或编辑转换。用户还可以能够在框1224中存储和检索转换以供稍后使用。在许多实施例中,若干预先配置的转换的库或选择可被存储以供用户选择和与编辑或不与编辑一起使用。
框1220中的用户界面可允许用户添加和编辑用于定义转换的一部分的可执行代码。该可执行代码可以是可被编译、解释、或以其他方式作为转换执行的任何功能描述、表达式、或其他定义。
一旦转换被添加,则在框1228中被插入到处理流水线之前,该转换可在框1226中经受恶意软件检查。转换可在框1206中的存储之前或在框1214中的存储之后被标识为要被应用。
图13是示出示例用户界面的实施例1300的图示。实施例1300可示出用户界面,用户可通过该用户界面输入可被部署为转换的可执行代码。
实施例1300可示出可视化用户界面1302,该可视化用户界面包含力导向图1304、图例1306、以及控制集合1308。力导向图1304可用节点和边形式来显示踪迹数据,其中边可表示对象之间的关系。图例1306可显示元素的组。控制集合1308可以是控制按钮集合,用户可通过所述控制按钮来输入回放命令来查看踪迹数据的时间序列中的不同数据集。
窗口1310可以是用户可通过其来选择不同数据以在图中示出的界面。两个不同的选项1312和1314可反映可被选择的预定义的转换,以及第三选项1316,其中用户可在文本编辑器1318中输入并编辑可执行表达式。用户还可在选择1320中选择用于实现转换的那个处理流水线。
所述转换可使得数据以不同方式被显示,并且有时被存储。所述转换可以用可执行语言来定义,所述可执行语言可被编译或解释来处理数据。在一些情况下,该语言可允许一起分析多个数据元素。其简单示例可以是取得两个元素之间的差异。
所述转换可允许应用过滤器,诸如以显示来自特定函数或存储器对象的踪迹数据,同时消除其他数据。在一些情况下,所述转换可包括表达式,诸如以显示来自操作达大于10秒且小于15秒的过程的数据。
用于表达式的伪代码的示例可以是:
on_event(type,data)
olddata=fetch(type)
newdata=olddata+data
put(type,new_data)
以上伪代码可被应用至所显示的每个变量以针对所述时间序列中的每个时间片对该变量的每次出现进行计数。在这种转换中,所显示的数据可随时间增长。
因为所述转换可包括用户提供的代码,所以所述转换可在部署之前经受恶意软件检查。该恶意软件检查可尝试抓住恶意的或畸形的转换,以使得所述转换不会导致不想要的错误或恶意影响。
图14是显示可收集并在图中显示踪迹数据的计算环境的实施例1400的图示。实施例1400示出可呈递实施例1300以及其他实施例中描述的操作的硬件组件。
图14的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例1400中所示的各种设备的每一个可具有硬件平台。相应硬件平台可类似于硬件平台204。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
实施例1400示出了网络环境,其中转换可被部署以修改数据收集、存储、和可视化的操作。所述转换可被存储并在各种上下文中部署并通过转换管理器来管理。
环境可包括可视化系统1402、控制器设备1406、转换管理器1408、跟踪器设备1410、以及数据存储库1412。可视化系统1402可提供用于整个系统的用户界面,并可向控制器设备1406发送命令来提供数据以用于可视化。转换管理器1408可接收、存储、测试、和向各种设备分派转换。跟踪器设备1410可收集踪迹数据,该踪迹数据可由数据储存库1412存储。
可视化系统1402可包含浏览器1416可在其上运行的硬件平台1414。浏览器可向用户呈现用户界面1418。浏览器1416可执行可视化器1420,该可视化器可创建并显示图。可视化器1420可以是在浏览器1416内运行以检索数据并渲染图的可执行代码。可视化器1420可包括动画例程以及可允许用户与该图交互的交互式组件。
浏览器1416还可包括编辑器1422,用户可通过该编辑器输入可在更大的系统内作为各种转换使用的可执行代码。所述转换可在数据收集期间由跟踪器、在数据存储器件由存储管理器、以及在准备数据以用于可视化时由预处理器使用。用户提供的代码可允许用于用户控制数据可被如何收集、存储以及显示的宽范围的可定制选项。这种控制在以下场景中可以是有用的:其中用户可试验收集和查看数据的不同方式。
控制器设备1406可在硬件平台1424上操作。数据浏览器1426可从可视化系统1402上的用户界面1418控制。数据浏览器1426可选择要由可视化器1420显示的数据集。在用通信代理1432传送数据集之前,预处理器1428可向数据应用各种转换1430。
跟踪器设备1410可对硬件平台1434操作并具有可包括跟踪器1438的仪表化执行环境1436。跟踪器1438可具有配置1440,该配置可定义跟踪器1438的行为,诸如要收集什么数据以及可在什么条件下收集数据。
跟踪器设备1410还可具有转换1444的集合,所述转换可处理所收集的数据。转换1444可在存储数据之前被应用并可被用于聚集、紧缩、浓缩或以其他方式准备数据以被传送至数据储存库1412。转换1444还可执行数据分析,包括各种统计分析、比较、或任何其他操作。
数据储存库1412可具有硬件平台1456,存储管理器1458可在该硬件平台上操作。存储管理器1458可接收来自各种跟踪器设备的数据并在存储数据1462之前应用转换1460。转换1460可在存储之前执行许多不同类型的操作,包括聚集和紧缩,以及概括、比较或其他操作。
实施例1400示出用于应用存储前转换的两个位置。一个位置可以是在转换1444的跟踪器设备1410处,而另一个位置可以是在转换1460的数据储存库1412处。用于转换的每个位置可在存储之前向踪迹数据应用改变。在跟踪器设备1410处应用的转换可在数据传输之前应用转换,如此,转换1444中的一些可紧缩该数据或以其他方式准备该数据以通过网络1464传送至数据储存库1412。
转换管理器1408可在硬件平台1446上操作并可包括转换管理器1448。转换管理器1448可通过可视化系统1402接收来自用户的转换,使用分派器1450使该转换被分派到不同设备。分派器1450可与执行转换的各设备通信、传送转换、并使转换在指定条件下执行。
例如,分派器1450可向跟踪器设备1410部署转换以在传送之前压缩数据,并向数据储存库1412部署第二转换以在存储数据之前创建概括统计数据。分派器1450可使得转换对于在特定时间段期间跟踪特定应用1442是有条件的,随后使得所述转换被关闭。
分派器1450还可使某些转换被部署在控制器设备1406上以准备、过滤或以其他方式修改可在可视化中显示的数据。在一些情况下,部署到预处理器1428的转换1430可以在用户控制下近实时地部署,以使得显示在可视化中的数据可被快速改变。
转换管理器1448可接收来自用户的新的或经编辑的转换并随后使用恶意软件检查器1452来确定所述转换是否可能是不正确的、不完整的、或具有导致损害的可能。恶意软件检查器1452可使用各种工具来批准或拒绝给定转换。这样的工具可包括病毒检查器、白名单、黑名单、或其他技术。
转换管理器1448可将转换存储在储存库1454中。可使储存库1454中所存储的转换可用作浏览器1416内的可选选项。
图15是示出用于控制针对数据集的时间序列的可视化的方法的实施例1500的流程图。实施例1500在左手栏示出可视化器和用户界面1502的操作且在右手栏示出数据浏览器1504。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例1500可示出用户界面1502和数据浏览器1504之间的交互的简化示例,其中数据浏览器可处理数据集并呈现数据集以用于可视化。该可视化器可具有数据绑定或对数据浏览器的其他连接以使得可视化器可检索并显示正被呈现的那些数据集。
数据浏览器1504可按序列呈现数据集以使得可视化器呈现随时间改变的图。用户界面上的控件可指示数据浏览器1504呈现不同的数据集序列以用于正常回放、反向回放、快进和其他序列。
实施例1500示出了一种方法,其中序列可被定义以用于呈现,随后数据浏览器可穿过该序列前进以使数据集被显示。在实施例1500中,所述序列可以正常正向播放,其中数据集可按照时间序列被显示;以及反向,其中数据集的序列被倒转或反转;以及快进,其中序列仅每隔一数据集显示以使得该图可按正常回放的两倍速度更新。
一旦该序列被定义,则数据浏览器可使用该序列来查找下一数据集,准备该数据集以用于查看,并使该数据集对可视化器可用。使用数据绑定和其他连接,可视化器可收集数据集并更新图。
在上面呈现的各实施例中的若干实施例中,可视化器可在一个设备上操作而数据浏览器可在第二设备上操作。在一些情况下,可视化器和用户界面1502和数据浏览器1504两者可在同一设备或不同设备上操作。
从用户界面1502,可发送命令以在框1506中开始可视化。在框1508,该命令可由数据浏览器1504接收。
在框1510中可定义要显示的序列。对于正常回放,该序列可以是正常、正向序列中的数据集的时间序列。在框1512可选择要显示的下一时间点,且在框1514可检索与该时间点相关联的数据集。在一些情况下,该数据集可被从数据储存库中检索,该数据储存库可以是通过网络访问的远程设备。
在框1514中检索数据集之后,在框1516可应用任何转换且在框1518可传送数据集。该过程可返回至框1512以选择序列中的下一数据集。
可视化器和用户界面1502可接收框1522中的新数据集并在框1524中渲染或更新该图。每当数据集可由数据浏览器1504更新时,可视化器可通过框1522和1524的循环来循环。
类似地,数据浏览器1504可通过框1512到1518循环以取回序列中的下一数据集,准备该数据集,并使该数据集对该可视化器可用。框1512到1518的循环的时序可被设置成与该数据集所表示的真实时间相对应并由此使该图与底层数据在同一时间帧中更新。
在一些实施例中,框1512到1518的循环可被调整得更快或更慢以使得该回放可在速度上增加或减小。在一些情况下,数据收集频率可比回放频率快得多,这可使得回放比真实时间更慢。在其他情况下,数据收集频率可比回放频率慢得多,这可使得回放比真实时间快得多。
在某个点,用户界面1502在框1502可发出倒带命令,在框1528该命令可被传送至数据浏览器1504。数据浏览器1504可在框1530中定义具有相反次序的时间点的新序列。数据浏览器1504可返回至框1512以选择序列中的下一数据集。因为该序列现在被反转,所以数据浏览器1504可按相反次序呈现该数据集,且每当该数据集可被更新时,该可视化器可更新该图。
在框1532暂停命令可从用户界面1502发出,并被传送至数据浏览器1504,在框1534该数据浏览器可接收暂停命令。数据浏览器1504在框1536可仅停止发送数据集以使该图停止被更新。
在框1538播放命令可从用户界面1502发出,并被传送至数据浏览器1504,在框1540该数据浏览器可接收播放命令。数据浏览器1504在框1542可定义具有按正向次序安排的时间点的新序列,并且在框1544恢复发送数据集,随后以框1512继续。
在框1546快进命令可从用户界面1502发出,并被传送至数据浏览器1504,在框1548该数据浏览器可接收快进命令。数据浏览器1504在框1550可创建仅具有可用数据集的子集的序列。在其中快进可按照正常播放速度的两倍速度重放的情况下,该序列可仅包括每隔一个的数据集。该过程可返回至框1512以循环遍历数据集的序列。
对本发明的上述描述是出于图示和描述的目的而呈现的。它不旨在穷举本主题或将本主题限于所公开的精确形式,并且鉴于上述教导其他修改和变型都是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,由此使本领域的其他技术人员能够在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明。所附权利要求书旨在被解释为包括除受现有技术所限的范围以外的其他替换实施例。

Claims (24)

1.一种方法,包括:
接收图数据,所述图数据包括在预定义的间隔传送的周期性更新;
在图中在显示设备上显示所述图数据;
接收转换定义,所述转换定义包括对所述图数据执行操作的可执行代码;
对所述转换定义执行恶意软件分析;
使用所述图数据执行所述可执行代码来生成经转换的图数据;以及
显示所述经转换的图数据。
2.如权利要求1所述的方法,其特征在于,进一步包括:
在所述显示设备上呈现用户界面以接受所述转换定义。
3.如权利要求2所述的方法,其特征在于,所述用户界面包括一组执行设置。
4.如权利要求3所述的方法,其特征在于,进一步包括存储所述转换定义。
5.如权利要求4所述的方法,其特征在于,所述用户界面进一步包括用于从所存储的转换定义集合中选择所述转换定义的检索机制。
6.如权利要求1所述的方法,其特征在于,所述图数据为在跟踪应用时生成的踪迹数据。
7.如权利要求6所述的方法,其特征在于,所述转换定义包括选择第一跟踪器输出以及向所述第一跟踪器输出应用转换函数。
8.如权利要求7所述的方法,其特征在于,所述第一跟踪器输出被包括在所述踪迹数据中而不被包括在所述图数据中。
9.如权利要求7所述的方法,其特征在于,所述转换函数被应用至多个跟踪器输出数据项。
10.如权利要求1所述的方法,其特征在于,所述实况图为随着每个更新被接收而改变的经动画化的图。
11.如权利要求1所述的方法,其特征在于,所述经转换的图数据取代所述图数据在所述图中被显示。
12.如权利要求1所述的方法,其特征在于,所述恶意软件分析包括对照白名单检查所述可执行代码。
13.如权利要求1所述的方法,其特征在于,所述恶意软件分析包括对照黑名单检查所述可执行代码。
14.一种系统,包括:
显示设备;
可视化器,所述可视化器:
接收图数据,所述图数据包括周期性更新并表示实况数据流;
在所述显示设备上在图中显示所述图数据,所述图随着所述周期性更新中的每个周期性更新而被动态更新;
显示包括用于转换定义的输入的用户界面,所述转换定义包括对所述图数据执行操作的可执行代码;
将所述转换定义传送至数据处理流水线,所述数据处理流水线具有转换评估器并产生所述图数据;
接收经转换的图数据,所述经转换的图数据是根据所述转换定义被处理的;以及
使用所述经转换的图数据来更新所述图。
15.如权利要求14所述的系统,其特征在于,所述用户界面包括编辑所述可执行代码的编辑器。
16.如权利要求15所述的系统,其特征在于,所述用户界面包括用于从存储的状态中选择所述转换定义的检索机制。
17.如权利要求16所述的系统,其特征在于,所述用户界面允许在从所述存储的状态检索之后编辑所述转换定义。
18.如权利要求14所述的系统,其特征在于,进一步包括:
包括多个所存储的转换定义的存储储存库。
19.如权利要求18所述的系统,其特征在于,进一步包括:
包括用于召回所述所存储的转换的机制的用户界面组件。
20.如权利要求14所述的系统,其特征在于,所述数据处理流水线被包含在所述系统内。
21.如权利要求14所述的系统,其特征在于,所述数据处理流水线被通过网络访问。
22.如权利要求14所述的系统,其特征在于,进一步包括:
恶意软件检查器,所述恶意软件检查器在向所述数据处理流水线传送所述转换定义之前评估所述可执行代码。
23.如权利要求14所述的系统,其特征在于,所述数据处理流水线在将所述数据存储在数据储存库之前执行所述转换定义。
24.如权利要求14所述的系统,其特征在于,所述数据处理流水线在将所述数据存储在数据储存库之后执行所述转换定义。
CN201380075219.1A 2013-02-01 2013-06-16 用于动态显示跟踪器数据的转换函数插入 Active CN105122257B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/757,631 US9256969B2 (en) 2013-02-01 2013-02-01 Transformation function insertion for dynamically displayed tracer data
US13/757,631 2013-02-01
PCT/US2013/046050 WO2014120270A1 (en) 2013-02-01 2013-06-16 Transformation function insertion for dynamically displayed tracer data

Publications (2)

Publication Number Publication Date
CN105122257A true CN105122257A (zh) 2015-12-02
CN105122257B CN105122257B (zh) 2018-10-16

Family

ID=49042583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075219.1A Active CN105122257B (zh) 2013-02-01 2013-06-16 用于动态显示跟踪器数据的转换函数插入

Country Status (4)

Country Link
US (2) US9256969B2 (zh)
EP (1) EP2951751B1 (zh)
CN (1) CN105122257B (zh)
WO (1) WO2014120270A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843784A (zh) * 2017-01-19 2017-06-13 沃民高新科技(北京)股份有限公司 显示数据的方法和装置

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US8789030B2 (en) 2012-09-18 2014-07-22 Concurix Corporation Memoization from offline analysis
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US8656378B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Memoization configuration file consumed at compile time
US8752034B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Memoization configuration file consumed at runtime
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US8752021B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Input vector analysis for memoization estimation
US8839204B2 (en) 2012-11-08 2014-09-16 Concurix Corporation Determination of function purity for memoization
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
WO2015071778A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Application execution path tracing with configurable origin definition
CN105765560B (zh) 2013-11-13 2019-11-05 微软技术许可有限责任公司 基于多次跟踪执行的软件组件推荐
US20150212658A1 (en) * 2014-01-24 2015-07-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Indicating altered user interface elements
US10269152B2 (en) * 2015-06-05 2019-04-23 International Business Machines Corporation Force-directed graphs
US9514205B1 (en) 2015-09-04 2016-12-06 Palantir Technologies Inc. Systems and methods for importing data from electronic data files
US10515093B2 (en) * 2015-11-30 2019-12-24 Tableau Software, Inc. Systems and methods for interactive visual analysis using a specialized virtual machine
US10748312B2 (en) * 2016-02-12 2020-08-18 Microsoft Technology Licensing, Llc Tagging utilizations for selectively preserving chart elements during visualization optimizations
US10565225B2 (en) * 2016-03-04 2020-02-18 International Business Machines Corporation Exploration and navigation of a content collection
US10565749B1 (en) * 2016-06-10 2020-02-18 Invincea, Inc. Methods and apparatus for efficiently processing a graph data structure
EP3282374A1 (en) * 2016-08-17 2018-02-14 Palantir Technologies Inc. User interface data sample transformer
US20180137667A1 (en) 2016-11-14 2018-05-17 Oracle International Corporation Graph Visualization Tools With Summary Visualization For Very Large Labeled Graphs
US10585575B2 (en) 2017-05-31 2020-03-10 Oracle International Corporation Visualizing UI tool for graph construction and exploration with alternative action timelines
US10762111B2 (en) 2017-09-25 2020-09-01 International Business Machines Corporation Automatic feature learning from a relational database for predictive modelling
CN107894889A (zh) * 2017-10-16 2018-04-10 努比亚技术有限公司 埋点方法、设备及计算机可读存储介质
US10628980B2 (en) * 2017-10-30 2020-04-21 Nutanix, Inc. High-performance graph rendering in browsers
US11120082B2 (en) 2018-04-18 2021-09-14 Oracle International Corporation Efficient, in-memory, relational representation for heterogeneous graphs
US10216546B1 (en) * 2018-07-09 2019-02-26 Insitu Software Limited Computationally-efficient resource allocation
US10706376B2 (en) * 2018-07-09 2020-07-07 GoSpace AI Limited Computationally-efficient resource allocation
US11257263B1 (en) 2018-10-23 2022-02-22 Palantir Technologies Inc. Systems and methods for generating dynamic pipeline visualizations
CN109597844B (zh) * 2019-01-31 2020-12-22 中科人工智能创新技术研究院(青岛)有限公司 基于深度神经网络与图网络的核心用户挖掘方法及系统
US11741084B2 (en) * 2019-09-27 2023-08-29 Autodesk, Inc. High frequency data management (HFDM)
US11620338B1 (en) * 2019-10-07 2023-04-04 Wells Fargo Bank, N.A. Dashboard with relationship graphing
US11663228B2 (en) 2020-01-15 2023-05-30 International Business Machines Corporation Automated management of data transformation flows based on semantics
US11487401B2 (en) * 2020-03-31 2022-11-01 Keysight Technologies, Inc. System and method for selectively displaying waveforms using graphical user interface
US11574249B2 (en) * 2020-06-02 2023-02-07 International Business Machines Corporation Streamlining data processing optimizations for machine learning workloads

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061574A1 (en) * 2001-06-15 2003-03-27 Sanjeev Saluja Procedure for optimizingmergeability and datapath widths of data flow graphs
US20050188272A1 (en) * 2004-01-30 2005-08-25 Bodorin Daniel M. System and method for detecting malware in an executable code module according to the code module's exhibited behavior
US20060106843A1 (en) * 2004-11-17 2006-05-18 Targit A/S Database track history
CN100504871C (zh) * 2005-11-18 2009-06-24 国际商业机器公司 用于外部数据模型的表格集成的方法和系统
CN101501678A (zh) * 2006-08-10 2009-08-05 起元软件有限公司 在基于图的计算中分配服务
US20120222019A1 (en) * 2012-05-01 2012-08-30 Concurix Corporation Control Flow Graph Operating System Configuration
US20120260135A1 (en) * 2011-04-08 2012-10-11 Computer Associates Think, Inc. Visualizing Relationships Between A Transaction Trace Graph And A Map Of Logical Subsystems

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2765969B2 (ja) * 1989-07-31 1998-06-18 株式会社日立製作所 図式データ駆動型プログラム開発支援装置
US5778004A (en) * 1995-06-02 1998-07-07 Unisys Corporation Vector translator
US5758183A (en) * 1996-07-17 1998-05-26 Digital Equipment Corporation Method of reducing the number of overhead instructions by modifying the program to locate instructions that access shared data stored at target addresses before program execution
US7091948B2 (en) * 1997-04-25 2006-08-15 Immersion Corporation Design of force sensations for haptic feedback computer interfaces
WO2000007100A1 (en) 1998-07-30 2000-02-10 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6378066B1 (en) 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
CA2315449A1 (en) 2000-08-10 2002-02-10 Ibm Canada Limited-Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
US20020196229A1 (en) * 2001-06-26 2002-12-26 Frank Chen Graphics-based calculator capable of directly editing data points on graph
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7194664B1 (en) 2003-09-08 2007-03-20 Poon Fung Method for tracing application execution path in a distributed data processing system
US7343521B2 (en) 2004-05-28 2008-03-11 International Business Machines Corporation Method and apparatus to preserve trace data
JP2005346414A (ja) 2004-06-03 2005-12-15 Fujitsu Ltd トレース処理プログラム、方法及び装置
US7346809B2 (en) 2004-08-05 2008-03-18 International Business Machines Corporation Bootable post crash analysis environment
US7606168B2 (en) 2005-01-28 2009-10-20 Attenex Corporation Apparatus and method for message-centric analysis and multi-aspect viewing using social networks
US7810075B2 (en) 2005-04-29 2010-10-05 Sap Ag Common trace files
US7239980B2 (en) 2005-08-30 2007-07-03 International Business Machines Corporation Method and apparatus for adaptive tracing with different processor frequencies
US20070140131A1 (en) 2005-12-15 2007-06-21 Malloy Patrick J Interactive network monitoring and analysis
US20070143795A1 (en) 2005-12-20 2007-06-21 Duong-Han Tran Application trace for distributed systems environment
US7979245B1 (en) 2006-05-17 2011-07-12 Quest Software, Inc. Model-based systems and methods for monitoring computing resource performance
FR2904499B1 (fr) 2006-07-27 2009-01-09 Commissariat Energie Atomique Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
US8028200B2 (en) 2006-09-29 2011-09-27 Sap Ag Tracing operations in multiple computer systems
US8037457B2 (en) 2006-09-29 2011-10-11 Sap Ag Method and system for generating and displaying function call tracker charts
WO2008080780A1 (en) 2007-01-05 2008-07-10 International Business Machines Corporation Recording execution information for a software application
US8543711B2 (en) 2007-04-30 2013-09-24 Hewlett-Packard Development Company, L.P. System and method for evaluating a pattern of resource demands of a workload
US8214806B2 (en) 2007-05-09 2012-07-03 International Business Machines Corporation Iterative, non-uniform profiling method for automatically refining performance bottleneck regions in scientific code
US7698602B2 (en) 2007-06-13 2010-04-13 International Business Machines Corporation Systems, methods and computer products for trace capability per work unit
US8276117B2 (en) 2007-08-03 2012-09-25 International Business Machines Corporation Displaying and refactoring programs that include database statements
US8301755B2 (en) 2007-12-14 2012-10-30 Bmc Software, Inc. Impact propagation in a directed acyclic graph
US20110004598A1 (en) 2008-03-26 2011-01-06 Nec Corporation Service response performance analyzing device, method, program, and recording medium containing the program
JP5386905B2 (ja) 2008-09-25 2014-01-15 富士通セミコンダクター株式会社 プロファイリング方法およびプロファイリングプログラム
CN102239458B (zh) 2008-12-02 2015-07-15 起元技术有限责任公司 可视化数据元素之间的关系
US9076125B2 (en) 2009-02-27 2015-07-07 Microsoft Technology Licensing, Llc Visualization of participant relationships and sentiment for electronic messaging
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
CN102460408B (zh) 2009-06-01 2014-08-06 惠普开发有限公司 用于收集应用性能数据的系统和方法
US8352907B2 (en) 2009-08-10 2013-01-08 International Business Machines Corporation Software application recreation
US9082126B2 (en) * 2009-09-25 2015-07-14 National Electronics Warranty, Llc Service plan web crawler
US8275816B1 (en) 2009-11-06 2012-09-25 Adobe Systems Incorporated Indexing messaging events for seeking through data streams
US8356354B2 (en) * 2009-11-23 2013-01-15 Kaspersky Lab, Zao Silent-mode signature testing in anti-malware processing
US9639446B2 (en) 2009-12-21 2017-05-02 International Business Machines Corporation Trace monitoring
EP2553582A1 (en) 2010-03-26 2013-02-06 Software Diagnostics Technology GmbH A method for automatically generating a trace data set for a software system, a computer system, and a computer program product
WO2011142720A1 (en) 2010-05-14 2011-11-17 Gabriyel Wong Chee Kien A self-organizing and contextual graphical user interface
EP2390790A1 (en) 2010-05-27 2011-11-30 Fujitsu Limited Profiling of software applications
US8966447B2 (en) 2010-06-21 2015-02-24 Apple Inc. Capturing and displaying state of automated user-level testing of a graphical user interface application
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US9177041B2 (en) * 2010-09-03 2015-11-03 Robert Lewis Jackson, JR. Automated stratification of graph display
CN103180826B (zh) 2010-10-25 2017-04-05 起元技术有限责任公司 在代表计算机程序的数据流图中管理数据集对象
US8583978B2 (en) 2010-11-09 2013-11-12 Cisco Technology, Inc. Multicast message retransmission
US8938720B2 (en) 2010-11-30 2015-01-20 Sap Se Trace visualization for object oriented programs
US8843852B2 (en) * 2010-12-17 2014-09-23 Orca Health, Inc. Medical interface, annotation and communication systems
WO2012106571A2 (en) 2011-02-04 2012-08-09 Opnet Technologies, Inc. Overhead management for event tracing
EP2747013A1 (en) 2011-02-23 2014-06-25 Bottlenose, Inc. System and Method for Analyzing Messages in a Network or Across Networks
US8756171B2 (en) 2011-06-15 2014-06-17 International Business Machines Corporation Generating predictions from a probabilistic process model
US10592825B2 (en) 2011-06-22 2020-03-17 International Business Machines Corporation Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US8312056B1 (en) 2011-09-13 2012-11-13 Xerox Corporation Method and system for identifying a key influencer in social media utilizing topic modeling and social diffusion analysis
US8595743B2 (en) 2012-05-01 2013-11-26 Concurix Corporation Network aware process scheduling
US9417935B2 (en) 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US20120222043A1 (en) 2012-05-01 2012-08-30 Concurix Corporation Process Scheduling Using Scheduling Graph to Minimize Managed Elements
US20120324454A1 (en) 2012-05-04 2012-12-20 Concurix Corporation Control Flow Graph Driven Operating System
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US20120317421A1 (en) 2012-06-19 2012-12-13 Concurix Corporation Fingerprinting Executable Code
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US8707326B2 (en) 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8966462B2 (en) 2012-08-10 2015-02-24 Concurix Corporation Memory management parameters derived from system modeling
US20130080760A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Execution Environment with Feedback Loop
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US20130085882A1 (en) 2012-09-18 2013-04-04 Concurix Corporation Offline Optimization of Computer Software
US8789030B2 (en) 2012-09-18 2014-07-22 Concurix Corporation Memoization from offline analysis
US8752034B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Memoization configuration file consumed at runtime
US8826254B2 (en) 2012-11-08 2014-09-02 Concurix Corporation Memoizing with read only side effects
US20130074057A1 (en) 2012-11-08 2013-03-21 Concurix Corporation Selecting Functions for Memoization Analysis
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US8694574B2 (en) 2012-11-08 2014-04-08 Concurix Corporation Optimized settings in a configuration database with boundaries
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8752021B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Input vector analysis for memoization estimation
US8656378B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Memoization configuration file consumed at compile time
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US8839204B2 (en) 2012-11-08 2014-09-16 Concurix Corporation Determination of function purity for memoization
US20140025572A1 (en) 2013-01-25 2014-01-23 Concurix Corporation Tracing as a Service
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US20130232452A1 (en) 2013-02-01 2013-09-05 Concurix Corporation Force Directed Graph with Time Series Data
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US20130232433A1 (en) 2013-02-01 2013-09-05 Concurix Corporation Controlling Application Tracing using Dynamic Visualization
US20140019879A1 (en) 2013-02-01 2014-01-16 Concurix Corporation Dynamic Visualization of Message Passing Computation
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US20130283102A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deployment of Profile Models with a Monitoring Agent
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US20140013308A1 (en) 2013-04-20 2014-01-09 Concurix Corporation Application Development Environment with Services Marketplace
US20140013306A1 (en) 2013-04-20 2014-01-09 Concurix Corporation Computer Load Generator Marketplace
US20130282545A1 (en) 2013-04-20 2013-10-24 Concurix Corporation Marketplace for Monitoring Services
US20130283242A1 (en) 2013-04-20 2013-10-24 Concurix Corporation Tracing Closures in a Callback Environment
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061574A1 (en) * 2001-06-15 2003-03-27 Sanjeev Saluja Procedure for optimizingmergeability and datapath widths of data flow graphs
US20050188272A1 (en) * 2004-01-30 2005-08-25 Bodorin Daniel M. System and method for detecting malware in an executable code module according to the code module's exhibited behavior
US20060106843A1 (en) * 2004-11-17 2006-05-18 Targit A/S Database track history
CN100504871C (zh) * 2005-11-18 2009-06-24 国际商业机器公司 用于外部数据模型的表格集成的方法和系统
CN101501678A (zh) * 2006-08-10 2009-08-05 起元软件有限公司 在基于图的计算中分配服务
US20120260135A1 (en) * 2011-04-08 2012-10-11 Computer Associates Think, Inc. Visualizing Relationships Between A Transaction Trace Graph And A Map Of Logical Subsystems
US20120222019A1 (en) * 2012-05-01 2012-08-30 Concurix Corporation Control Flow Graph Operating System Configuration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843784A (zh) * 2017-01-19 2017-06-13 沃民高新科技(北京)股份有限公司 显示数据的方法和装置
CN106843784B (zh) * 2017-01-19 2021-01-22 沃民高新科技(北京)股份有限公司 显示数据的方法和装置

Also Published As

Publication number Publication date
EP2951751A4 (en) 2016-09-28
EP2951751B1 (en) 2019-02-27
US9437024B2 (en) 2016-09-06
US20160133035A1 (en) 2016-05-12
US20130229416A1 (en) 2013-09-05
WO2014120270A1 (en) 2014-08-07
CN105122257B (zh) 2018-10-16
US9256969B2 (en) 2016-02-09
EP2951751A1 (en) 2015-12-09

Similar Documents

Publication Publication Date Title
CN105122257A (zh) 用于动态显示跟踪器数据的转换函数插入
CN105122216A (zh) 具有时间序列数据的力导向图
CN105122236A (zh) 使用动态可视化控制应用跟踪
CN105103133A (zh) 消息传递计算的动态可视化
US9323863B2 (en) Highlighting of time series data on force directed graph
US7844036B2 (en) Visual test automation tool for message-based applications, web applications and SOA systems
CN102541998B (zh) 业务智能和报表故事板
US20150212928A1 (en) Interactive graph for navigating application code
CN105765528A (zh) 具有可配置原点定义的应用执行路径跟踪
CN104205062A (zh) 剖析数据可视化
JP2006018827A (ja) スマート・ユーザ・インターフェース記録および再生フレームワーク
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
CN110196790A (zh) 异常监控的方法和装置
US11647250B2 (en) Methods and systems for remote streaming of a user-customized user interface
CN114185874A (zh) 一种基于大数据的建模方法、装置、开发框架及设备
CN113485909A (zh) 测试方法、装置、计算设备以及介质
US20070226706A1 (en) Method and system for generating multiple path application simulations
CN106155895A (zh) 脚本数据处理方法及装置
US20180032929A1 (en) Risk-adaptive agile software development
US20240144558A1 (en) Generating video streams to depict bot performance during an automation run
CN110719334B (zh) 适用于云桌面行为的审计系统及方法
CN114385955A (zh) 一种数据埋点方法、装置、电子设备及存储介质
Chang et al. A survey and implementation on neural network visualization
Garg A Realistic and Reliable Approach for Real Time Monitoring of Infrastructure
CN112965944A (zh) 可视化的页面还原方法及系统、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170516

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: CONCURIX CORP.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant