logstash-output-vespa_feed 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b9db4968f8c7dcc865a8e7fbb3f8d3f0e23e2de4ebf2289da048be6558a7feef
4
+ data.tar.gz: b58c0b4b81ac2eb3d6e29eb1c8a3f19313c0a5882455f29600fc00c8056693eb
5
+ SHA512:
6
+ metadata.gz: f3c6f8d73af1c4b3838951eb553d7bb61a5fd94024c1a1f9dd73ecd2b00240a0ffb0b8266e1ec63e23b831c04e06ba9d5d076c53c1680a9d3896d8504efa3940
7
+ data.tar.gz: 4ee61fe12faf10c9a185321270983e3d66d6ce313214036e921949d6e2e25fd1349ee77b19710743794c17fd390656aa6b0adaa0e365f566be264c20d3318dc4
data/CHANGELOG.md ADDED
@@ -0,0 +1,2 @@
1
+ ## 0.2.0
2
+ - initial release (0.1.x is pure Ruby)
data/CONTRIBUTORS ADDED
@@ -0,0 +1,10 @@
1
+ The following is a list of people who have contributed ideas, code, bug
2
+ reports, or in general have helped logstash along its way.
3
+
4
+ Contributors:
5
+ * Radu Gheorghe - radu@vespa.ai
6
+
7
+ Note: If you've sent us patches, bug reports, or otherwise contributed to
8
+ Logstash, and you aren't on the list above and want to be, please let us know
9
+ and we'll make sure you're here. Contributions from folks like you are what make
10
+ open source awesome.
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ source 'https://rubygems.org'
3
+
4
+ gemspec
5
+
6
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
7
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
8
+
9
+ if Dir.exist?(logstash_path) && use_logstash_source
10
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
11
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
12
+ end
data/LICENSE ADDED
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright 2020 Elastic and contributors
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
data/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # Logstash Ouput Plugin for Vespa
2
+
3
+ Plugin for [Logstash](https://github.com/elastic/logstash) to write to [Vespa](https://vespa.ai). Apache 2.0 license.
4
+
5
+ ## Installation
6
+
7
+ Download and unpack/install Logstash, then:
8
+ ```
9
+ bin/logstash-plugin install logstash-output-vespa
10
+ ```
11
+
12
+ ## Development
13
+ If you're developing the plugin, you'll want to do something like:
14
+ ```
15
+ # build the gem
16
+ ./gradlew gem
17
+ # install it as a Logstash plugin
18
+ /opt/logstash/bin/logstash-plugin install /path/to/logstash-output-vespa/logstash-output-vespa-$VERSION.gem
19
+ # profit
20
+ /opt/logstash/bin/logstash
21
+ ```
22
+ Some more good info can be found [here](https://www.elastic.co/guide/en/logstash/current/java-output-plugin.html).
23
+ ## Usage
24
+
25
+ Logstash config example:
26
+
27
+ ```
28
+ # read stuff
29
+ input {
30
+ # if you want to just send stuff to a "message" field from the terminal
31
+ #stdin {}
32
+
33
+ file {
34
+ # let's assume we have some data in a CSV file here
35
+ path => "/path/to/data.csv"
36
+ # read the file from the beginning
37
+ start_position => "beginning"
38
+ # on Logstash restart, forget where we left off and start over again
39
+ sincedb_path => "/dev/null"
40
+ }
41
+ }
42
+
43
+ # parse and transform data here
44
+ filter {
45
+ csv {
46
+ # how does the CSV file look like?
47
+ separator => ","
48
+ quote_char => '"'
49
+
50
+ # if the first line is the header, we'll skip it
51
+ skip_header => true
52
+
53
+ # columns of the CSV file. Make sure you have these fields in the Vespa schema
54
+ columns => ["id", "description", ...]
55
+ }
56
+
57
+ # remove fields that we don't need. Here you can do a lot more processing
58
+ mutate {
59
+ remove_field => ["@timestamp", "@version", "event", "host", "log", "message"]
60
+ }
61
+ }
62
+
63
+ # publish to Vespa
64
+ output {
65
+ # for debugging. You can have multiple outputs (just as you can have multiple inputs/filters)
66
+ #stdout {}
67
+
68
+ vespa_feed { # including defaults here
69
+
70
+ # Vespa endpoint, namespace, doc type (from the schema)
71
+ vespa_url => "http://localhost:8080"
72
+ namespace => "no_default_provide_yours"
73
+ document_type => "no_default_provide_yours_from_schema"
74
+
75
+ # take the document ID from this field in each row
76
+ # if the field doesn't exist, we generate a UUID
77
+ id_field => "id"
78
+
79
+ # how many HTTP/2 connections to keep open
80
+ max_connections => 1
81
+ # number of streams per connection
82
+ max_streams => 128
83
+ # request timeout (seconds) for each write operation
84
+ operation_timeout => 180
85
+ # after this time (seconds), the circuit breaker will be half-open:
86
+ # it will ping the endpoint to see if it's back,
87
+ # then resume sending requests when it's back
88
+ grace_period => 10
89
+
90
+ # how many times to retry on transient failures
91
+ max_retries => 10
92
+ }
93
+ }
94
+ ```
95
+
96
+ Then you can start Logstash while pointing to the config file like:
97
+ ```
98
+ bin/logstash -f logstash.conf
99
+ ```
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.0
@@ -0,0 +1,126 @@
1
+ :plugin: example
2
+ :type: output
3
+ :default_codec: plain
4
+ // Update header with plugin name and default codec
5
+
6
+ ///////////////////////////////////////////
7
+ START - GENERATED VARIABLES, DO NOT EDIT!
8
+ ///////////////////////////////////////////
9
+ :version: %VERSION%
10
+ :release_date: %RELEASE_DATE%
11
+ :changelog_url: %CHANGELOG_URL%
12
+ :include_path: ../../../../logstash/docs/include
13
+ ///////////////////////////////////////////
14
+ END - GENERATED VARIABLES, DO NOT EDIT!
15
+ ///////////////////////////////////////////
16
+
17
+ [id="plugins-{type}s-{plugin}"]
18
+
19
+ === Vesoa output plugin
20
+
21
+ include::{include_path}/plugin_header.asciidoc[]
22
+
23
+ ==== Description
24
+
25
+ Writes documents to Vespa.
26
+
27
+ // Format anchors and links to support generated ids for versioning
28
+ // Sample anchor: [id="plugins-{type}s-{plugin}-setting_name"]
29
+ // Sample link: <<plugins-{type}s-{plugin}-setting_name>>
30
+
31
+ [id="plugins-{type}s-{plugin}-options"]
32
+ ==== Vespa Output Configuration Options
33
+
34
+ [cols="<,<,<",options="header",]
35
+ |=======================================================================
36
+ |Setting |Input type|Required
37
+ | <<plugins-{type}s-{plugin}-vespa_url>> |<<string,string>>|No
38
+ | <<plugins-{type}s-{plugin}-namespace>> |<<string,string>>|Yes
39
+ | <<plugins-{type}s-{plugin}-document_type>> |<<string,string>>|Yes
40
+ | <<plugins-{type}s-{plugin}-id_field>> |<<string,string>>|No
41
+ | <<plugins-{type}s-{plugin}-max_retries>> |<<number,number>>|No
42
+ | <<plugins-{type}s-{plugin}-max_connections>> |<<number,number>>|No
43
+ | <<plugins-{type}s-{plugin}-max_streams>> |<<number,number>>|No
44
+ | <<plugins-{type}s-{plugin}-operation_timeout>> |<<number,number>>|No
45
+ | <<plugins-{type}s-{plugin}-grace_period>> |<<number,number>>|No
46
+ |=======================================================================
47
+
48
+ [id="plugins-{type}s-{plugin}-vespa_url"]
49
+ ===== `vespa_url`
50
+
51
+ * Value type is <<string,string>>
52
+ * Default value is `http://localhost:8080`
53
+
54
+ URL to the Vespa instance
55
+
56
+ [id="plugins-{type}s-{plugin}-namespace"]
57
+ ===== `namespace`
58
+
59
+ * Value type is <<string,string>>
60
+
61
+ Vespa namespace. A logical grouping of documents in Vespa
62
+
63
+ [id="plugins-{type}s-{plugin}-document_type"]
64
+ ===== `document_type`
65
+
66
+ * Value type is <<string,string>>
67
+
68
+ Document type. You should see it in the Vespa services.xml file as well as in the schema file
69
+
70
+ [id="plugins-{type}s-{plugin}-id_field"]
71
+ ===== `id_field`
72
+
73
+ * Value type is <<string,string>>
74
+ * Default value is `id`
75
+
76
+ Field to get the document id from. If not present, a UUID will be generated
77
+
78
+ [id="plugins-{type}s-{plugin}-max_retries"]
79
+ ===== `max_retries`
80
+
81
+ * Value type is <<number,number>>
82
+ * Default value is `60`
83
+
84
+ On failure, retry this many times
85
+
86
+ [id="plugins-{type}s-{plugin}-max_connections"]
87
+ ===== `max_connections`
88
+
89
+ * Value type is <<number,number>>
90
+ * Default value is `1`
91
+
92
+ How many HTTP/2 connections to keep open.
93
+
94
+ [id="plugins-{type}s-{plugin}-max_streams"]
95
+ ===== `max_streams`
96
+
97
+ * Value type is <<number,number>>
98
+ * Default value is `128`
99
+
100
+ Number of streams per connection. This is the number of concurrent requests that can be made on a single connection.
101
+
102
+ [id="plugins-{type}s-{plugin}-operation_timeout"]
103
+ ===== `operation_timeout`
104
+
105
+ * Value type is <<number,number>>
106
+ * Default value is `180`
107
+
108
+ Request timeout (in seconds) for each write operation.
109
+
110
+ [id="plugins-{type}s-{plugin}-grace_period"]
111
+ ===== `grace_period`
112
+
113
+ * Value type is <<number,number>>
114
+ * Default value is `10`
115
+
116
+ After this time (seconds), the circuit breaker will be half-open:
117
+ it will ping the endpoint to see if it's back,
118
+ then resume sending requests when it's back.
119
+
120
+ // The full list of Value Types is here:
121
+ // https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html
122
+
123
+ [id="plugins-{type}s-{plugin}-common-options"]
124
+ include::{include_path}/{type}.asciidoc[]
125
+
126
+ :default_codec!:
@@ -0,0 +1,12 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ # encoding: utf-8
3
+ require "logstash/outputs/base"
4
+ require "logstash/namespace"
5
+ require "logstash-output-vespa_feed_jars"
6
+ require "java"
7
+
8
+ class LogStash::Outputs::VespaFeed < LogStash::Outputs::Base
9
+ config_name "vespa_feed"
10
+
11
+ def self.javaClass() Java::org.logstashplugins.VespaFeed.java_class; end
12
+ end
@@ -0,0 +1,5 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ # encoding: utf-8
3
+
4
+ require 'jar_dependencies'
5
+ require_jar('org.logstashplugins', 'logstash-output-vespa_feed', '0.2.0')
@@ -0,0 +1,22 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ Gem::Specification.new do |s|
3
+ s.name = 'logstash-output-vespa_feed'
4
+ s.version = ::File.read('VERSION').split('\n').first
5
+ s.licenses = ['Apache-2.0']
6
+ s.summary = 'Output plugin for Vespa'
7
+ s.description = 'This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program'
8
+ s.authors = ['Radu Gheorghe']
9
+ s.email = ['radu@vespa.ai']
10
+ s.homepage = 'https://vespa.ai'
11
+ s.require_paths = ['lib', 'vendor/jar-dependencies']
12
+
13
+ s.files = Dir["lib/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
14
+
15
+ # Special flag to let us know this is actually a logstash plugin
16
+ s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'output', 'java_plugin' => 'true'}
17
+
18
+ # Gem dependencies
19
+ s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
20
+ s.add_runtime_dependency 'jar-dependencies'
21
+ s.add_development_dependency 'logstash-devutils'
22
+ end
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-output-vespa_feed
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Radu Gheorghe
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.60'
19
+ - - "<="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.99'
22
+ name: logstash-core-plugin-api
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.60'
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.99'
33
+ - !ruby/object:Gem::Dependency
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ name: jar-dependencies
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ name: logstash-devutils
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ description: This gem is a Logstash plugin required to be installed on top of the
62
+ Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
63
+ gem is not a stand-alone program
64
+ email:
65
+ - radu@vespa.ai
66
+ executables: []
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - CHANGELOG.md
71
+ - CONTRIBUTORS
72
+ - Gemfile
73
+ - LICENSE
74
+ - README.md
75
+ - VERSION
76
+ - docs/index.asciidoc
77
+ - lib/logstash-output-vespa_feed_jars.rb
78
+ - lib/logstash/outputs/vespa_feed.rb
79
+ - logstash-output-vespa_feed.gemspec
80
+ - vendor/jar-dependencies/org/logstashplugins/logstash-output-vespa_feed/0.2.0/logstash-output-vespa_feed-0.2.0.jar
81
+ homepage: https://vespa.ai
82
+ licenses:
83
+ - Apache-2.0
84
+ metadata:
85
+ logstash_plugin: 'true'
86
+ logstash_group: output
87
+ java_plugin: 'true'
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ - vendor/jar-dependencies
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubygems_version: 3.3.26
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: Output plugin for Vespa
108
+ test_files: []