• Stars
    star
    154
  • Rank 242,095 (Top 5 %)
  • Language
    Shell
  • Created about 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

❤for real-time DataOps - where the application and data fabric blends - Lenses

Lenses® for Apache Kafka

This is the official Docker for Lenses that enables you to:

  • View and Query Kafka Topic Data (Avro & JSon) - Browse and query with Lenses SQL
  • View data topologies and monitor every aspect of your Kafka cluster
  • View and manage your Data Schemas
  • Build and monitor ETL pipelines with open source Kafka Connectors
  • Execute KStreams processors instrumented in SQL in Kubernetes or Connector workers
  • Set up alerting and external notifications on liveniness of streaming systems
  • Data governance: Auditing on all actions, data lineage & multi-tenancy
  • Fine-grained security. Role based access with LDAP support
  • Manage Quotas, ACLs

As a state-less application lenses fits naturally in containers and run on Kubernetes or Openshift. It integrates and helps you instrument and view your streaming data pipelines; as well as operate them with confidence !

The documentation is always available at https://docs.lenses.io and data engineering talk is on Discourse and Slack

The Docker Image

Please check out the docker image documentation at docs.lenses.io for the most recent docs and the complete set of features, settings and tweak knobs.

This image is aimed for our enterprise clients, though anyone with a free developer license may use it. Visit our download page to get a free developer license or an enterprise trial. Only Lenses is included in this docker. Our development environment image, which additionally includes Kafka, Connect, Schema Registry and our open-source Stream Reactor collection of connectors can be found as lensesio/box.

This image has to be run alongside a Kafka cluster.

How to run

In the current iteration lensesio/lenses uses environment variables as the primary means for configuration and alternatively configuration files.

Setup with environment variables

For any lenses configuration option, set an environment variable by converting the option name to uppercase and with dots replaced by underscores. As an example lenses.port should be converted to LENSES_PORT. Optionally settings may be mount as volumes under /mnt/settings or /mnt/secrets. As an example you could set —file— volume /mnt/settings/LENSES_PORT with the port number as the content of the file.

A brief example of a docker-compose file to setup Lenses, would be:

version: '2'
services:
  lenses:
    image: lensesio/lenses
    environment:
      LENSES_PORT: 9991

      # # Users are managed within Lenses. Here you can change the superuser username:
      # LENSES_SECURITY_USER: admin
      # # Users are managed within Lenses. Here you can change the superuser password:
      # LENSES_SECURITY_PASSWORD: admin
    ports:
      - 9991:9991
      - 9102:9102
    network_mode: host

The docker image has two volumes where data are saved: /data/log for logs and /data/kafka-streams-state for storing the state of Lenses SQL processors. Depending on your queries and the topics volume, the latter can become pretty large. You should monitor space and plan for adequate capacity. Maintaining the streams state directory between Lenses restarts is mandatory for the SQL processors to be able to continue from where they left.

The container starts with root privileges and drops to nobody:nogroup (65534:65534) before running Lenses. If you start the image as a custom user:group, it falls under your responsibility to make sure that the two volumes are writeable by the custom user:group.

Setup with configuration files

Lenses software configuration is driven by two files: lenses.conf and security.conf. In the docker image we create them automatically from environment variables but it is possible to set directly these files instead.

Create your configuration files according to the documentation and mount them under /mnt/settings and /mnt/secrets respectively —i.e /mnt/settings/lenses.conf and /mnt/secrets/security.conf. You can set either one or both together. Please for lenses.conf omit the settings lenses.secret.file. If by any chance you set them, you have to make sure lenses can find the files described in these settings.

How to build

If you want to build the image yourself, you can just run:

docker build -t lensesiolocal/lenses .

If you are on an older version of Docker which does not support multi-arch builds, you can emulate a multi-arch build via args:

docker build \
  --build-arg TARGETOS=linux --build-arg TARGETARCH=amd64 \
  -t lensesiolocal/lenses .

For more information, please visit our documentation. Enterprise customers may use the support channels made available to them. Developer Edition users are encouraged to visit our slack community. We are always happy to help and hear from you.

With respect,

The Lenses Team.


Copyright 2017-2023, Lenses.io Ltd

More Repositories

1

fast-data-dev

Kafka Docker for development. Kafka, Zookeeper, Schema Registry, Kafka-Connect, Landoop Tools, 20+ connectors
Shell
2,019
star
2

stream-reactor

A collection of open source Apache 2.0 Kafka Connector maintained by Lenses.io.
Scala
1,005
star
3

kafka-topics-ui

Web Tool for Kafka Topics |
JavaScript
877
star
4

kafka-connect-ui

Web tool for Kafka Connect |
JavaScript
504
star
5

schema-registry-ui

Web tool for Avro Schema Registry |
JavaScript
421
star
6

kafka-cheat-sheet

Curated by Lenses.io
305
star
7

kafka-connect-tools

Kafka Connect Tooling
Scala
118
star
8

schema-registry

A CLI and Go client for Kafka Schema Registry. This repository is deprecated and no longer maintained.
Go
117
star
9

kafka-connect-query-language

SQL for Kafka Connectors
Java
96
star
10

coyote

Environment, operations and runtime-meta testing tool.
Go
90
star
11

cypress-websocket-testing

Test WebSocket connections with Cypress
TypeScript
83
star
12

tableprinter

Fast and easy-to-use table printer written in Go. Parse and print anywhere go values such as structs, slices, maps or any compatible value type as a table with ease.
Go
77
star
13

kafka-helm-charts

In-deprecation. For Lenses please check lensesio/lenses-helm-charts. Soon Stream Reactor will also get its own Helm repository.
Smarty
70
star
14

secret-provider

Open Source Secret Provider plugin for the Kafka Connect framework
Scala
45
star
15

lenses-go

Lenses.io CLI (command-line interface)
Go
35
star
16

kafka-autocomplete

Bash completion for Kafka command line utilities.
Shell
34
star
17

kafka-connect-kcql-smt

Kafka-Connect SMT (Single Message Transformations) with SQL syntax (Using Apache Calcite for the SQL parsing)
Scala
32
star
18

kafka-connectors-tests

Test suite for Kafka Connect connectors based on Landoop's Coyote and docker.
Dockerfile
32
star
19

fast-avro-write

Writing an Avro file is not as fast as you might want it. This is a library to write considerably faster to an avro file.
Scala
32
star
20

avro-sql

Use SQL to transform your avro schema/records
Scala
28
star
21

kafka-testing

Repository for advanced unit-testing with embedded kafka services
Scala
25
star
22

fast-data-connect-cluster

Create Kafka-Connect clusters with docker . You put the Kafka, we put the Connect.
Shell
25
star
23

json-sql

Scala
22
star
24

kafka-connect-common

Common components used across the datamountaineer kafka connect connectors
Scala
21
star
25

lenses-jdbc

Lenses.io JDBC driver for Apache Kafka
Kotlin
20
star
26

stream-reactor-dockers

Docker images for Stream Reactor
Shell
19
star
27

lenses-python

Python library for Lenses.io / Kafka platform engineers
Python
18
star
28

lenses-helm-charts

Helm Charts for Lenses.io
HTML
18
star
29

hadoop-bash-completion

Bash completion for hadoop. Includes commands, switches and directory/filename completion.
Shell
17
star
30

lenses-topology-example

An example of streaming microservices with Apache Kafka and Data Flow Topology integration with Lenses Ⓡ DataOps Platform. You can see it in action here: https://www.youtube.com/watch?v=V15mrcA1Wxg
Java
15
star
31

datagen

A small project to allow publishing data to Apache Kafka, Apache Pulsar or any other target system
Scala
14
star
32

landoop-avro4s-ui

User interface for avro4s
HTML
14
star
33

redux-lenses-streaming-example

JavaScript
11
star
34

kafka-testkit

TestKit - Embedded Kafka, Zookeeper, Schema Registry
Java
10
star
35

docker-images

Public docker images we use for our infrastructure.
Go
10
star
36

ftp-kafka-converters

Blog on Kafka Connect [ FTP -> KAFKA ]
Scala
9
star
37

kafka-connect-transformers

Scala
8
star
38

ais-avro-mqtt-connect-tutorial

A small tutorial on Avro, MQTT and Kafka using docker and go.
Go
7
star
39

lenses-jdbc-spark

Apache Spark with Kafka via JDBC !!!
Java
6
star
40

kafka-avro-generator

Scala
6
star
41

lenses-ldap-plugin-template

Java
6
star
42

kafka-celonis-ems-connector

Contains the documentation for the Kafka Execution Management System connector.
5
star
43

lenses-serde

Java
5
star
44

bite

The Cobra's bite
Go
5
star
45

lenses-alerts-plugin

Defines interface for pluggable lenses alert services integration, along with some officially supported implementations.
Scala
4
star
46

avro4s-ui

Avro <=> Scala through a web ui => http://landoop.com/labs
Scala
4
star
47

ansible

Sample roles from Landoop DevOps team.
Shell
4
star
48

lenses-cloud-templates

Available templates to deploy Lenses in different cloud providers
Python
3
star
49

avro-kcql

Scala
3
star
50

connect-mock

This is a dummy application that mocks the Kafka Connect API.
Kotlin
3
star
51

kafka-connect-smt

A Lenses.io Kafka Connect Single Message Transform(SMT) collection
Java
3
star
52

kafka-ui-lib

JavaScript
2
star
53

lenses-udf-example

Lenses.io - User Defined Functions for Lenses SQL
Java
2
star
54

lenses-serde-protobuf-example

Java
2
star
55

json-kcql

Provides support for json projections using the sql like syntax of KCQL
Scala
1
star
56

sql-core

Scala
1
star
57

lenses-security-http-sample

A sample project using the HTTP request to handle the authentication
Java
1
star