Skip to content
New issue

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

feat(new sink): Initial aws_kinesis_firehose sink #1388

Merged
merged 10 commits into from
Dec 19, 2019
Merged

Conversation

lukesteensen
Copy link
Member

@lukesteensen lukesteensen commented Dec 19, 2019

Closes #559
Closes #1062

This is another stab at an aws_kinesis_firehose sink. It's mostly a copied and modified version of the aws_kinesis_streams sinks, with some additional copying from the elasticsearch sink test setup (since we configure it to write to ES for the test).

There's probably a good bit of deduplication we could do between the two sinks (and ES tests), but this PR defers all of that in favor of getting something working.

I initially tried to test against an S3 delivery stream, which we should do at some point, but was foiled by some combination of localstack's S3 implementation and rusoto (localstack/localstack#1647).

One thing that's unclear is whether or not we should add an option to encode newlines for delivery streams aimed at S3. I have not looked at how the objects look without it.

External refs: fluent/fluent-bit#2485

@lukesteensen lukesteensen added type: new feature domain: sinks Anything related to the Vector's sinks labels Dec 19, 2019
@binarylogic binarylogic changed the title feat(new sink): add aws_kinesis_firehose sink feat(new sink): Initial aws_kinesis_firehose sink Dec 19, 2019
Copy link
Contributor

@binarylogic binarylogic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs look good


#[derive(Clone)]
pub struct KinesisFirehoseService {
client: Arc<KinesisFirehoseClient>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

};
let common = ElasticSearchCommon::parse_config(&config).expect("Config error");

let client = reqwest::Client::builder()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kinda wanna get rid of reqwest and just use the elastic libraries serde feature. But we can do that in the future.

Copy link
Contributor

@LucioFranco LucioFranco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :shipit: 🔥

Signed-off-by: Luke Steensen <[email protected]>
@lukesteensen lukesteensen merged commit 518ba0e into master Dec 19, 2019
@lukesteensen lukesteensen deleted the firehose branch December 19, 2019 22:59
@ghost
Copy link

ghost commented Dec 20, 2019

This looks great! I wrote a suggestion about further improving it in #1407.

@binarylogic binarylogic added type: feature A value-adding code addition that introduce new functionality. and removed type: new feature labels Jun 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain: sinks Anything related to the Vector's sinks type: feature A value-adding code addition that introduce new functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New aws_kinesis_firehose sink
3 participants