此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring GraphQL 1.4.1! |
可观察性
Micrometer 的可观测性支持直接在 Spring for GraphQL 中检测。 这为 GraphQL 请求和“重要”数据获取作启用了指标和跟踪。 由于 GraphQL 引擎在传输层之上运行,因此如果 Spring Framework 支持,您还应该期望来自传输的观察结果。
仅当ObservationRegistry
在应用程序中配置。
您可以了解有关在 Spring Boot 中配置可观测性基础设施的更多信息。
如果要自定义使用 GraphQL 观察生成的元数据,可以直接在检测上配置自定义约定。
如果您的应用程序正在使用 Spring Boot,则将自定义约定作为 bean 贡献是首选方式。
服务器请求检测
GraphQL Server Requests 观察使用名称"graphql.request"
适用于传统和响应式应用,尤其是受支持的传输。
此检测假定必须将任何父观察值设置为 GraphQL 上下文中的当前观察值,并具有已知的"micrometer.observation"
钥匙。
对于跨网络边界的跟踪传播,必须由传输级别的单独检测负责。
对于 HTTP,Spring Framework 具有专门的检测来处理跟踪传播。
应用程序需要配置org.springframework.graphql.observation.GraphQlObservationInstrumentation
仪器在其应用中。
它正在使用org.springframework.graphql.observation.DefaultExecutionRequestObservationConvention
默认情况下,由ExecutionRequestObservationContext
.
默认情况下,将创建以下 KeyValues:
名称 |
描述 |
|
GraphQL作名称。 |
|
GraphQL 请求的结果。 |
这graphql.operation
KeyValue 将使用所提供查询的自定义名称,如果没有 ("query"
,"mutation"
或"subscription"
).
这graphql.outcome
KeyValue 将是:
-
"SUCCESS"
如果已发送有效的 GraphQL 响应并且不包含错误 -
"REQUEST_ERROR"
如果无法解析请求,或者响应包含错误(没有一个错误类型org.springframework.graphql.execution.ErrorType.INTERNAL_ERROR
) -
"INTERNAL_ERROR"
如果无法生成有效的 GraphQL 响应,或者如果响应包含至少一个类型的错误org.springframework.graphql.execution.ErrorType.INTERNAL_ERROR
名称 |
描述 |
|
|
Spring for GraphQL 还为服务器请求观察贡献了事件。千分尺观测事件通常作为迹线中的跨度注释进行处理。 此检测将 GraphQL 响应中列出的错误记录为事件。
名称 |
上下文名称 |
GraphQL 错误类型,例如 |
完整的 GraphQL 错误消息,例如 |
DataFetcher 检测
GraphQL DataFetcher 观察使用名称"graphql.datafetcher"
,仅适用于被视为“非平凡”的数据获取作(Java 对象上的属性获取是一个微不足道的作)。
应用程序需要配置org.springframework.graphql.observation.GraphQlObservationInstrumentation
仪器在其应用中。
它正在使用org.springframework.graphql.observation.DefaultDataFetcherObservationConvention
默认情况下,由DataFetcherObservationContext
.
默认情况下,将创建以下 KeyValues:
名称 |
描述 |
|
数据获取错误的类名 |
|
要提取的字段的名称。 |
|
GraphQL 数据获取作的结果,“SUCCESS”或“ERROR”。 |
名称 |
描述 |
|
要提取的字段的路径(例如,“/bookById”)。 |
DataLoader 检测
GraphQL DataLoader 观察使用名称"graphql.dataloader"
,观察对@BatchMapping
controller 方法并手动注册DataLoader
实例。
应用程序需要配置org.springframework.graphql.observation.GraphQlObservationInstrumentation
仪器在其应用中。
它正在使用org.springframework.graphql.observation.DefaultDataLoaderObservationConvention
默认情况下,由DataLoaderObservationContext
.
默认情况下,将创建以下 KeyValues:
名称 |
描述 |
|
数据获取错误的类名 |
|
正在使用的 DataLoader 的名称。 |
|
GraphQL 数据获取作的结果,“SUCCESS”或“ERROR”。 |
名称 |
描述 |
|
加载元素列表的大小。 |