IT系统可观测性

在这里插入图片描述

什么是可观测性

可观测性(Observability)是指能够从系统的外部输出推断出系统内部状态的能力。在IT和云计算领域,它涉及使用软件工具和实践来收集、关联和分析分布式应用程序以及运行这些应用程序的硬件和网络产生的性能数据流。这样做可以更高效地监控、诊断和调试应用程序和网络,满足客户体验期望、服务级别协议(SLA)和其他业务需求。

可观测性通常关注三种主要的遥测数据类型:

  1. 日志:记录应用程序事件的详细时间戳记。
  2. 指标:基本测量数据,如内存使用量或CPU容量。
  3. 跟踪:记录每个用户请求的端到端过程。

通过这些数据,团队可以更有效地监控现代系统,找到并解决问题的根本原因,从而提高系统性能。可观测性的实践对于云原生环境中的应用开发和运维尤为重要,因为它们支持快速迭代和动态部署的需求。

可观测性开源工具有哪些

可观测性的开源软件工具有很多,这里是一些例子:

  1. HoloInsight:蚂蚁集团开源的智能可观测平台,提供日志监控、业务指标监控和AIOps的前沿探索。
  2. Prometheus:一个开源监控解决方案,提供强大的指标、洞察力和警报。
  3. OpenTelemetry (OTel):一个供应商中立的开源可观察性框架,用于检测、生成、收集和导出遥测数据。
  4. Jaeger:一个开源的端到端分布式跟踪平台,帮助进行分布式事务监控和性能优化。
  5. Grafana:一个开放的监控和可观察性平台,可帮助可视化数据。
  6. ELK Stack:由Elasticsearch、Logstash和Kibana组成的强大的Kubernetes可观察性工具组合。
  7. Fluentd/Fluent Bit:一个开源项目,旨在将不兼容的日志记录格式和过程转换为统一的日志记录层。
  8. Kindling:一个基于eBPF的云原生可观测性开源工具,帮助用户理解应用从内核层到代码层的行为。
  9. OpenObserve:一个开源的云原生可观测性平台,显著降低运营成本,并提高了易用性。

这些工具可以帮助团队更有效地监控和管理系统,提高可观测性和故障排查的能力。选择哪个工具取决于具体的需求和环境。你可以访问它们的官方文档或社区,了解更多关于安装和使用的信息。

全新的可观测开源组件grafana agent

Grafana Agent 是一个灵活、高性能的遥测数据收集器,它与多个生态系统兼容,如 Prometheus 和 OpenTelemetry。它的主要功能包括:

  • 收集数据:可以收集指标、日志、追踪和连续性分析数据。
  • 数据转换:能够对收集的数据进行处理和转换。
  • 数据发送:将处理后的数据发送到 Prometheus 生态系统、OpenTelemetry 生态系统以及 Grafana 开源生态系统(如 Loki、Grafana、Tempo、Mimir、Pyroscope)。
  • 编程观测性管道:通过组件连接,形成可编程的观测性管道,用于遥测数据的收集、处理和传递。
  • 灵活性和性能:设计上注重灵活性和性能,支持在多种平台上部署,包括 Linux、Windows 和 macOS。

Grafana Agent 提供了多种运行模式,包括静态模式、Kubernetes 操作员模式和流模式,每种模式都有其特定的功能和使用场景。此外,Grafana Agent 还支持与 Grafana Cloud 的集成,提供官方的供应商支持和云集成选项²。它是一个“电池包含”的解决方案,意味着它预装了与多个系统(如 MySQL、Kubernetes 和 Apache)集成的功能,可以立即提供有用的遥测数据。

与grafana agent集成的服务

Grafana Agent 通常与多种服务集成,以便收集和发送遥测数据。这些服务包括但不限于:

  • Apache HTTP: 收集Apache服务器的性能指标。
  • Node Exporter: 从Unix系统收集硬件和操作系统指标。
  • Process Exporter: 监控系统进程的资源使用情况。
  • MySQLD Exporter: 从MySQL服务器收集数据库性能指标。
  • Redis Exporter: 从Redis实例收集性能指标。
  • Elasticsearch Exporter: 从Elasticsearch集群收集性能指标。
  • Memcached Exporter: 从Memcached服务器收集性能指标。
  • MSSQL: 从Microsoft SQL Server收集数据库性能指标。
  • Postgres Exporter: 从PostgreSQL数据库收集性能指标。
  • SNMP Exporter: 通过简单网络管理协议收集网络设备的指标。
  • Consul Exporter: 从Consul服务网格收集服务发现和配置数据。
  • Windows Exporter: 从Windows系统收集性能指标。
  • Kafka Exporter: 从Apache Kafka集群收集性能指标。
  • MongoDB Exporter: 从MongoDB数据库收集性能指标。
  • CloudWatch Exporter: 从Amazon CloudWatch收集云资源的指标。
  • Azure Exporter: 从Microsoft Azure收集云资源的指标。
  • GCP Exporter: 从Google Cloud Platform收集云资源的指标。

Grafana Agent 的具体角色和任务包括:

  • 收集: 从集成的服务中收集遥测数据,如指标、日志、追踪和性能剖析数据。
  • 转换: 处理和转换收集到的数据,以便它们可以被后端系统理解和存储。
  • 发送: 将处理后的数据发送到不同的目的地,如Prometheus、OpenTelemetry和Grafana开源生态系统(例如Loki、Grafana、Tempo、Mimir、Pyroscope)。
  • 配置: 提供灵活的配置选项,允许用户根据自己的需求定制数据收集和处理的行为。
  • 扩展: 支持通过插件和集成来扩展功能,以便与更多的服务和应用程序集成。

Grafana Agent 的设计旨在灵活、高效,并且与多种生态系统兼容,使其成为一个功能丰富、性能优异、不受供应商限制的遥测数据收集器。它可以部署在任何数量的机器上,收集数百万个活跃序列和TB级别的日志,是一款经过实战测试的工具。

grafana agent和tempo分工

grafana tempo
Grafana Agent 和 Grafana Tempo 是 Grafana 生态系统中的两个不同组件,它们在追踪数据的处理和管理方面有不同的职责:

Grafana Agent:

  • 它是一个轻量级的遥测数据收集器,专门设计用于收集指标、日志和追踪数据。
  • Grafana Agent 可以配置为接收来自多种系统的追踪数据,例如 Jaeger、Kafka、OpenCensus、OTLP 和 Zipkin。
  • 它使用与 Prometheus 相同的经过实战检验的代码,并且可以节省内存使用。
  • Grafana Agent 支持将收集到的追踪数据发送到不同的后端,包括 Grafana Tempo。

Grafana Tempo:

  • Tempo 是一个易于操作、高规模且成本效益高的分布式追踪系统。
  • 它只需要对象存储来运行,并且与 Grafana、Mimir、Prometheus 和 Loki 深度集成。
  • Tempo 用于存储和查询追踪数据,支持开源追踪协议,如 Jaeger、Zipkin 或 OpenTelemetry。

简而言之,Grafana Agent 主要负责收集和转发追踪数据,而 Grafana Tempo 则专注于追踪数据的存储和查询。Agent 可以将数据发送到 Tempo,但 Tempo 负责管理这些数据的长期存储和检索。
在这里插入图片描述
在这里插入图片描述

其他开源追踪工具

Jaeger

Jaeger 是一个开源的分布式追踪系统,它主要用于监控和故障排除微服务架构中的事务。Jaeger 可以帮助开发者理解服务之间的请求流程,找出性能瓶颈,以及优化系统的可靠性。它通过图形化的方式展示服务调用的轨迹,使得开发者能够快速定位问题所在。

Jaeger 的主要特点包括:

  • 分布式上下文传播:追踪请求在不同服务之间的流转。
  • 事务监控:记录事务的详细信息,包括调用时间和结果。
  • 性能分析:分析每个服务的响应时间,识别性能瓶颈。
  • 错误分析:记录错误信息,帮助快速定位故障原因。
  • 服务依赖分析:展示服务之间的依赖关系,帮助理解系统架构。

Jaeger 支持多种数据收集和存储方式,兼容 OpenTracing API,适用于各种规模的微服务系统。它是云原生计算基金会(CNCF)的一部分,由 Uber 开源,并得到了广泛的社区支持和贡献。Jaeger 的设计目标是提供一个易于使用、可扩展的追踪系统,以适应现代软件应用的需求。

Zipkin

Zipkin 是一个开源的分布式追踪系统,它帮助收集服务架构中的定时数据,以解决延迟问题。Zipkin 的特点包括数据的收集和查询,它允许你通过跟踪 ID 直接跳转到特定的追踪信息,或者基于服务、操作名称、标签和持续时间等属性进行查询。

主要功能包括:

  • 数据收集:收集微服务架构中的请求和事件数据。
  • 数据查找:通过跟踪 ID 或其他条件查询追踪数据。
  • 性能分析:分析服务调用的时间,识别延迟问题。
  • 错误分析:汇总错误信息,帮助定位问题。
  • 依赖关系图:展示服务之间的调用关系和请求流量。

Zipkin 支持多种数据上报方式,如 HTTP 或 Kafka,并且可以与多种后端存储系统集成,例如 Apache Cassandra 或 Elasticsearch。它通常需要与应用程序进行“instrumentation”配置,以报告追踪数据到 Zipkin。这使得 Zipkin 成为微服务架构中识别性能问题的重要工具。

关于eBPF非侵入式监控

开源eBPF工具有很多,它们提供了不同的功能来帮助进行系统性能分析、监控和安全。以下是一些流行的开源eBPF工具:

  • Tracee: 用于实时监控系统调用和其他系统事件的轻量级追踪工具。
  • bpftrace: 高级追踪工具和语言,用于采集内核和程序运行信息并展示。
  • Falco: 用于检测异常活动的开源系统行为监控程序。
  • Cilium: 提供网络连接和应用程序工作负载之间的负载平衡和透明保护。
  • Katran: Facebook开源的高性能第4层负载均衡器。
  • Elkeid: 字节跳动开源的内核事件捕获工具。
  • kubectl-trace: kubectl插件,帮助用户在Kubernetes集群中安排执行BPF程序。
  • Kindling: 基于eBPF的云原生可观测性开源项目,帮助用户理解应用程序行为。

这些工具利用eBPF技术在内核级别进行数据捕获和分析,而不需要修改应用程序代码,从而实现了对应用程序性能的深入洞察,同时保持了系统的稳定性和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467325.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT----基于QT的人脸考勤系统

目录 1 编译opencv库1.1 下载源代码1.2 qt编译opencv1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat 2 编译SeetaFace2代码2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has2.2遇到报错Model missing 3 测试…

Git——GitHub远端协作详解

目录 Git&GitHub1、将内容Push到GitHub上1.1、在GitHub上创建新项目1.2、upstream1.3、如果不想要相同的分支名称 2、Pull下载更新2.1、Fetch指令2.2、Fetch原理2.3、Pull指令2.4、PullRebase 3、为什么有时候推不上去3.1、问题复现3.2、解决方案一:先拉再推3.3…

kerberos验证协议安装配置使用

一、kerberos是什么 Kerberos 是一个网络身份验证协议,用于在计算机网络中进行身份验证和授权。它提供了一种安全的方式,允许用户在不安全的网络上进行身份验证,并获取访问网络资源的权限。 二、安装配置kerberos服务端 1、安装kerberos #检…

行尾检测论文汇总

文章目录 2023GNSS-Free End-of-Row Detection and Headland Maneuvering for Orchard Navigation Using a Depth Camera 2023 GNSS-Free End-of-Row Detection and Headland Maneuvering for Orchard Navigation Using a Depth Camera 摘要: 果园中基于GPS的导航…

Vue3学习日记 Day1

一、简介 1、简介 Vue3是新的默认版本,拥有更快的速度,更好的语法 二、使用create-vue搭建Vue3项目 1、创建项目 1、介绍 create-vue是Vue官方新的脚手架工具,底层切换为了vite,为开发提供极速响应 2、使用 2.1、确定环境条件 2…

共谋企业出海新篇章纷享销客荣获数字中国企业峰会“卓越成果奖”

3月9日,2024数字中国企业峰会在杭州西湖中维香溢大酒店成功举办,众多数字化领域专家、知名企业 CIO 代表到场。峰会旨在推动数字化转型与创新发展,为企业出海和国际合作搭建交流与合作的平台。本次峰会的颁奖环节,纷享销客凭借其卓…

阿里云服务器centos安装msf教程

msf官方命令行一键安装 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall 稍微等待几分钟即可安装成功&am…

Django生命周期

Django请求的生命周期是指:当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情。 一、生命周期流程图 首先,用户在浏览器中输入url,发送一个GET/POST方法的request请求。Django中封装了socket的WSGi服务器,监听端口接受这个request 请求再进行初…

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换

文章作者:ajun 随着文档处理需求的增加,格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性,将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件,提供了这样的转换功…

主键约束

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 主键约束可以看成是非空约束再加上唯一约束 也就是说设置为主键列,不能为空,不能重复 像一般用户编号是不可能重复的,也不可能为空的 …

07|链(下):想学“育花”还是“插花”用RouterChain确定客户意图

任务设定 鲜花养护(保持花的健康、如何浇水、施肥等)鲜花装饰(如何搭配花、如何装饰场地等) 如果接到的是第一类问题,你要给ChatBot A指示;如果接到第二类的问题,你要给ChatBot B指示。 整体…

U盘变身“本地磁盘”?数据恢复与防范策略大揭秘

一、突发状况:U盘秒变“本地磁盘” 在日常工作生活中,U盘凭借其便携性和大容量,成为我们存储和传输数据的重要工具。然而,有时我们会遇到这样一个棘手的问题:原本应显示为可移动磁盘的U盘,在插入电脑后却突…

Linux之shell变量

华子目录 什么是变量?变量的名称示例 变量的类型变量的定义示例 自定义变量查看变量(自定义变量和全局变量) 环境变量定义环境变量(全局变量)法一法二法三env,printenv,export注意 C语言与shell…

苹果谷歌,要联手反攻了

一则消息,让苹果、谷歌的夜盘股价一度分别暴拉1.5、3.5%,谷歌盘前甚至飙升超过5.5%,引发市场一阵轰动。 据知情人士透露,苹果公司正在谈判将谷歌的Gemini人工智能引擎植入iPhone,希望获得Gemini的授权,为今…

蓝桥杯练习题——贡献法(隔板法)

1.孤独的照片 思路 孤独的区间一定有一头孤独的牛&#xff0c;考虑每头牛对区间的贡献是多少 #include<iostream> using namespace std; const int N 5e5 10; int n; string s;int main(){cin>>n>>s;long long res 0;for(int i 0; i < n; i){int l…

吴恩达深度学习环境本地化构建wsl+docker+tensorflow+cuda

Tensorflow2 on wsl using cuda 动机环境选择安装步骤1. WSL安装2. docker安装2.1 配置Docker Desktop2.2 WSL上的docker使用2.3 Docker Destop的登陆2.4 测试一下 3. 在WSL上安装CUDA3.1 Software list needed3.2 [CUDA Support for WSL 2](https://docs.nvidia.com/cuda/wsl-…

聊聊AI时代学习这件事本身应该发生什么样的变化

随着 AI 大模型 的爆发&#xff0c;我们身处这个时代&#xff0c;应该怎么样去学习去了解这些前言的技术&#xff1f;可能很多人会说我英文不好&#xff0c;我算法不行&#xff0c;无法深入去了解 AI 大模型相关的知识吧&#xff1f; 没关系&#xff0c;其实博主也跟大家一样&…

代码随想录算法训练营第二十五天|216.组合总和III,17.电话号码的字母组合

216.组合总和III 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 示例 2: 输入…

品牌如何加强社交属性?媒介盒子支招

人类天然具备社交属性&#xff0c;基于这种社交属性&#xff0c;会形成人与人之间的连接性&#xff0c;而社交网络的出现加剧了社交属性的爆发。社交增长营销&#xff0c;就是以大众用户天然的社交属性为核心&#xff0c;让品牌更具话题&#xff0c;实现可持续增长。那么品牌如…

SpringCloud详解,图文码笔记

注意&#xff1a; SpringCloud并 不等于 微服务 1.微服务技术线 2.认识微服务 分布式架构 分布式架构: 根据业务功能对系统进行拆分&#xff0c;每个业务模块作为独立项目开发&#xff0c;称为一个服务。 优点&#xff1a; 降低服务耦合有利于服务升级拓展 服务治理 分布式…