Code Monkey home page Code Monkey logo

opencensus_absinthe's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

opencensus_absinthe's Issues

Add span attribute for resolution path

Resolution.path/1 will give us a list like ["post", 5, "author"]. Strikes me we could flatten that into a string like post[].author and put it to "absinthe.path".

Add functionality to easily integrate with Dataloaders

Many of the points in issue #15 apply here as well.

At the moment, [Dataloader][dataloader]s are a popular way to batch up Absinthe resolvers. This naturally hides a lot of the traceability by foregoing the default absinthe pipeline.

Perhaps a Dataloader that is a simple layer over the default dataloader that can either simply be used instead of the default or that provides simple functions to integrate with existing dataloaders.

Dialyzer failures

Picked up while setting up CI: the default_pipeline/2 advertised in the documentation was renamed to traced_pipeline/2 during extraction. I didn't pick it up during post-extraction testing because I use a custom pipeline.

Workaround: use a custom pipeline traced_pipeline.

Add functionality to easily integrate with `DocumentResolver`s

The existing push/pop phases will fail completely if you attempt to integrate them into a DocumentResolver pipeline. It'd be great if a simple way was provided to add similar tracing phases for such situations.

I hope to submit a PR shortly, but my absinthe knowledge is fairly limited, so feedback and discussion on this issue in the meantime would be invaluable. I also may say a number of things that are completely incorrect, so please bear with me!

For example, the existing tracer push/pop phases happen after the Absinthe.Phase.Blueprint and Absinthe.Phase.Document.Result phases. I assume the latter one will remain the same, but is there an analog to Absinthe.Phase.Blueprint when dealing with a DocumentResolver? If so, it shouldn't be overly difficult to add two new push/pop modules (or at least just push) and add an add_document_resolver_phases/1 function that does something similar.

Once that's done, all that needs to be added is a note in the readme that users' DocumentResolver modules should indeed override the pipeline/1 callback and include this new phase-adding function.

Please share any thoughts you might have! Perhaps this entire issue is misguided and I'm missing something obvious, which would actually be wonderful.

Thanks!

Offer callback to set “current” span context?

I need a configurable callback I can use to set the seq_trace label per path at the beginning of its resolution. It'll be brittle, but I've little other hope of tying outbound spans to the fields rather than the whole blueprint.

Trim reference paths

The reference paths put into the span attributes are fully qualified. I'd like to trim them so they start with the closest lib or src to the end.

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.