-
Notifications
You must be signed in to change notification settings - Fork 38
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
[RFC] Expose Geo2IP Enrichment feature to other plugins to standardize OpenSearch IP enrichment offering #698
Comments
Hi @andy-k-improving, it's good to know that other plugins might need to use the geo2ip feature. For a plugin to leverage the geo2ip functionality, I believe it would require a datasource as an input parameter. Is |
@heemin32 For now I have a prototype on a remote branch and I will push that by the of the day. |
Feel free to proceed with publishing the PR, and we can continue the discussion there. Based on opensearch-project/sql#3038, it seems it might be useful to have optional field name as parameter input as well. |
That make sense, will update the RFC accordingly. |
Implementation available under: |
The purpose of this RFC (request for comments) is to gather community feedbacks on a proposal to provide a way to expose the IP enrichment functionality as a registered Action on OpenSearch, which will allow other OpenSearch Plugins to leverage the enrichment, instead of reinventing the wheel.
Problem Statement
At the moment the
GeoSpatial
plugin do offer IP enrichment feature, however the scope is limited to Document ingestion and also within theGeoSpatial
plugin itself.This segregation will force other Plugin within the eco-system which wish to perform IP conversion to re-invent the wheel to provide the same conversion, even when
GeoSpatial
plugin is present in the system.And this result in fragmentation and duplicate effort on the IP enrichment capability for OpenSearch platform as a whole.
Current State
The OpenSearch IP Enrichment under
GeoSpatial
plugin is only available during document ingestion, however this doesn't cover all the use case, one of the example would be the executingPPL
command under the SQL plugin, which there is a need to convert given IP address into location information, such asCity name
,Country name
....etc.Without the expose of this functionality from
GeoSpatial
plugin, team from the SQL Plugin will be forced to implement similar if not identical logic, to perform the same operations thatGeoSpatial
currently provided (Convert the IP string into location data).This is not desirable from OpenSearch platform perspective, as this will cause further fragmentation on the IP enrichment functionality front.
Proposal
To expose the IP to Geo data conversion into a standalone function and make it accessible via
NodeClient.execute( )
during OpenSearch runtime, which allow other plugin to dynamically check and leverage this conversion rather maintaining their own conversion feature.Approach
To register an new transportAction during the plugin bootstrap time, which is:
ActionType
,ActionRequest
andActionResult
.API Design
Expose an newlyCreated
GeoSpatialNodeClient
object which responsible to take anIpEnrichmentActionRequest
which is a composite object which contain the following fields:And return an
IpEnrichmentActionResponse
which contains:The text was updated successfully, but these errors were encountered: