有时候,我希望能够为非常特定的查询请求启用 Apollo跟踪,因为该特定请求的执行速度很慢。有没有办法用Hot Chocolate做到这一点?如果可以,我该如何告诉特定的查询请求我实际上对跟踪感兴趣?
答案 0 :(得分:2)
首先,是的热巧克力确实支持按需的 Apollo Tracing ,这意味着基于每个查询请求。只需在服务器端进行一些配置调整即可。
通常,您将这样创建一个 GraphQL 模式:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Here I register my services / repositories; omitted for brevity
services.AddGraphQL(sp => Schema.Create(c =>
{
// Here I register my schema types and so on; omitted for brevity
}));
}
// Code omitted for brevity
}
要启用按需跟踪,您需要将TracingPreference
选项设置为TracingPreference.OnDemand
。然后,前面的代码片段将如下所示。
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Here I register my services / repositories; omitted for brevity
services.AddGraphQL(sp => Schema.Create(c =>
{
// Here I register my schema types and so on; omitted for brevity
}),
new QueryExecutionOptions
{
TracingPreference = TracingPreference.OnDemand
});
}
// Code omitted for brevity
}
将跟踪首选项设置为OnDemand
之后,您只需将以下HTTP标头GraphQL-Tracing=1
传递给您感兴趣的每个查询请求即可。
有关阿波罗追踪的更多信息,请前往here。