Plugins
This page describes how to install plugins in Lenses.
The following implementations can be specified:
Serializers/Deserializers Plug your serializer and deserializer to enable observability over any data format (i.e., protobuf / thrift)
Custom authentication Authenticate users on your proxy and inject permissions HTTP headers.
LDAP lookup Use multiple LDAP servers or your group mapping logic.
SQL UDFs User Defined Functions (UDF) that extend SQL and streaming SQL capabilities.
Once built, the jar files and any plugin dependencies should be added to Lenses and, in the case of Serializers and UDFs, to the SQL Processors if required.
Adding plugins
On startup, Lenses loads plugins from the $LENSES_HOME/plugins/
directory and any location set in the environment variable LENSES_PLUGINS_CLASSPATH_OPTS
. These locations Lenses is watching, and dropping a new plugin will hot-reload it. For the Lenses docker (and Helm chart) you use /data/plugins.
Any first-level directories under the paths mentioned above, detected on startup will also be monitored for new files. During startup, the list of monitored locations will be shown in the logs to help confirm the setup.
Whilst all jar files may be added to the same directory (e.g /data/plugins
), it is suggested to use a directory hierarchy to make management and maintenance easier.
An example hierarchy for a set of plugins:
SQL Processors in Kubernetes
There are two ways to add custom plugins (UDFs and Serializers) to the SQL Processors; (1) via making available a tar.gz archive at an HTTP (s) address, or (2) via creating a custom docker image.
Archive served via HTTP
With this method, a tar archive, compressed with gzip, can be created that contains all plugin jars and their dependencies. Then this archive should be uploaded to a web server that the SQL Processors containers can access, and its address should be set with the option lenses.kubernetes.processor.extra.jars.url
.
Step by step:
Create a tar.gz file that includes all required jars at its root:
Upload to a web server, ie.
https://example.net/myfiles/FILENAME.tar.gz
Set
For the docker image, set the corresponding environment variable
Custom Docker image
The SQL Processors that run inside Kubernetes use the docker image lensesio-extra/sql-processor
. It is possible to build a custom image and add all the required jar files under the /plugins
directory, then set lenses.kubernetes.processor.image.name
and lenses.kubernetes.processor.image.tag
options to point to the custom image.
Step by step:
Create a Docker image using
lensesio-extra/sql-processor:VERSION
as a base and add all required jar files under/plugins
:Upload the docker image to a registry:
Set
For the docker image, set the corresponding environment variables
Last updated