Skip to main content

OpenLineageClient

Struct OpenLineageClient 

Source
pub struct OpenLineageClient { /* private fields */ }
Expand description

Non-blocking front-end for emitting OpenLineage events.

Must be constructed from within a Tokio runtime (it spawns a background drain task); see OpenLineageClient::try_new for the non-panicking form.

Implementations§

Source§

impl OpenLineageClient

Source

pub fn new(transport: Arc<dyn Transport>) -> Self

Start a client that drains events into transport on a background task.

§Panics

Panics if called outside a Tokio runtime. Use Self::try_new to get a clear error instead.

Source

pub fn try_new(transport: Arc<dyn Transport>) -> Result<Self, ClientError>

Fallible Self::new: returns ClientError::Config instead of panicking when no Tokio runtime is available to host the drain task.

Source

pub fn with_queue_size(transport: Arc<dyn Transport>, queue_size: usize) -> Self

Self::new with an explicit in-flight queue bound.

§Panics

Panics if called outside a Tokio runtime; see Self::try_with_queue_size.

Source

pub fn try_with_queue_size( transport: Arc<dyn Transport>, queue_size: usize, ) -> Result<Self, ClientError>

Fallible Self::with_queue_size: returns ClientError::Config instead of panicking when no Tokio runtime is available.

§Errors

Returns ClientError::Config if called outside a Tokio runtime.

Source

pub fn builder() -> OpenLineageClientBuilder

Returns a builder for configuring a client’s transport and queue size.

Source

pub fn noop() -> Self

A client whose transport drops everything (NoopTransport).

Source

pub fn from_env() -> Result<Self, ClientError>

Construct from the standard OpenLineage environment.

If OPENLINEAGE_URL is set, builds an HTTP transport (requires the http feature); otherwise returns a no-op client. OPENLINEAGE_API_KEY, if present, is sent as a bearer token.

Source

pub fn emit(&self, event: RunEvent)

Emit an event without blocking. On a full queue the event is dropped with a warning — lineage never applies back-pressure to the query.

Source

pub fn dropped_count(&self) -> u64

Total events dropped so far — on a full/closed queue (back-pressure) or by transport failure. Process-global (shared across clones).

Source

pub async fn shutdown(self)

Flush queued events, flush the transport, and stop the background drain task.

Awaits the drain task to completion so events still queued at process exit are delivered rather than lost, then calls Transport::flush so a transport that buffers internally (e.g. a Kafka producer) delivers its tail before exit. The drain task ends once the event channel closes, which requires every sender to be dropped — so call this after (or while) dropping all other clones of the client; this consumes the clone it is called on. Idempotent across clones: only the clone holding the drain handle awaits it, the rest return immediately.

Trait Implementations§

Source§

impl Clone for OpenLineageClient

Source§

fn clone(&self) -> OpenLineageClient

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OpenLineageClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more