Defaults

defaults用于设置Pipelines配置中的默认值。当Pipeline中没有设置值时生效,或者用于覆盖默认的参数。

Example

  1. defaults:
  2. sources:
  3. - type: file
  4. watcher:
  5. cleanFiles:
  6. maxHistory: 10
  7. sink:
  8. type: dev
  9. printEvents: true

sources

和Pipeline中的source一致。当Pipelines配置了相同type的source时,会覆盖其中未填写字段的默认值。

比如:

  1. sources:
  2. - type: file
  3. watcher:
  4. cleanFiles:
  5. maxHistory: 10

如果Pipeline配置了file source,此时可以设置全局的文件清理保留天数为10天,而不需要在每个Pipeline的file source中都设置一遍。

sink

和Pipeline中的sink一致,如果集群只需要设置一个全局的sink输出源,则只需要在这里配置一次,避免在每个Pipeline中填写。

interceptors

defaults中配置的interceptors会添加到pipeline中定义的interceptors中,但pipeline中的interceptor会覆盖defaults中的同一个type的interceptor。
如果不希望覆盖相同类型的interceptor,而是添加相同type的interceptor,依次进行处理,需要额外填写name字段,进行唯一性标识。

在defaults中已经定义normalize interceptor如下:

  1. defaults:
  2. interceptors:
  3. - type: normalize
  4. processor:
  5. - addMeta: ~

如果在pipelines中定义如下normalize interceptor:

  1. pipelines:
  2. interceptors:
  3. - type: normalize
  4. processor:
  5. - drop:
  6. ...

此时defaults中的normalize interceptor会被覆盖,不会生效。

如果我们希望先执行defaults中的normalize interceptor,接着再执行pipeline中的normalize interceptor,可以在defaults中改为:

  1. defaults:
  2. interceptors:
  3. - type: normalize
  4. name: global # 用于区分pipelines中的normalize
  5. order: 500 # 默认normalize的order值为900,这里定义一个相对较小值,可控制先执行defaults中的normalize
  6. processor:
  7. - addMeta: ~

Loggie会默认设置metricmaxbytesretry3个系统内置interceptors。
如果需要添加其他的默认interceptors,会覆盖掉以上的内置interceptors,所以强烈建议此时将内置interceptors加上,除非你确认不需要以上系统内置的interceptors。

queue

默认为channel queue。