- Switch to using milestone numbers instead of plugin status labels

(LOGSTASH-1137)
- Rename plugin-status doc to plugin-milestones
This commit is contained in:
Jordan Sissel 2013-06-17 10:16:55 -07:00
parent 43a519a7f6
commit 0e4410a1f0
135 changed files with 208 additions and 224 deletions

View file

@ -21,7 +21,7 @@ class LogStashConfigDocGenerator
/^ *class.*< *LogStash::(Outputs|Filters|Inputs)::(Base|Threadable)/ => \
lambda { |m| set_class_description },
/^ *config +[^=].*/ => lambda { |m| add_config(m[0]) },
/^ *plugin_status .*/ => lambda { |m| set_plugin_status(m[0]) },
/^ *milestone .*/ => lambda { |m| set_milestone(m[0]) },
/^ *config_name .*/ => lambda { |m| set_config_name(m[0]) },
/^ *flag[( ].*/ => lambda { |m| add_flag(m[0]) },
/^ *(class|def|module) / => lambda { |m| clear_comments },
@ -97,9 +97,8 @@ class LogStashConfigDocGenerator
@name = name
end # def set_config_name
def set_plugin_status(code)
status = eval(code)
@plugin_status = status
def set_milestone(code)
@milestone = eval(code)
end
# pretend to be the config DSL and just get the name
@ -119,10 +118,10 @@ class LogStashConfigDocGenerator
return name
end # def config_name
# pretend to be the config dsl's 'plugin_status' method
def plugin_status(status)
return status
end # def plugin_status
# pretend to be the config dsl's 'milestone' method
def milestone(m)
return m
end # def milestone
def clear_comments
@comments.clear
@ -130,7 +129,7 @@ class LogStashConfigDocGenerator
def generate(file, settings)
@class_description = ""
@plugin_status = ""
@milestone = ""
@comments = []
@attributes = Hash.new { |h,k| h[k] = {} }
@flags = {}

View file

@ -3,7 +3,7 @@ title: logstash docs for <%= section %>s/<%= name %>
layout: content_right
---
<h2><%= name %></h2>
<h3>Status: <a href="../plugin-status"><%= @plugin_status %></a></h3>
<h3>Milestone: <a href="../plugin-milestones"><%= @milestone %></a></h3>
<%= description %>

41
docs/plugin-milestones.md Normal file
View file

@ -0,0 +1,41 @@
---
title: Plugin Milestones - logstash
layout: content_right
---
# Plugin Milestones
Plugins (inputs/outputs/filters/codecs) have a milestone label in logstash.
This is to provide an indicator to the end-user as to the kinds of changes
a given plugin could have between logstash releases.
The desire here is to allow plugin developers to quickly iterate on possible
new plugins while conveying to the end-user a set of expectations about that
plugin.
## Milestone 1
Plugins at this milestone need your feedback to improve! Plugins at this
milestone may change between releases as the community figures out the best way
for the plugin to behave and be configured.
## Milestone 2
Plugins at this milestone are more likely to have backwards-compatibility to
previous releases than do Milestone 1 plugins. This milestone also indicates
a greater level of in-the-wild usage by the community than the previous
milestone.
## Milestone 3
Plugins at this milestone have strong promises towards backwards-compatibility.
This is enforced by tests to ensure behavior and configuration are changing
wildly across releases.
## Milestone 0
This milestone appears at the bottom of the page because it is very
infrequently used.
This milestone marker is used to generally indicate that a plugin has no
active code maintainer nor does it have support from the community in terms
of getting help.

View file

@ -1,50 +0,0 @@
---
title: Plugin Status - logstash
layout: content_right
---
# Plugin Status
Plugins (inputs/outputs/filters) have a status in logstash. This is to provide
an indicator to the end-user as to the 'state' of the plugin.
Terminology is still being worked out but there are three general states -
experimental, beta, stable.
The desire here is to allow people to quickly iterate on possible new plugins
while conveying to the end-user a set of expectations about that plugin. This
allows you to make more informed decisions about when and where to use the
functionality provided by the new plugin.
## Unsupported
This plugin is not supported. It should work, but if you have any problems with
it you are unlikely to find any help due to lack of experience in the community.
Additionally, this label may mean that a plugin has no active maintainer.
## Experimental
When a plugin is in the `experimental` state, it is essentially untested. This
does not mean that it does not have any associated unit tests. This applies
more to in-the-wild usage. Most new plugins will probably fit in this category.
There is a chance that experimental plugins may be removed at some point. It is
possible that an experimental plugin will be broken mid-release.
## Beta
Beta plugins are plugins that are in the process of being stabalized into a
final form. Beta plugins will have a bit more wide-spread usage in the
community. The API for these plugins has stabilized and is unlikely to change
mid-release. Test cases may or may not exist.
## Stable
Stable plugins are plugins that you can comfortably rely on in production.
These have full test cases.
# A note about output plugins
It's worth reminding users that `output` plugins are currently blocking (by
design). If any output plugin fails, all output plugins are blocked. Please
keep this in mind when using experimental output plugins as it could cause
unintended side-effects.

View file

@ -2,7 +2,7 @@ require "logstash/codecs/base"
class LogStash::Codecs::Dots < LogStash::Codecs::Base
config_name "dots"
plugin_status "experimental"
milestone 1
public
def decode(data)

View file

@ -5,7 +5,7 @@ require "json"
class LogStash::Codecs::Json < LogStash::Codecs::Base
config_name "json"
plugin_status "experimental"
milestone 1
public
def decode(data)

View file

@ -4,7 +4,7 @@ require "logstash/codecs/spool"
# This is the base class for logstash codecs.
class LogStash::Codecs::JsonSpooler < LogStash::Codecs::Spool
config_name "json_spooler"
plugin_status 'experimental'
milestone 1
public
def decode(data)

View file

@ -4,7 +4,7 @@ require "msgpack"
class LogStash::Codecs::Msgpack < LogStash::Codecs::Base
config_name "json"
plugin_status "experimental"
milestone 1
config :format, :validate => :string, :default => nil

View file

@ -56,7 +56,7 @@ require "logstash/codecs/base"
# This is the base class for logstash codecs.
class LogStash::Codecs::Multiline < LogStash::Codecs::Base
config_name "multiline"
plugin_status "experimental"
milestone 1
# The regular expression to match
config :pattern, :validate => :string, :required => true

View file

@ -3,7 +3,7 @@ require "logstash/codecs/base"
class LogStash::Codecs::Noop < LogStash::Codecs::Base
config_name "noop"
plugin_status "experimental"
milestone 1
public
def decode(data)

View file

@ -4,7 +4,7 @@ require "logstash/codecs/base"
class LogStash::Codecs::Plain < LogStash::Codecs::Base
config_name "plain"
plugin_status "experimental"
milestone 1
# TODO(sissel): Document.
config :format, :validate => :string, :default => nil

View file

@ -2,7 +2,7 @@ require "logstash/codecs/base"
class LogStash::Codecs::RubyDebug < LogStash::Codecs::Base
config_name "rubydebug"
plugin_status "experimental"
milestone 1
def register
require "ap"

View file

@ -2,9 +2,7 @@ require "logstash/codecs/base"
class LogStash::Codecs::Spool < LogStash::Codecs::Base
config_name 'spool'
plugin_status 'experimental'
milestone 1
config :spool_size, :validate => :number, :default => 50
attr_reader :buffer

View file

@ -96,8 +96,12 @@ module LogStash::Config::Mixin
end
def plugin_status(status=nil)
@plugin_status = status if !status.nil?
return @plugin_status
milestone(status)
end
def milestone(m=nil)
@milestone = m if !m.nil?
return @milestone
end
# Define a new configuration setting
@ -151,7 +155,7 @@ module LogStash::Config::Mixin
end
end
subclass.instance_variable_set("@config", subconfig)
@@status_notice_given = false
@@milestone_notice_given = false
end # def inherited
def validate(params)
@ -160,7 +164,7 @@ module LogStash::Config::Mixin
@logger = Cabin::Channel.get(LogStash)
is_valid = true
is_valid &&= validate_plugin_status
is_valid &&= validate_milestone
is_valid &&= validate_check_invalid_parameter_names(params)
is_valid &&= validate_check_required_parameter_names(params)
is_valid &&= validate_check_parameter_values(params)
@ -168,26 +172,23 @@ module LogStash::Config::Mixin
return is_valid
end # def validate
def validate_plugin_status
return true if @@status_notice_given
docmsg = "For more information about plugin statuses, see http://logstash.net/docs/#{LOGSTASH_VERSION}/plugin-status "
def validate_milestone
return true if @@milestone_notice_given
docmsg = "For more information about plugin milestones, see http://logstash.net/docs/#{LOGSTASH_VERSION}/plugin-milestones "
plugin_type = ancestors.find { |a| a.name =~ /::Base$/ }.config_name
log_data = { :type => plugin_type, :name => @config_name, :LOGSTASH_VERSION => LOGSTASH_VERSION }
case @plugin_status
when LogStash::Plugin::MILESTONE_0
@logger.warn(I18n.t("logstash.plugin.milestone.0", log_data)
when LogStash::PLugin::MILESTONE_1
@logger.warn(I18n.t("logstash.plugin.milestone.1", log_data)
when LogStash::PLugin::MILESTONE_2
@logger.warn(I18n.t("logstash.plugin.milestone.2", log_data)
when LogStash::PLugin::MILESTONE_3
# No message to log, this plugin is of good quality with tests, etc.
case @milestone
when 0,1,2
@logger.warn(I18n.t("logstash.plugin.milestone.#{@milestone}",
:type => plugin_type, :name => @config_name,
:LOGSTASH_VERSION => LOGSTASH_VERSION))
when 3
# No message to log for milestone 3 plugins.
when nil
raise "#{@config_name} must set a plugin_status. #{docmsg}"
raise "#{@config_name} must set a milestone. #{docmsg}"
else
raise "#{@config_name} set an invalid plugin status #{@plugin_status}. Valid values are unsupported, experimental, beta and stable. #{docmsg}"
raise "#{@config_name} set an invalid plugin status #{@milestone}. Valid values are 0, 1, 2, or 3. #{docmsg}"
end
@@status_notice_given = true
@@milestone_notice_given = true
return true
end

View file

@ -35,7 +35,7 @@ require "logstash/namespace"
class LogStash::Filters::Advisor < LogStash::Filters::Base
config_name "advisor"
plugin_status "experimental"
milestone 1
# If you do not set time_adv the plugin does nothing.
config :time_adv, :validate => :number, :default => 0

View file

@ -9,7 +9,7 @@ require "logstash/namespace"
# be merged into the 'mutate' filter in future versions.
class LogStash::Filters::Alter < LogStash::Filters::Base
config_name "alter"
plugin_status "experimental"
milestone 1
# Change the content of the field to the specified value
# if the actual content is equal to the expected one.

View file

@ -4,7 +4,7 @@ require "logstash/namespace"
# Anonymize fields using by replacing values with a consistent hash.
class LogStash::Filters::Anonymize < LogStash::Filters::Base
config_name "anonymize"
plugin_status "experimental"
milestone 1
# The fields to be anonymized
config :fields, :validate => :array, :required => true

View file

@ -11,7 +11,7 @@ require "yaml"
class LogStash::Filters::Checksum < LogStash::Filters::Base
config_name "checksum"
plugin_status "experimental"
milestone 1
# A list of keys to use in creating the string to checksum
# Keys will be sorted before building the string

View file

@ -6,7 +6,7 @@ require "logstash/namespace"
#
class LogStash::Filters::Cipher < LogStash::Filters::Base
config_name "cipher"
plugin_status "experimental"
milestone 1
# The field to perform filter
#

View file

@ -7,7 +7,7 @@ require "logstash/namespace"
class LogStash::Filters::Clone < LogStash::Filters::Base
config_name "clone"
plugin_status "beta"
milestone 2
# A new clone will be created with the given type for each type in this list.
config :clones, :validate => :array, :default => []

View file

@ -7,7 +7,7 @@ require "csv"
# and stores it as individual fields (can optionally specify the names).
class LogStash::Filters::CSV < LogStash::Filters::Base
config_name "csv"
plugin_status "beta"
milestone 2
# The CSV data in the value of the source field will be expanded into a
# datastructure.

View file

@ -25,7 +25,7 @@ class LogStash::Filters::Date < LogStash::Filters::Base
end
config_name "date"
plugin_status "stable"
milestone 3
# specify a timezone canonical ID to be used for date parsing.
# The valid ID are listed on http://joda-time.sourceforge.net/timezones.html

View file

@ -30,7 +30,7 @@ require "logstash/namespace"
class LogStash::Filters::DNS < LogStash::Filters::Base
config_name "dns"
plugin_status "beta"
milestone 2
# Reverse resolve one or more fields.
config :reverse, :validate => :array

View file

@ -17,7 +17,7 @@ require "logstash/namespace"
# "debug". This will cause all events matching to be dropped.
class LogStash::Filters::Drop < LogStash::Filters::Base
config_name "drop"
plugin_status "experimental"
milestone 1
public
def register

View file

@ -4,7 +4,7 @@ require "logstash/namespace"
# Set fields from environment variables
class LogStash::Filters::Environment < LogStash::Filters::Base
config_name "environment"
plugin_status "experimental"
milestone 1
# Specify a hash of fields to the environment variable
# A hash of matches of field => environment variable

View file

@ -5,7 +5,7 @@ require "logstash/namespace"
# corresponding GELF levels.
class LogStash::Filters::Gelfify < LogStash::Filters::Base
config_name "gelfify"
plugin_status "beta"
milestone 2
SYSLOG_LEVEL_MAP = {
0 => 3, # Emergency => FATAL

View file

@ -13,7 +13,7 @@ require "tempfile"
# <http://www.maxmind.com/en/geolite>.
class LogStash::Filters::GeoIP < LogStash::Filters::Base
config_name "geoip"
plugin_status "experimental"
milestone 1
# GeoIP database file to use, Country, City, ASN, ISP and organization
# databases are supported

View file

@ -9,7 +9,7 @@ require "logstash/namespace"
class LogStash::Filters::Grep < LogStash::Filters::Base
config_name "grep"
plugin_status "beta"
milestone 2
# Drop events that don't match
#

View file

@ -132,7 +132,7 @@ require "set"
# SYSLOGBASE pattern which itself is defined by other patterns.
class LogStash::Filters::Grok < LogStash::Filters::Base
config_name "grok"
plugin_status "stable"
milestone 3
# Specify a pattern to parse with. This will match the 'message' field.
#

View file

@ -6,7 +6,7 @@ require "logstash/namespace"
class LogStash::Filters::Grokdiscovery < LogStash::Filters::Base
config_name "grokdiscovery"
plugin_status "experimental"
milestone 1
public
def initialize(config = {})

View file

@ -6,7 +6,7 @@ require "logstash/namespace"
class LogStash::Filters::Json < LogStash::Filters::Base
config_name "json"
plugin_status "beta"
milestone 2
# Config for json is:
#

View file

@ -24,7 +24,7 @@ require "logstash/namespace"
# 'foo=bar&baz=fizz' by setting the field_split to "&"
class LogStash::Filters::KV < LogStash::Filters::Base
config_name "kv"
plugin_status "beta"
milestone 2
# A string of characters to trim from the value. This is useful if your
# values are wrapped in brackets or are terminated by comma (like postfix

View file

@ -3,7 +3,7 @@ require "logstash/namespace"
class LogStash::Filters::Metaevent < LogStash::Filters::Base
config_name "metaevent"
plugin_status "experimental"
milestone 1
# syntax: `followed_by_tags => [ "tag", "tag" ]`
config :followed_by_tags, :validate => :array, :required => true

View file

@ -93,7 +93,7 @@ require "logstash/namespace"
# }
class LogStash::Filters::Metrics < LogStash::Filters::Base
config_name "metrics"
plugin_status "experimental"
milestone 1
# syntax: `meter => [ "name of metric", "name of metric" ]`
config :meter, :validate => :array, :default => []

View file

@ -8,7 +8,7 @@ require "logstash/errors"
# See the multiline codec instead.
class LogStash::Filters::Multiline < LogStash::Filters::Base
config_name "multiline"
plugin_status "stable"
milestone 3
# Leave these config settings until we remove this filter entirely.
# THe idea is that we want the register method to cause an abort

View file

@ -7,7 +7,7 @@ require "logstash/namespace"
# TODO(sissel): Support regexp replacements like String#gsub ?
class LogStash::Filters::Mutate < LogStash::Filters::Base
config_name "mutate"
plugin_status "stable"
milestone 3
# Rename one or more fields.
#

View file

@ -4,7 +4,7 @@ require "logstash/namespace"
# No-op filter. This is used generally for internal/dev testing.
class LogStash::Filters::NOOP < LogStash::Filters::Base
config_name "noop"
plugin_status "beta"
milestone 2
public
def register

View file

@ -6,7 +6,7 @@ require "logstash/namespace"
class LogStash::Filters::Prune < LogStash::Filters::Base
config_name "prune"
plugin_status "experimental"
milestone 1
# Trigger whether configation fields and values should be interpolated for
# dynamic values.

View file

@ -14,7 +14,7 @@ require "logstash/namespace"
class LogStash::Filters::Range < LogStash::Filters::Base
config_name "range"
plugin_status "experimental"
milestone 1
# An array of field, min, max ,action tuples.
# Example:

View file

@ -14,7 +14,7 @@ require "logstash/namespace"
#
class LogStash::Filters::Ruby < LogStash::Filters::Base
config_name "ruby"
plugin_status "experimental"
milestone 1
# Any code to execute at logstash startup-time
config :init, :validate => :string

View file

@ -7,7 +7,7 @@ require "logstash/namespace"
#
class LogStash::Filters::Sleep < LogStash::Filters::Base
config_name "sleep"
plugin_status "experimental"
milestone 1
# The length of time to sleep, in seconds, for every event.
#

View file

@ -12,7 +12,7 @@ require "logstash/namespace"
class LogStash::Filters::Split < LogStash::Filters::Base
config_name "split"
plugin_status "beta"
milestone 2
# The string to split on. This is usually a line terminator, but can be any
# string.

View file

@ -11,7 +11,7 @@ class LogStash::Filters::Syslog_pri < LogStash::Filters::Base
config_name "syslog_pri"
# set the status to experimental/beta/stable
plugin_status "experimental"
milestone 1
# Add human-readable names after parsing severity and facility from PRI
config :use_labels, :validate => :boolean, :default => true

View file

@ -12,7 +12,7 @@ require "logstash/namespace"
class LogStash::Filters::Translate < LogStash::Filters::Base
config_name "translate"
plugin_status "experimental"
milestone 1
# The field containing a response code If this field is an
# array, only the first value will be used.

View file

@ -5,7 +5,7 @@ require "uri"
# The urldecode filter is for decoding fields that are urlencoded.
class LogStash::Filters::Urldecode < LogStash::Filters::Base
config_name "urldecode"
plugin_status "beta"
milestone 2
# The field which value is urldecoded
config :field, :validate => :string, :default => "@message"

View file

@ -12,7 +12,7 @@ require "tempfile"
# <https://github.com/tobie/ua-parser/>.
class LogStash::Filters::UserAgent < LogStash::Filters::Base
config_name "useragent"
plugin_status "experimental"
milestone 1
# The field containing the user agent string. If this field is an
# array, only the first value will be used.

View file

@ -6,7 +6,7 @@ require "logstash/namespace"
class LogStash::Filters::Xml < LogStash::Filters::Base
config_name "xml"
plugin_status "experimental"
milestone 1
# Config for xml to hash is:
#

View file

@ -16,7 +16,7 @@ require "logstash/namespace"
class LogStash::Filters::ZeroMQ < LogStash::Filters::Base
config_name "zeromq"
plugin_status "experimental"
milestone 1
# 0mq socket address to connect or bind
# Please note that inproc:// will not work with logstash

View file

@ -3,7 +3,7 @@ require "logstash/inputs/rabbitmq"
# This plugin has been renamed to 'rabbitmq'. Please use that one instead.
class LogStash::Inputs::AMQP < LogStash::Inputs::RabbitMQ
config_name "amqp"
plugin_status "beta"
milestone 2
def register
@logger.warn("The 'amqp' input plugin has been renamed to 'rabbitmq'. " \
"Please update your configuration appropriately.")

View file

@ -15,7 +15,7 @@ require "logstash/namespace"
#
class LogStash::Inputs::DrupalDblog < LogStash::Inputs::Base
config_name "drupal_dblog"
plugin_status "experimental"
milestone 1
# Specify all drupal databases that you whish to import from.
# This can be as many as you whish.

View file

@ -20,7 +20,7 @@ require "logstash/util/socket_peer"
# * TODO(sissel): Option to keep the index, type, and doc id so we can do reindexing?
class LogStash::Inputs::Elasticsearch < LogStash::Inputs::Base
config_name "elasticsearch"
plugin_status "experimental"
milestone 1
# When mode is `server`, the address to listen on.
# When mode is `client`, the address to connect to.

View file

@ -15,7 +15,7 @@ require "socket"
class LogStash::Inputs::EventLog < LogStash::Inputs::Base
config_name "eventlog"
plugin_status "beta"
milestone 2
# Event Log Name
config :logfile, :validate => :array, :default => [ "Application", "Security", "System" ]

View file

@ -13,7 +13,7 @@ require "socket" # for Socket.gethostname
class LogStash::Inputs::Exec < LogStash::Inputs::Base
config_name "exec"
plugin_status "beta"
milestone 2
# Set this to true to enable debugging on an input.
config :debug, :validate => :boolean, :default => false
@ -38,8 +38,8 @@ class LogStash::Inputs::Exec < LogStash::Inputs::Base
out = IO.popen(@command)
# out.read will block until the process finishes.
@codec.decode(out.read) do |event|
event["source"] => "exec://#{Socket.gethostname}"
event["command"] => @command
event["source"] = "exec://#{Socket.gethostname}"
event["command"] = @command
queue << event
end

View file

@ -13,7 +13,7 @@ require "socket" # for Socket.gethostname
# is detected and handled by this input.
class LogStash::Inputs::File < LogStash::Inputs::Base
config_name "file"
plugin_status "beta"
milestone 2
# The path to the file to use as an input.
# You can use globs here, such as `/var/log/*.log`

View file

@ -10,7 +10,7 @@ require "socket"
#
class LogStash::Inputs::Ganglia < LogStash::Inputs::Base
config_name "ganglia"
plugin_status "experimental"
milestone 1
# The address to listen on
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -12,7 +12,7 @@ require "socket"
#
class LogStash::Inputs::Gelf < LogStash::Inputs::Base
config_name "gelf"
plugin_status "beta"
milestone 2
# The address to listen on
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -14,7 +14,7 @@ require "logstash/namespace"
class LogStash::Inputs::Gemfire < LogStash::Inputs::Threadable
config_name "gemfire"
plugin_status "experimental"
milestone 1
# Your client cache name
config :cache_name, :validate => :string, :default => "logstash"

View file

@ -9,7 +9,7 @@ require "socket" # for Socket.gethostname
# An event is generated first
class LogStash::Inputs::Generator < LogStash::Inputs::Threadable
config_name "generator"
plugin_status "beta"
milestone 2
# The message string to use in the event.
#

View file

@ -15,7 +15,7 @@ require "logstash/namespace"
# value as the field's value.
class LogStash::Inputs::Graphite < LogStash::Inputs::Tcp
config_name "graphite"
plugin_status "experimental"
milestone 1
ISO8601_STRFTIME = "%04d-%02d-%02dT%02d:%02d:%02d.%06d%+03d:00".freeze

View file

@ -16,7 +16,7 @@ require "logstash/namespace"
# }
class LogStash::Inputs::Heroku < LogStash::Inputs::Base
config_name "heroku"
plugin_status "experimental"
milestone 1
# The name of your heroku application. This is usually the first part of the
# the domain name 'my-app-name.herokuapp.com'

View file

@ -8,7 +8,7 @@ require "socket" # for Socket.gethostname
# to the trash.
class LogStash::Inputs::IMAP < LogStash::Inputs::Base
config_name "imap"
plugin_status "experimental"
milestone 1
ISO8601_STRFTIME = "%04d-%02d-%02dT%02d:%02d:%02d.%06d%+03d:00".freeze
config :host, :validate => :string, :required => true

View file

@ -7,7 +7,7 @@ require "thread"
class LogStash::Inputs::Irc < LogStash::Inputs::Base
config_name "irc"
plugin_status "experimental"
milestone 1
# Host of the IRC Server to connect to.
config :host, :validate => :string, :required => true

View file

@ -11,7 +11,7 @@ require "timeout"
class LogStash::Inputs::Log4j < LogStash::Inputs::Base
config_name "log4j"
plugin_status "experimental"
milestone 1
# When mode is `server`, the address to listen on.
# When mode is `client`, the address to connect to.

View file

@ -8,7 +8,7 @@ require "logstash/namespace"
class LogStash::Inputs::Lumberjack < LogStash::Inputs::Base
config_name "lumberjack"
plugin_status "experimental"
milestone 1
# the address to listen on.
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -8,7 +8,7 @@ require "logstash/namespace"
class LogStash::Inputs::Lumberjack2 < LogStash::Inputs::Base
config_name "lumberjack2"
plugin_status "experimental"
milestone 1
# The address to listen on.
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -9,7 +9,7 @@ require "socket" # for Socket.gethostname
#
class LogStash::Inputs::Pipe < LogStash::Inputs::Base
config_name "pipe"
plugin_status "experimental"
milestone 1
# Command to run and read events from, one line at a time.
#

View file

@ -15,7 +15,7 @@ require "cgi" # for CGI.escape
class LogStash::Inputs::RabbitMQ < LogStash::Inputs::Threadable
config_name "rabbitmq"
plugin_status "unsupported"
milestone 0
# Your amqp broker's custom arguments. For mirrored queues in RabbitMQ: [ "x-ha-policy", "all" ]
config :arguments, :validate => :array, :default => []

View file

@ -13,7 +13,7 @@ require "logstash/namespace"
# newer. Anything older does not support the operations used by batching.
class LogStash::Inputs::Redis < LogStash::Inputs::Threadable
config_name "redis"
plugin_status "beta"
milestone 2
# Name is used for logging in case there are multiple instances.
# This feature has no real function and will be removed in future versions.

View file

@ -18,7 +18,7 @@ class LogStash::Inputs::Relp < LogStash::Inputs::Base
class Interrupted < StandardError; end
config_name "relp"
plugin_status "experimental"
milestone 1
# The address to listen on.
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -12,7 +12,7 @@ require "logstash/namespace"
class LogStash::Inputs::Snmptrap < LogStash::Inputs::Base
config_name "snmptrap"
plugin_status "experimental"
milestone 1
# The address to listen on
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -56,7 +56,7 @@ require "socket"
#
class LogStash::Inputs::Sqlite < LogStash::Inputs::Base
config_name "sqlite"
plugin_status "experimental"
milestone 1
# The path to the sqlite database file.
config :path, :validate => :string, :required => true

View file

@ -58,7 +58,7 @@ class LogStash::Inputs::SQS < LogStash::Inputs::Threadable
include LogStash::PluginMixins::AwsConfig
config_name "sqs"
plugin_status "experimental"
milestone 1
# Name of the SQS Queue name to pull messages from. Note that this is just the name of the queue, not the URL or ARN.
config :queue, :validate => :string, :required => true

View file

@ -8,7 +8,7 @@ require "socket" # for Socket.gethostname
# want to join lines, you'll want to use the multiline filter.
class LogStash::Inputs::Stdin < LogStash::Inputs::Base
config_name "stdin"
plugin_status "beta"
milestone 2
public
def register

View file

@ -4,7 +4,7 @@ require 'pp'
class LogStash::Inputs::Stomp < LogStash::Inputs::Base
config_name "stomp"
plugin_status "beta"
milestone 2
# The address of the STOMP server.
config :host, :validate => :string, :default => "localhost", :required => true

View file

@ -20,7 +20,7 @@ require "socket"
# Note: this input will start listeners on both TCP and UDP
class LogStash::Inputs::Syslog < LogStash::Inputs::Base
config_name "syslog"
plugin_status "experimental"
milestone 1
# The address to listen on
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -11,7 +11,7 @@ require "logstash/util/socket_peer"
class LogStash::Inputs::Tcp < LogStash::Inputs::Base
class Interrupted < StandardError; end
config_name "tcp"
plugin_status "beta"
milestone 2
# When mode is `server`, the address to listen on.
# When mode is `client`, the address to connect to.

View file

@ -8,7 +8,7 @@ require "json"
class LogStash::Inputs::Twitter < LogStash::Inputs::Base
config_name "twitter"
plugin_status "beta"
milestone 2
# Your twitter username
config :user, :validate => :string, :required => true

View file

@ -7,7 +7,7 @@ require "socket"
#
class LogStash::Inputs::Udp < LogStash::Inputs::Base
config_name "udp"
plugin_status "beta"
milestone 2
# The address to listen on
config :host, :validate => :string, :default => "0.0.0.0"

View file

@ -10,7 +10,7 @@ require "logstash/namespace"
class LogStash::Inputs::Unix < LogStash::Inputs::Base
class Interrupted < StandardError; end
config_name "unix"
plugin_status "beta"
milestone 2
# When mode is `server`, the path to listen on.
# When mode is `client`, the path to connect to.

View file

@ -5,7 +5,7 @@ require "socket" # for Socket.gethostname
# Read from varnish cache's shared memory log
class LogStash::Inputs::Varnishlog < LogStash::Inputs::Threadable
config_name "varnishlog"
plugin_status "experimental"
milestone 1
public
def register

View file

@ -5,7 +5,7 @@ require "socket"
# Read events over the websocket protocol.
class LogStash::Inputs::Websocket < LogStash::Inputs::Base
config_name "websocket"
plugin_status "experimental"
milestone 1
# The url to connect to or serve from
config :url, :validate => :string, :default => "0.0.0.0"

View file

@ -21,7 +21,7 @@ require "socket"
class LogStash::Inputs::WMI < LogStash::Inputs::Base
config_name "wmi"
plugin_status "experimental"
milestone 1
# WMI query
config :query, :validate => :string, :required => true

View file

@ -9,7 +9,7 @@ require "logstash/namespace"
class LogStash::Inputs::Xmpp < LogStash::Inputs::Base
config_name "xmpp"
plugin_status "beta"
milestone 2
# The user or resource ID, like foo@example.com.
config :user, :validate => :string, :required => :true

View file

@ -7,7 +7,7 @@ require "zlib"
class LogStash::Inputs::Zenoss < LogStash::Inputs::RabbitMQ
config_name "zenoss"
plugin_status "experimental"
milestone 1
# Your rabbitmq server address
config :host, :validate => :string, :default => "localhost"

View file

@ -14,7 +14,7 @@ require "socket"
class LogStash::Inputs::ZeroMQ < LogStash::Inputs::Base
config_name "zeromq"
plugin_status "beta"
milestone 2
# 0mq socket address to connect or bind
# Please note that `inproc://` will not work with logstash

View file

@ -3,7 +3,7 @@ require "logstash/outputs/rabbitmq"
# This plugin has been renamed to 'rabbitmq'. Please use that one instead.
class LogStash::Outputs::AMQP < LogStash::Outputs::RabbitMQ
config_name "amqp"
plugin_status "beta"
milestone 2
def register
@logger.warn("The 'amqp' output plugin has been renamed to 'rabbitmq'. " \
"Please update your configuration appropriately.")

View file

@ -13,7 +13,7 @@ class LogStash::Outputs::Boundary < LogStash::Outputs::Base
#
config_name "boundary"
plugin_status "experimental"
milestone 1
# Your Boundary API key
config :api_key, :validate => :string, :required => true

View file

@ -7,7 +7,7 @@ class LogStash::Outputs::Circonus < LogStash::Outputs::Base
#
config_name "circonus"
plugin_status "experimental"
milestone 1
# Your Circonus API Token
config :api_token, :validate => :string, :required => true

View file

@ -63,7 +63,7 @@ class LogStash::Outputs::CloudWatch < LogStash::Outputs::Base
include LogStash::PluginMixins::AwsConfig
config_name "cloudwatch"
plugin_status "experimental"
milestone 1
# Constants
# aggregate_key members

View file

@ -10,7 +10,7 @@ class LogStash::Outputs::Datadog < LogStash::Outputs::Base
#
config_name "datadog"
plugin_status "experimental"
milestone 1
# Your DatadogHQ API key
config :api_key, :validate => :string, :required => true

View file

@ -28,7 +28,7 @@ require "logstash/outputs/base"
class LogStash::Outputs::ElasticSearch < LogStash::Outputs::Base
config_name "elasticsearch"
plugin_status "stable"
milestone 3
# ElasticSearch server name. This is optional if your server is discoverable.
config :host, :validate => :string

View file

@ -11,7 +11,7 @@ require "logstash/outputs/base"
class LogStash::Outputs::ElasticSearchHTTP < LogStash::Outputs::Base
config_name "elasticsearch_http"
plugin_status "beta"
milestone 2
# The index to write events to. This can be dynamic using the %{foo} syntax.
# The default value will partition your indices by day so you can more easily

View file

@ -17,7 +17,7 @@ require "net/http"
class LogStash::Outputs::ElasticSearchRiver < LogStash::Outputs::Base
config_name "elasticsearch_river"
plugin_status "beta"
milestone 2
config :debug, :validate => :boolean, :default => false

View file

@ -38,7 +38,7 @@ require "logstash/namespace"
class LogStash::Outputs::Email < LogStash::Outputs::Base
config_name "email"
plugin_status "experimental"
milestone 1
# The registered fields that we want to monitor
# A hash of matches of field => value

View file

@ -19,7 +19,7 @@ require "logstash/outputs/base"
class LogStash::Outputs::Exec < LogStash::Outputs::Base
config_name "exec"
plugin_status "experimental"
milestone 1
# Command line to execute via subprocess. Use dtach or screen to make it non blocking
config :command, :validate => :string, :required => true

View file

@ -9,7 +9,7 @@ require "zlib"
class LogStash::Outputs::File < LogStash::Outputs::Base
config_name "file"
plugin_status "beta"
milestone 2
# The path to the file to write. Event fields can be used here,
# like "/var/log/logstash/%{@source_host}/%{application}"

View file

@ -5,7 +5,7 @@ require "logstash/namespace"
# ganglia's gmond. This is heavily based on the graphite output.
class LogStash::Outputs::Ganglia < LogStash::Outputs::Base
config_name "ganglia"
plugin_status "beta"
milestone 2
# The address of the ganglia server.
config :host, :validate => :string, :default => "localhost"

View file

@ -8,7 +8,7 @@ require "logstash/outputs/base"
class LogStash::Outputs::Gelf < LogStash::Outputs::Base
config_name "gelf"
plugin_status "beta"
milestone 2
# graylog2 server address
config :host, :validate => :string, :required => true

View file

@ -13,7 +13,7 @@ require "logstash/namespace"
class LogStash::Outputs::Gemfire < LogStash::Outputs::Base
config_name "gemfire"
plugin_status "experimental"
milestone 1
# Your client cache name
config :cache_name, :validate => :string, :default => "logstash"

View file

@ -10,7 +10,7 @@ require "socket"
# I can capture the metric values from the logs and emit them to graphite.
class LogStash::Outputs::Graphite < LogStash::Outputs::Base
config_name "graphite"
plugin_status "beta"
milestone 2
DEFAULT_METRICS_FORMAT = "*"
METRIC_PLACEHOLDER = "*"

Some files were not shown because too many files have changed in this diff Show more