Prometheus 作为云原生时代最流行的监控组件,已然成为社区监控事实上的标准,但是在多集群,大集群等场景下,只使用 Prometheus 是远远不够的;单集群场景下我们一般主要关注指标采集、存储、告警、可视化等基础监控能力,随着集群规模的增大,监控系统的弹性以及可扩展性成为首要解决的痛点问题,为此社区诞生了 Thanos、Cortex、Prometheus 联邦等一系列成熟的解决方案,我们也通过自研的 Kvass 解决方案,通过将服务发现与采集过程分离,以及自研的任务分片算法,无侵入式的支持采集任务横向扩展,满足大规模集群场景下的采集和监控需求。在分布式云场景下,用户集群往往采用混合多云多集群的部署架构,集群的地理位置更加分散,网络环境更加复杂,为此我们也在寻找一种新的方案来统一解决此类问题。本文以腾讯云跨账号集群统一监控为例,介绍分布式云下的多集群监控方案的最佳实践。
北斗前端监控系统是 58 内部的一个线上质量监控排查解决方案,用于帮助用户大幅提升定位问题和优化项目的效率。系统共分为数据收集(SDK)、数据处理(Java)、数据存储(Druid、……)、数据分析(Node.js)、数据展示(React) 5 层模型。Node.js 作为系统中的数据分析层,提供各种数据分析和应用的方式。 在一期之后,系统的基础功能已经完备。平台可以收集 5 种类型、30 多种指标的数据,已经具备了很强的数据收集能力,数据应用的方式却很匮乏。 所以在二期开发时,我们计划在 Node 端加入多种数据应用的方式。实时告警,就是其中之一。 简单分析需求,服务端需要以一定的频次(例如每分钟)监测不同项目中用户配置关注的指标数值。当数值出现异常时,给用户发送邮件、短信等告警信息用于警示。 而其中的重点,就是如何在 Node.js 中设计并实现定时任务系统?
故障也有积极意义 在复杂系统中,故障是必然的,无法彻底避免。从定性的角度来看,并非所有的故障都是坏事,有些故障是有正面意义的,比如说通过一个线上的小故障发现了一个大隐患,或者是某次故障中相关人员的意识和应急预案都很到位,但是由于故障的原因非常特殊最后仍然造成了较大的影响等等,类似这样的故障都要找出其中的亮点。 所以,我们要用辩证的眼光去看待,避免大家“闻故障色变“。为了往这方面引导,我们在规章制度方面也做了很多设定,因此在我们的故障管理制度上,我们也是鼓励快速恢复(对于快速恢复的故障定级比较低)、鼓励通过演练发现更多的线上问题(对于由于演练导致的故障有一定的豁免权)等等。但是,大家也应该充分意识到我们对故障的理念:即偶尔的系统失效是可以容忍的,人为的犯错是要严肃对待的,比如说不符合高可用规范的系统设计模式、强弱依赖设计不合理、由于人员意识不到位带来的故障处理时间较长、值班人员未及时接通oncall、由于对线上系统不够重视带来的变更隐患、不遵守变更三板斧规范等等。
写软件和造楼房一样需要设计,但是和建筑行业严谨客观的设计规范不同,软件设计常常很主观,且容易引发争论。 设计模式被认为是软件设计的“规范”,但是在互联网快速发展的过程中,也暴露了一些问题。相比过程式代码的简单与易于修改,设计模式常常导致代码复杂,增加理解与修改的成本,我们称之为 “过度设计”。因而很多人认为,设计模式只是一种炫技,对系统没有实质作用,甚至有很大的挖坑风险。这个观点容易让人因噎废食,放弃日常编码中的设计。 本文将深入探索如下问题: 为什么长期来看,设计模式相比过程式代码是更好的? 什么情况下设计模式是有益的,而什么情况下会成为累赘? 如何利用设计模式的益处,防止其腐化?
Data Catalog 能够帮助大公司更好地梳理和管理自己的资产,是 Data-drvien 公司的重要平台。一个通用的 Data Catalog 平台通常包含元数据管理,搜索,血缘,标签,术语等功能。其中,搜索是 Data Catalog 的入口功能,承担着让用户“找到数”的主要能力。在字节跳动数据中台的 Data Catalog 系统中,每天有 70% 以上的用户会使用搜索功能。
大家好,我是田哥 今天来和大家分享MySQL的三个日志文件,可以说 MySQL 的多数特性都是围绕日志文件实现,而其中最重要的有以下三种: redo 日志 undo 日志 binlog 日志 比如更新语句的流程会涉及到 undo log(回滚日志)、redo log(重做日志) 、binlog (归档日志)这三种日志: undo log(回滚日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复; binlog (归档日志) :是 Server 层生成的日志,主要用于数据备份和主从复制;