HTTP
Last updated
Last updated
flusher_http
flusher
插件可以实现将采集到的数据,经过处理后,通过http格式发送到指定的地址。
推荐版本:iLogtail v1.4.0 及以上
Type
String
是
插件类型,固定为flusher_http
RemoteURL
String
是
要发送到的URL地址,示例:http://localhost:8086/write
Headers
Map<String,String>
否
发送时附加的http请求header,如可添加 Authorization、Content-Type等信息,支持动态变量写法,如{"x-db":"%{tag.db}"}
v2版本支持从Group的Metadata或者Group.Tags中获取动态变量,如{"x-db":"%{metadata.db}"}
或者{"x-db":"%{tag.db}"}
Query
Map<String,String>
否
发送时附加到url上的query参数,支持动态变量写法,如{"db":"%{tag.db}"}
v2版本支持从Group的Metadata或者Group.Tags中获取动态变量,如{"db":"%{metadata.db}"}
或者{"db":"%{tag.db}"}
Timeout
String
否
请求的超时时间,默认 60s
Retry.Enable
Boolean
否
是否开启失败重试,默认为 true
Retry.MaxRetryTimes
Int
否
最大重试次数,默认为 3
Retry.InitialDelay
String
否
首次重试时间间隔,默认为 1s
,重试间隔以会2的倍数递增
Retry.MaxDelay
String
否
最大重试时间间隔,默认为 30s
Encoder
Struct
否
ilogtail数据编码协议配置,优先级高于Convert
Encoder.Type
String
否
encoder 插件的类型
Encoder.Options
Map<String,Struct>
否
encoder 插件的配置
Convert
Struct
否
ilogtail数据转换协议配置
Convert.Protocol
String
否
ilogtail数据转换协议,可选值:custom_single
,influxdb
, jsonline
。默认值:custom_single
v2版本可选值:raw
Convert.Encoding
String
否
ilogtail flusher数据转换编码,可选值:json
, custom
,默认值:json
Convert.Separator
String
否
ilogtail数据转换时,PipelineGroupEvents中多个Events之间拼接使用的分隔符。如。若不设置,则默认不拼接Events,即每个Event作为独立请求向后发送。 默认值为空。
当前仅在Convert.Protocol: raw
有效。
Convert.IgnoreUnExpectedData
Boolean
否
ilogtail数据转换时,遇到非预期的数据的行为,true 跳过,false 报错。默认值 true
Convert.TagFieldsRename
Map<String,String>
否
对日志中tags中的json字段重命名
Convert.ProtocolFieldsRename
Map<String,String>
否
ilogtail日志协议字段重命名,可当前可重命名的字段:contents
,tags
和time
Concurrency
Int
否
向url发起请求的并发数,默认为1
MaxConnsPerHost
Int
否
每个host上的最大HTTP连接数(包含了拨号阶段的、活跃的、空闲的),默认0
,表示不限制
当其值大于http.DefaultTransport.(*http.Transport).MaxConnsPerHost时(当前是0
),会采用该值
MaxIdleConnsPerHost
Int
否
每个host上的最大空闲的HTTP连接数,默认0
,表示不限制
当其值大于http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost时(当前是0
),会采用该值
IdleConnTimeout
String
否
HTTP连接在关闭前保持闲置状态的最长时间,默认90s
当其值大于http.DefaultTransport.(*http.Transport).IdleConnTimeout时(当前是90s
),会采用该值
WriteBufferSize
Int
否
写缓冲区的大小,不填不会给http.DefaultTransport.(*http.Transport).WriteBufferSize赋值,此时采用默认的4KB
当其值大于0时,会采用该值
QueueCapacity
Int
否
内部channel的缓存大小,默认为1024
Authenticator
Struct
否
鉴权扩展插件配置
Authenticator.Type
String
否
鉴权扩展插件类型
Authenticator.Options
Map<String,Struct>
否
鉴权扩展插件配置内容
AsyncIntercept
Boolean
否
异步过滤数据,默认为否
DropEventWhenQueueFull
Boolean
否
当队列满时是否丢弃数据,否则需要等待,默认为不丢弃
Compression
string
否
压缩策略,目前支持gzip和snappy,默认不开启
采集/home/test-log/
路径下的所有文件名匹配*.log
规则的文件,并将采集结果以 custom_single
协议、json
格式提交到 http://localhost:8086/write
。 且提交时,附加 header x-filepath,其值使用log中的 Tag:path 的值
采集Docker日志,并将采集结果以jsonline
协议发送到http://localhost:9428/insert/jsonline
。
需要注意的是,由于使用jsonline
协议(会将日志的content和tag打平),所以仅支持使用json
格式进行提交。 由于jsonline
默认会批量提交日志,所以建议调低QueueCapacity
,避免在日志量较大的情况下,发生内存占用过多或OOM的问题。
采集Prometheus指标,并将指标以Prometheus协议发送到PROMETHEUS_REMOTEWRITE_ADDRESS
。 这里用到了ext_default_encoder
插件,该插件可以配置使用Prometheus Encoder,从而支持将采集到的数据转换为Prometheus协议。