mirror of
https://github.com/elastic/logstash.git
synced 2025-06-28 09:46:03 -04:00
parent
bd8f80eb70
commit
c0abde28a6
44 changed files with 134 additions and 95 deletions
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/instrument/collector"
|
require "logstash/instrument/collector"
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
module LogStash
|
module LogStash
|
||||||
module Api
|
module Api
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
module LogStash module BootstrapCheck
|
module LogStash module BootstrapCheck
|
||||||
class DefaultConfig
|
class DefaultConfig
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/event"
|
require "logstash/event"
|
||||||
require "logstash/plugin"
|
require "logstash/plugin"
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
# This is the base class for logstash codecs.
|
# This is the base class for logstash codecs.
|
||||||
module LogStash::Codecs; class Base < LogStash::Plugin
|
module LogStash::Codecs; class Base < LogStash::Plugin
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
require 'logstash/util/loggable'
|
|
||||||
require 'logstash/compiler/lscl/lscl_grammar'
|
require 'logstash/compiler/lscl/lscl_grammar'
|
||||||
|
|
||||||
java_import org.logstash.config.ir.PipelineIR
|
java_import org.logstash.config.ir.PipelineIR
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/plugins/registry"
|
require "logstash/plugins/registry"
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/util/password"
|
require "logstash/util/password"
|
||||||
require "logstash/util/safe_uri"
|
require "logstash/util/safe_uri"
|
||||||
require "logstash/version"
|
require "logstash/version"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/elasticsearch_client"
|
require "logstash/elasticsearch_client"
|
||||||
require "logstash/modules/kibana_client"
|
require "logstash/modules/kibana_client"
|
||||||
require "logstash/modules/elasticsearch_importer"
|
require "logstash/modules/elasticsearch_importer"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/config/source/base"
|
require "logstash/config/source/base"
|
||||||
require "logstash/config/pipeline_config"
|
require "logstash/config/pipeline_config"
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "uri"
|
require "uri"
|
||||||
|
|
||||||
module LogStash module Config module Source
|
module LogStash module Config module Source
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
require "logstash/config/source/base"
|
require "logstash/config/source/base"
|
||||||
require "logstash/config/modules_common"
|
require "logstash/config/modules_common"
|
||||||
require "logstash/config/pipeline_config"
|
require "logstash/config/pipeline_config"
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
module LogStash module Config module Source
|
module LogStash module Config module Source
|
||||||
class Modules < Base
|
class Modules < Base
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/config/source/local"
|
require "logstash/config/source/local"
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/pipeline_settings"
|
require "logstash/pipeline_settings"
|
||||||
|
|
||||||
module LogStash module Config module Source
|
module LogStash module Config module Source
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "elasticsearch"
|
require "elasticsearch"
|
||||||
require "elasticsearch/transport/transport/http/manticore"
|
require "elasticsearch/transport/transport/http/manticore"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/event"
|
require "logstash/event"
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/plugin"
|
require "logstash/plugin"
|
||||||
require "logstash/config/mixin"
|
require "logstash/config/mixin"
|
||||||
require "logstash/util/decorators"
|
require "logstash/util/decorators"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/event"
|
require "logstash/event"
|
||||||
require "logstash/plugin"
|
require "logstash/plugin"
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/config/mixin"
|
require "logstash/config/mixin"
|
||||||
require "logstash/codecs/base"
|
require "logstash/codecs/base"
|
||||||
require "logstash/util/decorators"
|
require "logstash/util/decorators"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/instrument/snapshot"
|
require "logstash/instrument/snapshot"
|
||||||
require "logstash/instrument/metric_store"
|
require "logstash/instrument/metric_store"
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "concurrent/timer_task"
|
require "concurrent/timer_task"
|
||||||
require "observer"
|
require "observer"
|
||||||
require "singleton"
|
require "singleton"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/util"
|
require "logstash/util"
|
||||||
require "concurrent"
|
require "concurrent"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "pathname"
|
require "pathname"
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
# Logic from elasticsearch/core/src/main/java/org/elasticsearch/monitor/os/OsProbe.java
|
# Logic from elasticsearch/core/src/main/java/org/elasticsearch/monitor/os/OsProbe.java
|
||||||
# Move to ruby to remove any existing dependency
|
# Move to ruby to remove any existing dependency
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
module LogStash module Instrument
|
module LogStash module Instrument
|
||||||
class Snapshot
|
class Snapshot
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
module LogStash module Modules class CLIParser
|
module LogStash module Modules class CLIParser
|
||||||
include LogStash::Util::Loggable
|
include LogStash::Util::Loggable
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
require_relative "elasticsearch_resource"
|
require_relative "elasticsearch_resource"
|
||||||
|
|
||||||
module LogStash module Modules class ElasticsearchConfig
|
module LogStash module Modules class ElasticsearchConfig
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
module LogStash module Modules class ElasticsearchImporter
|
module LogStash module Modules class ElasticsearchImporter
|
||||||
include LogStash::Util::Loggable
|
include LogStash::Util::Loggable
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/json"
|
require "logstash/json"
|
||||||
|
|
||||||
module LogStash module Modules class FileReader
|
module LogStash module Modules class FileReader
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/json"
|
require "logstash/json"
|
||||||
require "manticore"
|
require "manticore"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
require_relative "file_reader"
|
require_relative "file_reader"
|
||||||
require_relative "kibana_settings"
|
require_relative "kibana_settings"
|
||||||
require_relative "kibana_dashboards"
|
require_relative "kibana_dashboards"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require_relative "kibana_base"
|
require_relative "kibana_base"
|
||||||
|
|
||||||
module LogStash module Modules class KibanaDashboards < KibanaBase
|
module LogStash module Modules class KibanaDashboards < KibanaBase
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
|
|
||||||
module LogStash module Modules class KibanaImporter
|
module LogStash module Modules class KibanaImporter
|
||||||
include LogStash::Util::Loggable
|
include LogStash::Util::Loggable
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require_relative "kibana_base"
|
require_relative "kibana_base"
|
||||||
|
|
||||||
module LogStash module Modules class KibanaSettings < KibanaBase
|
module LogStash module Modules class KibanaSettings < KibanaBase
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "erb"
|
require "erb"
|
||||||
|
|
||||||
require_relative "elasticsearch_config"
|
require_relative "elasticsearch_config"
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/util"
|
require "logstash/util"
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
module LogStash module Modules module SettingsMerger
|
module LogStash module Modules module SettingsMerger
|
||||||
include LogStash::Util::Loggable
|
include LogStash::Util::Loggable
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/event"
|
require "logstash/event"
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/plugin"
|
require "logstash/plugin"
|
||||||
require "logstash/config/mixin"
|
require "logstash/config/mixin"
|
||||||
require "concurrent/atomic/atomic_fixnum"
|
require "concurrent/atomic/atomic_fixnum"
|
||||||
|
|
|
@ -3,7 +3,6 @@ require "logstash/pipeline_action/base"
|
||||||
require "logstash/pipeline"
|
require "logstash/pipeline"
|
||||||
require "logstash/java_pipeline"
|
require "logstash/java_pipeline"
|
||||||
require "logstash/converge_result"
|
require "logstash/converge_result"
|
||||||
require "logstash/util/loggable"
|
|
||||||
|
|
||||||
module LogStash module PipelineAction
|
module LogStash module PipelineAction
|
||||||
class Create < Base
|
class Create < Base
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
require "logstash/pipeline_action/base"
|
require "logstash/pipeline_action/base"
|
||||||
require "logstash/pipeline_action/create"
|
require "logstash/pipeline_action/create"
|
||||||
require "logstash/pipeline_action/stop"
|
require "logstash/pipeline_action/stop"
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/converge_result"
|
require "logstash/converge_result"
|
||||||
|
|
||||||
module LogStash module PipelineAction
|
module LogStash module PipelineAction
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/config/mixin"
|
require "logstash/config/mixin"
|
||||||
require "concurrent"
|
require "concurrent"
|
||||||
require "securerandom"
|
require "securerandom"
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "rubygems/package"
|
require "rubygems/package"
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/plugin"
|
require "logstash/plugin"
|
||||||
require "logstash/plugins/hooks_registry"
|
require "logstash/plugins/hooks_registry"
|
||||||
require "logstash/modules/scaffold"
|
require "logstash/modules/scaffold"
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "fileutils"
|
require "fileutils"
|
||||||
require "logstash/util/byte_value"
|
require "logstash/util/byte_value"
|
||||||
require "logstash/util/substitution_variables"
|
require "logstash/util/substitution_variables"
|
||||||
|
|
|
@ -1,30 +1 @@
|
||||||
# encoding: utf-8
|
# Keeping this file for backwards compatibility with plugins that include it directly.
|
||||||
require "logstash/logging/logger"
|
|
||||||
|
|
||||||
module LogStash module Util
|
|
||||||
module Loggable
|
|
||||||
def self.included(klass)
|
|
||||||
|
|
||||||
def klass.log4j_name
|
|
||||||
ruby_name = self.name || self.class.name || self.class.to_s
|
|
||||||
ruby_name.gsub('::', '.').downcase
|
|
||||||
end
|
|
||||||
|
|
||||||
def klass.logger
|
|
||||||
@logger ||= LogStash::Logging::Logger.new(log4j_name)
|
|
||||||
end
|
|
||||||
|
|
||||||
def klass.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
|
||||||
@slow_logger ||= LogStash::Logging::SlowLogger.new(log4j_name, warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
|
||||||
end
|
|
||||||
|
|
||||||
def logger
|
|
||||||
self.class.logger
|
|
||||||
end
|
|
||||||
|
|
||||||
def slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
|
||||||
self.class.slow_logger(warn_threshold, info_threshold, debug_threshold, trace_threshold)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end; end
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "logstash/util/secretstore"
|
require "logstash/util/secretstore"
|
||||||
|
|
||||||
module ::LogStash::Util::SubstitutionVariables
|
module ::LogStash::Util::SubstitutionVariables
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
require "spec_helper"
|
require "spec_helper"
|
||||||
require "logstash/logging"
|
|
||||||
require "logstash/modules/cli_parser"
|
require "logstash/modules/cli_parser"
|
||||||
|
|
||||||
describe LogStash::Modules::CLIParser do
|
describe LogStash::Modules::CLIParser do
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.logstash.instrument.metrics.MetricExt;
|
||||||
import org.logstash.instrument.metrics.NamespacedMetricExt;
|
import org.logstash.instrument.metrics.NamespacedMetricExt;
|
||||||
import org.logstash.instrument.metrics.NullMetricExt;
|
import org.logstash.instrument.metrics.NullMetricExt;
|
||||||
import org.logstash.instrument.metrics.NullNamespacedMetricExt;
|
import org.logstash.instrument.metrics.NullNamespacedMetricExt;
|
||||||
|
import org.logstash.log.LoggableExt;
|
||||||
import org.logstash.log.LoggerExt;
|
import org.logstash.log.LoggerExt;
|
||||||
import org.logstash.log.SlowLoggerExt;
|
import org.logstash.log.SlowLoggerExt;
|
||||||
import org.logstash.plugins.PluginFactoryExt;
|
import org.logstash.plugins.PluginFactoryExt;
|
||||||
|
@ -139,8 +140,12 @@ public final class RubyUtil {
|
||||||
|
|
||||||
public static final RubyClass LOGGER;
|
public static final RubyClass LOGGER;
|
||||||
|
|
||||||
|
public static final RubyModule LOGGABLE_MODULE;
|
||||||
|
|
||||||
public static final RubyClass SLOW_LOGGER;
|
public static final RubyClass SLOW_LOGGER;
|
||||||
|
|
||||||
|
public static final RubyModule UTIL_MODULE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logstash Ruby Module.
|
* Logstash Ruby Module.
|
||||||
*/
|
*/
|
||||||
|
@ -229,20 +234,20 @@ public final class RubyUtil {
|
||||||
TIMED_EXECUTION_CLASS.defineAnnotatedMethods(MetricExt.TimedExecution.class);
|
TIMED_EXECUTION_CLASS.defineAnnotatedMethods(MetricExt.TimedExecution.class);
|
||||||
NULL_TIMED_EXECUTION_CLASS.defineAnnotatedMethods(NullMetricExt.NullTimedExecution.class);
|
NULL_TIMED_EXECUTION_CLASS.defineAnnotatedMethods(NullMetricExt.NullTimedExecution.class);
|
||||||
NULL_COUNTER_CLASS.defineAnnotatedMethods(NullNamespacedMetricExt.NullCounter.class);
|
NULL_COUNTER_CLASS.defineAnnotatedMethods(NullNamespacedMetricExt.NullCounter.class);
|
||||||
final RubyModule util = LOGSTASH_MODULE.defineModuleUnder("Util");
|
UTIL_MODULE = LOGSTASH_MODULE.defineModuleUnder("Util");
|
||||||
ABSTRACT_DLQ_WRITER_CLASS = util.defineClassUnder(
|
ABSTRACT_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||||
"AbstractDeadLetterQueueWriterExt", RUBY.getObject(),
|
"AbstractDeadLetterQueueWriterExt", RUBY.getObject(),
|
||||||
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR
|
ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR
|
||||||
);
|
);
|
||||||
ABSTRACT_DLQ_WRITER_CLASS.defineAnnotatedMethods(AbstractDeadLetterQueueWriterExt.class);
|
ABSTRACT_DLQ_WRITER_CLASS.defineAnnotatedMethods(AbstractDeadLetterQueueWriterExt.class);
|
||||||
DUMMY_DLQ_WRITER_CLASS = util.defineClassUnder(
|
DUMMY_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||||
"DummyDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
"DummyDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
||||||
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt::new
|
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt::new
|
||||||
);
|
);
|
||||||
DUMMY_DLQ_WRITER_CLASS.defineAnnotatedMethods(
|
DUMMY_DLQ_WRITER_CLASS.defineAnnotatedMethods(
|
||||||
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt.class
|
AbstractDeadLetterQueueWriterExt.DummyDeadLetterQueueWriterExt.class
|
||||||
);
|
);
|
||||||
PLUGIN_DLQ_WRITER_CLASS = util.defineClassUnder(
|
PLUGIN_DLQ_WRITER_CLASS = UTIL_MODULE.defineClassUnder(
|
||||||
"PluginDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
"PluginDeadLetterQueueWriter", ABSTRACT_DLQ_WRITER_CLASS,
|
||||||
AbstractDeadLetterQueueWriterExt.PluginDeadLetterQueueWriterExt::new
|
AbstractDeadLetterQueueWriterExt.PluginDeadLetterQueueWriterExt::new
|
||||||
);
|
);
|
||||||
|
@ -329,14 +334,14 @@ public final class RubyUtil {
|
||||||
FILTER_DELEGATOR_CLASS = setupLogstashClass(
|
FILTER_DELEGATOR_CLASS = setupLogstashClass(
|
||||||
FilterDelegatorExt::new, FilterDelegatorExt.class
|
FilterDelegatorExt::new, FilterDelegatorExt.class
|
||||||
);
|
);
|
||||||
|
|
||||||
final RubyModule loggingModule = LOGSTASH_MODULE.defineOrGetModuleUnder("Logging");
|
final RubyModule loggingModule = LOGSTASH_MODULE.defineOrGetModuleUnder("Logging");
|
||||||
LOGGER = loggingModule.defineClassUnder("Logger", RUBY.getObject(), LoggerExt::new);
|
LOGGER = loggingModule.defineClassUnder("Logger", RUBY.getObject(), LoggerExt::new);
|
||||||
LOGGER.defineAnnotatedMethods(LoggerExt.class);
|
LOGGER.defineAnnotatedMethods(LoggerExt.class);
|
||||||
SLOW_LOGGER = loggingModule.defineClassUnder(
|
SLOW_LOGGER = loggingModule.defineClassUnder(
|
||||||
"SlowLogger", RUBY.getObject(), SlowLoggerExt::new);
|
"SlowLogger", RUBY.getObject(), SlowLoggerExt::new);
|
||||||
SLOW_LOGGER.defineAnnotatedMethods(SlowLoggerExt.class);
|
SLOW_LOGGER.defineAnnotatedMethods(SlowLoggerExt.class);
|
||||||
|
LOGGABLE_MODULE = UTIL_MODULE.defineModuleUnder("Loggable");
|
||||||
|
LOGGABLE_MODULE.defineAnnotatedMethods(LoggableExt.class);
|
||||||
final RubyModule json = LOGSTASH_MODULE.defineOrGetModuleUnder("Json");
|
final RubyModule json = LOGSTASH_MODULE.defineOrGetModuleUnder("Json");
|
||||||
final RubyClass stdErr = RUBY.getStandardError();
|
final RubyClass stdErr = RUBY.getStandardError();
|
||||||
LOGSTASH_ERROR = LOGSTASH_MODULE.defineClassUnder(
|
LOGSTASH_ERROR = LOGSTASH_MODULE.defineClassUnder(
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class FilterDelegatorExt extends RubyObject {
|
||||||
public IRubyObject init(final ThreadContext context, final IRubyObject filter, final IRubyObject id) {
|
public IRubyObject init(final ThreadContext context, final IRubyObject filter, final IRubyObject id) {
|
||||||
this.id = (RubyString) id;
|
this.id = (RubyString) id;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.filterClass = filter.getMetaClass();
|
this.filterClass = filter.getSingletonClass().getRealClass();
|
||||||
final IRubyObject namespacedMetric = filter.callMethod(context, "metric");
|
final IRubyObject namespacedMetric = filter.callMethod(context, "metric");
|
||||||
metricEvents = namespacedMetric.callMethod(context, "namespace", RubyUtil.RUBY.newSymbol("events"));
|
metricEvents = namespacedMetric.callMethod(context, "namespace", RubyUtil.RUBY.newSymbol("events"));
|
||||||
eventMetricOut = LongCounter.fromRubyBase(metricEvents, MetricKeys.OUT_KEY);
|
eventMetricOut = LongCounter.fromRubyBase(metricEvents, MetricKeys.OUT_KEY);
|
||||||
|
|
107
logstash-core/src/main/java/org/logstash/log/LoggableExt.java
Normal file
107
logstash-core/src/main/java/org/logstash/log/LoggableExt.java
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
package org.logstash.log;
|
||||||
|
|
||||||
|
import org.jruby.RubyClass;
|
||||||
|
import org.jruby.RubyModule;
|
||||||
|
import org.jruby.RubyString;
|
||||||
|
import org.jruby.anno.JRubyMethod;
|
||||||
|
import org.jruby.anno.JRubyModule;
|
||||||
|
import org.jruby.runtime.Block;
|
||||||
|
import org.jruby.runtime.ThreadContext;
|
||||||
|
import org.jruby.runtime.builtin.IRubyObject;
|
||||||
|
import org.jruby.runtime.builtin.InstanceVariables;
|
||||||
|
import org.logstash.RubyUtil;
|
||||||
|
|
||||||
|
@JRubyModule(name = "Loggable")
|
||||||
|
public final class LoggableExt {
|
||||||
|
|
||||||
|
private LoggableExt() {
|
||||||
|
// Ruby Module
|
||||||
|
}
|
||||||
|
|
||||||
|
@JRubyMethod(module = true)
|
||||||
|
public static RubyModule included(final ThreadContext context, final IRubyObject recv,
|
||||||
|
final IRubyObject clazz) {
|
||||||
|
final RubyModule klass = (RubyModule) clazz;
|
||||||
|
klass.defineAnnotatedMethods(LoggableExt.ClassMethods.class);
|
||||||
|
return klass;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JRubyMethod
|
||||||
|
public static IRubyObject logger(final ThreadContext context, final IRubyObject self) {
|
||||||
|
return self.getSingletonClass().callMethod(context, "logger");
|
||||||
|
}
|
||||||
|
|
||||||
|
@JRubyMethod(name = "slow_logger", required = 4)
|
||||||
|
public static IRubyObject slowLogger(final ThreadContext context, final IRubyObject self,
|
||||||
|
final IRubyObject[] args) {
|
||||||
|
return self.getSingletonClass().callMethod(context, "slow_logger", args);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static RubyString log4jName(final ThreadContext context, final RubyModule self) {
|
||||||
|
IRubyObject name = self.name19();
|
||||||
|
if (name.isNil()) {
|
||||||
|
final RubyClass clazz;
|
||||||
|
if(self instanceof RubyClass) {
|
||||||
|
clazz = ((RubyClass) self).getRealClass();
|
||||||
|
} else {
|
||||||
|
clazz = self.getMetaClass();
|
||||||
|
}
|
||||||
|
name = clazz.name19();
|
||||||
|
if (name.isNil()) {
|
||||||
|
name = clazz.to_s();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ((RubyString) ((RubyString) name).gsub(
|
||||||
|
context, RubyUtil.RUBY.newString("::"), RubyUtil.RUBY.newString("."),
|
||||||
|
Block.NULL_BLOCK
|
||||||
|
)).downcase19(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds the {@link JRubyMethod}s class methods that the {@link LoggableExt} module binds
|
||||||
|
* on classes that include it (and hence invoke
|
||||||
|
* {@link LoggableExt#included(ThreadContext, IRubyObject, IRubyObject)}).
|
||||||
|
*/
|
||||||
|
public static final class ClassMethods {
|
||||||
|
|
||||||
|
private ClassMethods() {
|
||||||
|
// Holder for JRuby Methods
|
||||||
|
}
|
||||||
|
|
||||||
|
@JRubyMethod(meta = true)
|
||||||
|
public static IRubyObject logger(final ThreadContext context, final IRubyObject self) {
|
||||||
|
final InstanceVariables instanceVariables;
|
||||||
|
if (self instanceof RubyClass) {
|
||||||
|
instanceVariables = ((RubyClass) self).getRealClass().getInstanceVariables();
|
||||||
|
} else {
|
||||||
|
instanceVariables = self.getInstanceVariables();
|
||||||
|
}
|
||||||
|
IRubyObject logger = instanceVariables.getInstanceVariable("logger");
|
||||||
|
if (logger == null || logger.isNil()) {
|
||||||
|
logger = RubyUtil.LOGGER.callMethod(context, "new",
|
||||||
|
LoggableExt.log4jName(context, (RubyModule) self)
|
||||||
|
);
|
||||||
|
instanceVariables.setInstanceVariable("logger", logger);
|
||||||
|
}
|
||||||
|
return logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JRubyMethod(name = "slow_logger", required = 4, meta = true)
|
||||||
|
public static SlowLoggerExt slowLogger(final ThreadContext context,
|
||||||
|
final IRubyObject self, final IRubyObject[] args) {
|
||||||
|
final InstanceVariables instanceVariables = self.getInstanceVariables();
|
||||||
|
SlowLoggerExt logger =
|
||||||
|
(SlowLoggerExt) instanceVariables.getInstanceVariable("slow_logger");
|
||||||
|
if (logger == null || logger.isNil()) {
|
||||||
|
logger = new SlowLoggerExt(context.runtime, RubyUtil.SLOW_LOGGER).initialize(
|
||||||
|
context, new IRubyObject[]{
|
||||||
|
LoggableExt.log4jName(context, (RubyModule) self), args[0], args[1],
|
||||||
|
args[2], args[3]
|
||||||
|
}
|
||||||
|
);
|
||||||
|
instanceVariables.setInstanceVariable("slow_logger", logger);
|
||||||
|
}
|
||||||
|
return logger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,7 +10,6 @@ import org.jruby.Ruby;
|
||||||
import org.jruby.RubyBoolean;
|
import org.jruby.RubyBoolean;
|
||||||
import org.jruby.RubyClass;
|
import org.jruby.RubyClass;
|
||||||
import org.jruby.RubyObject;
|
import org.jruby.RubyObject;
|
||||||
import org.jruby.RubyString;
|
|
||||||
import org.jruby.anno.JRubyClass;
|
import org.jruby.anno.JRubyClass;
|
||||||
import org.jruby.anno.JRubyMethod;
|
import org.jruby.anno.JRubyMethod;
|
||||||
import org.jruby.javasupport.JavaUtil;
|
import org.jruby.javasupport.JavaUtil;
|
||||||
|
@ -31,7 +30,7 @@ public class LoggerExt extends RubyObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
@JRubyMethod
|
@JRubyMethod
|
||||||
public IRubyObject initialize(final ThreadContext context, final IRubyObject loggerName) {
|
public LoggerExt initialize(final ThreadContext context, final IRubyObject loggerName) {
|
||||||
logger = LogManager.getLogger(loggerName.asJavaString());
|
logger = LogManager.getLogger(loggerName.asJavaString());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class SlowLoggerExt extends RubyObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
@JRubyMethod(required = 5)
|
@JRubyMethod(required = 5)
|
||||||
public IRubyObject initialize(final ThreadContext context, final IRubyObject[] args) {
|
public SlowLoggerExt initialize(final ThreadContext context, final IRubyObject[] args) {
|
||||||
String loggerName = args[0].asJavaString();
|
String loggerName = args[0].asJavaString();
|
||||||
slowLogger = LogManager.getLogger("slowlog." + loggerName);
|
slowLogger = LogManager.getLogger("slowlog." + loggerName);
|
||||||
warnThreshold = ((RubyNumeric) args[1]).getLongValue();
|
warnThreshold = ((RubyNumeric) args[1]).getLongValue();
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
# or more contributor license agreements. Licensed under the Elastic License;
|
# or more contributor license agreements. Licensed under the Elastic License;
|
||||||
# you may not use this file except in compliance with the Elastic License.
|
# you may not use this file except in compliance with the Elastic License.
|
||||||
|
|
||||||
require "logstash/util/loggable"
|
|
||||||
require "concurrent"
|
require "concurrent"
|
||||||
|
|
||||||
module LogStash module Inputs
|
module LogStash module Inputs
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue