欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 针对延迟数据的用户界面优化独创技术45551字

针对延迟数据的用户界面优化

2021-02-27 23:10:45

针对延迟数据的用户界面优化

  技术领域

  本公开涉及控制用户界面和相关联的数据的技术领域

  背景技术

  用于监视计算机系统的用户界面(UI)可以通过各种推送和/或拉取技术从各种来源接收数据,以在UI中呈现给用户。如果系统中包含动力不足的硬件,或者存在导致数据处理延迟的一些其他问题,则在UI中呈现的数据的某些部分可能会落后于数据的其他部分。这可能会导致UI呈现一些当前数据,而其他数据可能会在呈现用户界面时被更新或丢失。这可能导致UI和所包含的可视化图形(visualization)的连续重新渲染。UI的重新渲染可能会在发生重新渲染时导致部分UI或整个UI闪烁,这可能会带来糟糕的用户体验。此外,UI的连续重新渲染可能在计算上是昂贵的,这可能降低呈现UI的计算设备的性能。

  发明内容

  一些实现方式包括一种计算机系统,该计算机系统可以接收呈现用户界面的指示,该用户界面显示包括与存储系统的状态或性能中的至少一个有关的多个度量的数据。计算机系统可以确定工作流的状态,该工作流处理从存储系统接收到的消息。此外,计算机系统可以基于工作流的状态确定要在用户界面中呈现的多个度量可视化图形的结束时间。该计算机系统可以渲染多个度量可视化图形,其中每个度量可视化图形具有所确定的结束时间。此外,计算机系统可以提供经渲染的多个度量可视化图形以在显示器上的用户界面中进行呈现。

  附图说明

  参照附图阐述详细描述。在附图中,附图标记的最左边的一个或多个数字表示该附图标记首次出现的图。在不同图中使用相同的附图标记表示相似或相同的项目或特征。

  图1示出了根据一些实现方式的系统的示例架构。

  图2示出了根据一些实现方式的示例过程的流程图和对应的度量可视化图形。

  图3示出了根据一些实现方式的示例监视用户界面。

  图4示出了根据一些实现方式的确定度量可视化图形的结束时间的示例。

  图5是示出根据一些实现方式的示例过程的流程图。

  图6示出了根据一些实现方式的客户端设备的示例配置。

  具体实施方式

  本文的一些实现方式针对用于在计算机系统中生成用户界面(UI)的技术和布置,该计算机系统具有可能会延迟用于UI的一些数据的可用性的配置。作为一个示例,监视应用程序可以确定一个或多个工作流是最新的还是当前的。如果监视应用程序确定工作流不是当前的,则监视应用程序可以通过将每个度量的结束时间定义为所接收到的用于工作流的数据的最新近实际点,来重新定义要在UI中呈现的多个度量可视化图形的时间帧(timeframe)。在一些情况下,第一时间戳(t1)可以对应于输入工作流队列的最新近排队的工作流输入项。此外,第二时间戳(t2)可以对应于已经由工作流完成的最新近完成的工作流项。

  当确定t1和t2相同时,则此确定结果表明工作流是当前的并且所使用的结束时间可以基于当前时间或其他计时考虑。另一方面,如果确定t1和t2不同,则此确定结果可以表明数据处理工作流中的积压。当监视应用程序确定积压了数据处理工作流时,监视应用程序可以将UI中的度量设置为使用t2作为UI中所有显示的度量可视化图形的结束时间。因此,可以将所有度量可视化图形设置为相同的结束时间,以便即使针对某些度量接收到的数据领先于针对其他度量接收到的数据,度量可视化图形也在时间上同步。随着时间的流逝,监视应用程序可以通过在稍后的时间点再次获取并比较t1和t2来确定下一个结束时间(例如,新的t2,或者如果工作流赶上了,则为当前时间)。

  一些示例包括将监视计算设备配置为近乎实时地(NRT)监视包括存储系统的计算机系统的性能的监视应用程序。监视应用程序可以提供与计算机系统的性能有关的多个度量的多个可视化图形。可以在一个或多个监视UI(在一些示例中也可以被称为仪表板)中一起呈现多个可视化图形,以向用户提供系统的当前状态和性能的视觉指示。监视应用程序还可以基于定义值或其他阈值向用户触发警报或其他通知,其中的定义值或其他阈值可以针对由监视应用程序确定的每个度量来进行设置。

  本文的实现方式包括设置多个可视化图形窗口以使UI内的多个可视化图形同步的过程。随着时间的流逝,监视应用程序可以确定可能与实际时间匹配或不匹配的新的“当前”时间,并且可以确定在用于生成可视化图形的最新时间与新的可视化图形时间之间的任何度量数据更新。因此,本文的示例提供了当一个或多个UI度量可视化图形落后并随后赶上时重新生成整个可视化图形的计算负荷的减少。

  出于讨论目的,在一个或多个监视计算设备的环境中描述了一些示例实现方式,该监视计算设备监视与一个或多个服务计算设备和用于管理数据存储的多个客户端设备进行交互的一个或多个网络存储系统的性能。但是,本文的实现方式不限于所提供的特定示例,而是可以扩展到根据本文的公开内容对于本领域技术人员而言是显而易见的其他类型的计算系统架构、其他类型的存储环境、其他类型的客户端和服务器配置、其他类型的数据等等。

  图1示出了根据一些实现方式被配置为呈现UI的系统100的示例架构。在一些情况下,系统100可以对应于多个计算设备的集群;然而,本文的实现方式不限于任何特定的系统配置。系统100包括至少一个服务计算设备102,该服务计算设备102在本文中也被称为节点,该节点能够例如通过一个或多个网络105与存储系统104通信或以其他方式连接至存储系统104。此外,服务计算设备102可能能够通过一个或多个网络106与一个或多个客户端计算设备108通信,该客户端计算设备108可以是下面另外的讨论的各种类型的计算设备中的任何一种。另外,(多个)客户端计算设备108可能能够与一个或多个服务计算设备109通信,例如以经由(多个)服务计算设备109访问存储系统104。因此,(多个)服务计算设备109也可以是系统100中的(多个)节点。

  在一些示例中,服务计算设备102和109可以包括可以以任何数量的方式实现的一个或多个服务器或其他类型的计算设备。例如,在服务器的情况下,程序、应用程序、其他功能组件和数据存储的至少一部分可以在至少一个服务器上实现,例如在服务器集群、服务器群(server farm)、数据中心、云托管的计算服务等等中实现,但是可以补充地或替代地使用其他计算机架构。在所示的示例中,服务计算设备102和109可以各自包括一个或多个处理器110、一个或多个计算机可读介质112以及一个或多个通信接口114,或者可以与之相关联。

  每个处理器110可以是单个处理单元或多个处理单元,并且可以包括单个或多个计算单元或多个处理核。(多个)处理器110可以被实现为一个或多个中央处理单元、微处理器、微型计算机、微控制器、数字信号处理器、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。作为一个示例,(多个)处理器110可以包括具体被编程或配置为执行本文所述的算法和过程的一个或多个硬件处理器和/或任何适当类型的逻辑电路。(多个)处理器110可以被配置为获取并执行存储在计算机可读介质112中的计算机可读指令,该计算机可读指令可以对(多个)处理器110进行编程以进行本文所述的功能。

  计算机可读介质112可以包括用于存储诸如计算机可读指令、数据结构、应用程序模块或其他数据之类的信息的以任何类型的技术实现的易失性和非易失性的存储器和/或可移除和不可移除的介质。例如,计算机可读介质112可以包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储技术、光学存储器、固态存储器、磁带、磁盘存储器、RAID存储系统、存储阵列、附网存储器(network attached storage)、存储区域网络、云存储或可用于存储所需信息并可由计算设备访问的任何其他介质。根据服务计算设备102和109的配置,计算机可读介质112可以是有形的非瞬态介质,从而在提及时,非瞬态计算机可读介质不包括诸如能量、载波信号、电磁波和/或信号本身之类的介质。在一些情况下,计算机可读介质112可以与服务计算设备102和109位于相同的位置,而在其他示例中,计算机可读介质112可以部分地远离服务计算设备102和109。例如,在一些情况下,计算机可读介质112可以包括存储系统104中的一部分存储。

  计算机可读介质112可以用于存储可由(多个)处理器110执行的任何数量的功能组件。在许多实现方式中,这些功能组件包括可由(多个)处理器110执行的指令或程序,在被执行时,该指令或程序具体地对(多个)处理器110进行编程以进行在此赋予服务计算设备102和109的动作。存储在服务计算设备102的计算机可读介质112中的功能组件可以包括索引编制应用程序116、搜索应用程序118和监视应用程序120,其中每个应用程序均可以包括一个或多个计算机程序、应用程序、可执行代码或它们的一部分。例如,如下面另外讨论的那样,索引编制应用程序116可以执行工作流以对从存储系统104接收到的系统日志消息121进行索引编制,从而生成一个或多个索引122。此外,搜索应用程序118可以从(多个)客户端设备108接收搜索查询123,并且作为响应,可以提供搜索结果响应124。此外,监视应用程序120可以从系统100接收信息,并且可以在显示器126上呈现监视UI 125以供用户128查看。

  另外,存储在服务计算设备109的计算机可读介质112中的功能组件可以包括服务器程序130和数据库程序132,它们中的每一个均可以包括一个或多个计算机程序、应用程序、可执行代码或它们的一部分。例如,服务器程序130可以提供与(多个)客户端设备108和存储系统104的通信功能。数据库程序132可以包括用于创建和管理元数据数据库133的数据库管理功能,元数据数据库133包含与存储在存储系统104处的数据对应的元数据,例如一个或多个文件系统134等。

  存储在服务计算设备102和109的计算机可读介质112中的附加功能组件可以包括用于控制和管理服务计算设备102和109的各种功能的操作系统(未在图1中示出)。在一些情况下,功能组件可以被存储在计算机可读介质112的存储部分中,被加载到计算机可读介质112的本地存储器部分中,并且由一个或多个处理器110执行。

  另外,计算机可读介质112可以存储用于进行本文所述的功能和服务的数据和数据结构。例如,如下面另外讨论的那样,服务计算设备102的计算机可读介质112可以存储(多个)索引122以及用于一个或多个应用程序编程接口(API)的API信息135。此外,服务计算设备109的计算机可读介质112可以存储元数据数据库133。在所示的示例中,元数据数据库133包括多个文件系统134。服务计算设备102和109还可包括或保存其他功能组件和数据,其可包括程序、驱动程序等以及由功能组件使用或生成的数据。此外,服务计算设备102和109可以包括许多其他逻辑组件、程序组件和物理组件,其中在上面描述的那些仅仅是与本文的讨论有关的示例。另外,尽管在该示例中将服务计算设备102和109作为单独的计算设备被示出,但是在其他示例中,服务计算设备102和109可以是同一计算设备。

  (多个)通信接口114可以包括一个或多个接口和硬件组件,以实现例如通过一个或多个网络105和106与各种其他设备进行通信。因此,通信接口114可以包括或可以连接至如下的一个或多个端口:提供与(多个)网络105的连接以与存储系统104进行通信的一个或多个端口,以及提供与(多个)网络106的连接以与(多个)客户端设备108进行通信的一个或多个端口。例如,(多个)通信接口114可以实现通过LAN、互联网、电缆网络、蜂窝网络、无线网络(例如,Wi-Fi)和有线网络(例如,光纤通道、光纤、以太网)中的一个或多个进行的通信、通过直接连接进行的通信以及诸如等短程通信,如本文其他地方另外列举的那样。

  每个客户端设备108可以是任何合适类型的计算设备,例如台式机、膝上型计算机、平板计算设备、移动设备、智能电话、可穿戴设备和/或能够通过网络发送数据的任何其他类型的计算设备。在一些情况下,客户端设备108可以包括下面关于图6讨论的硬件配置和逻辑配置。客户端用户136可以例如通过相应的用户帐户、用户登录凭证等与相应的客户端设备108相关联。在一些示例中,(多个)客户端设备108可以经由应用服务器(未在图1中示出)访问服务计算设备102或109,而在其他示例中,(多个)客户端设备108可以直接访问服务计算设备102和109。此外,客户端设备108可能能够通过一个或多个网络106、通过单独的网络或通过任何其他合适类型的通信连接与服务计算设备102和109进行通信。许多其他变化对于受益于本文公开内容的本领域技术人员而言是显而易见的。

  此外,每个客户端设备108可以包括客户端应用程序138的相应实例,该客户端程序138可以在相应的客户端设备108上执行,例如以与服务器程序130进行通信,例如,从而发送用户数据以存储在存储系统104上和/或从存储系统104接收存储的数据。在一些情况下,应用程序138可以包括浏览器或可以通过浏览器操作,而在其他情况下,应用程序138可以包括具有能够通过一个或多个网络106与服务器程序130进行通信的通信功能的任何其他类型的应用程序。

  一个或多个网络105和106可以包括任何合适的网络,包括:广域网,例如因特网;局域网(LAN),例如内联网;无线网络(例如,蜂窝网络)、本地无线网络(例如,Wi-Fi)和/或短程无线通信(例如,);有线网络,包括光纤通道、光纤、以太网或任何其他此类网络、直接有线连接或它们的任何组合。因此,一个或多个网络105和106可以包括有线和/或无线通信技术。用于这种通信的组件可以至少部分地取决于网络的类型、所选的环境或两者。用于通过这样的网络进行通信的协议是众所周知的,本文不作详细讨论。因此,服务计算设备102和109以及(多个)客户端设备108能够使用有线或无线连接及其组合在一个或多个网络106上进行通信。此外,在一些情况下,负荷平衡计算设备(未在图1中示出)可以位于服务计算设备102和/或109与(多个)客户端设备108之间。另外,在一些示例中,网络105可以是LAN,并且服务计算设备102和109可以对于存储系统104位于本地。

  存储系统104可以包括一个或多个存储计算设备140,其可以包括一个或多个服务器或任何其他合适的计算设备,例如以上关于服务计算设备102和109所讨论的任何示例。(多个)存储计算设备140可各自包括一个或多个处理器142、一个或多个计算机可读介质144以及一个或多个通信接口146。例如,处理器142可以对应于以上关于处理器110讨论的任何示例,计算机可读介质144可以对应于以上关于计算机可读介质112讨论的任何示例,并且通信接口146可以对应于以上关于通信接口114讨论的任何示例。

  另外,计算机可读介质144可以包括作为功能组件的存储程序148,该功能组件由一个或多个处理器142执行以管理数据在存储系统104中包括的存储装置150上的存储。存储装置150可以包括与存储装置150相关联的一个或多个控制器152,以将数据存储在存储设备156的一个或多个阵列154上。例如,控制器152可以控制阵列154,例如用于将阵列154配置成RAID配置等,和/或用于向存储程序148呈现基于存储设备156的逻辑单元以及用于管理存储在底层物理存储设备156上的数据(例如,数据对象158)。存储设备156可以是任何类型的存储设备,例如硬盘驱动器、固态驱动器、光学驱动器、磁带、它们的组合等等。在一些示例中,一个或多个阵列154可包括被配置为提供按需存储容量的精简配置(thin-provisioning)阵列。此外,存储装置150可以用于创建存储池,以为团队文件夹提供存储容量以及为个体用户提供存储容量。

  客户端用户136可以使用在客户端设备108上执行的客户端应用程序138执行客户端存储操作160,例如用于在存储系统104上存储数据、从存储系统104获取数据、从存储系统104删除数据等。为了执行这样的操作,客户端应用程序138与服务计算设备109上的服务器程序130进行通信。反过来,根据从客户端应用程序108接收到的请求,服务器程序130可以对存储系统104执行服务器存储操作162,诸如用于获取用户数据、存储用户数据、指示存储系统104删除用户数据等。

  当存储计算设备140例如响应于来自客户端用户136的请求而执行存储操作时,存储计算设备140可以生成可以存储在计算机可读介质144上或另一个合适的存储位置的系统日志170。另外,存储程序148可以在系统日志消息121中向服务计算设备102发送关于系统日志的信息。作为一个示例,系统日志消息121可以作为系统日志(syslog)格式的消息发送。Syslog是由(互联网工程任务组)维护的用于消息记录的标准消息传递协议,该协议允许使生成消息的软件、存储消息的系统以及报告和分析消息的软件分开。替代地,可以使用多种其他类型的消息传递协议和格式中的任何一种。因此,本文的实现方式不限于使用syslog协议。

  在一些情况下,系统日志消息121可以对应于由存储系统104执行的相应动作,例如访问动作,例如,客户端用户136与数据对象158的交互,例如以进行写入、读取、移动、删除、重命名等。另外,系统日志消息还可以涉及对存储系统104执行的事件,例如由管理员通过管理控制台(未在图1中示出)采取的动作,例如用于改变存储系统104的设置、在存储系统104内迁移数据等。

  服务计算设备102上的索引编制应用程序116可以接收系统日志消息121,并且可以应用工作流,诸如用于对接收到的每个系统日志消息121进行索引编制。在完成工作流之后,监视应用程序120可以在监视UI 125中呈现有关最新系统日志消息121的信息。另外,监视应用程序120可以使用API信息135来应用一个或多个API,以收集有关存储系统104和/或(多个)服务计算设备109或系统100中的其他计算设备的状态和性能的信息。例如,监视应用程序120可以采用消息传递API(MAPI)、REST API或用于从系统100收集信息的各种其他API,以使监视应用程序120能够在UI 125中提供关于系统100的状态和性能度量的信息。此外,尽管将API描述为用于收集关于系统100的状态和性能的数据的一种技术,但是本文的实现方式不限于使用API或用于获取关于系统100的组件的状态和性能的信息的任何其他特定技术。作为一个示例,简单对象访问协议可用于获取或接收状态和性能信息。

  如上所述,由索引编制应用程序116执行的索引编制工作流可能在处理接收到的系统日志消息121的数据上落后。例如,服务计算设备102可能没有足够的计算能力来实时执行索引编制过程,或者服务计算设备102可能接收到(多个)处理器110可能无法实时或近乎实时地处理的大量用于处理的数据。处理接收到的系统日志消息121的数据的这种延迟可能导致监视应用程序120无法在UI 125中呈现某些可视化图形的“最新”数据。另一方面,由于没有对该信息执行索引编制,因此API获取信息172或由监视应用程序接收或获得的其他状态和/或性能数据可能是最新的。此外,仅知道长时间未接收到系统日志消息121并不提供关于由索引编制应用程序处理的数据对于其他数据是最新的还是当前的指示。

  因此,本文的实现方式应用用于使UI 125中呈现的可视化图形最佳地同步的技术来避免UI 125中数据的连续重新渲染,从而防止UI 125的闪烁或其他不期望的效果。此外,数据的渲染和重新渲染的减少通过使更多的处理能力可用于执行诸如索引编制工作流之类的其他操作而改善了服务计算设备的操作。另外,本文的技术还提供了关于在服务计算设备102中部署的硬件是否动力不足的指示,例如在索引编制工作流在处理系统日志消息121中始终落后的情况下。下面关于图2讨论用于优化在UI 125中呈现的度量可视化图形的同步的示例技术。

  在示出的示例中,用于向用户128呈现监视UI 125的显示器126被示为连接至服务计算设备102。然而,在其他示例中,显示器126可以连接至一个客户端设备108或以其他方式与之相关联,并且用户128可以通过一个或多个网络106访问监视用户界面125。因此,本文的实施方式不限于显示器126和/或用户128的位置。

  图2和图5包括示出了根据一些实现方式的示例过程的流程图。该过程在逻辑流程图中以方框的集合示出,其表示一系列操作,该操作中的一些或全部可以以硬件、软件或其组合来实现。在软件的上下文中,方框可以表示存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理器执行时,该计算机可执行指令对处理器进行编程以执行所叙述的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述方框的顺序不应解释为限制。任意数量所描述的方框可以以任何顺序和/或并行地组合以实现该过程或替代过程,并且并非所有方框都需要被执行。出于讨论的目的,参考在本文的示例中描述的环境、框架和系统来描述过程,但是这些过程可以在各种各样的其他环境、框架和系统中实现。

  图2示出了根据一些实现方式的示例过程200和对应的度量可视化图形。过程200包括表示可以由第一应用程序执行的工作流的方框202-208。例如,方框202-208的工作流可以由索引编制应用程序执行,以用于对以上例如关于图1讨论的接收到的系统日志消息进行索引编制。过程200还包括方框210-218,其表示由监视应用程序执行的、用于基于方框202-208的工作流的状态来确定要在监视UI中呈现的最佳度量可视化图形的操作。

  在202处,计算设备可以从存储系统接收输入。例如,当在存储系统上执行操作时,存储设备可以将系统日志消息发送到计算设备。计算设备上的索引编制应用程序可以接收系统日志消息,并且可以执行用于处理所接收到的消息的工作流。在所示的示例中,工作流包括例如通过提取文本、元数据和包含在这些消息中的其他信息来对接收到的消息进行索引编制,以对存储系统104上存储的对象数据执行索引编制功能。如上所述,系统日志消息的类型可以包括访问日志和事件日志。访问日志可以包括用户针对存储在存储系统中的对象数据执行的动作,例如,读取、写入、删除、迁移、重命名等。事件日志可以包括管理操作,例如可以通过管理控制台执行,并且可以包括迁移数据、更改存储系统设置等。

  在204处,计算设备可对接收到的输入进行排队以在工作流中处理接收到的输入。例如,计算设备可以具有用于工作流执行工作流处理的先进先出队列。队列中的每个输入都可以具有与其相关联的时间戳。例如,每个接收到的系统日志消息可以具有由发送系统日志消息的存储系统分配的时间戳,该时间戳可以对应于在存储系统上进行对应操作的时间。

  在206处,计算设备可以对接收到的输入执行工作流管线。例如,在工作流是用于对接收到的系统日志消息进行索引编制的情况下,工作流可以包括索引编制操作,例如解析接收到的消息并提取相关信息以进行索引编制,包括确定执行的动作、确定在存储系统上执行操作的等待时间、确定与操作有关的名称空间、检测文档的MIME类型、提取文本和元数据以及提取根据系统日志消息所属的数据对象的性质而可用于索引编制的其他信息。

  在208处,针对当前输入完成工作流,并且索引编制应用程序可以返回到方框206以检查等待工作流处理的队列中的任何其他输入并对其执行工作流处理。索引编制应用程序可以提取已进行了索引编制的每个系统日志消息的时间戳,因此可以访问最新索引编制的系统日志消息的时间戳,该时间戳对应于本示例中的tindex。

  在210处,在计算设备上执行的监视应用程序可以使用内部API或其他应用程序内通信来从索引编制应用程序获取tqueue和tindex。每个系统日志消息的时间戳可以由监视程序使用内部API从索引编制程序中确定,以获得最新近排队的系统日志消息的时间戳作为tqueue(即,最后放入系统日志消息中的系统日志消息)和最新近索引编制的系统日志消息的时间戳,即tindex。

  在212处,计算设备上的监视程序可以将tqueue与tindex进行比较以确定它们是否相同。例如,当如以上关于图1所讨论的那样和以下关于图3另外讨论的那样生成监视UI时,监视程序可以优化在监视UI中呈现的度量,以确保每个度量的结束时间彼此匹配。因此,监视程序首先通过将最后添加到队列中的系统日志消息的时间戳tqueue与包含在最新近索引编制的系统日志消息中的时间戳tindex进行比较,来确定工作流是否是最新的。

  在214处,当tqueue等于tindex时,则工作流是最新的,并且可以将要在监视UI中呈现的度量的结束时间设置为当前时间。例如,如在220处所示,用于监视UI的示例度量可视化图形可以包括可以以图形或其他方式表示的数据222、开始时间224、时间窗口226和结束时间228。时间窗口226等于结束时间与开始时间之差,并且在一些情况下,对于要在监视UI中呈现的所有可视化图形而言,时间窗口可以是相同的。此外,为了优化监视UI以防止在通过工作流处理其他输入时对监视UI进行连续的重新渲染,可以基于当前时间渲染在监视UI中呈现的所有度量可视化图形,并且可以将监视UI的重新渲染的下个时间限制为阈值时间(例如,通过默认方式或者由用户指定)和/或限制为从用户接收导致重新渲染的手动输入等。因此,假设没有会导致处理某些接收到的数据的延迟的其他工作流,当工作流是最新的时,则所有可视化图形都可以显示到当前时间为止接收到的数据。

  在216处,当tqueue不等于tindex时,则工作流在处理信息上落后。因此,监视程序可以将度量可视化图形的结束时间设置为tindex,该时间对应于最新近索引编制的系统日志消息的时间戳。例如,监视程序确定已为该时间点之前的所有数据进行了索引编制的最新时间点。然后,可以将用于在监视UI中呈现的所有度量可视化图形配置为显示数据222,然后显示到已对系统日志消息进行了索引编制的时间点为止。因此,通过使用此技术,监视UI中呈现的所有度量可视化图形在呈现的监视UI上看起来是同步的。因此,由于通过工作流处理的所有接收到的系统日志消息都包括它们在源系统上发生操作时的单独的时间戳,因此与各个消息相关联的时间戳可用于确定工作流是最新的还是在处理上落后。因此,在渲染监视UI时,监视程序将在每个度量可视化图形中渲染的数据限制为与tindex对应的时间,即,最新近索引编制的系统日志消息的时间戳。

  在218处,监视程序将每个度量可视化图形的开始时间设置为等于结束时间减去要在监视UI中呈现的每个度量可视化图形的时间窗口的长度。如上所述,在方框214或216中确定每个度量可视化图形的结束时间。通常,在特定时间,在监视UI中呈现的所有可视化图形的时间窗口可能相同;然而,在其他示例中,可以采用具有不同时间长度的不同时间窗口。然后,监视程序可以在显示器上渲染多个度量可视化图形,并且所有度量可视化图形将显示数据直到确定的结束点,从而允许所呈现的监视UI内的可视化图形彼此对齐。因此,本文的实现方式提供了避免对用户造成混淆的监视UI。例如,在时间窗口等于一小时的情况下,则监视UI上的所有度量可视化图形将对齐到相同的一小时窗口,即,相同的开始时间和相同的结束时间。如果tqueue等于tindex,则将结束时间设置为实际时间。如果tqueue不等于tindex,则将结束时间设置为tindex时间,即对应于最新近索引编制的系统日志消息的时间戳。此外,监视应用程序可以将监视UI的重新渲染限制为阈值时间限制,例如每30秒、每分钟、每两分钟、每五分钟等,以避免在其他系统日志消息由工作流处理时连续重新渲染监视UI。

  图3示出了根据一些实现方式的监视UI 125的示例配置。图3中示出的示例配置包括五种不同的度量可视化图形;然而,本文的实现方式可以包括更多或更少的度量可视化图形,并且可以包括用于其他度量的各种各样的其他度量可视化图形。在一些情况下,用户界面125可以呈现在管理用户可访问的显示器上,或者呈现在具有查看上述系统100的状态和性能的充分许可状态的另一个用户的计算设备的显示器上。

  在所示示例中,监视UI包括菜单502,其指示用户已选择查看与监视UI125对应的监视仪表板。菜单502还可以使用户能够选择要呈现的度量的来源、监视设置、共享设置或向主屏幕的返回。此外,在该示例中,如504所示,所选择的监视UI可以表示应用程序负荷监视UI。在所示的示例中,监视UI 125中包括的度量可视化图形包括存储系统等待时间506、每秒存储系统操作508、存储系统HTTP连接的数量510、存储系统吞吐量512以及存储系统操作大小514。

  未在本文示出的其他类型的监视UI的示例可以包括资源监视UI、存储和对象监视UI以及应用程序故障监视UI。例如,资源监视UI可以包括用于CPU利用率、CPU输入/输出等待时间、磁盘输入/输出时间、磁盘利用率、HTTP连接、前端网络输入/输出和后端网络输入/输出的度量可视化图形。存储和对象监视UI可以包括用于基本存储利用率、经济性存储利用率、存储对象的数量、按节点存储、按租户存储以及租户(即,存储系统的用户)对象数量的度量可视化图形。另外,应用程序故障监视UI可以包括用于按节点每秒进行的操作、按租户每秒进行的操作、按类型每秒进行的操作、按响应每秒进行的操作以及按网关每秒进行的操作的度量可视化图形。此外,用户可能能够指定自定义监视UI,这些自定义监视UI可以包括用户指定的选定的度量可视化图形,例如上面讨论的那些度量可视化图形或其他度量可视化图形中的任一种。

  在所示的示例中,如在516处指示的那样,可以指示所呈现的度量可视化图形506-514的范围,例如在该示例中为11:25-12:25。此外,如在518处指示的那样,用户可以选择用于控制监视UI的时间窗口或其他设置的过滤器控件。另外,尽管在此描述和示出了监视UI的一个示例,但是许多其他变型对于受益于本文公开内容的本领域技术人员将是显而易见的。

  图4示出了根据一些实现方式确定结束时间和开始时间的示例。在该示例中,如上面关于图2所讨论的那样,假设监视程序已经从用户接收到在显示器上呈现对UI的监视的请求。因此,在渲染监视UI之前,监视程序确定要用于要在监视UI中呈现的度量可视化图形的结束时间。因此,在该示例中,假设监视程序从当前工作流402确定tqueue和tindex。在此示例中,假设监视程序确定与tqueue对应的消息的时间戳等于9:30AM,并且与tindex对应的消息的时间戳等于8:55AM。因此,由于tqueue不等于tindex,因此对于要渲染的每个度量可视化图形404,监视程序都将结束时间228设置为等于与tindex对应的消息的时间戳,即这个示例中的8:55AM。此外,当针对同一时间窗口要呈现所有度量可视化图形404时,监视程序可以将开始时间224设置为等于结束时间减去时间窗口的长度,该时间窗口的长度在此示例中为一小时,因此将开始时间设置为等于7:55AM。因此,监视程序可以渲染带有具有相同的开始时间224和结束时间228的多个度量可视化图形404的监视UI。

  图5是说明根据一些实现方式的示例过程500的流程图。在一些情况下,过程500可以至少部分地由(多个)服务计算设备102或其他合适的计算设备执行。作为一个示例,由以上针对图1至图4讨论的(多个)服务计算设备102的多个处理器中的一个执行的监视应用程序120可以包括用于执行图5的过程500的至少一部分的可执行指令。

  在502处,计算设备可以接收指示存储系统和/或与存储相关联的计算设备的状态或性能中的至少一个的数据。在一些情况下,API或其他技术可用于从存储系统、其他节点等收集数据。

  在504处,计算设备可以从存储系统接收系统日志消息,该系统日志消息包括关于由存储系统或在存储系统上执行的操作的信息,包括访问日志或事件日志中的至少一个。例如,计算设备可以从存储系统接收系统日志消息或其他消息,包括关于在存储系统上执行的操作的信息。

  在506处,计算设备可以接收呈现监视用户界面以呈现针对与存储系统的状态或性能中的至少一个有关的多个度量的数据的指示。作为一个示例,用户可以输入命令以使监视应用程序将监视UI呈现在与计算设备相关联的显示器上或与计算设备通信的另一个计算设备上。

  在508处,计算设备可以确定处理从存储系统接收到的消息的工作流的状态。例如,可以如以下关于图2的方框210所讨论的那样确定工作流的状态。

  在510处,计算设备可以基于所确定的工作流的状态来确定要在用户界面中呈现的多个度量可视化图形的结束时间。例如,可以如以下关于图2的方框212-216所讨论的那样确定要使用的结束时间。

  在512处,计算设备可以基于结束时间来确定每个度量可视化图形的开始时间。例如,可以如以下关于图2的方框218所讨论的那样确定开始时间。

  在514处,计算设备可以基于所确定的结束时间来渲染要在用户界面中呈现的多个度量可视化图形。计算设备可以使用各种已知渲染技术中的任何一种来渲染度量可视化图形以在监视UI中进行呈现。

  在516处,计算设备可以提供经渲染的多个度量可视化图形,以在显示器上的用户界面中进行呈现。在一些情况下,可以将经渲染的度量可视化图形提供给显示控制器以在显示器上的监视UI中进行呈现。在其他示例中,经渲染的度量可视化图形(或用于启用远程渲染的信息)通过网络发送到客户端计算设备。

  在518处,计算设备可以应用时间阈值以在时间阈值期满之前限制多个度量可视化图形的重新渲染。在一些情况下,监视程序可以定期检查工作流的状态,并且可以在已接收到新数据并且阈值时间已到期的情况下更新经渲染的度量可视化图形。

  本文描述的示例过程仅是出于讨论目的而提供的过程的示例。根据本文的公开内容,许多其他变化对于本领域技术人员将是显而易见的。此外,尽管本文的公开内容阐述了用于执行这些过程的合适的框架、架构和环境的多个示例,但是本文的实现方式不限于所示出和讨论的特定示例。此外,本公开提供了描述和在附图中示出的各种示例实现方式。但是,本公开不限于本文描述和示出的实现方式,而是可以扩展到本领域技术人员将已知的或将变得众所周知的其他实现方式。

  图6示出了根据一些实现方式的示例客户端设备108的选择示例组件。每个客户端设备108可以是任何合适类型的计算设备,例如工作站、台式机、膝上型计算机、平板计算设备、移动设备、智能电话、可穿戴计算设备或能够通过网络发送和接收数据的任何其他类型的计算设备。此外,客户端设备108可能能够通过一个或多个网络106、通过单独的网络或通过任何其他合适类型的通信连接(未在图6中示出)与一个或多个服务计算设备102进行通信。许多其他变化对于受益于本文公开内容的本领域技术人员而言是显而易见的。

  在基本配置中,客户端设备108包括诸如至少一个处理器602、一个或多个计算机可读介质604、一个或多个通信接口606以及一个或多个输入/输出(I/O)组件608之类的组件。每个处理器602本身可以包括一个或多个处理器或处理核心。例如,每个处理器602可以被实现为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。在一些情况下,处理器602可以包括具体被编程或配置为执行本文所述的过程和其他算法的一个或多个硬件处理器和/或任何适当类型的逻辑电路。处理器602可以被配置为获取并执行存储在计算机可读介质604中的计算机可读处理器可执行指令。

  根据客户端设备108的配置,计算机可读介质604可以是有形的非瞬态计算机可读介质的示例,并且可以包括通过用于存储诸如计算机可读处理器可执行指令、数据结构、程序模块或其他数据之类的信息的任何类型的技术实现的易失性和非易失性的存储器和/或可移除和不可移除的介质。计算机可读介质604可以包括但不限于RAM、ROM、EEPROM、闪速存储器、固态存储器、光学存储器、磁盘存储器、磁带和/或其他类型的存储技术。此外,在一些情况下,客户端设备108可以例如直接地、通过另一个计算设备或通过网络来访问外部存储装置。因此,计算机可读介质604可以是能够存储可由处理器602执行的指令、程序或软件代码的计算机存储介质。

  计算机可读介质604可以用于存储和保存由处理器602执行的任何数量的功能组件。在一些实现方式中,这些功能组件包括可由处理器602执行的指令或程序,在被执行时,该指令或程序实现用于执行上面赋予客户端设备108的动作和服务的操作逻辑。如上所述,存储在计算机可读介质604中的客户端设备108的功能组件可以包括客户端应用程序138。附加功能组件可以包括操作系统610,用于控制和管理客户端设备108的各种功能以及实现与客户端设备108的基本用户交互。计算机可读介质604可以进一步包括可以在客户端设备108上执行以执行各种功能和任务的一个或多个其他应用程序614,其可以包括浏览器应用程序。补充地或替代地,在一些情况下,客户端应用程序138可以是或可以包括浏览器。

  另外,计算机可读介质604还可以存储由功能组件使用的数据、数据结构等。例如,由计算机可读介质604存储的数据和数据结构可以包括一个或多个文件612和/或其他数据对象。根据客户端设备108的类型,计算机可读介质604还可以可选地包括其他功能组件和数据,例如其他模块和数据614,该其他模块和数据614可以包括程序、驱动器等以及由功能组件使用或生成的数据。此外,客户端设备108可以包括许多其他逻辑组件、程序组件和物理组件,其中所描述的那些仅仅是与本文的讨论有关的示例。

  客户端设备108还可以包括一个或多个通信接口606。(多个)通信接口606可以包括一个或多个接口和硬件组件,以实现例如通过(多个)网络105和106与各种其他设备进行通信。例如,通信接口606可以包括或可以连接至提供与(多个)网络106的连接以与服务计算设备102或其他计算设备进行通信的一个或多个端口。例如,(多个)通信接口606可以实现通过LAN(局域网)、WAN(广域网)、互联网、电缆网络、蜂窝网络、无线网络(例如,Wi-Fi)和有线网络(例如,光纤通道、光纤、以太网)中的一个或多个进行的通信、通过直接连接进行的通信以及诸如等短程通信,如本文其他地方另外列举的那样。

  客户端设备108还可以包括I/O组件608,例如扬声器、麦克风、照相机和各种用户控件(例如,按钮、操纵杆、键盘、小键盘、触摸屏等)、触觉输出设备等等。例如,客户端设备108的操作系统610可以包括被配置为从小键盘、键盘或I/O组件608所包括的其他用户控件和设备接收输入的合适的驱动程序。另外,客户端设备108可以包括显示器616。另外,客户端设备108可以包括未被示出的各种其他组件,其示例包括各种类型的传感器、全球定位系统设备、诸如电池和功率控制单元之类的电源等。

  本文描述的各种指令、过程和技术可以在计算机可执行指令的一般上下文中被考虑,计算机可执行指令例如为存储在计算机可读介质上并且由本文的(多个)处理器执行的程序模块。通常,程序模块包括用于执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构、可执行代码等。这些程序模块等可以作为本机代码执行,或者可以例如在虚拟机或其他即时编译执行环境中下载并执行。通常,程序模块的功能可以根据需要在各种实现方式中进行组合或分配。这些模块和技术的实现方式可以存储在计算机存储介质上或在某种形式的通信介质上传输。

  尽管用结构特征和/或方法动作特定的语言描述了本主题,但应理解,所附权利要求书中限定的主题不必限于所描述的具体特征或动作。而是,特定的特征和动作作为实现权利要求的示例形式被公开。

《针对延迟数据的用户界面优化.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)