CN108139963A - 遥测响应系统 - Google Patents
遥测响应系统 Download PDFInfo
- Publication number
- CN108139963A CN108139963A CN201680060563.7A CN201680060563A CN108139963A CN 108139963 A CN108139963 A CN 108139963A CN 201680060563 A CN201680060563 A CN 201680060563A CN 108139963 A CN108139963 A CN 108139963A
- Authority
- CN
- China
- Prior art keywords
- event
- field
- telemetry system
- method described
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C19/00—Electric signal transmission systems
- G08C19/16—Electric signal transmission systems in which transmission is by pulses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3082—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了用于与遥测系统一起使用的系统、方法和计算机可读介质的各方面,其可以包括在事件定义的模式中接收自动填充的一组字段。这一组字段使用日志记录库而被自动填充。在应用协议中提供响应消息。
Description
背景技术
为了提高软件应用的质量,软件开发者试图理解应用如何在包括客户和客户端的用户的手中执行。虽然在应用开发期间进行实验室或开发测试(诸如调试和日志记录)对于提高质量很重要,但是单靠实验室测试很少能满足很多现代应用的需求。现代软件应用(尤其是移动应用)具有高度的交互性,并且全面的用户交互难以在实验室或开发期间模拟。同样,很多环境条件会影响利用应用的用户体验。例如,网络连接、GPS信号质量和设备硬件差别很大。一些平台API甚至可以取决于设备电池中的剩余电量来改变行为。这些不同的环境条件难以在实验室重现。因此,很多软件开发者努力从现场收集诊断和性能跟踪数据。
然而,用于在现场跟踪应用性能的平台支持通常不足。包括移动平台在内的主要平台向开发者提供应用崩溃日志,但是开发者报告难以标识来自许多日志的崩溃原因。此外,这样的数据(其还可以包括无响应的事件和例外情况)在检测性能问题时没有提供多少帮助。分析框架被设计为收集使用情况分析(诸如用户人口统计数据)而不是性能数据。这种信息通常不能有效地提供有关应用内的具体用户活动的信息。
相反,寻求有关应用性能的有意义信息的开发者将在应用中包括定制跟踪码,这不是容易的任务。例如,甚至应用中的简单用户请求也触发多个异步调用,其中线程之间具有复杂的同步,并且标识这样的代码中的性能瓶颈需要跨异步边界来正确地跟踪因果关系。这种具有挑战性的任务被变得更加困难,因为跟踪开销最好被保持在最低限度以避免对应用性能的影响,并且也限制对稀缺资源(诸如电池和网络带宽)的消耗。
发明内容
提供本概述是为了以简化的形式介绍将在以下具体实施方式中被进一步描述的对概念的选择。本概述不旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
描述了遥测系统,包括实现过程。遥测系统可以与一个或多个植入应用通信,以收集有关来自现场的事件的数据,并且将关联和合并的数据转发给分析应用以用于丰富的分析。遥测系统被配置为利用事件定义来操作,该事件定义具有用于声明和填充来自事件的数据的一个或多个模式部分,该事件是事件定义的实例。事件定义可以捕获事件作者(诸如应用开发者人员)希望跟踪的动作或交互。本公开内容还包括用于与遥测系统一起使用的系统、方法和计算机可读介质的各方面,其可以包括在事件定义的模式中接收被自动(即,显式)填充的一组字段。该一组字段使用日志记录库而被自动填充。在应用协议中提供响应消息。
事件定义可以包括被配置为包括来自事件的数据的多个模式部分。在示例中,事件定义包括第一部分模式,第一部分模式具有由日志记录库自动填充而不需要来自诸如应用开发者等事件作者的输入的字段。例如,第一部分模式可以包括用于通用于所有事件的数据(诸如系统数据)的系统模式。事件还可以包括第二部分模式,第二部分模式包括由事件作者选择的字段。例如,域部分模式包括具有广泛适用性的字段。在一个示例中,事件作者可以选择零个或更多个域部分模式,但是事件作者不控制字段的名称或字段的数据类型。相反,日志记录库预先定义所选择的域模式中的字段和类型,并且利用数据来填充字段。第二部分模式还可以包括具有由事件作者定义的字段和类型的定制模式,这些字段和类型可以适用于事件但是并未以其它方式被包括在系统模式和域模式中。在一个示例中,第一部分模式和域部分模式未利用事件被定义;它们对所有事件是共有的。
植入应用可以包括遥测层。遥测层包括第一部分模式或者系统模式,其自动捕获共有的相关数据,并且可以捕获利用遥测流水线的事件摄取组件而被注入的信息。事件作者可以包括与事件域或含义一致的第二部分模式,以及在定制模式中创建字段以包括与该事件相关的专用信息。
协议被用于在遥测系统中的服务之间传输模式事件。在流水线的方法中,使用请求响应协议在客户端与服务器之间建立会话。服务器在客户端协议中接收包括有效载荷的请求消息。在一个示例中,服务器在会话期间向客户端提供响应消息。响应包括响应码,响应码可以包括可选头部字段和返回对象,以提供关于响应码的信息。在一个示例中,响应码可以被选自可用状态码的子集,并且返回对象以数据交换格式而被提供。通过遵守协议,多个客户端实现、服务实现、代理和转发器可以参与遥测系统中的遥测项目的递送。
在一个示例中,遥测系统包括大容量低延时事件和遥测平台。遥测系统可以被应用于驱动一个或多个客户端和服务生态系统。本公开内容的示例系统或过程能够将来自客户的实时交互式事件驱动的工作流程统一到云或计算机网络,并且利用全面的批量遥测将其返回给客户。具有强类型的固定和灵活的数据字段以充分描述数据的强大的通用模式实现了丰富的分析。所描述的系统和过程提供了应用开发者能够以相对低的开销快速轻松地创建新的仪表测量(instrumentation)点。强大的通用模式提供了能够跨多个平台高效地收集数据。
附图说明
附图被包括以提供对实施例的进一步理解并且被并入并且构成本说明书的一部分。附图示出了实施例并且与说明书一起用于说明实施例的原理。其他实施例和实施例的很多预期优点将容易被领会到,因为它们通过参考以下具体实施方式而变得被更好地理解。附图的要素不一定相对于彼此成比例。相同的附图标记表示对应的类似部分。
图1是示出计算设备的示例的框图。
图2是示出合并有图1的计算设备的示例遥测系统的框图。
图3是示出图2的遥测系统的示例过程的框图。
图4是示出图2的遥测系统的示例模式的框图。
图5是示出用于在图2的遥测系统中使用的响应的示例的框图。
具体实施方式
在下面的具体实施方式中,参考附图,附图构成本文的一部分,并且附图中通过图示的方式示出了其中可以实践本发明的具体实施例。应当理解的是,可以利用其他实施例并且可以在不脱离本发明的范围的情况下进行结构或逻辑上的改变。因此,以下详细描述不应当被视为限制意义,并且本发明的范围由所附权利要求限定。应当理解,除非被另外具体指出,否则本文所述的各种示例性实施例的特征可以被彼此组合。
图1示出了可以在操作环境中被使用并且那日用于托管或运行被包括在一个或多个计算机可读存储介质上的计算机应用的示例性计算机系统,计算机可读存储介质存储用于控制诸如计算设备等计算机系统以执行过程的计算机可执行指令。计算机实现的过程的示例包括使用可以被存储在计算机存储器中的遥测模式来生成遥测数据。
示例性计算机系统包括诸如计算设备100等计算设备。在基本硬件配置中,计算设备100通常包括具有一个或多个处理单元(即,处理器102)和存储器104的处理器系统。作为示例,处理单元可以包括芯片上的两个或更多个处理核或者两个或更多个处理器芯片。在一些示例中,计算设备还可以具有一个或多个附加处理或专用处理器(未示出),诸如用于图形处理器单元上的通用计算的图形处理器,以执行从处理器102被卸载的处理功能。存储器104可以按层级而被布置,并且可以包括一个或多个级别的高速缓存。取决于计算设备的配置和类型,存储器104可以是易失性的(诸如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)、或者这两者的某种组合。计算设备100可以采取几种形式中的一种或多种。这些形式包括平板计算机、个人计算机、工作站、服务器、手持设备、消费者电子设备(诸如视频游戏机或数字视频录像机)等,并且可以是独立设备或被配置为计算机网络、计算机集群、云服务基础架构等的一部分。
计算设备100还可以具有附加特征或功能。例如,计算设备100还可以包括附加存储装置。这样的存储装置可以是可移除的和/或不可移除的,并且可以包括磁盘或光盘、固态存储器或诸如可移除存储装置108和不可移除存储装置110等闪存设备。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何合适的方法或技术而被实现的易失性和非易失性、可移除和不可移除介质。存储器104、可移除存储装置108和不可移除存储装置110都是计算机存储介质的示例。计算机存储介质包括RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能光盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储或其他磁存储设备、通用串行总线(USB)闪存驱动器、闪存卡或其他闪存设备或者可以被用于存储所需信息并且可以由计算设备100访问的任何其他存储介质。因此,传播的信号本身并不作为存储介质。任何这样的计算机存储介质可以是计算设备100的一部分。
计算设备100通常包括一个或多个输入和/或输出连接(诸如USB连接、显示端口、专有连接等)以连接到各种设备,以向计算设备提供输入和输出。输入设备112可以包括诸如键盘、指点设备(例如,鼠标)、笔、语音输入设备、触摸输入设备等设备。输出设备111可以包括诸如显示器、扬声器、打印机等设备。
计算设备100通常包括允许计算设备100与其他计算机/应用115通信的一个或多个通信连接114。示例通信连接可以包括以太网接口、无线接口、总线接口、存储区域网络接口和专有接口。通信连接可以被用于将计算设备100耦合到计算机网络,计算机网络可以根据诸如拓扑、连接方法和规模等各种各样的特征而被分类。网络是可能通过通信信道而被互连的计算设备和其他设备的集合,通信信道促进通信并且允许在互连的设备之间共享资源和信息。计算机网络的示例包括局域网、广域网、因特网或其他网络。
图2示出了可以包括计算机网络202中的一个或多个计算设备(诸如计算设备100)的示例遥测系统200。为了说明,示例遥测系统200可以与执行植入软件应用206a至206c的一个或多个客户端计算设备(例如,客户端设备204a至204c)通信,并且还可以与执行分析软件应用210a至210b的一个或多个订户设备(例如,订户计算设备208a至208b)通信。在一个示例中,客户端设备204a至204c和植入应用206a至206c通过网络202发起与遥测系统200的通信。
仪表测量指的是利用生成可以被用于监测或测量应用的性能和使用、诊断错误、写入跟踪信息等的数据的代码来扩充应用。程序员以监测系统中的具体组件的代码指令的形式实现仪表测量。当应用包含仪表测量码时,可以使用管理工具来管理它,以检查应用的性能。应用可以被植入用于日志记录和遥测,其在开发期间通常围绕应用的内部结构而被定向并且在应用被发布给实际用户时收集数据。
遥测是自动化的远程测量和数据收集。例如,遥测数据可以表示在应用开发期间不可被发现的信息,诸如客户喜欢哪些配置,客户如何使用应用中的特征,关于错误或崩溃的情况以及其他信息。遥测数据可以包括匿名软件版本化信息、资源使用、存储器访问、使用中的操作系统以及其他很多示例。遥测系统200提供了用于收集数据并且将收集的数据压缩成分析或人类可辨认报告的工具。遥测系统200还利用协议和元数据。
在一些示例中,植入应用206a至206c的用户可以确定将哪个遥测信息提供给遥测系统200。例如,用户可以选择在本地保留特定信息,诸如个人或敏感信息,并且允许将其他信息提供给分析软件应用。用户可以选择不将这样的信息上传作为遥测数据,并且遥测系统200将不能访问个人或敏感数据。
遥测设计导致仪表测量将跟踪的事件或动作,并且应用通常被仪表测量以跟踪与应用的一系列不同的动作或交互。遥测工具由事件作者(诸如应用开发者或组件开发者)提供,并且在一些示例中被强加在事件处理程序上。在一个示例中,应用开发者可能希望跟踪应用中的几十个事件。在示例中,事件定义是对具体事件的描述,并且包括在被称为模式的契约中被提出的字段列表,上述模式可以提供用于声明和填充结构化数据的系统。事件包括在事件定义中被描述的一组数据的实际实例化,并且该一组数据被记录并且被传输到遥测系统200。事件响应于所选择的动作或交互而被发出,并且事件的数据有效载荷或事件有效载荷描述关于触发它的创建的刺激的属性和语义、事件的效果或这两者。事件作者创建事件定义和仪表测量码来填充事件并且将其传输到遥测系统200。
遥测系统200包括例如接收/格式化系统220、日志记录库222、处理系统224、实时系统226和事件存储库228。由客户端设备204a至204c发送的遥测数据在遥测系统200处被接收,其然后可以利用低延时将事件转发给订户设备208a至208b。使用分析应用210a至210b的订户可以声明(declare)过滤器以接收相关数据。遥测系统200可以被配置为利用声明和填充结构化或非结构化数据的一个或多个模式来操作。在一个示例中,接收/格式化系统220接受由客户端设备204a至204c通过因特网提供的事件。日志记录库222将数据上传到接收/格式化系统220。接收/转发系统220可以向处理系统224提供数据以用于丰富的分析、批处理和报告。接收/转发系统220还可以或备选地向实时系统226提供数据以用于实时或接近实时的编索引、查询、监测和警报。例如,实时系统226可以包括大于即时的从事件到系统响应的操作绝限。事件存储库228可以向遥测系统200提供关于事件的参考信息。
在一个示例中,接收/转发系统220可以是在网络202上的一个或多个服务器上运行的web服务。遥测系统200还可以包括代理服务器和转发器,诸如网络202上的域名系统(DNS)服务器。遥测系统200可以包括多个客户端实现和服务实现。
图3示出了用于使事件穿梭通过遥测系统200的多个组件的遥测摄取流水线300。有效载荷可以取决于其在流水线300内的阶段而变化。摄取流水线可以被实现为遥测系统200中的一个或多个计算设备100中的过程。在该示例中,在302处,仪表测量的软件应用(诸如应用206a至206c)向日志记录库222发出应用事件格式。日志记录库222可以包括代码库,代码库可以例如接受事件,将数据序列化以用于传输,并且将事件上传到接收/格式化系统220。日志记录库222可以包括用于多个平台的日志记录库,诸如用于Java平台的Java日志记录库、用于Android平台的Android日志记录库以及其他遥测客户端。事件定义的第一部分模式包括使用日志记录库而被自动填充有数据的一组字段。在一些示例中,遥测系统200的其他方面也可以填充第一组字段。事件作者可以从另一模式选择第二组字段,这些字段也在流水线中被填充。
在304处,日志记录库222向接收/格式化系统220发出客户端事件格式。在一个示例中,依赖于平台的不同日志记录库可以包括用于描述事件定义的公共文件格式和用于序列化的格式。在一个示例中,用于描述事件定义的格式可以包括用于模式化数据的序列化框架,诸如从Microsoft,Inc可获取的Bond。用于有效负载的序列化的文件格式可以包括诸如JavaScript对象表示法或JSON等数据交换格式。可以使用附加的数据交换格式(诸如行分隔的JSON)以及二进制序列化格式(诸如Bond中的紧凑序列化)。在306处,接收/格式化系统220发出摄取的事件格式。模式的字段可以继续被填入摄取的数据。例如,摄取数据可以被提供给第一部分模式以确定流水线的质量。可以按照JSON对摄取的事件格式化,并且在308处,将其提供给实时系统,或者在310处,将其提供给批处理系统,例如,以允许分析应用210a至210b查询数据。
在流水线的方法的一个示例中,使用响应请求协议在客户端与服务器之间(诸如在仪表测量的应用206a至206c与接收/格式化系统220之间)建立会话。客户端(诸如仪表测量的应用206a至206c)通过建立传输层协议(诸如传输控制协议(TCP))、到服务器上的特定端口(诸如接收/格式化系统220)的连接来发起请求。监听端口的接收/格式化系统220等待客户请求消息。在接收到请求消息之后,服务器发回指示请求的状态的响应消息和其他信息。客户端请求消息包括被封装在定义的一组事件段中的事件信封中,并且在被定义为在事件定义中组成的字段列表的模式中描述的事件。
图4示出了用于在遥测系统200中使用作为定义组成事件定义400的字段列表的模式或契约的示例事件定义400。在该示例中,事件定义包括组成多个模式部分的字段,其在事件定义400中被称为第一部分模式402和第二部分模式404。在一个示例中,第一部分模式402包括具有系统字段422的系统模式412,并且第二部分字段404还可以包括多个部分,诸如具有域字段424的域模式414和具有定制字段426的定制模式416,定制字段426在下面被更详细地描述。然而,在备选示例中,事件可以仅包括来自第一部分402的字段并且可以可选地包括来自第二部分404的字段。在这一示例中,事件定义可以可选地包括来自域模式414的字段,可选地包括来定制模式416的或如在事件定义400中被指示的字段、来自域模式414和定制模式416的字段。事件定义400还可以包括可能不出现在实际事件数据中的注释,诸如描述、所有权信息和字段数据类型。此外,字段可以包括默认值。
示例中的字段定义包括名称和类型。类型可以包括基本数据类型(例如,布尔型、各种整数类型、浮点数、字符串)、容器(列表、向量、集合、映射)以及复杂类型。在一个示例中,类型可以从在序列化框架中被支持的那些类型被选择。然而,在数据交换格式中,并非支持在序列化框架中被支持的所有复杂类型。在这样的情况下,按照序列化格式的复杂类型可以被转换为字符串类型。
按照JSON而被表示的事件的示例包括:
第一部分模式402包括由在本地系统上存在的日志记录库222定义并且自动填充的字段422,其中事件在流水线中(诸如在流水线300)中被发送。在一个示例中,第一部分模式402捕获公共相关字段并且可以涉及仪表测量的软件应用的系统,诸如应用206a至206c,并且可以表示系统数据。第一部分模式402还可以捕获由流水线300中的事件摄取组件注入的信息。第一部分模式402包括通常适用于来自仪表测量的应用的所有事件的字段,并且可以包括诸如事件时间、事件名称和发送方的因特网协议地址等项目。在一些示例中,除了被自动填充的值之外,第一部分模式402可以包括日志记录库从调用者获取的字段422。在一个示例中,所有事件使用相同的第一部分模式。
第一部分模式402包括通用的并且笨哦应用于流经遥测系统200的所有事件的字段422,并且模式402的设计(包括要包括的、对特定字段422的选择)可以通过各种原理而被指导,这些原理诸如跨各种应用和平台(诸如操作系统)的一致标识符、以及考虑到对应用开销的影响而被采取的谨慎措施。第一部分模式启用关联并且可用于使用日志记录库222的自动检测。在一个示例中,第一部分模式402可以包括事件包络语义和摄取部分。
事件包络包括被用于在流水线300的组件之间传输事件信息的数据有效载荷。有效载荷可以包括原始事件和定义的一组事件部分。事件包络语义可以包括字段422,诸如模式版本、事件的名称、时间(包括日期)、采样率、跟踪上传的事件的顺序的序列、仪表测量密钥、标志、可以对系统构建或硬件替换有弹性的设备标识符、操作系统、包括分支和构建信息的操作系统版本、应用标识符、应用版本、用户标识符、以及在一些示例中用于定制日志记录库字段的属性包。
摄取部分可以在摄取时间被填充。用于摄取部分的字段可以包括接收/格式化系统220接收到事件的时间、接收/格式化系统220在事件被接受时看到的远程地址、事件认证和事件质量。
第二部分模式404包括可选的域模式414、定制模式416或这两者。第二部分模式404包括通过由事件作者写入的代码而不是日志记录库222而被填充的字段424、426。在一个示例中,第二部分模式404包括具有诸如由遥测系统200或其他集中式组定义的预定义字段424的域模式414,并且事件作者不控制字段424的名称或字段424的数据类型。定制模式416由事件作者创建并且可以被用于不存在域字段424的专用的事件的情景或方面。可以将模板应用于第二部分模式404以支持对通常跨若干事件而被定义的字段424、426的重用。在一个示例中,模板被用于域模式414。模板支持定义可以跨多个事件而被定义并且在一些示例中当多个事件定义包括不同的域字段424时被一致地重用的一组字段。
在一个示例中,域模式414与跨很多不同的应用而共同的事件的特定场景或方面相关。例如,域模式414中的字段424可以包括日志记录错误、应用开始事件、应用结束事件、文本服务API(应用程序接口)调用成功、API调用失败以及很多其他示例。各种各样的应用和事件可以定义来自域模式字段424的事件,并且因此包括类似的字段和数据。因此,可以构建一组通用报告和分析,以消耗来自使用相同域模式414的平台上的所有应用的所有事件。事件模板类似于允许例如集中组共享若干相关事件包括的一组字段的抽象类。在一个示例中,当事件被定义时,域字段424可以被延迟绑定和选择。
域模式414被通用化以实现广泛的适用性。例如,域模式MediaUsage可以存在,而不是更具体的域模式,诸如播放歌曲、停止歌曲、播放视频、停止视频等,其更具体但是使用例如每媒体播放器的模式。
定制模式416由事件作者创建和定义。在一个示例中,事件作者可以确定定制字段426的名称和数据类型。事件作者还负责在事件被实例化时填充定制字段426。在没有域模式的情况下而被定义的事件可以从基础继承,以只给事件提供定制字段426。
客户端协议被用于在支持遥测事件的遥测系统200中的服务之间传输模式事件400。在客户端服务器模型中的请求响应协议中,可以在流水线300中的组件之间(诸如在仪表测量的应用206a至206c中的遥测层与接收/格式化系统220之间)传输模式事件部分400中的数据有效载荷。用于与系统200中的流水线300一起使用的请求响应协议的一个示例包括应用协议。应用协议的示例包括超文本传输协议或HTTP(其包括具有请求响应事务的会话)、以及SPDY、HTTP/2(HTTP/2.0)、WebSocket和其他协议。在一个示例中,客户端向服务器提交HTTP请求,并且遥测项目可以经由具有JSON有效载荷的HTTP而被交换。服务器向客户端提供响应消息。响应可以包括关于请求的状态信息。
为了有效且可靠地在系统200中发送遥测,客户端协议可以包括某些请求约束。请求约束可以包括对请求的大小、每个请求的事件数目以及事件的大小的限制。在一个示例中,请求的大小可以被限制为不超过每个请求4MB,每个请求的事件数目可以被限制为不超过五百个事件,并且事件大小可以被限制为不超过每个事件64KB。在这样的配置中,请求大小将最大大小的事件的数目限制为小于每个请求的事件的系统最大量。请求约束通常影响每个事件中的域字段424和定制字段426的数目。
图5示出了由服务器或流水线300中的遥测项目的接收器生成的客户端协议中的响应消息500。响应消息500包括一个或多个响应码502并且在返回对象模式504中返回对象。
响应码502可以基于诸如HTTP状态码等可用码的子集。例如,响应码可以基于成功(2xx)组、客户端错误(4xx)组和服务器错误(5xx)组。客户端协议以及定制码中还可以包括来自其他组(诸如信息或重定向)的码。附加地,响应消息可以在响应码502之后的行中包括按照字符串格式的头部字段506。头部字段506可以包括标准字段或基于响应码502的类型的用户创建的字段。
响应码502中的成功码2xx可以包括用于指示请求中的所有事件被服务器接受的“200OK”以及用于指示请求中的一些事件被接受的“206部分内容”。接收到206响应码的客户可以被提示采取动作。
响应码502中的客户端错误码4xx包括请求约束中的问题。响应码502中的客户端错误码可以包括用于指示没有事件被接受的“400错误请求”、用于指示请求大小超过大小约束(诸如4MB)的“413请求实体太大”、用于指示通用资源标识符太长的“414请求URI太大”、用于指示请求的格式不被服务器支持的“415不支持的媒体类型”、以及用于指示客户端应当对事件进行速率限制的“429太多请求”。服务器可以在错误码502之后在字段506中包括重试后头部,其中具有用于重试的HTTP日期或秒数。
响应码502中的服务器错误码5xx包括服务器接收事件时的问题。响应码502中的服务器错误码可以包括用于指示服务器失败的“500内部服务器错误”以及用于指示服务器暂时不可用的“503服务不可用”。在一个示例中,由于网络流量太多,服务器可能暂时不可用。服务器可以在错误码502之后在字段506中包括重试后头部,其中具有用于重试的HTTP日期或秒数。
如果服务器在所选择的时间量内没有响应,则响应码502还可以包括“超时”码。在一个示例中,“超时”码向客户端指示使用诸如二进制指数退避或截断的二进制指数退避类型算法等指数退避方法来重试请求消息。
返回对象模式504可以包括多个字段,其除了或代替头部字段506而包括用来说明响应码的数据。返回对象可以是诸如JSON或线界定的JSON等数据交换格式。
例如,字段可以包括用于指示拒绝的事件的数目的“rej”、用于指示接受的事件的数目的“acc”以及用于提供事件失败信息的“efi”数组。在一个示例中,“efi”数组针对每个拒绝的事件包括一个事件失败信息结构。数组可以包括用于指示拒绝的事件的行号的“efi.line”。一个示例中的行号从零开始。数组还可以包括可以指示从零开始解析失败的项目的字符编号的字段“efi.char”、可以给出对失败的详细描述的“efi.message”以及可以包括针对失败的原因的代码的“efi.reason”。例如,第一码(诸如“3”)可以在上传被终止时被使用并且当在读取事件流时遇到HTTP异常时被设置,第二码(诸如“7”)可以被用来指示过度大小并且在事件过大时被设置,第三码(诸如“8”)可以被用于指示无效的有效负载格式并且在JSON(例如,用于事件)无效时被设置,并且第四码(诸如“9”)可以在预期的数据丢失时被使用,并且在事件中的预期字段丢失时被设置。
在JSON中的示例返回对象指示,对于缺失信息,已经基于上述示例字段和代码拒绝了请求中的十个事件中的一个事件:
虽然本文中已经说明和描述了具体实施例,但是本领域普通技术人员将理解,在不脱离本发明的范围的情况下,各种备选和/或等同的实现可以替代所示出和描述的具体实施例。本申请旨在覆盖对本文中讨论的具体实施例的任何修改或变化。因此,旨在于本发明仅由权利要求及其等同物限制。
Claims (15)
1.一种用于与遥测系统一起使用的方法,所述方法包括:
在事件定义的模式中接收自动填充的一组字段,所述一组字段使用所述遥测系统的日志记录库而被自动填充;以及
在应用协议中提供响应消息。
2.根据权利要求1所述的方法,包括在所述模式中填充由事件作者选择的第二组字段。
3.根据权利要求2所述的方法,其中填充所述第二组字段包括来自所述遥测系统的预先选择的字段。
4.根据权利要求3所述的方法,其中所述预先选择的字段被填充有多个应用共有的数据。
5.根据权利要求2所述的方法,其中填充所述第二组字段包括来自所述事件作者的定制字段。
6.根据权利要求1所述的方法,其中所述一组字段被自动填充有所有事件共有的数据。
7.根据权利要求1所述的方法,其中所述响应消息包括响应码和返回对象。
8.根据权利要求7所述的方法,其中所述响应消息包括与所述响应码相关联的头部字段。
9.根据权利要求7所述的方法,其中所述响应码被选自一组状态码。
10.根据权利要求7所述的方法,其中所述返回对象被包括在数据交换格式中。
11.根据权利要求7所述的方法,其中所述应用协议是超文本传输协议。
12.一种遥测系统,包括:
包括处理器和存储器的计算设备,其被配置为:
在事件定义的模式中接收自动填充的一组字段,所述一组字段使用所述遥测系统的日志记录库而被自动填充;以及
在应用协议中提供响应消息。
13.根据权利要求12所述的遥测系统,其中所述响应消息包括响应码、返回对象以及与所述响应码相关联的头部字段。
14.根据权利要求12所述的遥测系统,包括对请求中的请求大小、事件数目和事件大小的约束。
15.根据权利要求12所述的遥测系统,包括代理和转发器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/885,973 US20170187782A1 (en) | 2015-10-16 | 2015-10-16 | Telemetry response system |
US14/885,973 | 2015-10-16 | ||
PCT/US2016/056240 WO2017066115A1 (en) | 2015-10-16 | 2016-10-10 | Telemetry response system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108139963A true CN108139963A (zh) | 2018-06-08 |
Family
ID=57206414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680060563.7A Pending CN108139963A (zh) | 2015-10-16 | 2016-10-10 | 遥测响应系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170187782A1 (zh) |
EP (1) | EP3362901A1 (zh) |
CN (1) | CN108139963A (zh) |
WO (1) | WO2017066115A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414330A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 数据编辑方法及系统、数据处理设备、存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11288245B2 (en) | 2015-10-16 | 2022-03-29 | Microsoft Technology Licensing, Llc | Telemetry definition system |
US11386061B2 (en) | 2015-10-16 | 2022-07-12 | Microsoft Technology Licensing, Llc | Telemetry request system |
US10929272B2 (en) | 2015-10-16 | 2021-02-23 | Microsoft Technology Licensing, Llc | Telemetry system extension |
US10152356B2 (en) | 2016-12-07 | 2018-12-11 | Vmware, Inc. | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty |
US11481239B2 (en) | 2016-12-07 | 2022-10-25 | Vmware, Inc. | Apparatus and methods to incorporate external system to approve deployment provisioning |
US10552180B2 (en) | 2016-12-07 | 2020-02-04 | Vmware, Inc. | Methods, systems, and apparatus to trigger a workflow in a cloud computing environment |
EP3376737B1 (en) * | 2017-03-15 | 2020-11-25 | ABB Schweiz AG | Gateway configurations in industrial internet of things |
US11693832B2 (en) * | 2018-03-15 | 2023-07-04 | Vmware, Inc. | Flattening of hierarchical data into a relational schema in a computing system |
US11151015B2 (en) | 2019-02-22 | 2021-10-19 | Microsoft Technology Licensing, Llc | Machine-based recognition and dynamic selection of subpopulations for improved telemetry |
US11379577B2 (en) | 2019-09-26 | 2022-07-05 | Microsoft Technology Licensing, Llc | Uniform resource locator security analysis using malice patterns |
US11509667B2 (en) | 2019-10-19 | 2022-11-22 | Microsoft Technology Licensing, Llc | Predictive internet resource reputation assessment |
US11397656B2 (en) * | 2019-11-04 | 2022-07-26 | Microsoft Technology Licensing, Llc | Telemetry generation for in-field hardware testing |
US11431751B2 (en) | 2020-03-31 | 2022-08-30 | Microsoft Technology Licensing, Llc | Live forensic browsing of URLs |
US11765020B2 (en) * | 2020-08-26 | 2023-09-19 | Mastercard International Incorporated | Systems and methods for routing network messages |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276131A1 (en) * | 2005-03-31 | 2008-11-06 | International Business Machines Corporation | Systems and methods for event detection |
CN102256290A (zh) * | 2011-01-21 | 2011-11-23 | 珠海世纪鼎利通信科技股份有限公司 | 一种td-scdma无线通信网络用户终端异常数据采集方法 |
CN102999418A (zh) * | 2012-11-16 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种基于pc端的手机监测方法 |
CN103795711A (zh) * | 2014-01-10 | 2014-05-14 | 宁波金信通讯技术有限公司 | 基于手机客户端的自动化测试方法及系统 |
US20140317454A1 (en) * | 2013-04-20 | 2014-10-23 | Concurix Corporation | Tracer List for Automatically Controlling Tracer Behavior |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263268B1 (en) * | 1997-08-26 | 2001-07-17 | Transcontech Corporation | System and method for providing mobile automotive telemetry |
US7984129B2 (en) * | 2003-07-11 | 2011-07-19 | Computer Associates Think, Inc. | System and method for high-performance profiling of application events |
US8064349B2 (en) * | 2007-07-06 | 2011-11-22 | Lg Electronics Inc. | Wireless local access network system management procedure and station supporting the procedure |
US20110087767A1 (en) * | 2009-10-14 | 2011-04-14 | Microsoft Corporation | Computer Environment Analysis Tool |
US8726225B2 (en) * | 2011-08-01 | 2014-05-13 | Vmware, Inc. | Testing of a software system using instrumentation at a logging module |
CN104508628A (zh) * | 2012-07-31 | 2015-04-08 | 惠普发展公司,有限责任合伙企业 | 针对受管理的服务的监控 |
US20140298107A1 (en) * | 2013-03-29 | 2014-10-02 | Microsoft Corporation | Dynamic Near Real-Time Diagnostic Data Capture |
-
2015
- 2015-10-16 US US14/885,973 patent/US20170187782A1/en not_active Abandoned
-
2016
- 2016-10-10 EP EP16787654.9A patent/EP3362901A1/en active Pending
- 2016-10-10 WO PCT/US2016/056240 patent/WO2017066115A1/en active Application Filing
- 2016-10-10 CN CN201680060563.7A patent/CN108139963A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276131A1 (en) * | 2005-03-31 | 2008-11-06 | International Business Machines Corporation | Systems and methods for event detection |
CN102256290A (zh) * | 2011-01-21 | 2011-11-23 | 珠海世纪鼎利通信科技股份有限公司 | 一种td-scdma无线通信网络用户终端异常数据采集方法 |
CN102999418A (zh) * | 2012-11-16 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种基于pc端的手机监测方法 |
US20140317454A1 (en) * | 2013-04-20 | 2014-10-23 | Concurix Corporation | Tracer List for Automatically Controlling Tracer Behavior |
CN103795711A (zh) * | 2014-01-10 | 2014-05-14 | 宁波金信通讯技术有限公司 | 基于手机客户端的自动化测试方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414330A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 数据编辑方法及系统、数据处理设备、存储介质 |
CN111414330B (zh) * | 2019-01-04 | 2024-03-22 | 阿里巴巴集团控股有限公司 | 数据编辑方法及系统、数据处理设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3362901A1 (en) | 2018-08-22 |
WO2017066115A1 (en) | 2017-04-20 |
US20170187782A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108139963A (zh) | 遥测响应系统 | |
US11386061B2 (en) | Telemetry request system | |
CN108139961A (zh) | 遥测定义系统 | |
KR101261660B1 (ko) | 미디어 전송 통신의 직렬화 | |
US20040143583A1 (en) | Trusted access by an extendible framework method, system, article of manufacture, and computer program product | |
CN108139962A (zh) | 遥测系统扩展 | |
CN103533087A (zh) | 一种云服务平台中间件及云上传方法 | |
CN104598348B (zh) | 一种远程实时分析外部系统接口性能的方法及系统 | |
CN110780882A (zh) | 代码文件的处理方法及装置、系统、电子设备、存储介质 | |
CN108351766A (zh) | 从移动设备创建和修改应用 | |
US20170194032A1 (en) | Process for automated video production | |
CN111143310B (zh) | 日志记录方法及装置、可读存储介质 | |
CN112711518B (zh) | 一种日志上传方法和装置 | |
CN114546793A (zh) | 一种日志生成方法、装置和计算机可读存储介质 | |
CN117349049A (zh) | 一种接口请求的调用方法、装置及计算机可读存储介质 | |
CN107885659A (zh) | 对客户端的请求模拟响应的方法及装置、设备 | |
CN113704327B (zh) | 数据备案方法、装置、设备及存储介质 | |
US20240340469A1 (en) | Bundled media files | |
CN118642784A (zh) | 数据调用方法、装置、设备、存储介质及产品 | |
CN116150007A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN114510396A (zh) | 私有云巡检方法、设备及计算机可读介质 | |
CN116996508A (zh) | 云资源创建方法、装置、设备及存储介质 | |
CN116010197A (zh) | 日志输出方法、装置和电子设备 | |
CN117807977A (zh) | 一种基于公式引擎的报表处理方法及装置 | |
CN111813572A (zh) | 记录用户操作数据变动的方法、装置及设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |