监控和可观察性在 DevOps 中的作用!
在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用,但它们代表了理解和管理复杂系统的不同方法。在本文中,我们将探讨监控和可观察性之间的差异,提供示例来说明它们的应用并强调它们各自的好处。我们还将深入研究用于有效监控和可观察性的技术和工具。
「监控:了解系统状态」
监控的重点是收集和分析有关系统或应用程序状态的数据。它通常涉及设置特定的指标、阈值和警报机制来跟踪各种组件的性能和可用性。常见的监控技术和工具包括:
- 指标监控:使用 Nagios、Zabbix、Prometheus 和 Datadog 等工具监控预定义指标,例如 CPU 使用率、内存消耗、磁盘空间、网络流量和特定于应用程序的指标。
- 日志监控:使用 ELK Stack(Elasticsearch、Logstash 和 Kibana)、Splunk 或 Graylog 等工具解析和分析系统不同组件生成的日志,以识别错误、安全漏洞或异常行为。
- 综合监控: 使用 Selenium、Pingdom 或 New Relic Synthetics 等工具模拟用户交互并监控系统的响应,以确保可用性和性能。
「可观察性:了解系统行为」
可观察性采用更全面的方法,旨在通过分析互连组件及其关系来理解和解释复杂系统的行为。它强调回答问题和调查超出预定义指标的系统行为的能力。用于可观察性的技术和工具包括:
- 分布式跟踪:使用 Jaeger、Zipkin 或 AWS X-Ray 等工具捕获和分析通过分布式系统的请求流。它可以识别瓶颈、延迟问题和依赖性。
- 应用程序日志记录:使用 Fluentd、Logback 或 Log4j 等工具收集包含上下文信息的结构化日志,以跟踪执行路径、解决问题并全面了解系统行为。
- 实时分析:利用 Apache Kafka 或 Apache Flink 等流数据平台以及 Grafana 或 Kibana 等可视化工具来处理和分析大量实时数据流,以获得系统性能洞察。
「监控和可观察性用例」
以下是一些常见用例,其中监控和可观察性在 DevOps 中发挥着重要作用:
「应用程序性能监控 (APM)」
监控:跟踪响应时间、错误率和资源利用率等指标,以确保最佳性能。例如,设置 CPU 使用率高或响应时间慢的警报。
可观察性:分析分布式跟踪和日志以识别性能瓶颈、了解依赖性并解决问题。例如,使用分布式跟踪来查明微服务之间的延迟问题。
「基础设施监控」
监控:跟踪服务器指标(CPU、内存、磁盘空间)和网络指标(带宽、延迟)以确保基础设施运行状况。例如,监视磁盘空间以避免由于磁盘已满而导致的潜在中断。
可观察性:分析日志和事件以识别异常行为或安全威胁。例如,使用日志分析来检测系统日志中未经授权的访问尝试或异常模式。
「云资源监控」
监控:跟踪云服务(例如AWS CloudWatch、Azure Monitor)的资源利用率和性能指标,以优化成本并确保服务可用性。例如,监控自动伸缩组中已配置实例的数量。
可观察性:分析云提供商日志、跟踪和指标,以深入了解云资源的行为并诊断问题。例如,使用可观察性工具来识别无服务器架构中的性能瓶颈。
「持续集成/持续部署 (CI/CD) 管道」
监控:跟踪构建和部署指标(例如构建持续时间、成功/失败率),以确保CI/CD 管道的效率和可靠性。例如,监控构建队列长度以防止出现瓶颈。
可观察性:分析来自 CI/CD 工具(例如 Jenkins、CircleCI)的日志和事件,以排除失败的构建或部署问题。例如,使用可观察性来调查部署失败的原因。
「网络监控」
监控:跟踪网络流量、延迟和数据包丢失,以确保网络性能并识别潜在问题。例如,监控网络带宽利用率以防止拥塞。
可观察性:分析网络日志、数据包捕获和流数据以诊断网络问题、检测安全漏洞或识别异常行为。例如,使用可观测性工具来调查突然增加的网络错误。
这些只是如何在各种 DevOps 用例中应用监控和可观察性的几个示例。具体用例和要求可能会有所不同,具体取决于系统、基础设施和组织需求的性质。
「要点」
监控通过捕获预定义指标并根据阈值发出警报来提供系统运行状况和性能的快照。它对于检测特定问题或事件并提供有关系统或应用程序状态的即时反馈非常有用。
可观察性提供了对复杂系统的更全面的了解,从而能够主动进行故障排除和根本原因分析。它专注于捕获上下文信息并发现超出预定义指标的见解,从而培养持续改进的文化。
实现可观察性通常需要额外的仪器和架构考虑,这可能会增加复杂性和资源需求。然而,深入系统理解的好处以及解决未知或意外问题的能力使其成为一项值得的投资。
「概括」
监控和可观察性都是现代 DevOps 实践的重要组成部分,但它们涉及系统可见性的不同方面。监控提供了系统运行状况的集中、即时的视图,跟踪预定义的指标和阈值,而可观察性提供了对系统行为的整体理解,捕获上下文信息并实现深入分析。
通过结合监控和可观察性技术并利用适当的工具,组织可以全面了解系统性能、及早发现问题并持续优化其系统。通过可观察性在监控预定义指标和探索不可预见的场景之间取得平衡,使团队能够在 DevOps 的动态世界中有效管理和提高其软件系统的可靠性、性能和弹性。
相关文章:

监控和可观察性在 DevOps 中的作用!
在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用,但它们代表了理解和管理复杂…...

论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks
1 原论文的题目(中英文)、题目中包含了哪些关键词?这些关键词的相关知识分别是什么? 题目:PowerTCP: Pushing the Performance Limits of Datacenter Networks PowerTCP:逼近数据中心的网络性能极限 2 论…...

浏览器的同源策略 - 跨域问题
1.什么是跨域 跨域问题的实质是浏览器的同源策略造成的。浏览器同源策略是浏览器为 JavaScript 施加的限制。简单点说就是非同源会出现如下等限制: 无法访问其他源下的网页的 Cookies,Storage等;无法访问其他源下的DOM对象和 JS 对象;无法使…...

go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}
第一版: https://mp.csdn.net/mp_blog/creation/editor/131979385 第二版: 优化内容: 检索数据的两种方式: 1.严格模式--找寻名称是一模一样的内容,在上一个版本实现了 2.包含模式,也就是我输入检索关…...

c++11 标准模板(STL)(std::basic_filebuf)(八)
定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_filebuf : public std::basic_streambuf<CharT, Traits> std::basic_filebuf 是关联字符序列为文件的 std::basic_streambuf 。输入序…...
行为型模式之解释器模式
解释器模式(Interpreter Pattern) 解释器模式(Interpreter Pattern)是一种行为设计模式,它用于对语言的文法进行解释和解析,以实现特定的操作。 在解释器模式中,存在以下几个角色: 抽…...

阿里云域名备案
最好的爱情,不是因为我们彼此需要在一起,而是因为我们彼此想要在一起。 阿里云的域名如何备案,域名备案和ICP备案一样吗?? 截至我所掌握的知识(2021年9月),阿里云的域名备案和ICP备案…...

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试
前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…...

文档管理NAS储存安全吗?
关键词:私有化、知识管理系统、文档管理、群晖NAS、协同编辑 随着企业不断发展扩大,企业的知识文档也逐渐增多,很多企业方便管理及考虑数据安全问题会将文件数据储存至NAS。 但将企业文档数据放在NAS上就足够安全的吗? 天翎文档管…...

用windeployqt.exe打包Qt代码
首先找到我们编译Qt代码的对应Qt版本的dll目录,该目录下有windeployqt.exe: D:\DevTools\Qt\5.9\msvc2017_64\bin 在这个目录下打开cmd程序。 然后把要打包的exe放到一个单独的目录下,比如: 然后在cmd中调用: winde…...

【Python机器学习】实验04(2) 机器学习应用实践--手动调参
文章目录 机器学习应用实践1.1 准备数据此处进行的调整为:要所有数据进行拆分 1.2 定义假设函数Sigmoid 函数 1.3 定义代价函数1.4 定义梯度下降算法gradient descent(梯度下降) 此处进行的调整为:采用train_x, train_y进行训练 1.5 绘制决策边界1.6 计算…...

【爬虫案例】用Python爬取iPhone14的电商平台评论
用python爬取某电商网站的iPhone14评论数据, 爬取目标: 核心代码如下: 爬取到的5分好评: 爬取到的3分中评: 爬取到的1分差评: 所以说,用python开发爬虫真的很方面! 您好&…...

01)docker学习 centos7离线安装docker
docker学习 centos7离线安装docker 在实操前可以先看下docker教程,https://www.runoob.com/docker/docker-tutorial.html , 不过教程上都是在线安装方式,很方便,离线安装肯定比如在线麻烦点。 一、什么是Docker 在学习docker时,在网上看到一篇博文讲得很好,自己总结一下…...
前端 - 实习两个星期总结
文章目录 吐槽总结新人建议项目学习到的 今天已经是菜鸟实习的第二个星期了,怎么说呢,反正就是进的一个不大不小的厂,做着不难不易的事,菜鸟现在主要做的就是适配!现在就来总结一下,不过这之前,…...

MySQL——主从复制
1.理解MySQL主从复制原理。 2.完成MySQL主从复制。 1.理解MySQL主从复制原理。 1)、MySQL支持的复制类型 (1)、基于语句( statement )的复制 在主服务器上执行SQL 语句,在从服务器上执行同样的语句。 My…...
报表下载工具
1.需求说明 我有一堆文件的Url地址, 现在需要按照企业,项目和报表类型分类下载到对应的文件夹中 2.相关实体类 企业文件夹定义 package com.vz.utils.report;import lombok.Data; import java.util.ArrayList; import java.util.List; import java.uti…...

树及其遍历
文章目录 树树定义专业术语树分类 二叉树分类存储连续存储(完全二叉树)链式存储一般树的存储森林的存储 线索二叉树哈夫曼树构造步骤 遍历先序遍历中序遍历后续遍历 链式二叉树遍历具体代码已知两种遍历序列求原始二叉树已知先序和中序求后序已知中序和后…...
Qt报错解决办法
anaconda环境安装qt报错解决办法 报错:thresholdGap: 20 pointsShape: 164142 qt.qpa.plugin: Could not find the Qt platform plugin “wayland” in “/home/tianhailong/anaconda3/envs/edge_algorithm/lib/python3.8/site-packages/cv2/qt/plugins” This app…...

Python(四十七)列表对象的创建
❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…...

#systemverilog# 说说Systemverilog中《automatic》那些事儿
前面我们学习了有关systemverilog语言中有关《static》的一些知识,同static 关系比较好的哥们,那就是 《automatic》。今天,我们了解认识一下。 在systemveriog中,存在三种并发执行语句,分别是fork..join,fork...join_any和fork..join_none,其中只有fork...join_none不…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...