Class: LogStash::Filters::ElasticIntegration
- Inherits:
-
Base
- Object
- Base
- LogStash::Filters::ElasticIntegration
- Defined in:
- lib/logstash/filters/elastic_integration.rb
Constant Summary collapse
- ELASTICSEARCH_DEFAULT_PORT =
9200.freeze
- ELASTICSEARCH_DEFAULT_PATH =
'/'.freeze
- HTTP_PROTOCOL =
"http".freeze
- HTTPS_PROTOCOL =
"https".freeze
- ELASTIC_API_VERSION =
"2023-10-31".freeze
- USER_AGENT_HEADER_VALUE =
"Logstash/v#{LOGSTASH_VERSION} (ElasticIntegration/v#{VERSION})"
Instance Method Summary collapse
- #close ⇒ Object
-
#filter(event) ⇒ Object
def register.
- #filter_matched_java(java_event) ⇒ Object
-
#initialize(*a, &b) ⇒ ElasticIntegration
constructor
Validates that this plugin can be initialized BEFORE loading dependencies and delegating to super, so that when this plugin CANNOT be run the process is not encumbered by those dependencies.
- #multi_filter(ruby_api_events) ⇒ Object
- #register ⇒ Object
Constructor Details
#initialize(*a, &b) ⇒ ElasticIntegration
Validates that this plugin can be initialized BEFORE loading dependencies and delegating to super, so that when this plugin CANNOT be run the process is not encumbered by those dependencies.
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/logstash/filters/elastic_integration.rb', line 109 def initialize(*a, &b) ensure_complete_logstash! ensure_java_major_version!(21) require_relative "elastic_integration/jar_dependencies" require_relative "elastic_integration/event_api_bridge" require_relative "elastic_integration/geoip_database_provider_bridge" extend EventApiBridge extend GeoipDatabaseProviderBridge super java_import('co.elastic.logstash.filters.elasticintegration.util.PluginContext') @plugin_context = PluginContext.new(execution_context&.pipeline_id || "UNDEF", id) end |
Instance Method Details
#close ⇒ Object
162 163 164 165 166 |
# File 'lib/logstash/filters/elastic_integration.rb', line 162 def close @elasticsearch_rest_client&.close @geoip_database_provider&.close @event_processor&.close end |
#filter(event) ⇒ Object
def register
144 145 146 |
# File 'lib/logstash/filters/elastic_integration.rb', line 144 def filter(event) fail "#{self.class}#filter is not allowed. Use #{self.class}#multi_filter" end |
#filter_matched_java(java_event) ⇒ Object
158 159 160 |
# File 'lib/logstash/filters/elastic_integration.rb', line 158 def filter_matched_java(java_event) filter_matched(mutable_ruby_view_of_java_event(java_event)) end |
#multi_filter(ruby_api_events) ⇒ Object
148 149 150 151 152 153 154 155 156 |
# File 'lib/logstash/filters/elastic_integration.rb', line 148 def multi_filter(ruby_api_events) LogStash::Util.set_thread_plugin(self) incoming_java_api_events = ruby_events_as_java(ruby_api_events) outgoing_java_api_events = @event_processor.process_events(incoming_java_api_events) java_events_as_ruby(outgoing_java_api_events) end |
#register ⇒ Object
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/logstash/filters/elastic_integration.rb', line 126 def register @logger.debug("Registering `filter-elastic_integration` plugin.", :params => original_params) validate_connection_settings! @ssl_enabled = infer_ssl_from_connection_settings if @ssl_enabled.nil? validate_ssl_settings! validate_auth_settings! validate_and_normalize_hosts initialize_elasticsearch_rest_client! initialize_geoip_database_provider! initialize_event_processor! perform_preflight_check! check_versions_alignment end |