-
Notifications
You must be signed in to change notification settings - Fork 539
geoip system tests #18325
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
geoip system tests #18325
Conversation
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
|
This pull request does not have a backport label. Could you fix it @rubvs? 🙏
|
| return false | ||
| } | ||
| return status.Status == "HEALTHY" | ||
| } |
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.
unused code. cleanup.
54e65eb to
7045b25
Compare
fa87eb7 to
7509e8f
Compare
kruskall
left a comment
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 looking into this and digging into the flaky geoip download! 🙇
I'm afraid this has diverged significantly from what the initial ask/issue was about and increased in scope to a point which I'm unsure we should care in apm-server.
|
Here's how I understand this to work: The |
|
Is the problem just that it takes a little bit of time for elasticsearch to download and install the database? It does not block requests while this is happening, so some will be tagged as if no geoip database exists. |
|
Thanks @masseyke, the async parts cleared up some confusion. I have updated the system tests accordingly. @simitt the updated test will trigger a lazy download on the first request, which will then poll for the absence of |
|
Mmh, don't know why the fips unit tests are failing though. |
3edc38d to
5c093c2
Compare
Moreover, from an abstraction level this PR reintroduces locality: The test that requires the geoip db, is responsible for downloading the db. The |
isaacaflores2
left a comment
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 sticking with this issue and sharing the geoIP database details you learned about ElasticSearch.
It looks like test requested in #17603 were already present. Like you mentioned the approvals.json files do not contain a tags field which will assert the absence of tags given that ElasticSearch has been properly setup with the geoip databases.
99a9c62 to
814ca4a
Compare
814ca4a to
910da49
Compare
simitt
left a comment
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.
🎉
|
@kruskall please re-review as you had requested changes, so this can be brought over the finish line |
Closes #17603 & fixes #18313
This PR contains some confusion. Mostly, originating from how ES handles GeoIp pipelines. The GeoIP processor operates in two different phases:
If the GeoIp database is unavailable on creation, all following ingested data will be tagged, see Code
If the database was available on creation - but is currently unavailable on data ingestion (runtime) - the incoming data will only be tagged if
ignore_missing = false, see Code. We haveignore_missing: truein ourgeoippipeline for APM Server, see Code.Therefore, the system tests are testing for 3 things:
tagsfield will be present the response.tags, but theclient.geofields in the response should be missing.