Class: Fluent::Plugin::Base
Direct Known Subclasses
BareOutput, Buffer, Filter, Formatter, Input, Metrics, MultiOutput, Output, Parser, ServiceDiscovery, Storage, Test::Driver::OwnerDummy
Defined Under Namespace
Classes: State
Constant Summary
Configurable::CONFIG_TYPE_REGISTRY
Instance Attribute Summary collapse
Instance Method Summary
collapse
#system_config, #system_config_override
#config, #configure_proxy_generate, #configured_section_create, included, lookup_type, register_type
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
31
32
33
34
35
36
37
38
39
|
# File 'lib/fluent/plugin/base.rb', line 31
def initialize
@log = nil
super
@fluentd_lock_dir = ENV['FLUENTD_LOCK_DIR']
@_state = State.new(false, false, false, false, false, false, false, false, false)
@_context_router = nil
@_fluentd_worker_id = nil
@under_plugin_development = false
end
|
Instance Attribute Details
#under_plugin_development ⇒ Object
Returns the value of attribute under_plugin_development.
29
30
31
|
# File 'lib/fluent/plugin/base.rb', line 29
def under_plugin_development
@under_plugin_development
end
|
Instance Method Details
#acquire_worker_lock(name) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/fluent/plugin/base.rb', line 79
def acquire_worker_lock(name)
if @fluentd_lock_dir.nil?
raise InvalidLockDirectory, "can't acquire lock because FLUENTD_LOCK_DIR isn't set"
end
lock_path = get_lock_path(name)
File.open(lock_path, "w") do |f|
f.flock(File::LOCK_EX)
yield
end
FileUtils.touch(lock_path);
end
|
#after_shutdown ⇒ Object
139
140
141
142
|
# File 'lib/fluent/plugin/base.rb', line 139
def after_shutdown
@_state.after_shutdown = true
self
end
|
#after_shutdown? ⇒ Boolean
178
179
180
|
# File 'lib/fluent/plugin/base.rb', line 178
def after_shutdown?
@_state.after_shutdown
end
|
#after_start ⇒ Object
119
120
121
122
|
# File 'lib/fluent/plugin/base.rb', line 119
def after_start
@_state.after_start = true
self
end
|
#after_started? ⇒ Boolean
162
163
164
|
# File 'lib/fluent/plugin/base.rb', line 162
def after_started?
@_state.after_start
end
|
#before_shutdown ⇒ Object
129
130
131
132
|
# File 'lib/fluent/plugin/base.rb', line 129
def before_shutdown
@_state.before_shutdown = true
self
end
|
#before_shutdown? ⇒ Boolean
170
171
172
|
# File 'lib/fluent/plugin/base.rb', line 170
def before_shutdown?
@_state.before_shutdown
end
|
#called_in_test? ⇒ Boolean
190
191
192
193
194
195
196
197
198
199
200
|
# File 'lib/fluent/plugin/base.rb', line 190
def called_in_test?
caller_locations.each do |location|
if location.absolute_path =~ /\/test_[^\/]+\.rb$/ return true
end
end
false
end
|
#close ⇒ Object
144
145
146
147
|
# File 'lib/fluent/plugin/base.rb', line 144
def close
@_state.close = true
self
end
|
#closed? ⇒ Boolean
182
183
184
|
# File 'lib/fluent/plugin/base.rb', line 182
def closed?
@_state.close
end
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/fluent/plugin/base.rb', line 55
def configure(conf)
if Fluent::Engine.supervisor_mode || (conf.respond_to?(:for_this_worker?) && conf.for_this_worker?)
workers = if conf.target_worker_ids && !conf.target_worker_ids.empty?
conf.target_worker_ids.size
else
1
end
system_config_override(workers: workers)
end
super(conf, system_config.strict_config_value)
@_state ||= State.new(false, false, false, false, false, false, false, false, false)
@_state.configure = true
self
end
|
154
155
156
|
# File 'lib/fluent/plugin/base.rb', line 154
def configured?
@_state.configure
end
|
#context_router ⇒ Object
104
105
106
|
# File 'lib/fluent/plugin/base.rb', line 104
def context_router
@_context_router
end
|
#context_router=(router) ⇒ Object
100
101
102
|
# File 'lib/fluent/plugin/base.rb', line 100
def context_router=(router)
@_context_router = router
end
|
#fluentd_worker_id ⇒ Object
49
50
51
52
53
|
# File 'lib/fluent/plugin/base.rb', line 49
def fluentd_worker_id
return @_fluentd_worker_id if @_fluentd_worker_id
@_fluentd_worker_id = (ENV['SERVERENGINE_WORKER_ID'] || 0).to_i
@_fluentd_worker_id
end
|
#get_lock_path(name) ⇒ Object
74
75
76
77
|
# File 'lib/fluent/plugin/base.rb', line 74
def get_lock_path(name)
name = name.gsub(/[^a-zA-Z0-9]/, "_")
File.join(@fluentd_lock_dir, "fluentd-#{name}.lock")
end
|
#has_router? ⇒ Boolean
41
42
43
|
# File 'lib/fluent/plugin/base.rb', line 41
def has_router?
false
end
|
#inspect ⇒ Object
202
203
204
205
206
207
208
|
# File 'lib/fluent/plugin/base.rb', line 202
def inspect
"#<%s:%014x>" % [self.class.name, '0x%014x' % (__id__ << 1)]
end
|
#multi_workers_ready? ⇒ Boolean
70
71
72
|
# File 'lib/fluent/plugin/base.rb', line 70
def multi_workers_ready?
true
end
|
#plugin_root_dir ⇒ Object
45
46
47
|
# File 'lib/fluent/plugin/base.rb', line 45
def plugin_root_dir
nil end
|
#reloadable_plugin? ⇒ Boolean
210
211
212
213
|
# File 'lib/fluent/plugin/base.rb', line 210
def reloadable_plugin?
self.class.class_variables.empty?
end
|
#shutdown ⇒ Object
134
135
136
137
|
# File 'lib/fluent/plugin/base.rb', line 134
def shutdown
@_state.shutdown = true
self
end
|
#shutdown? ⇒ Boolean
174
175
176
|
# File 'lib/fluent/plugin/base.rb', line 174
def shutdown?
@_state.shutdown
end
|
#start ⇒ Object
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/fluent/plugin/base.rb', line 108
def start
if @log.is_a?(Fluent::PluginLogger) && $log.respond_to?(:log_event_enabled) @log.log_event_enabled = $log.log_event_enabled
end
@_state.start = true
self
end
|
#started? ⇒ Boolean
158
159
160
|
# File 'lib/fluent/plugin/base.rb', line 158
def started?
@_state.start
end
|
#stop ⇒ Object
124
125
126
127
|
# File 'lib/fluent/plugin/base.rb', line 124
def stop
@_state.stop = true
self
end
|
#stopped? ⇒ Boolean
166
167
168
|
# File 'lib/fluent/plugin/base.rb', line 166
def stopped?
@_state.stop
end
|
#string_safe_encoding(str) {|str| ... } ⇒ Object
92
93
94
95
96
97
98
|
# File 'lib/fluent/plugin/base.rb', line 92
def string_safe_encoding(str)
unless str.valid_encoding?
str = str.scrub('?')
log.info "invalid byte sequence is replaced in `#{str}`" if self.respond_to?(:log)
end
yield str
end
|
#terminate ⇒ Object
149
150
151
152
|
# File 'lib/fluent/plugin/base.rb', line 149
def terminate
@_state.terminate = true
self
end
|
#terminated? ⇒ Boolean
186
187
188
|
# File 'lib/fluent/plugin/base.rb', line 186
def terminated?
@_state.terminate
end
|