def setUp(self): self.reporter = LibratoReporter("<email>", "<token>") Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(1.5) Metrology.utilization_timer('utimer').update(1.5)
def setUp(self): self.reporter = GraphiteReporter('localhost', 3333) Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(1.5) Metrology.utilization_timer('utimer').update(1.5)
def setUp(self): self.reporter = GangliaReporter("Group Name", "localhost", 8649) Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(5) Metrology.utilization_timer('utimer').update(5)
def setUp(self): self.output = StringIO() logging.basicConfig(stream=self.output, level=logging.INFO) self.reporter = LoggerReporter() Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(1.5) Metrology.utilization_timer('utimer').update(1.5)
def test_send_batch(self, mock): self.reporter = GraphiteReporter('localhost', 3333, batch_size=2) Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(5) Metrology.utilization_timer('utimer').update(5) Metrology.histogram('histogram').update(5) self.reporter.write() self.assertTrue(mock.send.assert_called()) self.assertEqual(25, len(mock.sendall.call_args_list)) self.reporter.stop()
def test_send_batch(self, mock): self.reporter = GraphiteReporter("localhost", 3334, pickle=True, batch_size=2) Metrology.meter("meter").mark() Metrology.counter("counter").increment() Metrology.timer("timer").update(5) Metrology.utilization_timer("utimer").update(5) Metrology.histogram("histogram").update(5) self.reporter.write() self.assertTrue(mock.sendall.assert_called()) self.assertEqual(25, len(mock.sendall.call_args_list)) self.reporter.stop()
def test_udp_send_batch(self, mock): self.reporter = StatsDReporter('localhost', 3333, batch_size=2, conn_type='udp') Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(5) Metrology.utilization_timer('utimer').update(5) Metrology.histogram('histogram').update(5) self.reporter.write() self.assertTrue(mock.sendto.called) self.assertEqual(3, len(mock.sendto.call_args_list)) self.reporter.stop()
def test_udp_send_batch(self, mock): self.reporter = StatsDReporter('localhost', 3333, batch_size=2, conn_type='udp') Metrology.meter('meter').mark() Metrology.counter('counter').increment() Metrology.timer('timer').update(5) Metrology.utilization_timer('utimer').update(5) Metrology.histogram('histogram').update(5) self.reporter.write() self.assertTrue(mock.sendto.called) self.assertEqual(3, len(mock.sendto.call_args_list)) self.reporter.stop()
def __init__(self, single=False): """ Initalizer @param single: collect from a single device? @type single: boolean """ PBDaemon.__init__(self) # FIXME: cleanup --force option #2660 self.options.force = True self.start = None self.startat = None self.rrdStats = DaemonStats() self.single = single if self.options.device: self.single = True self.modelerCycleInterval = self.options.cycletime # get the minutes and convert to fraction of a day self.collage = float(self.options.collage) / 1440.0 self.pendingNewClients = False self.clients = [] self.finished = [] self.devicegen = None self.counters = collections.Counter() self.configFilter = None self.configLoaded = False # Make sendEvent() available to plugins zope.component.provideUtility(self, IEventService) # Delay start for between 10 and 60 seconds when run as a daemon. self.started = False self.startDelay = 0 self.immediate = 1 if self.options.daemon or self.options.cycle: if self.options.now: self.log.debug('option "now" specified, starting immediately.') else: # self.startDelay = randint(10, 60) * 60 self.startDelay = randint(10, 60) * 1 self.immediate = 0 self.log.info( 'option "now" not specified, waiting %s seconds to start.' % self.startDelay) else: self.log.debug("Run in foreground, starting immediately.") # ZEN-26637 self.collectorLoopIteration = 0 self.mainLoopGotDeviceList = False self.isMainScheduled = False self._modeledDevicesMetric = Metrology.meter( "zenmodeler.modeledDevices") self._failuresMetric = Metrology.counter("zenmodeler.failures")
def __init__(self, single=False ): """ Initalizer @param single: collect from a single device? @type single: boolean """ PBDaemon.__init__(self) # FIXME: cleanup --force option #2660 self.options.force = True self.start = None self.startat = None self.rrdStats = DaemonStats() self.single = single if self.options.device: self.single = True self.modelerCycleInterval = self.options.cycletime # get the minutes and convert to fraction of a day self.collage = float( self.options.collage ) / 1440.0 self.pendingNewClients = False self.clients = [] self.finished = [] self.devicegen = None self.counters = collections.Counter() self.configFilter = None self.configLoaded = False # Make sendEvent() available to plugins zope.component.provideUtility(self, IEventService) # Delay start for between 10 and 60 seconds when run as a daemon. self.started = False self.startDelay = 0 self.immediate = 1 if self.options.daemon or self.options.cycle: if self.options.now: self.log.debug('option "now" specified, starting immediately.') else: # self.startDelay = randint(10, 60) * 60 self.startDelay = randint(10, 60) * 1 self.immediate = 0 self.log.info('option "now" not specified, waiting %s seconds to start.' % self.startDelay) else: self.log.debug("Run in foreground, starting immediately.") # ZEN-26637 self.collectorLoopIteration = 0 self.mainLoopGotDeviceList = False self._modeledDevicesMetric = Metrology.meter("zenmodeler.modeledDevices") self._failuresMetric = Metrology.counter("zenmodeler.failures")
import logging, configargparse, pyodbc, time, pdb, re, json, sys from threading import Event from confluent_kafka import Producer from metrology import Metrology from metrology.reporter import LoggerReporter meter = Metrology.meter("messages") successful = Metrology.counter("success") errors = Metrology.meter("errors") stop_event = Event() def get_kafka_parameters(options): producer_config = { "bootstrap.servers": options.brokers, "message.timeout.ms": 1000 } match = re.findall("://([^/]+)/", options.brokers) if len(match) == 1: producer_config["bootstrap.servers"] = match[0] + ":9093" producer_config.update({ 'sasl.mechanisms': 'PLAIN', 'security.protocol': 'SASL_SSL', "sasl.username": "******", "sasl.password": options.brokers }) logging.debug("Using Kafka config: {}".format(json.dumps(producer_config))) return producer_config def get_badge(options):
def test_counter(self): self.assertTrue(Metrology.counter('test') is not None)
def test_get(self): Metrology.counter('test') self.assertTrue(Metrology.get('test') is not None)
from producer_conf import * def generate_data(fake): data = { "username": fake.user_name(), "ip": fake.ipv4_public(), "uri": fake.uri(), "user_agent": fake.user_agent(), "method": fake.random_element(elements=["POST", "GET", "HEAD", "PUT"]), "status_code": fake.random_element(elements=[200,201, 202, 301, 303, 400, 401, 403, 404, 500]), "ts": datetime.now().isoformat() } return data meter = Metrology.meter("messages") successful = Metrology.counter("success") errors = Metrology.counter("errors") logging.basicConfig(level=logging.DEBUG) reporter = LoggerReporter(level=logging.INFO, interval=10) def delivery_report(err, msg): if err is not None: errors.increment() else: successful.increment() meter.mark() producer_config = {"bootstrap.servers": BROKER_HOST} if len(KAFKA_USERNAME): producer_config.update({
def test_get(self): Metrology.counter("test") self.assertTrue(Metrology.get("test") is not None)