我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
日志记录、跟踪和指标是系统可观察性的三大支柱。 下图显示了它们的定义和典型架构。
日志记录系统中的离散事件。例如,我们可以将传入请求或对数据库的访问记录为事件。它的音量最高。 ELK(Elastic-Logstash-Kibana)堆栈常用于构建日志分析平台。我们经常定义标准化的日志格式供不同团队实施,以便我们在海量日志中搜索时可以利用关键字。
跟踪通常是请求范围的。例如,用户请求经过API网关、负载均衡器、服务A、服务B和数据库,这些都可以在跟踪系统中可视化。当我们尝试识别系统中的瓶颈时,这非常有用。我们使用 OpenTelemetry 来展示典型的架构,它将 3 个支柱统一在一个框架中。
指标通常是来自系统的可聚合信息。例如,服务QPS、API响应能力、服务延迟等。原始数据记录在InfluxDB等时序数据库中。 Prometheus 提取数据并根据预定义的警报规则转换数据。然后,数据被发送到 Grafana 进行显示或发送到警报管理器,然后警报管理器发送电子邮件、短信或 Slack 通知或警报。