_statsd.py (3016B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\monolithmetrics\_statsd.py 2 from __future__ import absolute_import 3 import logging 4 import monolithconfig 5 from . import _datadog 6 log = logging.getLogger('monolithmetrics._statsd') 7 aggregation_key = monolithconfig.get_value('clusterName', 'prefs') or 'Unknown' 8 running_client = monolithconfig.on_client() 9 10 def gauge(metric, value, tags = None, sample_rate = 1): 11 if running_client: 12 return 13 try: 14 _datadog.client.gauge(metric_name=metric, value=value, tags=tags, sample_rate=sample_rate) 15 except Exception as e: 16 msg = 'Gauge metric failed' 17 log.error(msg, exc_info=1, extra={'metric': metric, 18 'value': value, 19 'tags': tags, 20 'sample_rate': sample_rate}) 21 22 23 def increment(metric, value = 1, tags = None, sample_rate = 1): 24 if running_client: 25 return 26 try: 27 _datadog.client.increment(metric_name=metric, value=value, tags=tags, sample_rate=sample_rate) 28 except Exception as e: 29 msg = 'Increment metric failed' 30 log.error(msg, exc_info=1, extra={'metric': metric, 31 'value': value, 32 'tags': tags, 33 'sample_rate': sample_rate}) 34 35 36 def decrement(metric, value = 1, tags = None, sample_rate = 1): 37 if running_client: 38 return 39 try: 40 _datadog.client.decrement(metric_name=metric, value=value, tags=tags, sample_rate=sample_rate) 41 except Exception as e: 42 msg = 'Decrement metric failed' 43 log.error(msg, exc_info=1, extra={'metric': metric, 44 'value': value, 45 'tags': tags, 46 'sample_rate': sample_rate}) 47 48 49 def histogram(metric, value, tags = None, sample_rate = 1): 50 if running_client: 51 return 52 try: 53 _datadog.client.histogram(metric_name=metric, value=value, tags=tags, sample_rate=sample_rate) 54 except Exception as e: 55 msg = 'Histogram metric failed' 56 log.error(msg, exc_info=1, extra={'metric': metric, 57 'value': value, 58 'tags': tags, 59 'sample_rate': sample_rate}) 60 61 62 def timing(metric, value, tags = None, sample_rate = 1): 63 if running_client: 64 return 65 try: 66 _datadog.client.timing(metric_name=metric, value=value, tags=tags, sample_rate=sample_rate) 67 except Exception as e: 68 msg = 'Timing metric failed' 69 log.error(msg, exc_info=1, extra={'metric': metric, 70 'value': value, 71 'tags': tags, 72 'sample_rate': sample_rate}) 73 74 75 def event(title, text = '', tags = None): 76 if running_client: 77 return 78 try: 79 _datadog.client.event(title=title, text=text, tags=tags, aggregation_key=aggregation_key) 80 except Exception as e: 81 msg = 'Event metric failed' 82 log.error(msg, exc_info=1, extra={'title': title, 83 'text': text, 84 'tags': tags}) 85 86 87 def flush(): 88 if running_client: 89 return 90 try: 91 _datadog.client.flush() 92 except Exception as e: 93 log.error('Manual flush failed')