예제 #1
0
 def test_event_counter(self):
     key = 'test-event-counter'
     stats.new(key, stats.STATS_TYPE_EVENTCOUNTER)
     LOOP.run_until_complete(stats.add(key, 'event-1'))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': {
                     'event-1': 1
                 }
             },
             'type': stats.STATS_TYPE_EVENTCOUNTER,
             'description': None,
         })
     LOOP.run_until_complete(stats.add(key, 'event-1'))
     LOOP.run_until_complete(stats.add(key, 'event-2'))
     LOOP.run_until_complete(stats.add(key, 'event-1'))
     LOOP.run_until_complete(stats.add(key, 'event-2'))
     LOOP.run_until_complete(stats.add(key, 'event-2'))
     LOOP.run_until_complete(stats.add(key, 'event-1'))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': {
                     'event-1': 4,
                     'event-2': 3
                 }
             },
             'type': stats.STATS_TYPE_EVENTCOUNTER,
             'description': None,
         })
예제 #2
0
파일: aeon.py 프로젝트: moff4/k2
class Aeon(AbstractAeon):
    """
        asyncio web server
    """

    # objects must be callable or asyncio.corutines
    middleware = []  # type: List[Callable]
    postware = []  # type: List[Callable]

    def __init__(self, /, **b):
        super().__init__(**b)
        self._request_prop = b.get('request', {})
        self._ws_prop = b.get('websocket', {})
        self.namespace = NameSpace(tree=b.get('namespace'), )
        for i in range(1, 6):
            stats.new(key=f'aeon-{i}xx',
                      type='time_event_counter',
                      description=f'HTTP status code {i}xx')
        stats.new(key='request_log',
                  type='time_events',
                  description='log for each request')
        stats.new(key='ws_connections',
                  type='counter',
                  description='opened ws conenctions')
        stats.new(key='connections',
                  type='counter',
                  description='opened conenctions')
예제 #3
0
 def test_single(self):
     key = 'test-single'
     stats.new(key, stats.STATS_TYPE_SINGLE)
     LOOP.run_until_complete(stats.add(key, 'TestVal_1'))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': 'TestVal_1'
             },
             'type': stats.STATS_TYPE_SINGLE,
             'description': None,
         })
     LOOP.run_until_complete(stats.add(key, 'TestVal_2'))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': 'TestVal_2'
             },
             'type': stats.STATS_TYPE_SINGLE,
             'description': None,
         })
예제 #4
0
 def test_counter(self):
     key = 'test-counter'
     stats.new(key, stats.STATS_TYPE_COUNTER)
     LOOP.run_until_complete(stats.add(key))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': 1,
                 'default': 0
             },
             'type': stats.STATS_TYPE_COUNTER,
             'description': None,
         })
     LOOP.run_until_complete(stats.add(key, 15))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'data': 16,
                 'default': 0
             },
             'type': stats.STATS_TYPE_COUNTER,
             'description': None,
         })
예제 #5
0
 def test_average(self):
     key = 'test-average'
     stats.new(key, stats.STATS_TYPE_AVERAGE)
     LOOP.run_until_complete(stats.add(key, 150))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'count': 1,
                 'data': 150,
                 'limit': 500
             },
             'type': stats.STATS_TYPE_AVERAGE,
             'description': None,
         })
     LOOP.run_until_complete(stats.add(key, 13))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'count': 2,
                 'data': (150 + 13) / 2,
                 'limit': 500
             },
             'type': stats.STATS_TYPE_AVERAGE,
             'description': None,
         })
     LOOP.run_until_complete(stats.add(key, 99))
     self.assertEqual(
         stats.export_one(key), {
             'data': {
                 'count': 3,
                 'data': (150 + 13 + 99) / 3,
                 'limit': 500
             },
             'type': stats.STATS_TYPE_AVERAGE,
             'description': None,
         })