怎么理解Flink指标、监控与告警,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
为什么我们关注指标监控
1. 监控报警的链路
2. 常用的监控项
对于系统指标最常关注的是作业的可用性,如 uptime (作业持续运行的时间)、fullRestarts (作业重启的次数)。
第二个关注的是作业的流量,可以通过 numRecordsIn、numBytesInLocal 等相关指标来关注作业每天处理的消息数目及高峰时间段的流量,通过关注这些指标可以观察作业的流量表现是否正常。
然后是 CPU(如:CPU.Load)、内存(如:Heap.Used )、GC ( 如:GarbageCollector.Count、GarbageCollector.Time )及网络 ( inputQueueLength、outputQueueLength) 相关指标,这些指标一般是用来排查作业的故障信息。
另外是 checkpoint 相关信息,例如最近完成的 checkpoint 的时长( lastCheckpointDuration )、最近完成的 checkpoint 的大小( lastCheckpointSize )、作业失败后恢复的能力( lastCheckpointRestoreTimestamp )、成功和失败的 checkpoint 数目( numberOfCompletedCheckpoints、numberOfFailedCheckpoints )以及在 Exactly once 模式下 barrier 对齐时间( checkpointAlignmentTime )。
还有就是 connector 的指标,例如常用的 Kafka connector ,Kafka 自身提供了一些指标,可以帮助我们了解到作业最新消费的消息的状况、作业是否有延迟等。
比如处理逻辑耗时打点,例如包含复杂逻辑的业务系统,可以通过在逻辑前后进行打点,这样可以查看每条消息处理完这个逻辑的耗时。
另一块是外部服务调用的性能, 在 Flink 作业中可能需要访问外部存储(如 Redis ), 可以通过打点来查看请求的耗时、请求的成功率等。
还有是缓存命中率,有时候由于数据集过大,我们只访问热数据,此时会在内存中缓存一部分信息,我们可以监控缓存命中率,如果缓存命中率非常高说明缓存有效,如果缓存命中率非常低,一直在访问外部存储,就需要考虑缓存设计的是否合理。
2.2 如何确定哪些指标需要关注?
第一点是作业状态相关的, 如作业是否出故障、作业是否存活、作业是否稳定运行、影响作业可用性的风险因素(如上次 checkpoint 是否成功、最近成功的 checkpoint 的时间)。
第二点是作业性能相关的,如作业的处理延迟、数据倾斜、性能瓶颈(如外部访问)等。
第三点是业务逻辑相关,如上游数据质量、新上的逻辑是否存在问题、数据是否存在丢失( Exactly once 语义中数据是否允许丢失)。
3. 指标的聚合方式
4. 指标监控的应用
报警时段:不同的时间段报警,可能需要有不同的域值,或者不同的报警方式(公司通讯软件报警、电话报警等)
Q&A
在设计整套系统的架构时,需要有一定的兼容性,不能只关注一类指标。
设计初期需要考虑有哪些类型的指标,每个类型的指标有什么样的特征,可能有哪些聚合的维度,用什么样的方式去聚合。
搭建模型。
设计,先把指标的特征提取出来,然后对这些特征去进行设计,最后做一个能兼容的系统,这样对于已知类型的指标,就只需修改配置就可以扩展了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。