无规则采集器列表算法( 云原生和DevOps研发模式的几个痛点:三数据统一接入和管理)
优采云 发布时间: 2021-12-25 11:16无规则采集器列表算法(
云原生和DevOps研发模式的几个痛点:三数据统一接入和管理)
一、简介
在云原生和DevOps研发模式的挑战下,系统从开发、测试、上线的全过程都会产生大量的日志、指标、事件、告警等数据,这也带来了极大的重要性企业质量平台建设。大挑战。本主题主要从可观察性的角度探讨基于海量日志和时间序列数据的质量构建最佳实践。
二、质量建设痛点
众所周知,在云原生开发模式中,可观察性是非常重要的一环。它可以让我们通过日志、指标、轨迹等数据深入了解系统的运行状态和健康状况。在大型的 CNCF Landscape 地图中,可观察性也占据了相当一部分的位置。
但是在实际使用中,很多人关注的主要是系统上线后的可观察性。这当然没有问题,但实际上,从一个系统的开发到上线运行,都可以从一个可观察的角度来评估和衡量系统的质量。我们可以称之为质量观察。.
下图更概括地描述了一个系统质量观察的完整生命周期,大致可以分为以下四个阶段,每个阶段都有一些需要特别关注的数据和指标:
在质量观察的整个生命周期中,除了各种数据,我们还会涉及到各种系统,比如GitLab、sonarqube、Allure、JMeter、Jenkins、Travis CI、Argo CD等,这些不同的系统在不同的阶段起作用,会产生大量的异构数据。如何合理地管理和使用这些数据,让数据价值(不限于软件质量)可以轻松挖掘出来。对我们来说,这是一个比较大的挑战。
基于以上讨论,我们可以大致总结出质量观察的几个痛点:
三项数据统一访问和管理
1 海量数据管理痛点
首先讨论第一个痛点,即如何管理海量的异构数据。有许多不同的系统与可观察性相关。
例如,日志可能使用 ELK 或 Splunk,指标可能使用 Prometheus,跟踪可能使用 Skywalking、Jaeger 或 zipkin。但选择太多也不一定是好事。在这种情况下,可观察数据的管理给我们带来了以下痛点:
2 统一的数据访问和管理
基于上述痛点,我们的解决方案是统一存储和管理这些异构数据,如下图所示:
在这里,我们将日志、指标和跟踪等所有数据连接到一个统一的可观察性存储中。然后基于这个统一存储,进行后续的查询分析、可视化、监控告警、AI等上层能力,甚至对数据进行处理和整理,一站式完成异构数据到同构数据的转换过程。
在统一存储的基础上,我们可以构建统一的查询分析语法,使一套语法适应不同的数据,使不同数据之间进行联合查询成为可能。如下图所示,我们在标准SQL的基础上进行了一些DSL扩展和SQL功能扩展,并集成了PromQL,使不同类型的数据查询和分析变得统一。
例如,以下示例:
基于以上统一的数据存储和查询分析,我们可以轻松实现统一的可视化和监控。如下图,虽然不同阶段的数据来自不同的系统,格式不同,但是由于它们的存储和分析是一致的,我们可以构建一个统一的报表查看各个阶段的软件质量,以及统一的监控配置和告警管理,无需将它们分散到不同的系统中,脱离ES+Kibana、Prometheus+Grafana等组合。
四项智能巡检
1 传统监控的难点与挑战
接下来,让我们看看如何根据这些数据让监控变得更智能。传统的监控大多基于一些固定的阈值,或者相同的环比。但是在很多场景下,这个模型有很多问题。例如:
2 智能检测
基于上述痛点,我们提出了智能巡检方案。它具有以下优点:
在一些数据波动较大、指标没有固定阈值的场景下(如用户访问量、外卖订单等),智能巡检的优势可以很好的体现出来。例如,在下图中,指标本身表现出周期性波动。如果新版本上线,网络流量会因为bug而异常抖动。如果是根据固定阈值判断,此时如果在指标值上下限内,就很难发现问题;但根据智能检测,很容易判断这是一个异常点。
3 智能巡检的实现
智能巡检的基本思路如下:
我们使用无监督学习算法自动识别实体的数据特征,根据数据特征选择不同的算法组合,实时对数据流进行建模,完成异常任务检测。并根据用户的标注信息(告警确认或误报反馈)训练监督模型,不断优化算法,提高监控的准确性。
目前我们使用两种算法进行异常检测,比较如下:
五报警智能管理
1 告警管理痛点
在质量观察的整个生命周期中,会产生大量的告警。如下所示:
这导致的问题是:
2 智能报警管理
我们可以通过智能报警管理解决以上问题,如下图所示:
报警智能降噪包括以下机制:
动态调度包括以下功能:
另一个是义务和替代机制。值班是一个非常常见的场景。通常情况下,警报不会发送到所有负责人,而是轮流值班。既然有了职责,还要考虑特殊情况需要更换。比如有人值班的那天,因为有事,就让另一个人代替他值班。比如下面的例子:张三和李斯2021年8月值班(每班一周,只值工作日),第一个工作日值班;8月17日,张三请假,小明值班。
六总结与展望
基于以上讨论,完整架构的大图如下:
通过将日志、时序、轨迹、事件等数据连接到统一的可观察存储,可以实现统一查询分析、可视化等功能。基于此,可以实现统一监控和告警管理,从而赋能研发、运维、安全等角色。此外,它还支持开启报警功能,直接连接其他系统(如Prometheus、Grafana、Zabbix等)的报警,统一管理报警。
关于未来展望:
随着上述步骤的不断建设和完善,相信质量的测控会越来越向人性化、自动化、智能化的方向发展。
1、CNCF景观地址:
2、时间序列事件预测与进化状态图:
3、RobustSTL:用于长时间序列的稳健的季节性趋势分解算法:
作者 | 季知
原文链接: