系统的可观察性是系统设计的重要一环。不可观察的系统无法度量、无法监控、无法改进。
日志、追踪和度量是系统可观测性的三大支柱。
下图显示了它们的定义和典型架构。
1、日志记录(Logging)
日志记录系统中的离散事件。例如,我们可以将收到的请求或对数据库的访问记录为事件,它的工作量最大。
通常使用 ELK(Elastic-Logstash-Kibana)栈来构建日志分析平台。
我们通常会定义一种标准化的日志格式,供不同的团队实施,以便在搜索海量日志时利用关键字。
2、追踪(Tracing)
追踪通常以请求为范围。例如,用户请求会经过 API 网关、负载均衡、服务 A、服务 B 和数据库,这些都可以在追踪系统中可视化。
这在我们试图找出系统瓶颈时非常有用。
我们使用 OpenTelemetry 展示典型的架构,它将 3 个支柱统一在一个框架中。
3、指标(Metrics)
度量指标通常是系统中可汇总的信息。
例如,服务 QPS、API 响应速度、服务延迟等。
原始数据记录在 InfluxDB 等时间序列数据库中。
Prometheus 根据预定义的警报规则提取数据并转换数据,然后将数据发送到 Grafana 以供显示,或发送到报警管理服务,由其发送电子邮件、短信或 Slack 通知或警报。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END