-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Add OpenObserve as an officially supported sink #21531
base: master
Are you sure you want to change the base?
Add OpenObserve as an officially supported sink #21531
Conversation
@jszwedko could you help me review this? Is anything pending from my end? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello, this PR doesn't require any code changes and it seems more like a user guide on how to configure an existing sink. It feels like https://github.com/vectordotdev/vector-demos might be the right place for this. Or it could live under a new Community
section in https://vector.dev/guides/
@@ -708,6 +708,7 @@ sinks-logs = [ | |||
"sinks-new_relic", | |||
"sinks-papertrail", | |||
"sinks-pulsar", | |||
"sinks-openobserve", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see this used anywhere else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was following #21514 (comment). Could you guide me on where to open a PR to be able to be added on https://vector.dev/guides/ ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @chaitanya-sistla, thank you for pointing me to this. That proposal makes sense to me.
Since there is no precedent, let's think about it a bit:
- wrap an existing sink, hardcode configuration specific to OpenObserve and expose it as a new sink
- add a guide to the existing http docs, see example here
- add community guide on how to use it
Overall, I am happy with both options. But if we go with (1), we might need to do a few iterations since there is no precedent. Option (2) is more straightforward to do. For option (3), the guides live in website/content/en/guides
.
Also, I would like to cc @jszwedko for awareness.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @pront I would like to follow the first approach if that is ideal. Does my PR reflect the Option (1)? Please let me know if I have to make any changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there is precedent for (1). An example would be the recent changes to the Axiom sink: #21362
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding the CLA, can you try from a different browser or cleaning your cookies? Seems like the Github signin failed for you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I opened in other browsers, it doesn't show an option called Agree anywhere and auto redirects me to github once I signed in with my github.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Chaitanya Sistla seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
I think the issue might be that your commits don't have an email address associated. Could you set an email address via git config user.email
and the use git rebase
to squash and then git commit --amend --reset-author
to add an email address to the commits? The email you use should be associated with your GitHub account.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @pront thank you. Yes I did and made the file changes, does this relate? I would love to make changes in addition but since we don't need any changes in type, I just modified the needed files.
The changes here only modify documentation. We need to actually implement another sink to follow existing precedent (i.e. write Rust code). See the axiom
sink for an example: https://github.com/vectordotdev/vector/blob/master/src/sinks/axiom.rs. That sink also just wraps the http
sink as you would do. Let me know if that is unclear!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, the cla issue is now resolved. Let me look into this.
d9abffa
to
e9bd1fe
Compare
* implement SinkConfig for OpenObserveConfig * chore: add comments and update reference samples * chore: add openobserve to urls and services
af8c091
to
9308824
Compare
src/sinks/openobserve.rs
Outdated
async fn build(&self, cx: SinkContext) -> crate::Result<(VectorSink, Healthcheck)> { | ||
let request = self.request.clone(); | ||
|
||
// OpenObserve supports native HTTP ingest endpoint. This configuration wraps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would move this above SinkConfig
and rephrase as:
/// This sink wraps the Vector HTTP sink to provide official support for OpenObserve's
/// native HTTP ingest endpoint. By doing so, it maintains a distinct configuration for
/// the OpenObserve sink, separate from the Vector HTTP sink. This approach ensures
/// that future changes to OpenObserve's interface can be accommodated without impacting
/// the underlying Vector HTTP sink.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Makefile
Outdated
@@ -367,7 +367,7 @@ test-integration: ## Runs all integration tests | |||
test-integration: test-integration-amqp test-integration-appsignal test-integration-aws test-integration-axiom test-integration-azure test-integration-chronicle test-integration-clickhouse | |||
test-integration: test-integration-databend test-integration-docker-logs test-integration-elasticsearch | |||
test-integration: test-integration-eventstoredb test-integration-fluent test-integration-gcp test-integration-greptimedb test-integration-humio test-integration-http-client test-integration-influxdb | |||
test-integration: test-integration-kafka test-integration-logstash test-integration-loki test-integration-mongodb test-integration-nats | |||
test-integration: test-integration-kafka test-integration-logstash test-integration-loki test-integration-mongodb test-integration-nats test-integration-openobserve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any use of test-integration-openobserve
in this PR. Can we delete it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure
Cargo.toml
Outdated
@@ -885,6 +888,7 @@ mqtt-integration-tests = ["sinks-mqtt"] | |||
nats-integration-tests = ["sinks-nats", "sources-nats"] | |||
nginx-integration-tests = ["sources-nginx_metrics"] | |||
opentelemetry-integration-tests = ["sources-opentelemetry", "dep:prost"] | |||
openobserve-integration-tests = ["sinks-openobserve"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any use of openobserve-integration-tests
in this PR. Can we delete it here and from the github workflows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
This PR adds OpenObserve as an officially supported sink in Vector's documentation. OpenObserve utilizes an HTTP-based API for data ingestion, and this PR proposes updating the documentation with an example configuration for users to follow.
No new functionality is required, as the current HTTP sink already serves the purpose effectively. The primary goal is to improve user experience by offering clear guidance for setting up Vector with OpenObserve, ensuring confidence in its usage as a supported observability solution.
Why This Matters?
By officially documenting OpenObserve as a supported sink, we provide clear setup instructions for users, allowing them to confidently configure Vector for OpenObserve.
Closes: #21514