1

统一的可观察性:指标、日志和跟踪

 2 years ago
source link: https://studygolang.com/articles/35844
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

统一的可观察性:指标、日志和跟踪

EASYOPS_youwei · 大约5小时之前 · 102 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览    

76130a86b5b4456088a253e782525d99~tplv-tt-shrink:640:0.image

19d37c5abd024424a21a7568a702dbe5~tplv-tt-shrink:640:0.image

1dd4b1203f8242fa801d7a821014550e~tplv-tt-shrink:640:0.image

作者/ Paul Parkinson

来源/翻译外网

01

数据驱动的微服务和可观察性

一般来说,现代应用程序开发和微服务架构的性质使可观察性(指标、日志和跟踪)成为 DevOps 的绝对关键要求。此外,可观察性工具越高效,用户和应用程序就越有效。目前,有许多不同的工具用于监控、跟踪和日志记录,使得跨工具的关联变得困难。此外,应用程序和数据库的可观察性目前是完全不同和独立的,本地和基于云的工具也是如此。

CNCF 提供了许多开放标准,例如 OpenTelemetry,也有相应的开放技术,例如 Prometheus、Jaeger 和 Grafana。这些标准和技术可以一起使用,以提供跨指标、日志和跟踪以及跨应用程序和数据库层的统一可观察性。

*注意,我不是在任何严格的拓扑含义中指代“层”,而是为了解释应用程序和数据库这两个方面的分离。话虽如此,在这篇博客的上下文中,我确实指的是基于 Kubernetes 的应用程序层。

下图是统一的可观测性架构图:

0c31ff76671a4336881568ee247db305~tplv-tt-shrink:640:0.image

*请注意,不排除使用 ELK(Elasticsearch、Logstash 和 Kibana)或 EFK(Elasticsearch、Fluentd 和 Kibana)堆栈,也不排除任何 Oracle 数据库产品,例如 Enterprise Manager、Trace File Analyzer、Application Performance Monitor等。每个都有其优点、缺点和用例。此处介绍的 PLG(Promtail、Loki、Grafana)是由 Grafana 推广的解决方案,该解决方案越来越受欢迎,因为它非常适合拥有系统的单一窗格视图的能力。

02

配置和代码示例尝试

统一可观测性数据库研讨会目前包含以下实验室。

设置和部署应用程序

  • 使用了Simplifying Data-driven Microservices Workshop中的“GrabDish”应用程序。

使用数据库指标、日志导出器启用可观察性

  • 一个简单的脚本在这里设置了您需要的所有内容,您可以参考该脚本了解详细信息。
  • 这将在下一版研讨会中通过使用可观察性控制器/操作员来取代和自动化。

配置警报通道

  • 简单展示了如何设置 Slack(或 Prometheus AlertManager 等)来接收警报。

可诊断性和调试用例

  • 系统故障显示在仪表板上并已修复的基本用例
  • 这将得到增强,以在下一个版本的研讨会中演示跨层的更复杂的调试场景。

性能监控用例

  • 负载测试导致性能下降触发警报的基本用例。
  • 这将得到增强,以便在下一个版本的研讨会中提供跨层的性能细节的更多细节。

更好地理解和修改指标、日志记录和跟踪

  • 有关如何在应用程序和数据库层中收集指标、日志记录和跟踪的基本详细信息,如何使用 OpenTracing Id 和 Oracle ECID 跨层进行跟踪等,包括源代码示例。
  • 更多细节和增强使用 OpenTelemetry 自动仪器等将包含在下一版本的研讨会中。

03

示例 Grafana 仪表板

示例仪表板基本上显示了象限中的微服务信息:

  • 运行在 Kubernetes 上的微服务的运行时指标,例如 CPU
  • 在 Kubernetes 上运行的微服务的特定于应用程序的指标,例如“PlaceOrder 计数”
  • 微服务数据库的运行时指标,例如连接会话
  • 微服务数据库的特定于应用程序的指标,例如“处于待处理状态的订单”
67aca72abeff45adbe55e7869363bcbf~tplv-tt-shrink:640:0.image

04

要跟踪的日志和跟踪到日志的日志

指标、日志和跟踪可以在 Grafana 中并排查看。用户可以在特定指标上向下钻取到相应的日志。用户还可以在日志上向下钻取到相应的跟踪,反之亦然。请注意以下日志输出中的“Jaeger”链接。Kubernetes 微服务日志和 Oracle 数据库日志都提供了这些日志到跟踪的相关性。

e28dbc5725d64858acf465df72dfe739~tplv-tt-shrink:640:0.image

下面的跟踪对应于上面的日志(通过提到的“Jaeger”链接访问)和可视化图形分析。同样,这一切都发生在同一个 Grafana 控制台中。

71694e60d010413cb994f5efba21ba11~tplv-tt-shrink:640:0.image

05

结论

我已经谈到了为现代应用程序开发和使用 Oracle 数据库的数据驱动微服务提供的统一可观察性解决方案的一些基础知识。我期待很快在这个系列中继续发布内容。我们正在该领域创建一些令人兴奋的新功能,以帮助开发人员和运营人员获得更简单、更有效、更愉快的可观察性体验。


有疑问加站长微信联系(非本文作者)

280

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK