Module: Stackify
- Includes:
- Authorizable
- Defined in:
- lib/stackify/agent_base_sender.rb,
lib/stackify/rum.rb,
lib/stackify/error.rb,
lib/stackify/engine.rb,
lib/stackify/version.rb,
lib/stackify-api-ruby.rb,
lib/stackify/scheduler.rb,
lib/stackify/msgs_queue.rb,
lib/proto/stackify-agent.rb,
lib/stackify/env_details.rb,
lib/stackify/http_client.rb,
lib/stackify/logs_sender.rb,
lib/stackify/agent_client.rb,
lib/stackify/logger_proxy.rb,
lib/stackify/logger_client.rb,
lib/stackify/schedule_task.rb,
lib/stackify/schedule_delay.rb,
lib/stackify/workers/worker.rb,
lib/stackify/errors_governor.rb,
lib/stackify/metrics/metrics.rb,
lib/stackify/utils/msg_object.rb,
lib/stackify/agent_http_sender.rb,
lib/stackify/transport_selector.rb,
lib/stackify/unix_socket_sender.rb,
lib/stackify/rack/errors_catcher.rb,
lib/stackify/utils/configuration.rb,
lib/stackify/workers/auth_worker.rb,
lib/stackify/workers/add_msg_worker.rb,
lib/stackify/utils/protobuf_log_object.rb,
lib/stackify/workers/msgs_queue_worker.rb,
lib/stackify/workers/logs_sender_worker.rb
Overview
This class will handle the sending of log messages to unix domain socket
Defined Under Namespace
Modules: Authorizable, Backtrace, Metrics, Utils
Classes: AddMsgWorker, AgentBaseSender, AgentClient, AgentHTTPSender, AuthWorker, Configuration, Engine, EnvDetails, ErrorsCatcher, ErrorsGovernor, HttpClient, LoggerClient, LoggerProxy, LogsSender, LogsSenderWorker, MsgObject, MsgsQueue, MsgsQueueWorker, ProtobufLogObject, Rum, ScheduleDelay, ScheduleTask, Scheduler, StackifiedError, StringException, TransportSelector, UnixSocketSender, Worker
Constant Summary
collapse
- VERSION =
'2.0.0'
- INTERNAL_LOG_PREFIX =
'[Stackify]'.freeze
- STATUSES =
{ working: 'working', terminating: 'terminating', terminated: 'terminated'}
- MODES =
{ logging: :logging, metrics: :metrics, both: :both }
- TRANSPORT =
[DEFAULT = 'default', UNIX_SOCKET = 'agent_socket', AGENT_HTTP = 'agent_http']
- LogGroup =
Google::Protobuf::DescriptorPool.generated_pool.lookup("stackify.LogGroup").msgclass
Class Attribute Summary collapse
Class Method Summary
collapse
included
Class Attribute Details
.config=(value) ⇒ Object
Sets the attribute config
46
47
48
|
# File 'lib/stackify-api-ruby.rb', line 46
def config=(value)
@config = value
end
|
Class Method Details
.add_dependant_worker(worker) ⇒ Object
110
111
112
|
# File 'lib/stackify-api-ruby.rb', line 110
def add_dependant_worker worker
@workers << worker
end
|
.alive_adding_msg_workers ⇒ Object
102
103
104
|
# File 'lib/stackify-api-ruby.rb', line 102
def alive_adding_msg_workers
@workers.select{ |w| w.alive? && w.type == :add_msg }
end
|
.delete_worker(worker) ⇒ Object
106
107
108
|
# File 'lib/stackify-api-ruby.rb', line 106
def delete_worker worker
@workers.delete worker
end
|
.get_transport ⇒ Object
83
84
85
|
# File 'lib/stackify-api-ruby.rb', line 83
def get_transport
@logger_client.get_transport
end
|
.internal_log(level, msg) ⇒ Object
.is_valid? ⇒ Boolean
185
186
187
|
# File 'lib/stackify-api-ruby.rb', line 185
def is_valid?
configuration.is_valid?
end
|
.log_internal_error(msg) ⇒ Object
91
92
93
|
# File 'lib/stackify-api-ruby.rb', line 91
def logger
self.configuration.logger
end
|
.make_remained_job ⇒ Object
180
181
182
183
|
# File 'lib/stackify-api-ruby.rb', line 180
def make_remained_job
@status = STATUSES[:terminating]
Stackify.msgs_queue.push_remained_msgs
end
|
.msgs_queue ⇒ Object
71
72
73
|
# File 'lib/stackify-api-ruby.rb', line 71
def msgs_queue
@msgs_queue ||= Stackify::MsgsQueue.new
end
|
52
53
54
|
# File 'lib/stackify-api-ruby.rb', line 52
def rum
@rum ||= Stackify::Rum.new(configuration)
end
|
.setup {|configuration| ... } ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/stackify-api-ruby.rb', line 56
def setup
@workers = []
yield(configuration) if block_given?
configuration.validate_transport_type
if configuration.is_valid?
@status = STATUSES[:working]
else
msg = "Stackify's configuration is not valid!"
configuration.errors.each do |error_msg|
msg += "\n" + error_msg
end
raise msg
end
end
|
.shutdown_all(caller_obj = nil) ⇒ Object
95
96
97
98
99
100
|
# File 'lib/stackify-api-ruby.rb', line 95
def shutdown_all caller_obj=nil
Stackify.status = Stackify::STATUSES[:terminating]
@workers.each do |worker|
worker.shutdown! unless worker.equal? caller_obj
end
end
|
.start_logging ⇒ Object
168
169
170
|
# File 'lib/stackify-api-ruby.rb', line 168
def start_logging
msgs_queue
end
|
114
115
116
|
# File 'lib/stackify-api-ruby.rb', line 114
def status
@status
end
|
.status=(status) ⇒ Object
201
202
203
204
205
206
207
|
# File 'lib/stackify-api-ruby.rb', line 201
def status= status
if STATUSES.has_value? status
@status = status
else
raise "method 'status=' should get one of arguments #{STATUSES.values}, not a #{status}"
end
end
|
.terminated? ⇒ Boolean
193
194
195
|
# File 'lib/stackify-api-ruby.rb', line 193
def terminated?
@status == STATUSES[:terminated]
end
|
.terminating? ⇒ Boolean
189
190
191
|
# File 'lib/stackify-api-ruby.rb', line 189
def terminating?
@status == STATUSES[:terminating]
end
|
176
177
178
|
# File 'lib/stackify-api-ruby.rb', line 176
def workers
@workers
end
|
.working? ⇒ Boolean
197
198
199
|
# File 'lib/stackify-api-ruby.rb', line 197
def working?
@status == STATUSES[:working]
end
|