链路跟踪示例
Github Source: https://github.com/gogf/examples/tree/main/observability/trace
介绍
本分类包含了一些在 GoFrame 框架中链路跟踪相关的示例代码。这些示例展示了如何在不同场景下使用 GoFrame 的链路跟踪功能。
注意事项
- 示例代码主要用于演示目的
- 生产环境使用时需要根据实际需求进行调整
示例列表
📄️ gRPC带数据库
演示在GoFrame中使用OpenTelemetry实现gRPC服务与数据库操作的全面分布式跟踪。本示例展示了从gRPC调用到数据库查询的端到端trace埋点、自动gRPC方法和数据库操作跟踪、RPC通信中的trace上下文传播、服务调用与数据库操作之间的span关系、与tracing集成的服务发现、以及分布式系统的性能监控。主要功能包括:全栈gRPC trace可见性、自动数据库查询埋点、服务网格可观测性、分布式事务跟踪、跨服务trace关联、生产级模式。非常适合监控微服务架构性能、调试分布式gRPC系统、优化数据库查询性能、确保服务网格环境的可观测性、以及构建企业级监控解决方案。通过本示例可以学习如何实现gRPC全链路跟踪、分布式系统性能优化、以及构建高可观测的微服务架构。
📄️ HTTP服务
演示在GoFrame中使用OpenTelemetry集成实现HTTP服务的全面分布式链路跟踪。本示例展示了带有自动埋点的HTTP请求和响应跟踪、跨服务边界的trace上下文传播、span创建和属性管理、向OpenTelemetry收集器导出trace数据、与GoFrame HTTP服务器中间件集成、以及分布式trace的可视化。主要功能包括:自动HTTP trace埋点、上下文传播头、自定义span属性、父子span关系、trace采样配置、生产级可观测性模式。非常适合在微服务中实现分布式跟踪、监控HTTP服务性能、调试请求流程、确保云原生应用的可观测性、以及构建生产监控系统。通过本示例可以学习如何在HTTP服务中实现分布式跟踪、OpenTelemetry的最佳实践、以及构建可观测的微服务架构。
📄️ HTTP带数据库
演示在GoFrame中使用OpenTelemetry实现HTTP服务与数据库操作的全面分布式跟踪。本示例展示了从HTTP请求到数据库查询的端到端trace埋点、包括MySQL和Redis操作的自动数据库操作跟踪、贯穿整个请求生命周期的trace上下文传播、HTTP处理器与数据库调用之间的span关系、数据库查询的性能监控、以及与GoFrame的ORM和缓存组件集成。主要功能包括:全栈trace可见性、自动数据库查询埋点、慢查询检测、连接池监控、缓存操作跟踪、生产级可观测性。非常适合监控全栈应用性能、调试数据库相关问题、优化查询性能、确保数据驱动应用的端到端可观测性、以及构建全面的监控解决方案。通过本示例可以学习如何实现全链路跟踪、数据库性能优化、以及构建高性能可观测的数据应用。
📄️ 进程内服务 (HTTP导出器)
演示在单进程应用中使用GoFrame和基于HTTP的OpenTelemetry导出器实现分布式跟踪以简化可观测性。本示例展示了使用HTTP OTLP导出器配置的进程内函数调用跟踪、内部操作的span创建和管理、单进程内的trace上下文传播、基于HTTP的trace数据导出到OpenTelemetry收集器、嵌套函数调用的父子span关系、以及无需gRPC依赖的简化部署。主要功能包括:轻量级HTTP导出器设置、自动span埋点、内存trace上下文、防火墙友好的HTTP导出、开发友好的配置、生产级模式。非常适合单体应用可观测性、开发和测试环境、简化trace数据导出、仅支持HTTP基础设施的应用、以及学习分布式跟踪概念。通过本示例可以学习如何实现进程内跟踪、简化的可观测性方案、以及轻量级监控部署。
📄️ 进程内服务 (gRPC导出器)
演示在单进程应用中使用GoFrame和高性能gRPC基础的OpenTelemetry导出器实现分布式跟踪。本示例展示了使用gRPC OTLP导出器配置的进程内函数调用跟踪、内部操作的span创建和管理、单进程内的trace上下文传播、高效的基于gRPC的trace数据导出到OpenTelemetry收集器、嵌套函数调用的父子span关系、以及高吞吐量trace数据传输。主要功能包括:高性能gRPC导出器设置、自动span埋点、流式trace导出、高效二进制序列化、生产级性能、企业级模式。非常适合大量trace数据生成、性能关键应用、生产监控系统、需要高效trace导出的应用、以及构建可扩展的可观测性解决方案。通过本示例可以学习如何实现高性能链路跟踪、gRPC导出器的最佳实践、以及构建企业级监控系统。
📄️ 多进程示例
演示使用GoFrame的进程管理方式(包括gcmd和gproc)实现跨多个进程的全面分布式跟踪。本示例展示了进程间的trace上下文传播、带有跟踪的进程生成和生命周期管理、跨进程边界的分布式span关系、多进程架构中的trace关联、带有跟踪支持的不同进程通信模式、以及与GoFrame命令和进程组件的集成。主要功能包括:多进程trace可见性、进程间自动上下文传播、父子进程span关系、进程隔离下trace连续性、生产级多进程模式、企业架构支持。非常适合构建带有可观测性的多进程应用、实现分布式任务处理、监控守护进程和工作进程、确保复杂进程拓扑中的trace连续性、以及创建带有全面跟踪的可扩展多进程系统。通过本示例可以学习多进程链路跟踪、进程间通信与trace传播、以及构建复杂的分布式系统监控。
📄️ OpenTelemetry示例
演示在GoFrame中使用OTLP协议通过gRPC和HTTP导出器实现全面的OpenTelemetry链路跟踪数据导出方法。本示例展示了用于trace导出的OTLP(OpenTelemetry协议)配置、gRPC和HTTP导出器的设置与比较、trace数据的序列化和传输、连接管理和重试逻辑、批处理和性能优化、以及与OpenTelemetry收集器的集成。主要功能包括:灵活的导出器配置、高效的trace数据传输、自动批处理和压缩、错误处理和重试机制、生产级导出模式、协议选择指导。非常适合实现生产trace导出、选择合适的导出协议、优化trace数据传输、确保可靠的trace交付、以及构建符合OpenTelemetry标准的企业级可观测性基础设施。通过本示例可以学习OTLP协议的使用、导出器选型、以及构建高效的trace数据导出系统。
📄️ OpenTelemetry Provider
演示在GoFrame中配置包括gRPC和HTTP导出器的全面OpenTelemetry链路跟踪provider配置和不同设置模式。本示例展示了trace provider的初始化和配置、用于服务识别的资源属性管理、采样策略配置和选择、基于gRPC和HTTP的导出器设置与比较、用于批处理和简单处理的span处理器配置、以及provider生命周期管理。主要功能包括:灵活的provider配置模式、资源语义约定、多种采样策略(总是、从不、基于父级、基于比例)、导出器协议选择指导、生产级provider设置、企业部署模式。非常适合理解OpenTelemetry provider架构、配置生产trace管道、选择合适的导出器和采样器、优化trace收集性能、以及构建带有适当provider配置的可扩展可观测性基础设施。通过本示例可以学习OpenTelemetry provider的最佳实践、导出器和采样器选型、以及构建企业级链路跟踪系统。