Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cloudandthings/trino-event-logger
A simple Trino plugin to log audit logs to a database
https://github.com/cloudandthings/trino-event-logger
Last synced: 6 days ago
JSON representation
A simple Trino plugin to log audit logs to a database
- Host: GitHub
- URL: https://github.com/cloudandthings/trino-event-logger
- Owner: cloudandthings
- Created: 2024-09-05T13:26:50.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-02T12:56:11.000Z (3 months ago)
- Last Synced: 2024-11-09T02:52:31.359Z (2 months ago)
- Language: Java
- Homepage:
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Trino Event Logger
## From Source
Checkout and build the plugin:
```
mvn license:format
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:4.0.0:sort
mvn clean package dependency:copy-dependencies -DskipTests -DincludeScope=runtime
```This will create a folder in the `target` directory. Copy this folder to
the Trino plugin folder:```
cp -r target/dependency/*.jar /path/to/trino/folder/plugin
cp -r target/trino-event-logger*.jar /path/to/trino/folder/plugin
```Adding the plugin to a docker image:
```Dockerfile
# First stage: Download and unzip the plugin
FROM alpine:latest as downloader# Install necessary tools
RUN apk add --no-cache curl unzip# Create a directory for the plugin
RUN mkdir -p /tmp/trino-event-logger-unpacked# Download and unzip the content from GitHub into the plugin directory
RUN curl -L -o /tmp/trino-event-logger.zip https://github.com/cloudandthings/trino-event-logger/releases/download/452.1/package.zip \
&& unzip /tmp/trino-event-logger.zip -d /tmp/trino-event-logger-unpacked# Second stage: Use the Trino base image
FROM trinodb/trino:452# Create the plugin directory
RUN mkdir -p /usr/lib/trino/plugin/trino-event-logger# Copy the unzipped plugin from the first stage
COPY --from=downloader /tmp/trino-event-logger-unpacked/* /usr/lib/trino/plugin/trino-event-logger/# Start Trino
CMD ["/usr/lib/trino/bin/run-trino"]
```Create a database/schema in MySQL:
```
create database trino_db_event_listener;
```Create an `event-listener.properties` file with contents like:
```
event-listener.name=telogger
telogger.url=jdbc:postgresql://host.docker.internal:5455/trino_db_event_listener
telogger.user=
telogger.password=
```Finally, restart trino. Once Trino is up and running, verify the plugin is
loaded and the `queries` table was created in MySQL.If the plugin is working correctly, you will see the following in the Trino
`server.log` file:```
2022-04-29T16:03:11.763-0400 INFO main io.trino.eventlistener.EventListenerManager -- Loading event listener etc/event-listener.properties --
2022-04-29T16:03:11.919-0400 INFO main io.trino.dblistener.FlywayMigration Performing migrations...
2022-04-29T16:03:12.235-0400 INFO main org.flywaydb.core.internal.license.VersionPrinter Flyway Community Edition 7.15.0 by Redgate
2022-04-29T16:03:12.236-0400 INFO main org.flywaydb.core.internal.database.base.BaseDatabaseType Database: jdbc:mysql://localhost:3306/bell_logger (MySQL 8.0)
2022-04-29T16:03:12.406-0400 INFO main org.flywaydb.core.internal.command.DbValidate Successfully validated 1 migration (execution time 00:00.024s)
2022-04-29T16:03:12.440-0400 INFO main org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory Creating Schema History table `bell_logger`.`flyway_schema_history` ...
2022-04-29T16:03:12.561-0400 INFO main org.flywaydb.core.internal.command.DbMigrate Current version of schema `bell_logger`: << Empty Schema >>
2022-04-29T16:03:12.571-0400 INFO main org.flywaydb.core.internal.command.DbMigrate Migrating schema `bell_logger` to version "1 - create schema"
2022-04-29T16:03:12.652-0400 INFO main org.flywaydb.core.internal.command.DbMigrate Successfully applied 1 migration to schema `bell_logger`, now at version v1 (execution time 00:00.101s)
2022-04-29T16:03:12.663-0400 INFO main io.trino.dblistener.FlywayMigration Performed 1 migrations
```## Testing
```bash
docker compose up --build
docker compose down -v
```