系统监控数据该用推还是拉?
系统度量数据的系统收集方式通常分为拉动式(Pull)和推动式(Push)。这两种方式在数据采集和传输的监控过程中具有不同的特点和适用场景。
图片
1.拉动式
拉动式是数据指数据收集系统定期向目标设备或系统发送请求,以获取数据 。该用这种方式的推还关键在于,数据收集方主动发起请求 ,系统目标系统被动响应。监控
图 1 显示了通过 HTTP 拉动模式收集数据的数据情况 。我们有专门的该用指标收集器,定期从运行的服务器租用推还应用程序中提取指标值 。
在这种方法中,系统指标收集器(Metrics Collector)需要知道要从哪些服务端点获取数据。监控一种简单的数据方法是使用一个文件来保存 “指标收集器 ”服务器上每个服务端点的 DNS/IP 信息 。虽然想法很简单,该用但这种方法在大规模环境中很难维护 ,推还因为服务器会经常添加或移除,而且我们要确保度量收集器不会错过从任何新服务器收集度量数据。
优点
控制灵活性:拉动式系统可以根据需求定期或按需请求数据,因此具有较高的控制灵活性 。用户可以指定数据采集的时间或条件。源码库减少不必要的数据传输 :只有在请求时才会收集数据,这意味着如果没有实际的需求或事件 ,数据不会被频繁地传输,从而避免了不必要的网络流量和存储 。简化处理:拉动式方式可以在数据请求时就进行数据处理,因此系统接收到的数据通常已被筛选或加工过 。缺点
延迟问题 :因为数据是按需收集的,如果请求频率较低,可能会存在一定的延迟 ,建站模板不能即时获取最新的数据 。请求开销 :每次数据请求都需要一定的系统资源和时间,特别是在数据量较大的时候,频繁请求可能会导致性能瓶颈 。系统负担:当多个设备或系统都使用拉动方式时 ,服务器可能需要处理大量的请求 ,从而导致压力增加。我们可以通过 Kubernetes、Zookeeper 等提供的服务发现(Service Discovery)获得可靠、可扩展和可维护的亿华云解决方案 ,其中服务会注册其可用性,每当服务端点列表发生变化时,度量收集器就会收到服务发现组件的通知。服务发现包含有关何时何地收集度量的配置规则 ,如图 2 所示 。
2.推动式
推动式是指数据源主动向数据收集系统发送数据 。数据生成方(如设备、系统)在事件发生或数据更新时 ,主动将数据推送到接收方 。
第一步
指标收集器从服务发现获取服务端点的配置元数据。元数据包括拉取间隔 、香港云服务器IP 地址、超时和重试参数等 。
第二步
指标收集器通过预定义的 HTTP 端点(例如 /metrics)获取指标数据 。要公开该端点,通常需要在服务中添加客户端库 。在图 3 中,服务是 Web 服务器。
第三步
另外,度量收集器还可以向服务发现(Service Discovery)注册变更事件通知,以便在服务端点变更时接收更新。或者 ,度量收集器可以定期轮询端点变化 。