Skip to main content

OpenLineage Python Client

Project description

OpenLineage-python

To install from source, run:

$ python -m pip install .

Configuration

Config file

The most common way to configure the OpenLineage Client is by .yaml file, which contains all the details of how to connect to your OpenLineage backend.

The config file is located by:

  1. looking at the OPENLINEAGE_CONFIG environment variable
  2. looking for the openlineage.yml file in the current working directory
  3. looking for the openlineage.yml file in the $HOME/.openlineage directory.

Different ways of connecting to OpenLineage backend are supported by the standardized Transport interface. This is an example config for specifying http transport:

transport:
  type: "http"
  url: "https://backend:5000"
  auth:
    type: "api_key"
    api_key: "f048521b-dfe8-47cd-9c65-0cb07d57591e"

The type property is required. It can be one of the built-in transports or a custom one. There are four built-in transports, http, kafka, console and file. Custom transports type is a fully qualified class name that can be imported.

The rest of the properties are defined by the particular transport. Specifications for the built-in options are below.

HTTP

  • url - required string parameter.
  • endpoint - optional string parameter specifying the endpoint to which events are sent. By default api/v1/lineage.
  • timeout - optional float parameter specifying the timeout when sending events. By default 5 seconds.
  • verify optional boolean attribute specifying if the client should verify TLS certificates of the backend. By default true.
  • auth - optional dictionary specifying authentication options. The type property is required.
    • type: required property if an auth dictionary is set. Set to api_key or to the fully qualified class name of your TokenProvider.
    • api_key: if api_key type is set, it sets value at Authentication HTTP header as Bearer.

Kafka

For KafkaTransport, confluent-kafka needs to be installed. You can also install pip install openlineage-python[kafka]

  • config - required string parameter. A dictionary that contains a Kafka producer config as in Kafka producer config.
  • topic - required string parameter. The topic on what events will be sent.
  • flush - optional boolean parameter. If set to True, Kafka will flush after each event. By default true.

File

  • log_file_path - required string parameter specifying the path of the file (if append is true a file path is expected, otherwise a file prefix is expected).
  • append - optional boolean parameter. If set to True, each event will be appended to a single file (log_file_path), otherwise, all event would be written separately in distinct files suffixed by a timestring. By default false.

Custom transport

To implement a custom transport, follow the instructions in the openlineage/client/transport/transport.py file.

Config as env vars

If there is no config file found, the OpenLineage client looks at environment variables. This way of configuring the client supports only http transport, and only a subset of its config.

  • OPENLINEAGE_URL - point to the service that will consume OpenLineage events.
  • OPENLINEAGE_API_KEY - set if the consumer of OpenLineage events requires a Bearer authentication key.

OPENLINEAGE_URL and OPENLINEAGE_API_KEY can also be set up manually when creating a client instance.

Logging level

In addition to conventional logging approaches, the OpenLineage client library provides an alternative way of configuring its logging behavior. By setting the OPENLINEAGE_CLIENT_LOGGING environment variable, you can establish the logging level for the openlineage.client and its child modules.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openlineage_python-1.1.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openlineage_python-1.1.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file openlineage_python-1.1.0.tar.gz.

File metadata

  • Download URL: openlineage_python-1.1.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for openlineage_python-1.1.0.tar.gz
Algorithm Hash digest
SHA256 18ede78cf9428779097795658c145675ee785c2f63f770f5f513280ac35e4a0d
MD5 666214d50f23c8b8399d8431e6729cd4
BLAKE2b-256 49488dcc7c483f2127cf4d24e420d70dcd1a94a95c81c4a876f079956ff8d9d9

See more details on using hashes here.

File details

Details for the file openlineage_python-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openlineage_python-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27ead9ecb5527ebdc27393fd6f3dcb987610f7ce2962e4c615554c990e372e8b
MD5 48e3db6ca4b214b80b3c618059be9362
BLAKE2b-256 c30d7f6bfdab3084d2e03e155d68e77d1780a6cca077459868a1c07cb02814ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page