1

有时我希望能够为一个非常特定的查询请求启用Apollo Tracing,因为例如这个特定的请求很慢。有没有办法用热巧克力做到这一点?如果是,我将如何告诉我有兴趣跟踪的特定查询请求?

4

1 回答 1

2

首先,是的,Hot Chocolate确实支持Apollo Tracing on demand,这意味着基于每个查询请求。它只需要在服务器端进行一些配置调整。

通常,您会像这样创建一个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与您感兴趣的每个查询请求一起传递。仅此而已。

有关Apollo Tracing的更多信息,请访问此处

于 2019-02-07T21:46:20.447 回答