监控和可观察性在 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不…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
