We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
最近在集成OpenTelemetry到使用gin的项目中,使用otelgin与otelgorm进行 Trace链路追踪(详情请见paopao-ce),集成过程中遇到一些问题,比如使用go-mir生成的代码默认是不带Engine Context或 HTTP Request Context,而otelgin是使用 HTTP Request Context来透传OpenTelemetry相关上下文的,如果需要将从HTTP Request 到DB数据库之间的链路串连在一起,就需要显示的Context来透传链路的上下文信息,也就是需要显示获取最原始请求的HTTP Request Context。目前go-mir支持代码生成的接口显示带有Engine Context,比如Gin的*gin.Context,只需要在接口定义处添加Context原语,一般HTTP Request Context可以从Engine Context中获取。还有一种获取HTTP Request Context的方法就是在请求参数Bind的时候获取,比如在默认的Bind函数中获取HTTP Request Context后赋值给接口的请求参数。以上两种方法都能满足需求,但都是采用了取巧的法子来完成,本提按提供一种直接在生成代码的接口方法中直接带上HTTP Request Context来满足需求。
Context
otelgin
*gin.Context
UseRequestContext
The text was updated successfully, but these errors were encountered:
alimy
No branches or pull requests
源由:
最近在集成OpenTelemetry到使用gin的项目中,使用otelgin与otelgorm进行 Trace链路追踪(详情请见paopao-ce),集成过程中遇到一些问题,比如使用go-mir生成的代码默认是不带Engine
Context
或 HTTP RequestContext
,而otelgin
是使用 HTTP RequestContext
来透传OpenTelemetry相关上下文的,如果需要将从HTTP Request 到DB数据库之间的链路串连在一起,就需要显示的Context
来透传链路的上下文信息,也就是需要显示获取最原始请求的HTTP RequestContext
。目前go-mir支持代码生成的接口显示带有EngineContext
,比如Gin的*gin.Context
,只需要在接口定义处添加Context
原语,一般HTTP RequestContext
可以从EngineContext
中获取。还有一种获取HTTP RequestContext
的方法就是在请求参数Bind的时候获取,比如在默认的Bind函数中获取HTTP RequestContext
后赋值给接口的请求参数。以上两种方法都能满足需求,但都是采用了取巧的法子来完成,本提按提供一种直接在生成代码的接口方法中直接带上HTTP RequestContext
来满足需求。需求:
UseRequestContext
Option选项开启添加HTTP RequestContext
到接口方法的功能;UseRequestContext
功能;Context
的约束(添加了Context
原语),优先使用 EngineContext
约束;方案:
UseRequestContext
Option选项开启添加HTTP RequestContext
到接口方法的功能;适配进度
The text was updated successfully, but these errors were encountered: