# `Honeybadger.Insights.Absinthe`
[🔗](https://github.com/honeybadger-io/honeybadger-elixir/blob/v0.30.2/lib/honeybadger/insights/absinthe.ex#L1)

Captures telemetry events from GraphQL operations executed via Absinthe.

## Default Configuration

By default, this module listens for the following Absinthe telemetry events:

    "absinthe.execute.operation.stop"
    "absinthe.execute.operation.exception"

## Custom Configuration

You can customize the telemetry events to listen for by updating the insights_config:

    config :honeybadger, insights_config: %{
      absinthe: %{
        telemetry_events: [
          [:absinthe, :execute, :operation, :stop],
          [:absinthe, :execute, :operation, :exception],
          [:absinthe, :resolve, :field, :stop]
        ]
      }
    }

Note that adding field-level events like "absinthe.resolve.field.stop" can
significantly increase the number of telemetry events generated.

# `attach`

Attaches telemetry handlers if all required dependencies are available.

# `attach_event`

Attaches a telemetry handler for a specific event.

# `dependencies_available?`

# `event_filter`

# `extract_metadata`

Extracts metadata from the telemetry event.
Child modules should override this for specific events.

# `get_insights_config`

# `get_telemetry_events`

# `handle_event_impl`

Implementation of handle_telemetry that can be called by overriding methods.

# `handle_telemetry`

Handles telemetry events and processes the data.
This implementation forwards to handle_event_impl which can be overridden
by child modules to customize behavior while still calling the parent implementation.

# `ignore?`

Determines if an event should be ignored based on its metadata.
Child modules should override this for specific filtering logic.
Note: this is the metadata before any transformations.

# `process_event`

Process the event data. Child modules can override this for custom
processing.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
