-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[Exporter/OpenSearch] OpenSearch exporter setup #23819
[Exporter/OpenSearch] OpenSearch exporter setup #23819
Conversation
…request.yaml, other.yaml
OpenSearch Exporter initial PR
Pinging @Aneurysm9 for the initial review |
943e2c1
to
993ce1a
Compare
- `flush`: Event bulk buffer flush settings | ||
- `bytes` (default=5242880): Write buffer flush limit. | ||
- `interval` (default=30s): Write buffer time limit. | ||
- `retry`: Event retry settings |
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.
This should probably use the exporterhelper.RetrySettings
type to provide consistency of configuration across exporters.
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.
These values are used to create a backoff function for the OpenSearch client.
We'll check if exporterhelper.RetrySettings
can be used here.
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.
The config struct can be changed to use exporterhelper.RetrySettings
but the implied behaviour may be different.
exporterhelper.WithRetry
retries a batch of trace records, right? OpenSearch supports retrying one failed document from a bulk indexing request.
Would it be more appropriate to log documents that OpenSearch failed to index and move on? Currently they are added back to the bulk indexer queue to be tried later.
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.
You can use the consumererror.Traces
type to return an error containing the spans that failed to export. The exporterhelper
error handler will unwrap the error, extract the spans, and replace the request with one containing just the failed spans.
…n OpenSearch readme.
…in OpenSearch readme.
@Aneurysm9 based on your feedback and how opensearch-go client is set up, I'd like to do the following:
This way the exporter will not use internal queue management done by opensearch-go and use existing opentel-collector data structures and code where possible. What do you think? |
Remove exporter-specific settings and use confighttp.HTTPClientSettings and exporterhelper.RetrySettings Update README to reflect the above. Signed-off-by: Max Ksyunz <max.ksyunz@improving.com>
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.
LGTM.
I've still got some questions around the retry and authN logic, but I think we can deal with those on the implementation PRs when they're more concrete conversations.
Signed-off-by: Max Ksyunz <max.ksyunz@improving.com>
53a36a5
to
a2ed3e8
Compare
# Conflicts: # .github/dependabot.yml
dependabot.yml reached maximum limit so a package is getting dropped but CI will fail without this change. See open-telemetry#19410 Signed-off-by: Max Ksyunz <max.ksyunz@improving.com>
GHAs failed on a known flaky test. See #21094 Is there a way to re-run it? |
Hi! can we enable this exporter for logs as well? |
Hi! |
Description:
Adding initial set-up for OpenSearch exporter addition. Future PRs will include adding functionality to the exporter, code coverage and e2e tests.
Broken up for easier review.
New component proposal.
Link to tracking Issue:
Start of resolution of #7905.
Testing:
Will come in future PR to 80+% coverage.
Break-up of #23045