Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

graphq visualisation for studio #337

Closed
macrozone opened this issue Jul 21, 2022 · 5 comments
Closed

graphq visualisation for studio #337

macrozone opened this issue Jul 21, 2022 · 5 comments
Labels
project-apollo-studio (legacy) LEGACY TAG DO NOT USE

Comments

@macrozone
Copy link

For talking about a graph, modelling it, reviewing it and understanding it, its often useful to have a more visual representation.

I did some research and found this one which works quite good: https://github.com/IvanGoncharov/graphql-voyager

as mentioned in graphql-kit/graphql-voyager#187 (comment)

I think apollo studio could and should include something like that which would be a great addition to the schema inspector.

I believe it would be even safe-enough and easy to even include graphql-voyager directly in studio, maybe as a tab here:

Bildschirmfoto 2022-07-21 um 16 08 12

@FluorescentHallucinogen
Copy link

FluorescentHallucinogen commented Jul 21, 2022

+1 for the idea of integrating GraphQL Voyager into Apollo Studio. 👍

GraphQL Voyager could be used not only for visualizing GraphQL schema in the "Schema" tab of Apollo Studio, but also for many other purposes.

E.g. see @IvanGoncharov's tool called GraphQL Coverage for visualizing which resolvers are triggered by GraphQL operations: https://github.com/IvanGoncharov/graphql-coverage/blob/master/demo.gif.

I've created a working prototype of a tool on top of GraphQL Voyager I called GraphQL Visual Diff. See https://twitter.com/alexey_rodionov/status/1227289665046241280.

It shows a visual diff between two GraphQL schemas.

Added fields are marked in green color, deleted in red and modified in yellow. Every change is precisely explained and classified as breaking, dangerous or non-breaking.

graphql-visual-diff

It can be used in the "Changelog" tab of Apollo Studio. 😉

This should significantly improve the developer experience (DX) as compared to plaintext JSON diff.

I've integrated my prototype into GraphQL Inspector. See kamilkisiela/graphql-inspector#1746.

Also I've created a working prototype of a tool on top of GraphQL Voyager I called GraphQL Heatmap. See https://twitter.com/alexey_rodionov/status/1564692299107295232.

It helps visualize the graph health by coloring fields from red to green based on field metrics (usage, latency, errors, etc.).

graphql-heatmap

It's a follow-up of my idea of GraphQL Visual Diff tool.

And… it uses data from Apollo Studio. 😄

It can be used in the "Fields" tab of Apollo Studio. 😉

The good news is that @IvanGoncharov, the author of GraphQL Voyager, is now works in the Apollo team. 😆

@jpvajda jpvajda added the project-apollo-studio (legacy) LEGACY TAG DO NOT USE label Jul 26, 2022
@FluorescentHallucinogen
Copy link

@daniman PTAL. 😉

@daniman
Copy link
Member

daniman commented Sep 5, 2022

@FluorescentHallucinogen I like the idea. The reason we haven't brought Voyager into Studio in the past is that it gets unusable fairly quickly for large schemas, and when we introduce features, they need to work for all our users. We've considered layering something like Voyager with filters to help with that problem. Working on schema visualization is on our roadmap for Studio. Hopefully we'll be able to get to it sooner rather than later.

@KennyHammerlund
Copy link

+1 for the implementation of voyager with Studio
@daniman I agree that large schemas are hard to deal with on a single canvas. Maybe this could be implemented at the subgraph level similar to how subgraph schema can be shown in the Schema=> SDL tab.

@FluorescentHallucinogen cool idea integrating the heat map based on traffic. I think the reverse would be helpful too. I.e. the darker the blue the longer it has been since last used. That would help with deprecation.

@jerelmiller
Copy link
Member

Hey @macrozone 👋

We have shifted this repo to be specific to the Apollo TypeScript Client. As such, I'm going to go ahead and close this issue.

If you're still in need of assistance or would like to raise this request again, please open an issue in the Apollo Studio Community repo. Thanks!

@jerelmiller jerelmiller closed this as not planned Won't fix, can't repro, duplicate, stale Jan 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
project-apollo-studio (legacy) LEGACY TAG DO NOT USE
Projects
None yet
Development

No branches or pull requests

6 participants