CN110941536B - 监控方法及系统、第一服务器集群 - Google Patents
监控方法及系统、第一服务器集群 Download PDFInfo
- Publication number
- CN110941536B CN110941536B CN201911171937.4A CN201911171937A CN110941536B CN 110941536 B CN110941536 B CN 110941536B CN 201911171937 A CN201911171937 A CN 201911171937A CN 110941536 B CN110941536 B CN 110941536B
- Authority
- CN
- China
- Prior art keywords
- monitoring
- monitoring item
- dimension
- cluster
- family
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开涉及监控方法及系统、第一服务器集群。由第一服务器集群执行的监控方法包括:接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应;对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据;对于每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族;在第一全局监控项族存在与每个第一监控项名称对应的第一全局子监控项族的情况下,确定与第一全局子监控项族对应的第一局部监控项族;在第一局部子监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址;根据第一计数单元的内存地址和第一监控数据,修改第一计数单元的计数值。
Description
技术领域
本公开涉及计算机技术领域,特别涉及监控方法及系统、第一服务器集群、计算机可存储介质。
背景技术
在RTB(Real Time Bidding,实时竞价交易)系统中,对于DSP(Demand-SidePlatform,需求方平台)能及时监控到当前广告系统细粒度投放运行情况至关重要,可以极大的方便运营人员进行决策,快速定位系统故障,进而自动给出运营建议。
在DSP中,传统的监控方法采用日志收集方式,业务服务器将运行日志打印到磁盘,然后通过Flume、Kafaka等日志收集、消息传输组件将业务服务器的监控日志存放到检索系统,通过检索系统来展现监控数据。采用日志收集的方式,数据传输路径较长,在流量较大时为降低磁盘、带宽资源占用只能通过抽验方式进行监控,与DSP的总体实际情况存在一定误差。另外,通过日志采集、加工方式实时性差且消耗资源大。针对这一问题,现有的监控方法采用接口的方式。
相关的监控方法中,业务服务器提供接口,然后由采集服务器从业务服务器主动拉取或业务服务器主动推送给采集服务器,通过维护唯一的全局监控项族,从而实现监控。
发明内容
相关的监控方法,通过维护唯一的全局监控项族,从而实现监控,在大规模高并发业务场景下,存在线程共享同步,导致多线程开销很大,从而导致监控性能降低,用户体验较差。
针对上述技术问题,本公开提出了一种解决方案,减小了多线程开销,进而提高了监控性能,提高了用户体验。
根据本公开的第一方面,提供了一种监控方法,由第一服务器集群执行,包括:接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应;对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据;对于所述每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族;在所述第一全局监控项族存在与所述每个第一监控项名称对应的第一全局子监控项族的情况下,确定与所述第一全局子监控项族对应的第一局部监控项族;在所述第一局部子监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址;根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值。
在一些实施例中,获取与多个第一维度值的组合对应的第一计数单元的内存地址包括:计算所述多个第一维度值的组合的哈希值;获取与所述多个第一维度值的组合的哈希值对应的第一计数单元的内存地址。
在一些实施例中,所述第一计数单元的计数值为原子变量。
在一些实施例中,所述第一监控项类型包括第一类型和第二类型,根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值包括:在所述第一监控项类型为第一类型的情况下,使用所述第一计数单元的计数值与所述第一监控数据的和,替换所述第一计数单元的计数值;在所述第一监控项类型为第二类型的情况下,使用所述第一监控数据,替换所述第一计数单元的计数值。
在一些实施例中,监控方法还包括:接收第二服务器集群的采集请求,所述采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应,所述至少一个第二监控项名称为所述至少一个第一监控项名称的子集;对于每个第二监控项名称,获取与所述采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据,并发送给所述第二服务器集群,从而所述第二服务器集群存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系,其中,多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
在一些实施例中,获取与所述采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据包括:对于每个第二监控项名称,根据第二监控项类型,确定第二全局监控项族;从所述第二全局监控项族中,获取与多个第二维度值的组合对应的计数单元的内存地址;根据所述计数单元的内存地址,获取所述计数单元内的计数值,作为第二监控数据。
在一些实施例中,所述第一服务器集群包括多个第一服务器子集群,每个第一服务器子集群处理不同的业务请求,所述第二服务器集群包括多个第二服务器子集群和一个第二服务器汇总集群,每个第二服务器子集群从对应的第一服务器子集群采集所述对应关系和每个对应关系的第一服务器子集群的IP地址,并对所述对应关系和每个对应关系的第一服务器子集群的IP地址进行降维聚合处理后,发送给所述第二服务器汇总集群,所述第二服务器汇总集群存储所述对应关系。
在一些实施例中,所述第二服务器集群存储所述第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系包括:所述第二服务器集群存储所述第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系到时序数据库。
在一些实施例中,所述第二服务器集群接收用户的查询请求,所述查询请求包括待查询第二监控项类型和待查询第二监控项维度;所述第二服务器集群根据所述待查询第二监控项类型和待查询第二监控项维度,从所述时序数据库获取与所述待查询第二监控项类型和待查询第二监控项维度对应的第二监控项名称、第二维度值、第二监控数据、第二监控数据和采集时间,并展示给所述用户。
在一些实施例中,在不存在与所述第一局部监控项族的情况下,创建所述第一局部监控项族,所述第一局部监控项族为所述第一全局子监控项族的副本。
在一些实施例中,在所述第一局部监控项族不存在所述多个第一维度值的组合的情况下,从所述第一全局监控项族获取与所述多个第一维度值的组合对应的第一计数单元的内存地址;将所述多个第一维度值的组合和所述第一计数单元的内存地址的对应关系,写入所述第一局部监控项族。
在一些实施例中,在所述第一全局监控项族不存在所述第一计数单元的内存地址的情况下,在所述第一全局监控项族增加所述多个第一维度值的组合和所述第一计数单元的内存地址的对应关系。
在一些实施例中,在所述第一全局监控项族不存在与所述第一全局子监控项族的情况下,发送错误提示信息。根据本公开第二方面,提供了一种第一服务器集群,包括:接收模块,被配置为接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应;第一获取模块,被配置为对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据;第一确定模块,被配置为对于所述每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族;第二确定模块,被配置为在所述第一全局监控项族存在与所述每个第一监控项名称对应的第一全局子监控项族的情况下,确定与所述第一全局子监控项族对应的第一局部监控项族;第二获取模块,被配置为在所述第一局部子监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址;修改模块,被配置为根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值。
根据本公开第三方面,提供了一种第一服务器集群,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的监控方法。
根据本公开的第四方面,提供了一种监控系统,包括:上述任一实施例所述的第一服务器集群,被配置为执行上述任一实施例所述的监控方法;和第二服务器集群,被配置为:向所述第一服务器集群发送采集请求,所述采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应,所述至少一个第二监控项名称为所述至少一个第一监控项名称的子集;对于每个第二监控项名称,从所述第一服务器集群获取并存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系,多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
在一些实施例中,所述第二服务器集群还被配置为:接收用户的查询请求,所述查询请求包括待查询第二监控项类型和待查询第二监控项维度;根据所述待查询第二监控项类型和待查询第二监控项维度,从所述时序数据库获取与所述待查询第二监控项类型和待查询第二监控项维度对应的第二监控项名称、第二维度值、第二监控数据、第二监控数据和采集时间,并展示给所述用户。
根据本公开的第五方面,一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的监控方法。
在上述实施例中,减小了多线程开销,进而提高了监控性能,提高了用户体验。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出根据本公开一些实施例的监控方法的流程图;
图2示出根据本公开一些实施例的第一服务器集群和第二服务器集群的关系的示意图;
图3示出根据本公开一些实施例的第一服务器集群的框图;
图4示出根据本公开一些实施例的RTB系统的示意图;
图5示出根据本公开一些实施例的第一服务器集群的框图;
图6示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出根据本公开一些实施例的监控方法的流程图。
如图1所示,监控方法包括步骤S110-步骤S160。监控方法由第一服务器集群执行。例如,第一服务器集群为业务服务器集群。
在步骤S110中,接收至少一条业务请求。每条业务请求与至少一个第一监控项名称对应。每个第一监控项名称与第一监控项类型一一对应。
在步骤S120中,对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据。通过多维度监控的方式,实现了更加全面、准确的监控。
在步骤S130中,对于每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族。
在步骤S140中,在第一全局监控项族存在与每个第一监控项名称对应的第一全局子监控项族的情况下,确定与第一全局子监控项族对应的第一局部监控项族。全局的监控项族存在线程共享同步,为了保证多线程安全,需要对全局的监控项族进行加锁,会导致线程等待上的时间开销。而使用了局部监控项族后,会减少对全局监控项族的依赖,进而解决多线程同步开销的问题。
在步骤S150中,在第一局部子监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址。
在一些实施例中,获取与多个第一维度值的组合对应的第一计数单元的内存地址包括如下步骤。
首先,计算多个第一维度值的组合的哈希值。采用哈希值的方式,提高了存储查询的速度,进而提高了监控性能。
然后,获取与多个第一维度值的组合的哈希值对应的第一计数单元的内存地址。
在步骤S160中,根据第一计数单元的内存地址和第一监控数据,修改第一计数单元的计数值。例如,第一计数单元的计数值为原子变量。通过采用原子变量的方式存储第一监控数据,在指令集上保证了对数据操作的原子性,相对于采用重量级锁的方式,提高了运行效率。
在一些实施例中,第一监控项类型包括第一类型和第二类型。根据第一计数单元的内存地址和第一监控数据,修改第一计数单元的计数值包括如下步骤。
首先,在第一监控项类型为第一类型的情况下,使用第一计数单元的计数值与第一监控数据的和,替换第一计数单元的计数值。例如,第一类型为Counter(计数)类型。Counter(计数)类型为累计计数器,只增不减。在一些实施例中,Counter类型的监控项名称包括竞价请求数、被过滤的请求数、竞价响应数、获胜请求数、异常请求数、点击请求数、点击响应数、曝光请求数、异常响应数、正常响应数等。不同的监控项名称对应不同的业务请求。例如,使用流量过滤器filter记录被过滤的请求个数。根据业务需要过滤器可以细分多个,例如请求字段不完整过滤器、未识别用户过滤器、黑名单域名过滤器等,只要在请求处理过程中被命中了,则对应的过滤器即可进行计数。例如,Counter类型对应的第一监控数据为1,表示增加一个请求数。
然后,在第一监控项类型为第二类型的情况下,使用第一监控数据,替换第一计数单元的计数值。例如,第二类型命名为Histogram(直方图)类型。Histogram(直方图)类型为具有分布统计意义的计数器,可以根据计数值绘制统计分布直方图。在一些实施例中,Histogram类型的监控项名称包括各种类型的请求处理耗时、竞价出价价格、第二高价值、写日志处理耗时等。不同的监控项名称对应不同的业务请求。例如,Histogram类型对应的第一监控数据为业务处理时间段内的的请求个数和、在原有请求个数上的累计的加和值和特定分桶区间对应的请求个数。
在一些实施例中,第一监控项类型还可以为第三类型。例如,第三类型命名为Gauge(计量)类型。Gauge类型为瞬时值,可增可减,比如内存、CPU利用率、带宽、业务处理的并发数等。
在一些实施例中,监控方法还包括如下步骤。
首先,接收第二服务器集群的采集请求。采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应。至少一个第二监控项名称为所述至少一个第一监控项名称的子集。
然后,对于每个第二监控项名称,获取与采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据,并发送给第二服务器集群,从而第二服务器集群存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系。多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
例如,采集到的文本格式的业务相关数据如下。
Counter类型:
监控项名称name{监控项维度key=维度值,监控项维度key=维度值}计数值采集聚合时间戳(毫秒)
bid_request{ad_traffic_type="0",ad_type="1",business_type="16",match_type="0",op_type="0",pos_id="3507"}24 1536580579189
Histogram类型:
关于次数的Histogram类型:
监控项名称name_counter{监控项维度key=维度值,监控项维度key=维度值}计数值采集聚合时间戳(毫秒)
关于累计值的Histogram类型:
监控项名称name_sum{监控项维度key=维度值,监控项维度key=维度值}计数值采集聚合时间戳(毫秒)
关于区间计数的Histogram类型:
监控项name_bucket{监控项维度key=维度值,监控项维度key=维度值}计数值采集聚合时间戳(毫秒)
bid_gateway_time_count{ad_traffic_type="141",op_type="2",pos_id="2843"}8 1536583152886
bid_gateway_time_sum{ad_traffic_type="141",op_type="2",pos_id="2843"}83 1536583152886
bid_gateway_time_bucket{ad_traffic_type="141",op_type="2",pos_id="2843",le="1"}0 1536583152886
bid_gateway_time_bucket{ad_traffic_type="141",op_type="2",pos_id="2843",le="5"}2 1536583152886
bid_gateway_time_bucket{ad_traffic_type="141",op_type="2",pos_id="2843",le="10"}0 1536583152886
bid_gateway_time_bucket{ad_traffic_type="141",op_type="2",pos_id="2843",le="20"}5 1536583152886
bid_gateway_time_bucket{ad_traffic_type="141",op_type="2",pos_id="2843",le="25"}1 1536583152886
在一些实施例中,获取与采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据包括如下步骤。
首先,对于每个第二监控项名称,根据第二监控项类型,确定第二全局监控项族。
然后,从第二全局监控项族中,获取与多个第二维度值的组合对应的计数单元的内存地址。
最后,根据计数单元的内存地址,获取计数单元内的计数值,作为第二监控数据。
在一些实施例中,第一服务器集群包括多个第一服务器子集群,每个第一服务器子集群处理不同的业务请求。例如,第一服务器子集群包括竞价服务器子集群、获胜服务器子集群、曝光服务器子集群和点击服务器子集群。竞价服务器子集群命名为bid_server,负责DSP系统中的竞价请求和竞价响应相关的业务请求。获胜服务器子集群命名为win_server,负责DSP系统中的获胜通知等业务请求。曝光服务器子集群命名为imp_server,负责DSP系统中的曝光检测等业务请求。点击服务器子集群命名为click_server,负责DSP系统中的点击检测等业务请求。
第二服务器集群包括多个第二服务器子集群和一个第二服务器汇总集群,每个第二服务器子集群从对应的第一服务器子集群采集对应关系和每个对应关系的第一服务器子集群的IP地址,并对该对应关系和每个对应关系的第一服务器子集群的IP地址进行降维聚合处理后,发送给第二服务器汇总集群。第二服务器汇总集群存储对应关系。即,第二服务器集群采用级联的方式。
由于单台采集服务器会将最近采集和查询频次较多的数据,放置到内存中,普通8核32G内存的单台采集服务器虽然可支持上千万个时序序列,但是面对大规模业务服务器集群,不足以应对。单点采集毕竟内存有限,支持的时序序列有上限。因此,采用了采集服务器集群,即第二服务器集群进行监控。
另外,第二服务器集群在从第一服务器集群采集相关数据时,内部会自动追加第一服务器实例IP地址维度,而且对于大规模第一服务器集群,第一服务器实例IP地址维度是维度值最多的一个维度,也会导致第二服务器集群需要维护的时间序列几何倍数增加,而用户并不关心具体第一服务器集群的情况,只关心监控到的相关数据的情况。考虑到以上两点,第二服务器集群和第一服务器集群采用级联方式。
下面将结合图2详细描述第一服务器集群和第二服务器集群的关系。
图2示出根据本公开一些实施例的第一服务器集群和第二服务器集群的关系的示意图。
如图2所示,第一服务器集群21包括第一服务器子集群211、212、213,第一服务器子集群211包括多个第一服务器211S、第一服务器子集群212包括多个第二服务器212S,第一服务器子集群213包括多个第一服务器213S。在一些实施例中,第一服务器集群为业务服务器集群。
第二服务器集群22包括第二服务器子集群221、第二服务器子集群222、和第二服务器汇总集群223。在一些实施例中,第二服务器集群为采集服务器集群。
上述级联层级的方式只是一种示意,本公开所述的级联方式可以根据业务需要灵活组合,同属于一个第一服务器子集群的第一服务器可以归属一个第二服务器子集群,监控的相关数据由第二服务器子集群去除机器实例IP维度信息聚合后,提供给第二服务器汇总集群采集。第二服务器子集群去除机器实例IP信息维度需要配置聚合规则。
聚合规则支持采集项白名单,只需要聚合业务方用户感兴趣的监控项即可,如需要查看其他监控项或具体到第一服务器的相关数据。可设置查询指向第一层级的第二服务器子集群即可。
例如,第二服务器子集群一侧配置的聚合规则rule(规则)为:
record:"job:bid_request:sum"
expr:sum without(instance)(bid_request{job=~".*",traffic_type="59",tag=~"XG.*"})
其中每一条rule由record和expr组成。
record为聚合后的新的监控项名称。record:"job:bid_request:sum"表示对监控项名称为bid_request的计数值进行求和,得到新的监控项名称bid_request:sum。Job为采集服务器集群内部采集任务的名称,例如对于廊坊机房A区机器的采集任务可以命名为lanfang-A。
expr为降维聚合规则。sum without(instance)(bid_request{job=~".*",traffic_type="59",tag=~"XG.*"})中,sum表示进行加和聚合,without查询语法可以去除实例机器IP维度信息instance,用于去除维度instance,维度instance标识机器IP。(bid_request{job=~".*",traffic_type="59",tag=~"XG.*"})为具体查询条件。bid_request为要查询的监控项名称,这里为bid_server接受处理的请求。{job=~".*",traffic_type="59",tag=~"XG.*"}为监控项维度的限定条件,每个维度限定条件之间用”,”分割,多个维度限定条件为“且”的关系,此示例中限定了三个监控项维度,分别为job、traffic_type、tag。=~标示模糊匹配,=为精确匹配。job=~".*"表示匹配所有的采集任务,匹配所有也可以不显示表达,例如无job维度的匹配规则。traffic_type="59表示匹配traffic_type编号为59的某媒体的流量。tag=~"XG.*表示匹配tag以XG开头的小流量标签,可匹配XGA/XGB标识等。
支持大规模集群监控时的级联方案,不同第二服务器集群层级关注的维度数量逐渐减少,在不同层级做周期性降维度聚合,既满足上层对整体业务指标的监测也满足下层对具体业务线、灰度发布指标的监控。各个业务层各取所需,上层降维聚合数据做较长周期的存储,降维聚合后需要维护的总时间序列将程几何倍数减少,而下层未聚合数据存储周期为小时或天级别,降低了第二服务器集群存储资源的占用。
在一些实施例中,第二服务器集群存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系包括如下步骤。
第二服务器集群存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系到时序数据库。
在一些实施例中,第二服务器集群接收用户的查询请求。查询请求包括待查询第二监控项类型和待查询第二监控项维度。第二服务器集群根据待查询第二监控项类型和待查询第二监控项维度,从时序数据库获取与待查询第二监控项类型和待查询第二监控项维度对应的第二监控项名称、第二维度值、第二监控数据、第二监控数据和采集时间,并展示给用户。
例如,第二服务器集群的展示端采用Grafana可视化监控指标展示工具,支持多种时序数据库作为数据源,并拥有丰富的图形展示组件,且支持各种数据对应的查询语言,并可内嵌模板变量,模板变量可以是手动输入,也可以通过对采集的数据进行正则提取。自定义的查询语言和模板变量的支持使得查询时维度模板变量化成为可能。
在一些实施例中,监控方法还包括如下步骤。
在不存在与第一局部监控项族的情况下,创建第一局部监控项族,第一局部监控项族为第一全局子监控项族的副本。
在一些实施例中,监控方法还包括如下步骤。
首先,在第一局部监控项族不存在多个第一维度值的组合的情况下,从第一全局监控项族获取与多个第一维度值的组合对应的第一计数单元的内存地址。
然后,将多个第一维度值的组合和第一计数单元的内存地址的对应关系,写入第一局部监控项族。
在一些实施例中,监控方法还包括如下步骤。
在第一全局监控项族不存在第一计数单元的内存地址的情况下,在第一全局监控项族增加多个第一维度值的组合和第一计数单元的内存地址的对应关系。
通过采用局部监控项族同步全局监控项族的方式,将监控计数运行过程分为了两个阶段。一个是从业务请求开始后的维度积累阶段,另一个是维度饱和阶段。一旦进入维度饱和阶段,监控计数过程无锁,对业务性能基本无影响。第一个维度积累阶段虽然有锁,对业务性能有影响,但是系统QPS(Queries-per-second,每秒查询率)越高,各个维度取值遍历速度越快,维度积累阶段持续的时间将越短。
在一些实施例中,监控方法还包括如下步骤。
在第一全局监控项族不存在述第一全局子监控项族的情况下,发送错误提示信息。
在一些实施例中,对于每个监控项类型,对应一个全局监控项族,全局监控项族中存储有监控项名称和与监控项名称对应的全局子监控项族的内存地址的对应关系。例如,内存地址为监控项指针。全局子监控项族中存储有维度值的组合和与维度值的组合对应的计数单元的内存地址的对应关系。对于每个业务请求,都会对应一个线程,对于每个线程,都会存在一个局部监控项族,局部监控项族为全局子监控项族的副本,且保持同步。例如,全局监控项族、全局子监控项族和局部监控项族采用Map数据类型存储或Hash Map数据类型存储。
图3示出根据本公开一些实施例的第一服务器集群的框图。
如图3所示,第一服务器集群3包括接收模块31、第一获取模块32、第一确定模块33、第二确定模块34、第二获取模块35和修改模块36。
接收模块31被配置为接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应,例如执行如图1所示的步骤S110。
第一获取模块32被配置为对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据,例如执行如图1所示的步骤S120。
第一确定模块33被配置为对于每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族,例如执行如图1所示的步骤S130。
第二确定模块34被配置为在第一全局监控项族存在与每个第一监控项名称对应的第一全局子监控项族的情况下,确定与第一全局子监控项族对应的第一局部监控项族,例如执行如图1所示的步骤S140。
第二获取模块35被配置为在第一局部子监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址,例如执行如图1所示的步骤S150。
修改模块36被配置为根据第一计数单元的内存地址和第一监控数据,修改第一计数单元的计数值,例如执行如图1所示的步骤S160。
在一些实施例中,本公开提出了一种监控系统。监控系统包括本公开任意一些实施例中的第一服务器集群和第二服务器集群。
第一服务器集群被配置为执行本公开任意一些实施例中的监控方法。
第二服务器集群被配置为执行如下步骤。
首先,向第一服务器集群发送采集请求。采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应,至少一个第二监控项名称为至少一个第一监控项名称的子集。
然后,对于每个第二监控项名称,从第一服务器集群获取并存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系。多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
图4示出根据本公开一些实施例的RTB系统的示意图。
如图4所示,RTB系统4包括第一业务服务器子集群41、第二业务服务器子集群42、第三业务服务器子集群43、第四业务服务器子集群44、广告交易平台45、流量供应方46、监控采集服务器集群47、监控展示客户端48。
第一业务服务器子集群41被配置为接收广告交易平台45的竞价请求,并向广告交易平台45发送竞价响应。第一业务服务器子集群例如为bid_server,即竞价服务器子集群。例如,竞价服务器子集群用于处理一次广告竞价请求和响应对应广告的业务。
第二业务服务器子集群42被配置为接收广告交易平台45的获胜通知。第二业务服务器子集群例如为win_server,即获胜服务器子集群。例如,获胜服务器子集群用于处理一次获胜通知记录日志。
第三业务服务器子集群43被配置为接收流量供应方46的点击检测请求。第三业务服务器子集群例如为click_server,即点击服务器子集群。例如,点击服务器子集群用于处理一次点击请求并记录日志。
第四业务服务器子集群44被配置为接收流量供应方46的曝光检测请求。第四业务服务器子集群例如为imp_server,即曝光服务器子集群。
竞价请求、获胜通知、点击检测请求、曝光检测请求均为业务请求。线程为处理一次业务请求的计算资源载体,一个线程可以流水式处理很多个业务请求。第一业务服务器子集群41、第二业务服务器子集群42、第三业务服务器子集群43、第四业务服务器子集群44根据相应的业务请求,执行本公开任一些实施例中的监控方法。第一业务服务器子集群41、第二业务服务器子集群42、第三业务服务器子集群43、第四业务服务器子集群44即为本公开的第一服务器集群中的多个第一服务器子集群。
广告交易平台45被配置为接收流量供应方46的广告展示机会,并向供给方44发送参与竞价的广告物料及检测消息。
监控采集服务器集群47被配置为周期性地向第一业务服务器子集群41、第二业务服务器子集群42、第三业务服务器子集群43、第四业务服务器子集群44发送采集请求,并获取与采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据,进而将第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系存储到时序数据库中。
监控展示客户端48被配置为接收用户的查询请求,并将查询请求发送给监控采集服务器集群47,由监控采集服务器集群47从时序数据库中查询第二监控项名称、第二维度值、第二监控数据、第二监控数据和采集时间,并发送给监控展示客户端48,由监控展示客户端48展示给用户。
图5示出根据本公开一些实施例的第一服务器集群的框图。
如图5所示,数据传输装置5包括存储器51;以及耦接至该存储器51的处理器52,存储器51用于存储执行监控方法对应实施例的指令。处理器52被配置为基于存储在存储器51中的指令,执行本公开中任意一些实施例中的监控方法。
图6示出用于实现本公开一些实施例的计算机系统的框图。
如图6所示,计算机系统60可以通用计算设备的形式表现。计算机系统60包括存储器610、处理器620和连接不同系统组件的总线600。
存储器610例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行监控方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器620可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线600可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统60还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器66和处理器620之间可以通过总线600连接。输入输出接口630可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的监控方法及系统、第一服务器集群、计算机可存储介质,减小了多线程开销,进而提高了监控性能,提高了用户体验。
至此,已经详细描述了根据本公开的监控方法及系统、第一服务器集群、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
Claims (18)
1.一种监控方法,由第一服务器集群执行,包括:
接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应;
对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据;
对于所述每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族;
在所述第一全局监控项族存在与所述每个第一监控项名称对应的第一全局子监控项族的情况下,确定与所述第一全局子监控项族对应的第一局部监控项族;
在所述第一局部监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址;
根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值。
2.根据权利要求1所述的监控方法,其中,获取与多个第一维度值的组合对应的第一计数单元的内存地址包括:
计算所述多个第一维度值的组合的哈希值;
获取与所述多个第一维度值的组合的哈希值对应的第一计数单元的内存地址。
3.根据权利要求1所述的监控方法,其中,所述第一计数单元的计数值为原子变量。
4.根据权利要求1所述的监控方法,其中,所述第一监控项类型包括第一类型和第二类型,根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值包括:
在所述第一监控项类型为第一类型的情况下,使用所述第一计数单元的计数值与所述第一监控数据的和,替换所述第一计数单元的计数值;
在所述第一监控项类型为第二类型的情况下,使用所述第一监控数据,替换所述第一计数单元的计数值。
5.根据权利要求1所述的监控方法,还包括:
接收第二服务器集群的采集请求,所述采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应,所述至少一个第二监控项名称为所述至少一个第一监控项名称的子集;
对于每个第二监控项名称,获取与所述采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据,并发送给所述第二服务器集群,从而所述第二服务器集群存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系,其中,多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
6.根据权利要求5所述的监控方法,其中,获取与所述采集请求对应的每一条业务请求的多个第二监控项维度的第二维度值和第二监控数据包括:
对于每个第二监控项名称,根据第二监控项类型,确定第二全局监控项族;
从所述第二全局监控项族中,获取与多个第二维度值的组合对应的计数单元的内存地址;
根据所述计数单元的内存地址,获取所述计数单元内的计数值,作为第二监控数据。
7.根据权利要求5所述的监控方法,其中,所述第一服务器集群包括多个第一服务器子集群,每个第一服务器子集群处理不同的业务请求,所述第二服务器集群包括多个第二服务器子集群和一个第二服务器汇总集群,每个第二服务器子集群从对应的第一服务器子集群采集所述对应关系和每个对应关系的第一服务器子集群的IP地址,并对所述对应关系和每个对应关系的第一服务器子集群的IP地址进行降维聚合处理后,发送给所述第二服务器汇总集群,所述第二服务器汇总集群存储所述对应关系。
8.根据权利要求5所述的监控方法,其中,所述第二服务器集群存储所述第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系包括:
所述第二服务器集群存储所述第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系到时序数据库。
9.根据权利要求8所述的监控方法,其中,所述第二服务器集群接收用户的查询请求,所述查询请求包括待查询第二监控项类型和待查询第二监控项维度;
所述第二服务器集群根据所述待查询第二监控项类型和待查询第二监控项维度,从所述时序数据库获取与所述待查询第二监控项类型和待查询第二监控项维度对应的第二监控项名称、第二维度值、第二监控数据和采集时间,并展示给所述用户。
10.根据权利要求1所述的监控方法,其中,在不存在所述第一局部监控项族的情况下,创建所述第一局部监控项族,所述第一局部监控项族为所述第一全局子监控项族的副本。
11.根据权利要求1所述的监控方法,其中,在所述第一局部监控项族不存在所述多个第一维度值的组合的情况下,从所述第一全局监控项族获取与所述多个第一维度值的组合对应的第一计数单元的内存地址;
将所述多个第一维度值的组合和所述第一计数单元的内存地址的对应关系,写入所述第一局部监控项族。
12.根据权利要求1所述的监控方法,其中,在所述第一全局监控项族不存在所述第一计数单元的内存地址的情况下,在所述第一全局监控项族增加所述多个第一维度值的组合和所述第一计数单元的内存地址的对应关系。
13.根据权利要求1所述的监控方法,其中,在所述第一全局监控项族不存在所述第一全局子监控项族的情况下,发送错误提示信息。
14.一种第一服务器集群,包括:
接收模块,被配置为接收至少一条业务请求,每条业务请求与至少一个第一监控项名称对应,每个第一监控项名称与第一监控项类型一一对应;
第一获取模块,被配置为对于每个第一监控项名称,获取多个第一监控项维度的第一维度值和第一监控数据;
第一确定模块,被配置为对于所述每个第一监控项名称,根据第一监控项类型,确定第一全局监控项族;
第二确定模块,被配置为在所述第一全局监控项族存在与所述每个第一监控项名称对应的第一全局子监控项族的情况下,确定与所述第一全局子监控项族对应的第一局部监控项族;
第二获取模块,被配置为在所述第一局部监控项族中,获取与多个第一维度值的组合对应的第一计数单元的内存地址;
修改模块,被配置为根据所述第一计数单元的内存地址和所述第一监控数据,修改所述第一计数单元的计数值。
15.一种第一服务器集群,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至13任一项所述的监控方法。
16.一种监控系统,包括:
如权利要求14至15任一项所述的第一服务器集群,被配置为执行如权利要求1至13任一项所述的监控方法;和
第二服务器集群,被配置为:
向所述第一服务器集群发送采集请求,所述采集请求包括至少一个第二监控项名称,每个第二监控项名称与第二监控项类型一一对应,所述至少一个第二监控项名称为所述至少一个第一监控项名称的子集;
对于每个第二监控项名称,从所述第一服务器集群获取并存储第二监控项名称、第二监控项类型、第二监控项维度、第二维度值、第二监控数据、采集时间的对应关系,多个第二监控项维度、多个第二维度值、第二监控数据分别为多个第一监控项维度、多个第一维度值、第一监控数据的子集。
17.根据权利要求16所述监控系统,其中,所述第二服务器集群还被配置为:
接收用户的查询请求,所述查询请求包括待查询第二监控项类型和待查询第二监控项维度;
根据所述待查询第二监控项类型和待查询第二监控项维度,从时序数据库获取与所述待查询第二监控项类型和待查询第二监控项维度对应的第二监控项名称、第二维度值、第二监控数据和采集时间,并展示给所述用户。
18.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至13任一项所述的监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171937.4A CN110941536B (zh) | 2019-11-26 | 2019-11-26 | 监控方法及系统、第一服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171937.4A CN110941536B (zh) | 2019-11-26 | 2019-11-26 | 监控方法及系统、第一服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941536A CN110941536A (zh) | 2020-03-31 |
CN110941536B true CN110941536B (zh) | 2021-02-26 |
Family
ID=69908781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911171937.4A Active CN110941536B (zh) | 2019-11-26 | 2019-11-26 | 监控方法及系统、第一服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941536B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529705A (zh) * | 2020-12-04 | 2021-03-19 | 深圳市富途网络科技有限公司 | 港股订单的处理方法及相关产品 |
CN112307071A (zh) * | 2020-12-04 | 2021-02-02 | 上海连尚网络科技有限公司 | 监控数据采集方法、装置、电子设备和计算机可读介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031497A (ja) * | 2004-07-20 | 2006-02-02 | Sony Corp | データファイル保存方法およびデータファイル保存プログラム、ならびに記録媒体 |
CN101706896A (zh) * | 2009-11-24 | 2010-05-12 | 苏州锐创通信有限责任公司 | 面向第三代移动通信的工作流管理方法 |
CN107562599A (zh) * | 2017-08-04 | 2018-01-09 | 无锡天脉聚源传媒科技有限公司 | 一种参数检测方法及装置 |
CN107707427B (zh) * | 2017-09-28 | 2021-12-17 | 南华大学 | 一种网站可用性监控系统 |
CN108173711B (zh) * | 2017-12-26 | 2020-12-04 | 薪得付信息技术(上海)有限公司 | 企业内部系统数据交换监控方法 |
-
2019
- 2019-11-26 CN CN201911171937.4A patent/CN110941536B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110941536A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110086666B (zh) | 一种告警方法、装置及系统 | |
CN113220724B (zh) | 用于处理数据流的方法、系统和计算机可读存储介质 | |
US8234248B2 (en) | Tracking changes to a business object | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN106815125A (zh) | 一种日志审计方法及平台 | |
CN112380473B (zh) | 数据采集与同步方法、装置、设备及存储介质 | |
CN117971606B (zh) | 基于ElasticSearch的日志管理系统及方法 | |
CN110647447B (zh) | 用于分布式系统的异常实例检测方法、装置、设备和介质 | |
CN110941536B (zh) | 监控方法及系统、第一服务器集群 | |
CN111400288A (zh) | 数据质量检查方法及系统 | |
CN114416703A (zh) | 数据完整性自动监控方法、装置、设备及介质 | |
CN112686717B (zh) | 一种广告召回的数据处理方法及系统 | |
CN112882906A (zh) | 用于基于软件的仪器化的实时报告的方法、系统以及计算机可读介质 | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
WO2022237506A1 (zh) | 在线问诊业务监控方法、装置、设备及存储介质 | |
CN111814045A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN112825165A (zh) | 项目质量管理的方法和装置 | |
CN113220551A (zh) | 指标趋势预测及预警方法、装置、电子设备及存储介质 | |
CN110807702A (zh) | 贷后信息的管理方法、装置、设备及存储介质 | |
CN115794744A (zh) | 一种日志展示方法、装置、设备和存储介质 | |
US20150213098A1 (en) | Business Rules Influenced Quasi-Cubes with Higher Diligence of Data Optimization | |
CN113132431B (zh) | 服务监控方法、服务监控装置、电子设备及介质 | |
CN109766238B (zh) | 基于session数的运维平台性能监控方法、装置及相关设备 | |
CN114490137A (zh) | 业务数据实时统计方法、装置、电子设备及可读存储介质 | |
CN111639057A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |