https://github.com/wgzhao/trino-event-logger
Trino 查询日志保存插件,用于保存所有Trino的查询语句以及相关信息
https://github.com/wgzhao/trino-event-logger
event-listener trino trino-plugin
Last synced: about 1 month ago
JSON representation
Trino 查询日志保存插件,用于保存所有Trino的查询语句以及相关信息
- Host: GitHub
- URL: https://github.com/wgzhao/trino-event-logger
- Owner: wgzhao
- License: apache-2.0
- Created: 2021-11-21T02:37:56.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-04T03:34:12.000Z (about 3 years ago)
- Last Synced: 2025-03-31T07:41:43.573Z (2 months ago)
- Topics: event-listener, trino, trino-plugin
- Language: Java
- Homepage:
- Size: 29.3 KB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# trino-event-logger
基于 [Trino](https://trino.io) [Event listener](https://trino.io/docs/current/develop/event-listener.html) 接口开发的查询日志保存插件。
默认情况下, Trino 重启后,之前的查询记录都会丢失,为了保存所有查询历史,便于后续统计分析以及其他用途,开发了这个插件。
## 如何使用
### 获取代码
```shell
git clone https://github.com/wgzhao/trino-event-logger
cd trino-event-logger
```### 编译
```shell
mvn clean package assembly:assembly
```### 部署
执行下面的命令,将编译好的 jar 文件拷贝到 trino 集群中(仅需要部署在 coordinator 节点上)
```shell
mkdir /usr/lib/trino/plugin/event-logger/
cp target/trino-event-logger-*-jar-with-dependencies.jar /usr/lib/trino/plugin/event-logger/
```### 配置
在 coordinator 节点上的执行下面的命令,将会在配置目录下(`/etc/trino`) 创建一个名为 `event-listener.properties` 的文件
```shell
touch /etc/trino/event-listener.properties
```编辑该文件,配置以下内容
```ini
event-listener.name=query-event-logger
log-dir=/var/log/trino
log-file=query.log
separator=|
header=true
max-file-size=1000000
```### 重启 coordinator 节点
```shell
/etc/init.d/trino restart
```## 测试
连接到 `trino` 集群,任意执行一些 SQL 语句,比如
```sql
select *
from system.runtime.nodes;
```然后查看 `/var/log/trino/query.log` 文件,可以看到查询日志记录了。
```csv
query_id,query_state,query_user,query_source,query_sql,query_start,query_end,wall_time,queue_time,cpu_time,peak_memory_bytes,query_error_type,query_error_code
20211121_062554_00000_6mf7k,FINISHED,wgzhao,trino-cli,select * from system.runtime.nodes,2021-11-21 14:25:55,2021-11-21 14:25:55,0,0,0,0,,
```## 配置说明
| 配置项 | 默认值 | 说明 |
|-----------|----------|----------------|
| log-dir | `/var/log/trino` | 日志目录,该目录必须存在,且有可写权限 |
| log-file | `query.log` | 日志文件名 |
| separator | `|` | 字段分隔符 |
| header | `true` | 是否输出表头 |
| max-file-size | `104857600` | 日志文件最大大小(字节),超过该大小,则做日志轮转(rotate) |输出的日志内容以及表头含义如下:
| 表头 | 示例 | 说明 |
|--------|--------|-------------|
| query_id | `20211121_062554_00000_6mf7k` | 查询 ID |
| query_state | `FINISHED` | 查询状态 |
| query_user | `wgzhao` | 查询用户 |
| query_source | `trino-cli` | 查询来源 |
| query_sql | `select * from system.runtime.nodes` | 查询 SQL |
| query_start | `2021-11-21 14:25:55` | 查询开始时间 |
| query_end | `2021-11-21 14:25:55` | 查询结束时间 |
| wall_time | `0` | 查询执行时间(秒) |
| queue_time | `0` | 查询排队时间(秒) |
| cpu_time | `12` | 消耗的 CPU 时间 |
| peak_memory_bytes | `1224` | 消耗的内存峰值 |
| query_error_type | `` | 查询失败错误类型 |
| query_error_code | `1334` | 查询失败错误码 |