3 个版本
0.1.3-alpha | 2019年6月27日 |
---|---|
0.1.2-alpha | 2019年6月26日 |
0.1.1 |
|
0.1.0 |
|
#2258 in 解析实现
105KB
2.5K SLoC
关于
emmett 是一个统一的日志层,旨在作为 Logstash 的替代品,同时提供额外的/改进的功能。
emmett 使用 Rust 编写,并使用 Tokio,这意味着
- 速度极快 ⚡⚡⚡
- 资源需求非常小(目前简单的管道只需要少于 3 MB 的 RAM)
- 没有垃圾回收器 == 更好、更一致的性能
- 完全异步 - 插件独立运行
- 多线程和 工作窃取
使用方法
emmett 目前使用 TOML 进行配置,但将来将能够解析 Logstash 配置文件 以及其他格式,如 JSON。
由于插件本身尚未更加稳定,Logstash 配置文件解析器目前处于暂停状态。不过,合并请求始终欢迎!
# This is an emmett config file.
[[inputs]]
[inputs.http_poller]
request_timeout = 60
schedule = { cron = "* * * * * UTC" }
codec = "json"
metadata_target = "http_poller_metadata"
truststore = "/path/to/downloaded_truststore.jks"
truststore_password = "mypassword"
[[inputs.http_poller.urls]]
test1 = "https://jsonplaceholder.typicode.com/posts/1"
[[filters]]
[filters.mutate]
replace = { "id" = "yo dawg" }
copy = { "title" = "titleCopy" }
strip = ["body"]
split = { "body" = "\n", "titleCopy" = " repellat " }
capitalize = ["titleCopy"]
join = { "body" = " ... "}
[filters.json]
source = "jsonString"
target = "jsonString"
[filters.date]
match = [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
[[outputs]]
[outputs.elasticsearch]
hosts = ["localhost:9200"]
依赖关系
~27MB
~550K SLoC