logo
pub struct Hub { /* private fields */ }
Expand description

The central object that can manages scopes and clients.

This can be used to capture events and manage the scope. This object is Send and Sync so it can be used from multiple threads if needed.

Each thread has its own thread-local ( see Hub::current) hub, which is automatically derived from the main hub (Hub::main).

In most situations developers do not need to interface with the hub directly. Instead toplevel convenience functions are expose that will automatically dispatch to the thread-local (Hub::current) hub. In some situations this might not be possible in which case it might become necessary to manually work with the hub. This is for instance the case when working with async code.

Hubs that are wrapped in Arcs can be bound to the current thread with the run static method.

Most common operations:

  • Hub::new: creates a brand new hub
  • Hub::current: returns the thread local hub
  • Hub::with: invoke a callback with the thread local hub
  • Hub::with_active: like Hub::with but does not invoke the callback if the client is not in a supported state or not bound
  • Hub::new_from_top: creates a new hub with just the top scope of another hub.

Implementations

Capture any std::error::Error.

See the global capture_error for more documentation.

Creates a new hub from the given client and scope.

Creates a new hub based on the top scope of the given hub.

Returns the current, thread-local hub.

Invoking this will return the current thread-local hub. The first time it is called on a thread, a new thread-local hub will be created based on the topmost scope of the hub on the main thread as returned by Hub::main. If the main thread did not yet have a hub it will be created when invoking this function.

To have control over which hub is installed as the current thread-local hub, use Hub::run.

This method is unavailable if the client implementation is disabled. When using the minimal API set use Hub::with_active instead.

Returns the main thread’s hub.

This is similar to Hub::current but instead of picking the current thread’s hub it returns the main thread’s hub instead.

Invokes the callback with the default hub.

This is a slightly more efficient version than Hub::current and also unavailable in minimal mode.

Like Hub::with but only calls the function if a client is bound.

This is useful for integrations that want to do efficiently nothing if there is no client bound. Additionally this internally ensures that the client can be safely synchronized. This prevents accidental recursive calls into the client.

Binds a hub to the current thread for the duration of the call.

During the execution of f the given hub will be installed as the thread-local hub. So any call to Hub::current during this time will return the provided hub.

Once the function is finished executing, including after it paniced, the original hub is re-installed if one was present.

Looks up an integration on the hub.

Calls the given function with the requested integration instance when it is active on the currently active client.

See the global capture_event for more documentation.

Returns the last event id.

Sends the event to the current client with the current scope.

In case no client is bound this does nothing instead.

See the global capture_event for more documentation.

Captures an arbitrary message.

See the global capture_message for more documentation.

Returns the currently bound client.

Binds a new client to the hub.

Start a new session for Release Health.

See the global start_session for more documentation.

End the current Release Health Session.

See the global sentry::end_session for more documentation.

End the current Release Health Session with the given SessionStatus.

See the global end_session_with_status for more documentation.

Pushes a new scope.

This returns a guard that when dropped will pop the scope again.

Temporarily pushes a scope for a single call optionally reconfiguring it.

See the global with_scope for more documentation.

Invokes a function that can modify the current scope.

See the global configure_scope for more documentation.

Adds a new breadcrumb to the current scope.

See the global add_breadcrumb for more documentation.

Start a new Performance Monitoring Transaction.

See the global start_transaction for more documentation.

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.