Class: Syslogstash::PrometheusExporter
- Inherits:
-
Object
- Object
- Syslogstash::PrometheusExporter
- Defined in:
- lib/syslogstash/prometheus_exporter.rb
Instance Attribute Summary collapse
-
#thread ⇒ Object
readonly
Returns the value of attribute thread.
Instance Method Summary collapse
- #dropped ⇒ Object
-
#initialize(cfg) ⇒ PrometheusExporter
constructor
A new instance of PrometheusExporter.
- #received(socket) ⇒ Object
- #run ⇒ Object
- #sent(server, stamp) ⇒ Object
Constructor Details
#initialize(cfg) ⇒ PrometheusExporter
Returns a new instance of PrometheusExporter.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 7 def initialize(cfg) @stats_server = Frankenstein::Server.new(port: 9159, logger: cfg.logger, metrics_prefix: "syslogstash_server") @msg_in = prom.counter(:syslogstash_messages_received_total, "The number of syslog messages received from the log socket") @msg_out = prom.counter(:syslogstash_messages_sent_total, "The number of logstash messages sent to each logstash server") @lag = prom.gauge(:syslogstash_last_relayed_message_timestamp, "When the last message that was successfully relayed to logstash was originally received") @queue = prom.gauge(:syslogstash_queue_size, "How many messages are currently in the queue to be sent") @dropped = prom.counter(:syslogstash_messages_dropped, "How many messages have been dropped from the backlog queue") @q_mutex = Mutex.new @lag.set({}, 0) @queue.set({}, 0) end |
Instance Attribute Details
#thread ⇒ Object (readonly)
Returns the value of attribute thread.
5 6 7 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 5 def thread @thread end |
Instance Method Details
#dropped ⇒ Object
33 34 35 36 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 33 def dropped @queue.set({}, @queue.get({}) - 1) @dropped.increment({}) end |
#received(socket) ⇒ Object
22 23 24 25 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 22 def received(socket) @msg_in.increment(socket_path: socket) @q_mutex.synchronize { @queue.set({}, @queue.get({}) + 1) } end |
#run ⇒ Object
38 39 40 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 38 def run @stats_server.run end |
#sent(server, stamp) ⇒ Object
27 28 29 30 31 |
# File 'lib/syslogstash/prometheus_exporter.rb', line 27 def sent(server, stamp) @msg_out.increment(logstash_server: server) @q_mutex.synchronize { @queue.set({}, @queue.get({}) - 1) } @lag.set({}, stamp.to_f) end |