We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concisely describe the proposed feature A clear and concise description of what you want. For example,
iLogtail的 pkg/pipeline/extensions 中,已经提供了 ClientAuthenticator、Decoder 等 extension 接口,这里需要新增一个 Encoder 接口,用于各类开源协议encode driver的实现依赖(e.g. Prometheus、Influxdb等)
Describe the solution you'd like (if any) A clear and concise description of what you want to achieve and implement. For example,
尽管现阶段各类开源协议的encode实现,都在pkg/protocol/converter中,但从软件设计看,实现不是很优雅,可以参照Decoder的思路,将encode实现也用Encoder接口做抽象统一,结合Pipeline Config灵活选择使用
Additional comments Add any other context or screenshots about the feature request here. For example, the ideal input and output logs.
接口形式(参考Decoder,区分SLS Log和PipelineGroupEvents模型,分别对应EncoderV1和EncoderV2) // Encoder encodes data of iLogtail data models into bytes. // Different drivers with different encoding protocols implement Encoder interface. // // drivers: raw, influxdb, prometheus, sls, ... type Encoder interface { EncoderV1 EncoderV2 } // EncoderV1 supports v1 pipeline plugin interface, // encodes data of v1 model into bytes. // // drivers: sls, influxdb, ... type EncoderV1 interface { EncodeV1(*protocol.LogGroup) ([][]byte, error) EncodeBatchV1([]*protocol.LogGroup) ([][]byte, error) } // EncoderV2 supports v2 pipeline plugin interface, // encodes data of v2 model into bytes. // // drivers: raw, influxdb, prometheus, ... type EncoderV2 interface { EncodeV2(*models.PipelineGroupEvents) ([][]byte, error) EncodeBatchV2([]*models.PipelineGroupEvents) ([][]byte, error) } type EncoderExtension interface { Encoder pipeline.Extension }
接口形式(参考Decoder,区分SLS Log和PipelineGroupEvents模型,分别对应EncoderV1和EncoderV2)
// Encoder encodes data of iLogtail data models into bytes. // Different drivers with different encoding protocols implement Encoder interface. // // drivers: raw, influxdb, prometheus, sls, ... type Encoder interface { EncoderV1 EncoderV2 } // EncoderV1 supports v1 pipeline plugin interface, // encodes data of v1 model into bytes. // // drivers: sls, influxdb, ... type EncoderV1 interface { EncodeV1(*protocol.LogGroup) ([][]byte, error) EncodeBatchV1([]*protocol.LogGroup) ([][]byte, error) } // EncoderV2 supports v2 pipeline plugin interface, // encodes data of v2 model into bytes. // // drivers: raw, influxdb, prometheus, ... type EncoderV2 interface { EncodeV2(*models.PipelineGroupEvents) ([][]byte, error) EncodeBatchV2([]*models.PipelineGroupEvents) ([][]byte, error) } type EncoderExtension interface { Encoder pipeline.Extension }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Concisely describe the proposed feature
A clear and concise description of what you want. For example,
Describe the solution you'd like (if any)
A clear and concise description of what you want to achieve and implement. For example,
Additional comments
Add any other context or screenshots about the feature request here.
For example, the ideal input and output logs.
The text was updated successfully, but these errors were encountered: