-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Move ES dependencies index mapping to JSON template file #2149
Conversation
a06aecf
to
4d06414
Compare
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 PR looks much cleaner now 👍 . Could you please fix the CI? There seem to be some failures
https://travis-ci.org/github/jaegertracing/jaeger/jobs/670675957#L786
54e5b03
to
d03eb08
Compare
@pavolloffay I did fix / adjust the tests and also ran the make job to update the statically embedded files ( |
674969e
to
1168f93
Compare
@pavolloffay the two currently still failing CI builds seems to be out of "my" control as they are related to other components. I already did move up to the current master, no change though. |
I have restarted the CI |
1168f93
to
e969582
Compare
@pavolloffay Maybe you could help me a little with the still failing tests?
But how could that relate to my changes? |
All the tests have to be fixed before merging. If the logic has changed then also adapt the tests for the new logic. Sometimes CI is flaky, the best is to run the test locally and see whether it passes or not. |
@pavolloffay maybe that was lost in translation, but I was not arguing to fix the CI, I gladly dive into things more and provide additional commits to get this PR ready to merge. Just because you wrote so much of that code (and the tests and CI to it) I was hoping you could give me a few hints on why things might be broken. |
Point me to the code where you have questions. Generally speaking, we have around 100% test coverage in Jaeger so test really examine each branch. |
@pavolloffay thanks for the offer to help. I actually did ask questions in my previous #2149 (comment) . One question (1) was actually about the validity of one test in general (asking if I may remove it altogether). The other two questions where about the CI setup in general. And quite honestly there are a whole lot of scripts interworking with each other to setup a test environment for the CI to work against. The complexity there (and even the flakiness you mentioned yourself) create somewhat of a burden for new contributors to understand before they can get to debug their actual code / tests. |
803d924
to
fb00969
Compare
@pavolloffay I am right to assume that I should base my PR commits on release-1.17 branch instead of master itself? Because master seems to be quite active and there are so many unrelated issues with various tests there when I apply my innocent three commits onto there. |
53a1840
to
4378379
Compare
The PR should be based on the latest master. There is already one git conflict in this PR. About the tests as I mentioned previously, the test should be adapted to code changes. I often run ES integration tests locally. It shouldn't be too hard. |
33af9a2
to
820921d
Compare
@pavolloffay allright things are moving forward - merge should be clean and with commit 820921d I adjusted the WriteDependencies test according to the changes of this PR -> all green now. What remains are the other two CI jobs - one about ElasticSearch integration (https://travis-ci.org/github/jaegertracing/jaeger/jobs/674885438#L3648). While that one seems to be related to my changes as it affects ES - there is no real indication / output on why it fails and why this service did not properly start up. And then there is the crossdock docker compose thing not properly starting up (https://travis-ci.org/github/jaegertracing/jaeger/jobs/674885436#L3734) - this is where your CI things actually are a little more complex to understand ... there is no error whatsoever until that service apparently throws a 503: https://travis-ci.org/github/jaegertracing/jaeger/jobs/674885436#L3734 Do you have any more hints on getting things replicated locally. As per contribution guidelines (https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING.md#pre-requisites) I was able to run the tests locally via |
The xdock e2e tests are harder to understand and debug, but they are using ES so assuming I have restarted the job a couple of times it seems to be related to this PR. Let's fix the ES integration and that should also fix the xdock. The ES storage integration test can be run by
Similarly you can run other tests from this script
|
Thanks for the hint @pavolloffay . Well the core ElasticSearch tests are all green (as they were in Travis-CI), but the issue starts with
which is the called at https://github.com/jaegertracing/jaeger/blob/master/scripts/travis/es-integration-test.sh#L18 . The script itself is rather silent about itself and there are 4 additional I shall be trying to replicate this locally and adding some debug statements to see where things might fail when this runs in CI. |
820921d
to
099d30e
Compare
@pavolloffay I found (and hopefully) fixed an issue (of course a stupid syntax error in the template file itself) so kudos to CI :-) When trying to replicate the CI stages locally, I was wondering about the startup of the jaeger-query here: https://github.com/jaegertracing/jaeger/blob/master/scripts/travis/es-integration-test.sh#L25 It misses an Elasticsearch service on port 9200 (the other ones used before were all killed again). |
229af65
to
85730d8
Compare
Try it locally, it does not require ES to be up. Then the test use mocked ES instance.
|
@@ -22,7 +22,10 @@ make build-crossdock-ui-placeholder | |||
GOOS=linux make build-query | |||
|
|||
make test-compile-es-scripts | |||
CID=$(docker run --rm -d -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" -e "xpack.security.enabled=false" -e "xpack.monitoring.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:7.3.0) |
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.
Why is this needed?
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 just playing around with things and locally this was required (no ES was running / mocked on port 9200 in order for those test to run against)
Honestly I am a little lost ... I simply tried the same approach with a single node ES in Docker that was done a few lines above in that script in order to make things work.
@pavolloffay how / where is the ES mock started then? A few lines lines above in the My local attempts fail exactly like the last remaining / failing test in CI (https://travis-ci.org/github/jaegertracing/jaeger/jobs/676153815#L3596) with the jaeger-query (required and missed at 127.0.0.1:16686 by the then failing tests
When I added an ElasticSearch to be running at port 9200 the jaeger-query instance starts successfully and locally the tests run fine against it. So what I am trying to say is: The |
0157c26
to
b2ecb15
Compare
… file like with span and service indices Signed-off-by: Christian Rohmann <christian.rohmann@inovex.de>
… json files Signed-off-by: Christian Rohmann <christian.rohmann@inovex.de>
…and introduce tests for dependencies index / mapping template Signed-off-by: Christian Rohmann <christian.rohmann@inovex.de>
… is no explicit index creation anymore Signed-off-by: Christian Rohmann <christian.rohmann@inovex.de>
7ba89f1
to
b6d1c8b
Compare
@pavolloffay would you kindly take another look at this. I just pushed commit b6d1c8b containing the discussed missing ES instance to run I believe the ElasticSearch intergration tests are skipped most of the time, which is why my tests fail, but master work (check out last run: https://travis-ci.org/github/jaegertracing/jaeger/jobs/677609252#L2285) |
This PR has been obsoleted by #2285 - closing this one. |
Which problem is this PR solving?
This is a follow-up to PR #2144
Short description of the changes
This PR removes the inline ES index template applied to every newly create dependencies index and replaces it with a template matching dependencies indices by name. Similar to PR #1309 which did the same for spans / services