Skip to main content

Hooks

@dagster.success_hook

Create a hook on step success events with the specified parameters from the decorated function.

Parameters:

  • name (Optional[str]) – The name of this hook.
  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the

Examples:

@success_hook(required_resource_keys=\{'slack'})
def slack_message_on_success(context):
message = 'op \{} succeeded'.format(context.op.name)
context.resources.slack.send_message(message)

@success_hook
def do_something_on_success(context):
do_something()
@dagster.failure_hook

Create a hook on step failure events with the specified parameters from the decorated function.

Parameters:

  • name (Optional[str]) – The name of this hook.
  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the

Examples:

@failure_hook(required_resource_keys=\{'slack'})
def slack_message_on_failure(context):
message = 'op \{} failed'.format(context.op.name)
context.resources.slack.send_message(message)

@failure_hook
def do_something_on_failure(context):
do_something()
class dagster.HookDefinition

Define a hook which can be triggered during a op execution (e.g. a callback on the step execution failure event during a op execution).

Parameters:

  • name (str) – The name of this hook.
  • hook_fn (Callable) – The callback function that will be triggered.
  • required_resource_keys (Optional[AbstractSet[str]]) – Keys for the resources required by the
class dagster.HookContext

The context object available to a hook function on an DagsterEvent.

property hook_def

The hook that the context object belongs to.

property instance

The instance configured to run the current job.

property job_name

The name of the job where this hook is being triggered.

property log

Centralized log dispatch from user code.

property op_config

The parsed config specific to this op.

property op_exception

The thrown exception in a failed op.

property op_output_metadata

The applied output metadata.

Returns a dictionary where keys are output names and the values are:

  • the applied output metadata in the normal case
  • a dictionary from mapping key to corresponding metadata in the mapped case
property op_output_values

The computed output values.

Returns a dictionary where keys are output names and the values are:

  • the output values in the normal case
  • a dictionary from mapping key to corresponding value in the mapped case
property required_resource_keys

Resources required by this hook.

property resources

Resources available in the hook context.

property run_id

The id of the run where this hook is being triggered.

property step_key

The key for the step where this hook is being triggered.

dagster.build_hook_context

Builds hook context from provided parameters.

build_hook_context can be used as either a function or a context manager. If there is a provided resource to build_hook_context that is a context manager, then it must be used as a context manager. This function can be used to provide the context argument to the invocation of a hook definition.

Parameters:

  • resources (Optional[Dict[str, Any]]) – The resources to provide to the context. These can
  • op (Optional[OpDefinitionOpDefinition, PendingNodeInvocation]) – The op definition which the
  • run_id (Optional[str]) – The id of the run in which the hook is invoked (provided for mocking purposes).
  • job_name (Optional[str]) – The name of the job in which the hook is used (provided for mocking purposes).
  • op_exception (Optional[Exception]) – The exception that caused the hook to be triggered.
  • instance (Optional[DagsterInstanceDagsterInstance]) – The Dagster instance configured to run the hook.

Examples:

context = build_hook_context()
hook_to_invoke(context)

with build_hook_context(resources=\{"foo": context_manager_resource}) as context:
hook_to_invoke(context)