entur / lamassu

Mobility hub
European Union Public License 1.2
5 stars 7 forks source link

Add selection field instrumentation for graphql requests #476

Open testower opened 1 month ago

testower commented 1 month ago

Is your feature request related to a problem? Please describe.

GBFS v3 changed a number of fields from simple strings into translated fields. I would like to survey actual usage in the wild of these fields to see if we can make a breaking change directly in the GraphQL schema for these fields, or if we have to add new fields like "translatedName" alongside the "name" field, and go through a lengthy deprecation phase.

Goal / high level use-case

Add selection field instrumentation

Describe the solution you'd like

See https://github.com/entur/tiamat/commit/7660413af7696ffd561f33059f641abfc864886d and https://github.com/graphql-java-kickstart/graphql-spring-boot/discussions/335 for solution.

This solution is not great, because it involves sifting through large amounts of logs, which is impractical and probably costly.

What we actually need is instrumentation on selection field level similar to what is offered by Apollo GraphQL's field level instrumentation https://www.apollographql.com/docs/apollo-server/api/plugin/usage-reporting. I've yet to find an open and available solution that offers this, so we might have to write one ourselves.

Additional context

This change is related to ongoing work in #412 / #475

testower commented 1 month ago

I'd like to discuss this as well at next meeting @hbruch