-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Supports OpenSearch V2 through ES_* environment variables #3765
Conversation
...orage/elasticsearch/src/test/java/zipkin2/elasticsearch/integration/OpenSearchExtension.java
Outdated
Show resolved
Hide resolved
77197e1
to
7679e99
Compare
I think it is easiest to make the image first in a separate PR. Then, merge and we can use it. I don't recall the history of the feature ask, but if someone hasn't asked for 1.x maybe better to only do 2.x because there's a linear time increase per images. Usually we don't add old versions as a first storage option. At any rate, you would do a PR for the image, and make sure it is in the docker readme test workflows etc. When that merges, after master builds clean, you can re-cut the last version docker images as docker-x.x.x. Finally, as it is a new image, it will be private by default, so you need to click to make it public https://github.com/orgs/openzipkin/packages |
Add Zipkin support of OpenSearch storage (add Docker images) as dicussed #3765 (comment) --------- Signed-off-by: Andriy Redko <[email protected]>
@reta for the error around |
also don't forget to set this public https://github.com/orgs/openzipkin/packages/container/zipkin-opensearch2/settings |
Thanks @codefromthecrypt , it seems like we need to make a 3.3.1 release first since Docker images are looking for Zipkin 3.3.1 bits ... |
@reta oh sorry.. I didn't remember what release was current. change the test code to use 3.3.0 and re-cut docker-3.3.0. that's the simplest way and will get the new test image |
@codefromthecrypt apologies, I see the image is 100% pushed but I cannot see it in the |
switched visibility to public ;) https://github.com/orgs/openzipkin/packages/container/zipkin-opensearch2/settings |
when ready, re-prep the PR description, after making sure any markdown that need a usage example update have been so. Also, anything in general READMEs about things we test mention opensearch since after this, it is true. |
e8a6fee
to
b948a8b
Compare
also bump poms 3.3.1-SNAPSHOT -> 3.4.0-SNAPSHOT as def not a patch ;) |
also I think a question originally was about hosted aws opensearch (zipkin-aws). want to try integrating with that via snapshot locally prior to mark this for review? |
Absolutely, thanks @codefromthecrypt ! |
@codefromthecrypt I have to admit failure to verify the flow, I was not able to get AWS managed OpenSearch instance(s) for testing purposes. On an optimistic note, AFAIK the managed OpenSearch uses the same open source distribution and should work seamlessly. |
okie dokie. I'm a bit swamped, but if I've not reviewed this by saturday, nag me as I should be able to get time to look closely by then. |
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 for doing this! As far as I understand, this makes a heuristic internally to detect OS vs ES, so that the server config pretty much remains the same. Do you know if zipkin-dependencies works with OS using the current driver? Because merging this without dependencies working will immediately lead to another problem.
p.s. maybe cc anyone who has asked for OS on this PR so that they can know about it directly
@@ -3,7 +3,7 @@ | |||
This is a plugin to the Elasticsearch storage component, which uses |
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 for the detailed updates here
} | ||
|
||
@Nested | ||
class ITEnsureIndexTemplate extends zipkin2.elasticsearch.integration.ITEnsureIndexTemplate { |
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 forget.. this appears duplicated and is using the method elasticsearch()
not the field. Can this be pulled up?
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.
Sorry, you mean replace elasticsearch()
-> elasticsearch
? (or better to say opensearch
in this case)
zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/OpensearchVersion.java
Show resolved
Hide resolved
...torage/elasticsearch/src/main/java/zipkin2/elasticsearch/ElasticsearchSpecificTemplates.java
Show resolved
Hide resolved
Ah, thanks a lot for pointing it out @codefromthecrypt, it won't work with Elasticsearch, we will need to add OpenSearch module alongside the Elasticsearch one. |
Hm ...
|
let's hold merging this until that's sorted out as I don't want to have a new storage option that doesn't work due to zipkin-dependencies (bomb) |
I could pick it up later this week, very likely over the weekend (the good thing, AFAIK OpenSearch has Spark / Hadoop support on par with Elasticsearch) |
thanks @reta! |
zipkin-storage/elasticsearch/src/main/java/zipkin2/elasticsearch/BaseVersion.java
Show resolved
Hide resolved
Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Andriy Redko <[email protected]>
Signed-off-by: Andriy Redko <[email protected]>
…onTest Signed-off-by: Andriy Redko <[email protected]>
… ElasticsearchSpecificTemplatesTest Signed-off-by: Andriy Redko <[email protected]>
And #3634 strikes again |
@codefromthecrypt this is super funny:
The link opens ... but:
|
Signed-off-by: Andriy Redko <[email protected]>
yes, no PR is complete without unrelated bruising from lint checkers ;) |
ok! finally time to ship this 👍 |
Add Zipkin Dependencies support of for OpenSearch storage (see please openzipkin/zipkin#3765). Tested with Zipkin 3.4.0-SNAPSHOT locally: --------- Signed-off-by: Andriy Redko <[email protected]>
Add Zipkin support of OpenSearch storage
The Elasticsearch storage now supports OpenSearch as a backed as well. The implementation relies on
distribution
property that is returned as part of Elasticsearch / OpenSearch HTTPGET /
API. Please note that the storage version is now abstracted asBaseVersion
with two implementation:ElasticsearchVersion
andOpensearchVersion
.Although OpenSearch is a fork of Elasticsearch as of 7.10.2, the projects diverged sufficiently far from each other. Luckily,
Zipkin
relies on the features that have not been impacted (so far) and work the same way across both projects.