Identify "Unidentified clients" on Studio

Currently, we have our Web, iOS, and Android clients making requests to our GraphQL service. On Studio, under the Operations section, I see the 3 clients as expected but also see an Unidentified clients. I understand the Studio is not able to pull the client name from the request headers. I was wondering if there was a way to get more info about these “Unidentified clients”

@kartik_gujarati have you seen the Segmenting metrics by client section of our docs?

@hwillson’s suggestion is definitely what you want if you want to enable client awareness. However, if you have untagged clients that you’re trying to chase down so that you can add the appropriate headers (per those provided instructions), you might want to look at a trace within Apollo Studio for an operation that came from an unidentified client. By doing so, you’ll be able to view its request headers and possibly glean additional information that will help you understand its usage and wire it up properly with a name.

To do this in Studio while you’re on the appropriate graph and variant combination (e.g., my-graph@prod):

  1. Click on Clients in the left-hand menu bar.
  2. Click on All versions within the Unidentified clients section, this should populate a list of All operations from unidentified clients to appear on the right.
  3. Choose an operation from the list of All operations that you’re interested in analyzing. This should take you to the Operations view.
  4. Click on the Traces tab. This will take you to the first available trace within your time-range for the operation you chose for the unidentified client.
  5. Click the (blue) Inspector button in the Sample trace section.
  6. You’ll be able to view the Request headers on the right hand side of the modal popup, including details like the user-agent and IP address (e.g., via the x-forwarded-for header or other CDN-specific headers).

Hope this helps!

1 Like

Thanks for the detailed steps, @abernix. Looks like Studio does not collect request/response headers for compliance reasons and one would have to update their gateway config to “send headers”.

@kartik_gujarati That’s true, the gateway needs to be configured to send headers.

That configuration can be done with the sendHeaders property of the ApolloServerPluginUsageReporting . That might seem like trouble, but depending on your circumstances, making such a configuration and “safe-listing” a certain set of headers (e.g., User-agent) would likely still more simple than chasing down otherwise unidentified clients! :smiley:

Agree :100:. Thanks for sharing the link to the docs :pray: