选择器
从路由器管道选择数据以提取
一个 选择器用于从GraphOS Router's 请求生命周期(管道)服务并将其附加到遥测,特别是spans,instruments,conditions和events。
选择器的一个例子request_header
,在与router服务相关的自定义span属性上的:
router.yaml
telemetry:instrumentation:spans:router:attributes:"my_attribute":# ...request_header: "x-my-header"
选择器配置参考
路由器管道(router,supergraph
,subgraph
)的每个服务都有自己的可用选择器。您还可以从路由器返回给客户端的响应数据中提取GraphQL度量。
路由器
路由器服务是所有请求的初始入口点。它是基于HTTP的,处理不透明的字节。
选择器 | 可设置默认值 | 值 | 描述 |
---|---|---|---|
trace_id | 是 | open_telemetry |datadog | 跟踪ID |
operation_name | 是 | string |hash | 查询中的操作名称 |
studio_operation_id | 是 | true |false | Apollo Studio操作ID |
request_header | 是 | 请求头名称 | |
response_header | 是 | 响应头名称 | |
response_status | 是 | code | reason | 响应状态 |
response_context | 是 | 响应上下文键名称 | |
baggage | 是 | 行李项名称 | |
env | 是 | 环境变量名称 | |
on_graphql_error | 无 | true |false | 布尔值,设为true表示响应有效负载包含GraphQL错误 |
static | 无 | 静态字符串值 | |
error | 无 | reason | 包含关键错误时的错误原因字符串值 |
Supergraph
在解析 查询但查询执行之前,执行supergraph服务。它专注于GraphQL,处理GraphQL查询和响应。
选择器 | 可设置默认值 | 值 | 描述 |
---|---|---|---|
operation_name | 是 | string |hash | 查询中的操作名称 |
operation_kind | 无 | string | 查询中的操作类型 |
query | 是 | string | aliases | depth | height | root_fields | GraphQL查询 |
query_variable | 是 | GraphQL查询变量名称 | |
request_header | 是 | 请求头名称 | |
response_header | 是 | 响应头名称 | |
is_primary_response | 无 | true |false | 布尔值,返回true表示它是主响应,而不是像订阅事件或延迟响应这样的事件 |
response_data | 是 | Supergraph响应体数据的Json Path(可能影响性能) | |
response_errors | 是 | Supergraph响应体错误的Json Path(可能影响性能) | |
request_context | 是 | 请求上下文键名称 | |
response_context | 是 | 响应上下文键名称 | |
on_graphql_error | 无 | true |false | 布尔值,设为true表示响应有效负载包含GraphQL错误 |
baggage | 是 | 行李项名称 | |
env | 是 | 环境变量名称 | |
static | 无 | 静态字符串值 | |
error | 无 | reason | 包含关键错误时的错误原因字符串值 |
Subgraph
在查询执行期间,多次执行subgraph服务,每次执行代表对单个subgraph的调用。它专注于GraphQL,处理GraphQL查询和响应。
选择器 | 可设置默认值 | 值 | 描述 |
---|---|---|---|
subgraph_operation_name | 是 | string |hash | subgraph查询中的操作名称 |
subgraph_operation_kind | 无 | string | subgraph查询中的操作类型 |
subgraph_query | 是 | string | 到subgraph的GraphQL查询 |
subgraph_name | 无 | true |false | subgraph名称 |
subgraph_query_variable | 是 | subgraph查询变量名称 | |
subgraph_response_data | 是 | subgraph响应体数据的Json Path(可能影响性能) | |
subgraph_response_errors | 是 | subgraph响应体错误的Json Path(可能影响性能) | |
subgraph_request_header | 是 | subgraph请求头名称 | |
subgraph_response_header | 是 | subgraph响应头名称 | |
subgraph_response_status | 是 | code | reason | subgraph响应状态 |
subgraph_on_graphql_error | 无 | true |false | 布尔值,设为true表示subgraph响应有效负载包含GraphQL错误 |
supergraph_operation_name | 是 | string |hash | supergraph查询中的操作名称 |
supergraph_operation_kind | 是 | string | supergraph查询中的操作类型 |
supergraph_query | 是 | string | 向supergraph的GraphQL查询 |
supergraph_query_variable | 是 | supergraph查询变量名称 | |
request_context | 是 | 请求上下文键名称 | |
response_context | 是 | 响应上下文键名称 | |
baggage | 是 | 行李项名称 | |
env | 是 | 环境变量名称 | |
static | 无 | 静态字符串值 | |
error | 无 | reason | 关键错误时的错误原因字符串值 |
cache | 无 | hit | miss | 返回此subgraph请求的缓存命中或未命中次数 |
GraphQL
从路由器返回到客户端请求的响应数据中提取GraphQL度量。
选择器 | 可设置默认值 | 值 | 描述 |
---|---|---|---|
list_length | 无 | value | 响应数据中列表的长度 |
field_name | 无 | string | 响应数据中字段的名称 |
field_type | 无 | string | 响应数据中字段的类型 |
type_name | 无 | 响应数据中的GraphQL类型 | |
operation_name | 是 | string |hash | 查询的操作名称 |
static | 无 | 静态字符串值 |