系统度量数据的系统收集方式通常分为拉动式(Pull)和推动式(Push) 。这两种方式在数据采集和传输的监控过程中具有不同的特点和适用场景。
图片
拉动式是数据指数据收集系统定期向目标设备或系统发送请求,以获取数据 。该用这种方式的推还关键在于 ,数据收集方主动发起请求,系统目标系统被动响应 。监控
图 1 显示了通过 HTTP 拉动模式收集数据的数据情况 。我们有专门的该用指标收集器 ,定期从运行的免费模板推还应用程序中提取指标值 。
在这种方法中 ,系统指标收集器(Metrics Collector)需要知道要从哪些服务端点获取数据。监控一种简单的数据方法是使用一个文件来保存 “指标收集器 ”服务器上每个服务端点的 DNS/IP 信息 。虽然想法很简单 ,该用但这种方法在大规模环境中很难维护,推还因为服务器会经常添加或移除,而且我们要确保度量收集器不会错过从任何新服务器收集度量数据。
我们可以通过 Kubernetes 、Zookeeper 等提供的服务发现(Service Discovery)获得可靠、可扩展和可维护的亿华云解决方案 ,其中服务会注册其可用性 ,每当服务端点列表发生变化时 ,度量收集器就会收到服务发现组件的通知。服务发现包含有关何时何地收集度量的配置规则 ,如图 2 所示 。
推动式是指数据源主动向数据收集系统发送数据 。数据生成方(如设备 、系统)在事件发生或数据更新时,主动将数据推送到接收方 。
指标收集器从服务发现获取服务端点的配置元数据。元数据包括拉取间隔、建站模板IP 地址 、超时和重试参数等 。
指标收集器通过预定义的 HTTP 端点(例如 /metrics)获取指标数据 。要公开该端点 ,通常需要在服务中添加客户端库。在图 3 中 ,服务是 Web 服务器 。
另外 ,度量收集器还可以向服务发现(Service Discovery)注册变更事件通知 ,以便在服务端点变更时接收更新。或者 ,度量收集器可以定期轮询端点变化。