可观测性(Observability)是指通过外部输出来理解系统内部状态的能力。在软件工程和系统管理领域,它涉及到收集、分析和理解系统生成的数据(如日志、度量和追踪信息),以帮助开发者和运维人员监控系统健康、诊断问题、优化性能和理解系统行为。
1. 可观测性
可观测性的三大支柱包括:
- 日志(Logs):记录系统运行时发生的具体事件或消息的文本记录。它们提供了发生了什么、何时发生以及相关上下文的详细信息。
- 度量(Metrics):以数值形式表示的系统的某种状态,通常随时间变化。度量可以是计数器、计量器、直方图等形式,用于监控系统的健康状况、性能指标以及资源使用情况。
- 追踪(Traces):记录请求在系统中的完整路径和处理过程。追踪显示了一个请求通过系统中不同组件的完整生命周期,帮助识别性能瓶颈和错误来源。
通过这三大支柱,可观测性使得团队能够从外部获得对系统内部工作机制的深入洞察,从而在没有直接访问或修改代码的情况下,有效地监控、调试和优化系统。
2. 相关产品和服务
2.1 日志(Logs)
* ELK Stack (Elasticsearch, Logstash, Kibana)
* Splunk
* Graylog
* Loki (Grafana Labs)
* Datadog Logs
* Sumo Logic
2.2 度量(Metrics)
* Prometheus
* Grafana
* InfluxDB
* Datadog Metrics
* Zabbix
* New Relic Metrics
* Open Falcon
* Amazon CloudWatch
2.3 跟踪(Traces)
* Jaeger
* Zipkin
* Tempo (Grafana Labs)
* Datadog APM
* New Relic Distributed Tracing
* Lightstep
* AWS X-Ray
* CAT
综合平台(集成上述三个方面):
- Datadog
- New Relic One
- Dynatrace
- Elastic Observability
- Splunk Observability Cloud
- SignalFx (Splunk)