HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
随笔
关于作者
  • 《从0到1学习Java多线程》

  • 《从0到1搭建服务器》

  • 可观测和监控

    • 可观测是什么
    • 指标
    • 链路
    • 日志
    • Zabbix vs Prometheus
    • 基于Micrometer的Prometheus指标生成
    • OpenTelemetry
    • Opentelemetry Collector
    • Opentelemetry尾采样
    • 基于Opentelemetry的filelog插件收集日志
    • Python接入Opentelemetry
    • 基于javaagent探针自动埋点
    • 可观测系统在Flyme落地
  • 玩转IDEA

  • 03-RPC

  • 04-Spring源码

  • 05-《Java日志框架》

  • 专栏
  • 可观测和监控
#可观测是
码农阿雨
2025-09-05
目录

可观测是什么

# 1、可观测是什么

What is Observability? Observability lets us understand a system from the outside, by letting us ask questions about that system without knowing its inner workings. Furthermore, it allows us to easily troubleshoot and handle novel problems (i.e. “unknown unknowns”), and helps us answer the question, “Why is this happening?”

In order to be able to ask those questions of a system, the application must be properly instrumented. That is, the application code must emit signals such as traces, metrics, and logs. An application is properly instrumented when developers don’t need to add more instrumentation to troubleshoot an issue, because they have all of the information they need.

可观察性让我们能够在不了解系统内部运作的情况下提出有关系统的问题,从而从外部了解系统。此外,它使我们能够轻松地排除故障并处理新问题(即“未知的未知”),并帮助我们回答“为什么会发生这种情况?”的问题。

为了能够询问系统的这些问题,必须对应用程序进行适当的检测。也就是说,应用程序代码必须发出 跟踪、 指标和 日志等 信号。当开发人员不需要添加更多工具来解决问题时,应用程序就得到了正确的工具,因为他们拥有所需的所有信息。

以上引用自 OpenTelemetry 对此的解释。

简单来说,

可观测性被定义为根据系统产生的输出数据来衡量当前系统运行状态的能力,包括以下三种:

  • 指标 metrics
  • 链路 traces
  • 日志 logs

我们整个专栏都是围绕这三种遥测数据类型做展开。

# 2、流行的可观测工具

云服务:

  • 阿里云ARMS

开源的:

  • opentelemetry
  • micrometer
  • prometheus ,指标
  • skywalking ,一站式指标、链路、日志 、告警
  • zipkin ,链路追踪服务

# 3、结尾

可能有人会有疑问 “我的服务qps非常小,有必要使用可观测吗? ”

  • 举个例子:

大量用户在 16:19:00 左右反馈 网站无法登录。

做为开发,问题反馈到你这里,你是不是第一时间就登入服务器查看日志,然后开始排查?如果你的服务部署超过十几台机器,如果你的服务依赖了很多第三方调用服务,这该如何定位呢?如果有预警通知,是否在用户发现问题前,程序员就已经提前发现并处理完毕了呢?

可观测性不是"流量大了才需要"的奢侈品,而是"越早建设收益越大"的基础设施。就像汽车仪表盘——无论车速快慢,了解引擎状态都是安全驾驶的基本需求。

对小服务来说,适度的可观测投入能显著提高运维效率,并为未来发展奠定良好基础。

简单来说,可观测 就是一个 通过收集服务的信息(指标、链路、日志),通过可视化形成仪表,配置告警阈值,无论是开发还是运维,即可快速观测服务的稳定性。

就像汽车的仪表盘,通过传感器上报 速度、胎压、制冷液温度、油量 等等(指标),形成一个大仪表盘,当达到某个阈值后,例如油量不足,即可在仪表盘提示你,像一些新能源车,电量不足或者未锁车还可以短信通知你 (告警)

甚至发生故障时,例如 发动机皮带撕裂发出沙哑声音,甚至可以通过车辆的构造,如 :油门——发动机——皮带——齿轮——传动轴——轮胎 最后发现是发动机第1条皮带内侧磨损**(链路)**,即可知晓整辆车的健康值。

还可以记录某时某刻车辆的运行信息,如故障时可以查看当前的 行驶信息、操作记录 等等**(日志)**

我们的程序也应如此。

接下来我将详细说明 指标 、链路、日志。

阅读全文
×

(为防止恶意爬虫)
扫码或搜索:HelloCoder
发送:290992
即可永久解锁本站全部文章

解锁
#可观测是
上次更新: 2025-09-05 07:09:03
最近更新
01
阿里面试题(答案)
09-05
02
《LeetCode 101》
09-05
03
《LeetCode CookBook》
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 码农阿雨
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式