对于最新的稳定版本,请使用 Spring GraphQL 1.3.3spring-doc.cn

可观察性

Micrometer 的可观测性支持直接在 Spring for GraphQL 中进行检测。 这将为 GraphQL 请求和“重要”数据获取操作启用指标和跟踪。 由于 GraphQL 引擎在传输层上运行,因此如果 Spring Framework 支持,您还应该期望从传输中获得观察结果。spring-doc.cn

只有在应用程序中配置了 时,才会发布观察结果。 您可以了解有关在 Spring Boot 中配置可观测性基础设施的更多信息。 如果要自定义使用 GraphQL 观察生成的元数据,可以直接在插桩上配置自定义约定。 如果您的应用程序正在使用 Spring Boot,则将自定义约定作为 bean 提供是首选方法。ObservationRegistryspring-doc.cn

服务器请求检测

GraphQL 服务器请求观察是使用传统和响应式应用程序的名称创建的,尤其是支持的传输。 此插桩假定任何父观察都必须设置为具有已知键的 GraphQL 上下文中的当前观察。 对于跨网络边界的跟踪传播,必须负责传输级别的单独检测。 对于 HTTP,Spring Framework 具有专门的 instrumentation 来处理跟踪传播"graphql.request""micrometer.observation"spring-doc.cn

应用程序需要在其应用程序中配置检测。 默认情况下,它使用 ,由 .org.springframework.graphql.observation.GraphQlObservationInstrumentationorg.springframework.graphql.observation.DefaultExecutionRequestObservationConventionExecutionRequestObservationContextspring-doc.cn

默认情况下,将创建以下 KeyValue:spring-doc.cn

表 1.低基数键

graphql.operation (必填)spring-doc.cn

GraphQL 操作名称。spring-doc.cn

graphql.outcome (必填)spring-doc.cn

GraphQL 请求的结果。spring-doc.cn

KeyValue 将使用所提供查询的自定义名称,如果为 none(或 ),则使用操作的标准名称。 KeyValue 将为:graphql.operation"query""mutation""subscription"graphql.outcomespring-doc.cn

  • "SUCCESS"如果已发送有效的 GraphQL 响应并且不包含任何错误spring-doc.cn

  • "REQUEST_ERROR"如果无法解析请求,或者响应包含错误(它们都不是org.springframework.graphql.execution.ErrorType.INTERNAL_ERROR)spring-doc.cn

  • "INTERNAL_ERROR"无法生成有效的 GraphQL 响应,或者响应包含至少一个org.springframework.graphql.execution.ErrorType.INTERNAL_ERRORspring-doc.cn

表 2.高基数键

graphql.execution.id (必填)spring-doc.cn

graphql.execution.ExecutionId的 GraphQL 请求。spring-doc.cn

DataFetcher 插桩

GraphQL DataFetcher 观察是使用 name 创建的,仅用于被视为“非平凡”的数据获取操作(Java 对象上的属性获取是一项微不足道的操作)。 应用程序需要在其应用程序中配置检测。 默认情况下,它使用 ,由 ."graphql.datafetcher"org.springframework.graphql.observation.GraphQlObservationInstrumentationorg.springframework.graphql.observation.DefaultDataFetcherObservationConventionDataFetcherObservationContextspring-doc.cn

默认情况下,将创建以下 KeyValue:spring-doc.cn

表 3.低基数键

graphql.error.type (必填)spring-doc.cn

数据获取错误的类名spring-doc.cn

graphql.field.name (必填)spring-doc.cn

正在获取的字段的名称。spring-doc.cn

graphql.outcome (必填)spring-doc.cn

GraphQL 数据获取操作的结果,“SUCCESS”或“ERROR”。spring-doc.cn

表 4.高基数键

名字spring-doc.cn

描述spring-doc.cn

graphql.field.path (必填)spring-doc.cn

要获取的字段的路径(例如,“/bookById”)。spring-doc.cn