Code Monkey home page Code Monkey logo

Comments (7)

rmosolgo avatar rmosolgo commented on June 14, 2024 3

Hey, thanks for the suggestion. I agree that this would be a good addition to GraphQL-Ruby. I'll take a look at the reporting requirements and follow up here!

from graphql-ruby.

olivierbuffon avatar olivierbuffon commented on June 14, 2024 1

@rmosolgo I started working on it few days ago and like you said it could be intense! 😄
But anyway I can definitely try to help on this in the comming weeks. It's not a promess since I'm quite busy on my side too but I'll do my best to open a PR as soon as I've something acceptable 😅.
@mjfaga keep this feed updated if you guys decide to look into this too!

from graphql-ruby.

smyrick avatar smyrick commented on June 14, 2024 1

Hey there! I am a Solutions Architect at Apollo and I just wanted to chime in to say that we actually don't expect many GraphQL libraries to adopt sending metrics to GraphOS. Instead we make it easier by shipping all this code in the Apollo Router and it can be the central place to track operation usage and talk with GraphOS. You event don't need to use Federation at all to use the Router and track you Ruby servers operations.

What can be additionally supported though is federated tracing (ftv1). Today that is handled by an extension library https://github.com/Gusto/apollo-federation-ruby/

That library is implementing the extra metrics here: https://www.apollographql.com/docs/federation/metrics/

With that Federation library + Apollo Router you will be able to

  • See operation count
  • See the operations coming in
  • See the clients making request
  • Track the field/resolver level timing and timings across subgraphs
  • Run schema checks through GraphOS to validate breaking changes

What could be considered for this library is to add the Federation support as first-party support so server maintainers don't need to include two Ruby libraries to do Federation GraphQL

from graphql-ruby.

olivierbuffon avatar olivierbuffon commented on June 14, 2024

+1 my team and I would be super interested as well

from graphql-ruby.

rmosolgo avatar rmosolgo commented on June 14, 2024

This is ... intense. It's not like sending some custom metrics by the ruby DataDog agent or NewRelic agent -- you've got to write the agent: protobuf client, HTTP communications, batching, signature generation ... phew! It would be quite a bit of work. I'm open to including it in this library or in a different gem, but I probably won't be able to make time for it for a while. I'm happy to keep this issue open for visibility and further discussion in the meantime.

from graphql-ruby.

mjfaga avatar mjfaga commented on June 14, 2024

Yeah, totally fair. I saw the same thing and decided to open this issue to see if you would land on the same thing or would see something I didn’t 😂

Depending on where we go with things here at Hunt Club, we may make this investment. Given the dependencies required, a separate gem feels appropriate here so that the base implementation doesn't carry that around.

Cool keeping open for now and we can coordinate as needed 👍

from graphql-ruby.

olivierbuffon avatar olivierbuffon commented on June 14, 2024

@smyrick Nice! Thanks for this great feedback, I'll definitely look into it!

from graphql-ruby.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.