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技术在内核级别进行数据捕获和分析,而不需要修改应用程序代码,从而实现了对应用程序性能的深入洞察,同时保持了系统的稳定性和安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

心灵治愈交流平台|基于springboot框架+ Mysql+Java+B/S结构的心灵治愈交流平台设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 用户功能模块 心理咨询师功能 系统功能设计 数据库…

蓝桥杯前端Web赛道-输入搜索联想

蓝桥杯前端Web赛道-输入搜索联想 题目链接:1.输入搜索联想 - 蓝桥云课 (lanqiao.cn) 题目要求: 题目中还包含effect.gif 更详细的说明了需求 那么观察这道题需要做两件事情 把表头的每一个字母进行大写进行模糊查询 这里我们会用到几个js函数&#…

洛谷 P1378 油滴扩展

本道题可以理解成一个平面直角坐标系,在坐标系上标出整个矩形和油滴的坐标,计算两个油滴的面积和直径,判断点是否在圆内(点与圆的位置关系),利用使用坐标求两点间距离的公式取解。 代码如下: …

面试 Java 并发编程八股文十问十答第十期

面试 Java 并发编程八股文十问十答第十期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)Executors和ThreaP…

Java Web项目—餐饮管理系统Day09-用户端开发(二)

文章目录 1. 地址簿管理1-1. 新增地址1-2 查询当前用户的地址簿1-3. 更新默认地址1-4. 获取默认地址1-5. 修改地址 2. 订单管理2-1. 表结构2-2 提交订单 本章节主要完成地址簿的管理以及订单管理, 同时完善系统的部分细节, Reggie TakeAway 系统篇章基础篇告一段落. 1. 地址簿管…

重要JVM参数和监控指令、工具

一、重要JVM参数 堆内存相关 1.显式指定堆内存–Xms和-Xmx -Xms<heap size>[unit] -Xmx<heap size>[unit] //如果我们要为 JVM 分配最小 2 GB 和最大 5 GB 的堆内存大小 -Xms2G -Xmx5G2.显式新生代内存(Young Generation) -XX:NewSize<young size>[unit]…

SpringBoot异常:类文件具有错误的版本 61.0, 应为 52.0的解决办法

问题&#xff1a; java: 无法访问org.mybatis.spring.annotation.MapperScan 错误的类文件: /D:/Program Files/apache-maven-3.6.0/repository/org/mybatis/mybatis-spring/3.0.3/mybatis-spring-3.0.3.jar!/org/mybatis/spring/annotation/MapperScan.class 类文件具有错误的…

实体门店加盟全解析:如何选择加盟项目与避免风险

对于想要开实体店或创业的人来说&#xff0c;拥有一个全面的运营方案是成功的关键。作为一名开鲜奶吧5年的创业者&#xff0c;我将为大家详细分享从选址到日常管理的实体店运营要点&#xff0c;帮助创业者少走弯路。 一、选择加盟项目 1.行业前景&#xff1a;选择一个有发展前…

Flutter第五弹:Flutter布局

目标&#xff1a; 1&#xff09;Flutter常用的布局容器小组件有哪些&#xff1f; 2&#xff09;Flutter列表组件的小例子。 一、Flutter常用的容器组件 1.1 Container组件 Container 部件有许多可用的属性&#xff0c;以下是一些常用的属性&#xff1a; 属性说明alignmen…

【华为OD机试】小明找位置【C卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。 算法复杂度要求不高于 nLog(n);学号为整数类型,队列规模<=10000; 输入描述 1…

java15~17 密封类

密封类是java15第一次预览&#xff0c;java17正式确定。Java15的密封类是一种确定了子类的类。这个改变是巨大的&#xff0c;以往的Java版本根本无法确定到底有哪些子类。而在java15中&#xff0c;如果定义了一个类为密封类就可以确定有哪些直接子类了。如下面的例子&#xff1…

Vue2(五):收集表单数据、过滤器、自定义指令、Vue的生命周期

一、收集表单数据 爱好&#xff1a;学习<input type"checkbox" value"study" v-model"hobby">打游戏<input type"checkbox" value"games" v-model"hobby">吃饭<input type"checkbox" v…

独立维基和验收测试框架 Fitnesse 入门介绍

拓展阅读 junit5 系列教程 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。压测测试报告生成。) Fitnesse 完全集成的独立维基和验收测试…

大数据开发--01.初步认识了解

一.环境准备 1.使用虚拟机构建至少三台linux服务器 2.使用公有云来部署服务器 二.大数据相关概念 大数据是指处理和分析大规模数据集的一系列技术、工具和方法。这些数据集通常涉及海量的数据&#xff0c;包括结构化数据&#xff08;如关系型数据库中的表格&#xff09;以及…

美联社报道波场与亚马逊云计算重磅合作 称符合其去中心化使命

近日,波场TRON宣布已集成亚马逊云计算服务(AWS),引发美联社、金融时报、费加罗报等多家海外主流媒体高度关注。报道表示,此次集成旨在利用AWS 强大的云计算资源,降低用户和开发者参与波场网络的准入门槛,打造更加去中心化、更强大的区块链生态系统。 报道内容显示,通过此次合作…

基于spring boot的民宿预约管理系统的设计与实现

目录 摘要 I Abstract II 一、绪论 1 &#xff08;一&#xff09;研究背景 1 &#xff08;二&#xff09;社会调查 1 &#xff08;三&#xff09;研究意义 2 &#xff08;四&#xff09;研究内容 2 二、关键技术介绍 3 &#xff08;一&#xff09;Spring Boot框架 3 &#xff…

GESP2024年3月C++语言三级答案(均为自己的想法,C++没学太多,有不对的地方欢迎指正)

选择题&#xff08;每题2分&#xff0c;共30分&#xff09; 第 1 题 整数-5的16位补码表示是(D)。 A. 1005 B. 1006 C. FFFA D. FFFB 解析&#xff1a;0是FFFF&#xff0c;用0-5&#xff08;即FFFF-5&#xff09;得到是FFFB。 第 2 题 如果16位短整数-2的二进制是“FFFE”&…

蓝桥杯-带分数

法一 /* 再每一个a里去找c,他们共用一个st数组,可以解决重复出现数字 通过ac确定b,b不能出现<0 b出现的数不能和ac重复*/import java.util.Scanner;public class Main {static int n,res;static boolean[] st new boolean[15];static boolean[] backup new boolean[15];…

YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;用于微小目标检测的上下文增强和特征细化网络ContextAggregation&#xff0c;助力小目标检测 yolov9-c-ContextAggregation summary: 971 layers, 51002153 parameters, 51002121 gradients, 238.9 GFLOPs 改…

springboot277流浪动物管理系统

流浪动物管理系统设计与实现 摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对流…