profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/binaryseed/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Vince Foley binaryseed Portland, OR

binaryseed/comopolo 2

Community web app for COMOPOLO, based on the open source El Dorado

binaryseed/docker-elixir 1

Official Docker image for Elixir :whale: :turtle: :rocket:

binaryseed/dotfiles 1

configuration files

binaryseed/321polo 0

Arduino powered countdown timer for bike polo

binaryseed/absinthe 0

GraphQL for Elixir

binaryseed/absinthe_plug 0

Plug support for Absinthe

binaryseed/absinthe_website 0

Source of absinthe-graphql.org

binaryseed/alpine-elixir 0

A Dockerfile based on my alpine-erlang image for Elixir applications

pull request commentabsinthe-graphql/absinthe

Add extend to macro defined schemas

Any news about the issue?

binaryseed

comment created time in 8 hours

issue openedabsinthe-graphql/absinthe_plug

Ability to opt out of batched execution on batch requests

If a developer wants to preserve context when executing a whole document, there needs to be an option to opt out of batched execution.

https://github.com/absinthe-graphql/absinthe_plug/blob/master/lib/absinthe/plug.ex#L508 https://elixir-lang.slack.com/archives/C0PR49P4P/p1624455107364500

created time in 11 hours

pull request commentnewrelic/elixir_agent

Correct categorization of simple select

CLA assistant check <br/>Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.<br/><sub>You have signed the CLA already but the status is still pending? Let us recheck it.</sub>

mrz

comment created time in 14 hours

PR opened newrelic/elixir_agent

Correct categorization of simple select

<!-- Thank you for submitting a Pull Request

A quick note: This software lives inside of other software. It is relied upon to monitor critical services.

Because of these unique conditions, our standards for code quality must be high!

  • Tests are required!
  • Performance really matters!
  • Features that are specific to just your app are unlikely to make it in
  • Instrumentation particular to a library or framework are probably a better fit for their own package which depends on this Agent.

-->

+3 -2

0 comment

2 changed files

pr created time in 14 hours

issue openednewrelic/elixir_agent

A simple SELECT query is being categorized wrongly

Describe the bug We have a very simple SELECT 1 query in our application, called frequently as part of an infrastructural check. Recently it started to be categorized as {:other, :other}, and so it shows up in NR Database page. We would love to have it categorized as a SELECT.

I managed to replicate the behavior in a standalone exs script by isolating NewRelic.Telemetry.Ecto.Metadata.parse_query/1 and confirming it returns the {:other, :other} tuple when given the SELECT 1 argument.

(Note: I think it might be enough to have parse_query/2 return {operation, :other} in the _ case, just to not lose the information on the type of operation performed, but don't know enough about the library to know what other effects that would have).

Environment

  • Elixir & Erlang version (elixir -v): Elixir 1.12.1
  • Agent version (mix deps | grep new_relic_agent): 1.27.2

created time in 2 days

issue openedabsinthe-graphql/absinthe

`mix clean` is sometimes required to see changes take effect

Environment

  • Elixir version (elixir -v): Erlang/OTP 23 [erts-11.2] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [hipe]
  • Absinthe version (mix deps | grep absinthe): absinthe 1.6.4 / absinthe_plug 1.5.8
  • Client Framework and version (Relay, Apollo, etc): graphiql

Expected behavior

Changing my types file from field(:id, :id) to field :id, :string do resolve(fn object, _, _ -> {:ok, GlobalId.encode(Spiff.Comment, object.id)} end) end

Sometimes does not register as a change

Actual behavior

id continued to behave as a plain db column until I ran mix clean and restarted. Then it works as expected. Restarting iex on its own is not enough to break the stale cache.

created time in 5 days

issue commentabsinthe-graphql/absinthe

Multiple pushes per client for subscriptions that have a `context_id`

We observe the same behavior and even worse: turning context_id: "global" made messages from adjacent topics leak to the users who weren't subscribed.

mupkoo

comment created time in 6 days

pull request commentabsinthe-graphql/absinthe

Support open ended scalars

These changes look good! Will look at doing a release shortly.

kdawgwilk

comment created time in 8 days

push eventabsinthe-graphql/absinthe

Kaden Wilkinson

commit sha 1948513d2103ac68182b64c62c0bf9fc35b96180

Support passing through object scalars (#1069)

view details

push time in 8 days

PR merged absinthe-graphql/absinthe

Reviewers
Support open ended scalars

This adds support for defining open_ended scalars that can recieve arbitrary GQL data. We opted to put this behavior behind a flag so that it is an opt-in feature. This was a necessary feature to support the Federation spec's _Any scalar

+102 -9

17 comments

8 changed files

kdawgwilk

pr closed time in 8 days

pull request commentabsinthe-graphql/absinthe

Support open ended scalars

Once this merges can we release it as an RC? I would like to get the absinthe_federation library on hex but it will depend on these changes. I would also like to submit a talk proposal to Elixir conf to talk about federation and those submissions are due July 11th, 2021

kdawgwilk

comment created time in 8 days

issue commentnewrelic/elixir_agent

Add support for Slow Queries

Thank you helping me clarify that, I appreciate 🙇!

andrewhr

comment created time in 9 days

issue commentnewrelic/elixir_agent

Add support for "Database" section of APM for Ecto

I definitely didn't expressed that very well, sorry for the confusion.

Yes I do see this information. On the right panel, bellow the "Time consumption by caller" there is a "Slow queries" table which aggregates all slow queries for that entry. On a Ruby application we have, that works as expected - includes many queries and help to find spots where DBEs can work directly.

No Elixir app we have here (and most of them are Elixir) present data on that table, which I assume is not exported by the Agent.

It's more clear what I'm missing from the tool? Sorry again for the confusion! :bow:

andrewhr

comment created time in 9 days

issue commentnewrelic/elixir_agent

Add support for "Database" section of APM for Ecto

The latest, but there is no slow queries on the panel. Maybe it's a flag I didn't activated?

andrewhr

comment created time in 9 days

issue openednewrelic/elixir_agent

Add support for "Database" section of APM for Ecto

<!-- Thanks for your interest in the Elixir Agent

A quick note: This is an open source project, not a New Relic product.

  • We want to improve and grow the Agent in ways that can benefit the majority of users
  • Features that are specific to just one app are unlikely to make it in
  • Instrumentation particular to a library or framework are probably a better fit for their own package which depends on this Agent

-->

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

Current Agent export database queries, but they are only available as part of the Transaction traces. For other agents, like Ruby, we can also use the "Databases" tab, which includes query entries and can be really useful to diagnose issues in a way that the current support can't.

Describe the solution you'd like

Would be great if Elixir agent exports all data required for that section to work out-of-the-box. There is not specification AFAICT, otherwise we can work together to contribute a patch with that feature support.

Describe alternatives you've considered

Create custom instrumentation around Telemetry. It works, but doesn't integrate with overall NR experience.

created time in 9 days

PR opened absinthe-graphql/absinthe

Fix a small grammar issue in the guides

<!--

Precheck

Thank you for submitting a pull request! Absinthe is a large project, and we really appreciate your help improving it.

Please keep the following in mind as you submit your code; it will help us review, discuss, and merge your PR as quickly as possible.

  • Tests are good! Please include them if possible.
  • Documentation is good:
    • Modules should have a @moduledoc (may be false)
    • Public functions should have a @doc (may be false)
    • Consider checking /guides for documentation that needs to be updated
  • Specifications are good. Include @spec when possible.
  • Good Git history behavior is good. Don't rebase your PR branch, and make small, focused commits. We generally squash commits on merge for you, unless there is a reason not to (multiple committers on a PR, etc).
  • Matching existing code style is good.

We're happy to work with you, providing guidance and assistance where we can, collaborating with you to help your contribution become part of Absinthe. Thanks again!

As always, feel free to reach out for questions/discussion via:

  • Our Slack channel (#absinthe-graphql): https://elixir-slackin.herokuapp.com
  • The Elixir Forum: https://elixirforum.com

-->

+2 -2

0 comment

1 changed file

pr created time in 11 days

pull request commentbeam-telemetry/telemetry_poller

Fix disabling of the default poller

Apparently we need to fix CI, probably migrate it to EEF's setup-beam.

x4lldux

comment created time in 12 days

pull request commentbeam-telemetry/telemetry_poller

Fix disabling of the default poller

Would this result in it being automatically disabled for all instances of poller within an app?

Not sure, what you mean, but there can be only one default poller - which is started by the application master. It's still enabled by default, user has to explicitly disable the default poller.

It's not uncommon at all for users to run multiple instances and libraries to include their own instances which could be inadvertently overridden.

That change would not interfere with this. Instances are independent.

x4lldux

comment created time in 12 days

pull request commentbeam-telemetry/telemetry_poller

Fix disabling of the default poller

Do we want to reintroduce this functionality? Would this result in it being automatically disabled for all instances of poller within an app? It's not uncommon at all for users to run multiple instances and libraries to include their own instances which could be inadvertently overridden.

x4lldux

comment created time in 12 days

Pull request review commentbeam-telemetry/telemetry_poller

Fix disabling of the default poller

  start(_StartType, _StartArgs) ->     PollerOpts = application:get_env(telemetry_poller, default, []),-    Default = #{-        name => telemetry_poller_default,-        measurements => [memory, total_run_queue_lengths, system_counts]-    },-    FinalOpts = maps:merge(Default, maps:from_list(PollerOpts)),-    telemetry_poller_sup:start_link(maps:to_list(FinalOpts)).+    PollerChildSpec =+        case PollerOpts of
        case application:get_env(telemetry_poller, default, []) of

?

x4lldux

comment created time in 13 days

Pull request review commentbeam-telemetry/telemetry_poller

Fix disabling of the default poller

  start(_StartType, _StartArgs) ->     PollerOpts = application:get_env(telemetry_poller, default, []),-    Default = #{-        name => telemetry_poller_default,-        measurements => [memory, total_run_queue_lengths, system_counts]-    },-    FinalOpts = maps:merge(Default, maps:from_list(PollerOpts)),-    telemetry_poller_sup:start_link(maps:to_list(FinalOpts)).+    PollerChildSpec =+        case PollerOpts of+            false ->+                [];+            _Opts ->+                Default = #{+                            name =>s telemetry_poller_default,
                            name => telemetry_poller_default,
x4lldux

comment created time in 13 days

PR opened beam-telemetry/telemetry_poller

Fix disabling of the default poller

Docs state that to disable default poller you need to set app's environment key default to false, but it looks like this functionality was overlooked when translating from Elixir to Erlang. This PR fixes that.

+26 -13

0 comment

3 changed files

pr created time in 13 days

issue commentabsinthe-graphql/absinthe

Apollo Federation

Apollo federation is not built in, but I don't see anything standing in the way of someone writing a library that enabled it on top of Absinthe. At this point Absinthe has exposed 100% complete control over how schemas are built, when schemas are built, and how queries are executed.

fbjork

comment created time in 15 days

issue commentabsinthe-graphql/absinthe

Apollo Federation

So is it not possible to leverage Apollo Federation while also using Absinthe Elixir ?

Mesh should, at least in principle, be able to add a Federation implementation to an existing nonconforming schema: https://www.graphql-mesh.com/docs/transforms/federation via https://github.com/0xR/graphql-transform-federation

fbjork

comment created time in 15 days

issue commentabsinthe-graphql/absinthe

Apollo Federation

@d-led Schema stitching and federation are not the same though

Each system has a unique strategy for combining sub-services:

- Federation services are aware of each other’s data while the gateway is a generic agent that combines them. The gateway configures itself by reading SDLs from each service, and may be reloaded on the fly with new SDLs.

- Stitching services remain unaware of each other while the gateway loads and combines their schemas. Recent development has added SDL annotations that allow stitched schemas to also be reloaded on the fly.

So is it not possible to leverage Apollo Federation while also using Absinthe Elixir ?

fbjork

comment created time in 15 days

pull request commentbeam-telemetry/telemetry_metrics

Test use measurement map

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

kianmeng

comment created time in 16 days

push eventbeam-telemetry/telemetry_metrics

Kian Meng Ang

commit sha b9251aa5d8186f1863ef65d4a9f9e1ea967bdc15

Test use measurement map (#93) This PR tests for using measurement map in the event measurement calculation.

view details

push time in 16 days

PR merged beam-telemetry/telemetry_metrics

Test use measurement map

This PR tests for using measurement map in the event measurement calculation.

+25 -0

0 comment

1 changed file

kianmeng

pr closed time in 16 days

PR opened beam-telemetry/telemetry_metrics

Test use measurement map

This PR tests for using measurement map in the event measurement calculation.

+25 -0

0 comment

1 changed file

pr created time in 16 days

issue openedabsinthe-graphql/absinthe

default_value for an enum type doesn't work when the enum type is defined with the shorthand syntax

If submitting a bug, please provide the following:

Environment

  • Elixir version (elixir -v):
Erlang/OTP 23 [erts-11.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [hipe]

Elixir 1.11.4 (compiled with Erlang/OTP 23)
  • Absinthe version (mix deps | grep absinthe): 1.6.3
  • Client Framework and version (Relay, Apollo, etc): Not relevant as it's a backend bug

Expected behavior

Define an enum type with the shorthand syntax:

enum :example_type, values: [:A, :B, :C]

In the schema, have a field with default value: arg :example, :example_type, default_value: :A.

It should work as expected.

Actual behavior

A compilation error is thrown:

(ArgumentError) you attempted to apply :value on [:A, :B, :C]. If you are using apply/3, make sure the module is an atom. If you are using the dot syntax, such as map.field or module.function(), make sure the left side of the dot is an atom or a map
    :erlang.apply([:A, :B, :C], :value, [])
Stacktrace:
  │ (absinthe 1.6.3) lib/absinthe/phase/schema/validation/default_enum_value_present.ex:33: anonymous fn/1 in Absinthe.Phase.Schema.Validation.DefaultEnumValuePresent.validate_defaults/2
  │ (elixir 1.11.4) lib/enum.ex:1411: Enum."-map/2-lists^map/1-0-"/2
  │ (absinthe 1.6.3) lib/absinthe/phase/schema/validation/default_enum_value_present.ex:33: Absinthe.Phase.Schema.Validation.DefaultEnumValuePresent.validate_defaults/2
  │ (absinthe 1.6.3) lib/absinthe/blueprint/transform.ex:16: anonymous fn/3 in Absinthe.Blueprint.Transform.prewalk/2
  │ (absinthe 1.6.3) lib/absinthe/blueprint/transform.ex:109: Absinthe.Blueprint.Transform.walk/4
  │ (elixir 1.11.4) lib/enum.ex:1533: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
  │ (absinthe 1.6.3) lib/absinthe/blueprint/transform.ex:145: anonymous

I had to change the definition of the enum type like this:

  enum :example_type do
    value :A
    value :B
    value :C
  end

for it to work, even though it seems that they should mean the exact same thing.

created time in 17 days