summaryrefslogtreecommitdiff
path: root/azurelinuxagent/common/event.py
diff options
context:
space:
mode:
Diffstat (limited to 'azurelinuxagent/common/event.py')
-rw-r--r--azurelinuxagent/common/event.py39
1 files changed, 24 insertions, 15 deletions
diff --git a/azurelinuxagent/common/event.py b/azurelinuxagent/common/event.py
index 4037622..9265820 100644
--- a/azurelinuxagent/common/event.py
+++ b/azurelinuxagent/common/event.py
@@ -28,29 +28,31 @@ import azurelinuxagent.common.logger as logger
from azurelinuxagent.common.exception import EventError, ProtocolError
from azurelinuxagent.common.future import ustr
from azurelinuxagent.common.protocol.restapi import TelemetryEventParam, \
- TelemetryEventList, \
- TelemetryEvent, \
- set_properties, get_properties
+ TelemetryEventList, \
+ TelemetryEvent, \
+ set_properties, get_properties
from azurelinuxagent.common.version import DISTRO_NAME, DISTRO_VERSION, \
- DISTRO_CODE_NAME, AGENT_VERSION, \
- CURRENT_AGENT, CURRENT_VERSION
+ DISTRO_CODE_NAME, AGENT_VERSION, \
+ CURRENT_AGENT, CURRENT_VERSION
class WALAEventOperation:
- ActivateResourceDisk="ActivateResourceDisk"
+ ActivateResourceDisk = "ActivateResourceDisk"
Disable = "Disable"
Download = "Download"
Enable = "Enable"
HealthCheck = "HealthCheck"
- HeartBeat="HeartBeat"
+ HeartBeat = "HeartBeat"
Install = "Install"
+ InitializeHostPlugin = "InitializeHostPlugin"
Provision = "Provision"
- Restart="Restart"
- UnhandledError="UnhandledError"
+ Restart = "Restart"
+ UnhandledError = "UnhandledError"
UnInstall = "UnInstall"
Upgrade = "Upgrade"
Update = "Update"
+
class EventLogger(object):
def __init__(self):
self.event_dir = None
@@ -66,22 +68,24 @@ class EventLogger(object):
if len(os.listdir(self.event_dir)) > 1000:
raise EventError("Too many files under: {0}".format(self.event_dir))
- filename = os.path.join(self.event_dir, ustr(int(time.time()*1000000)))
+ filename = os.path.join(self.event_dir,
+ ustr(int(time.time() * 1000000)))
try:
- with open(filename+".tmp",'wb+') as hfile:
+ with open(filename + ".tmp", 'wb+') as hfile:
hfile.write(data.encode("utf-8"))
- os.rename(filename+".tmp", filename+".tld")
+ os.rename(filename + ".tmp", filename + ".tld")
except IOError as e:
raise EventError("Failed to write events to file:{0}", e)
- def add_event(self, name, op="", is_success=True, duration=0, version=CURRENT_VERSION,
+ def add_event(self, name, op="", is_success=True, duration=0,
+ version=CURRENT_VERSION,
message="", evt_type="", is_internal=False):
event = TelemetryEvent(1, "69B669B9-4AF8-4C50-BDC4-6006FA76E975")
event.parameters.append(TelemetryEventParam('Name', name))
event.parameters.append(TelemetryEventParam('Version', str(version)))
event.parameters.append(TelemetryEventParam('IsInternal', is_internal))
event.parameters.append(TelemetryEventParam('Operation', op))
- event.parameters.append(TelemetryEventParam('OperationSuccess',
+ event.parameters.append(TelemetryEventParam('OperationSuccess',
is_success))
event.parameters.append(TelemetryEventParam('Message', message))
event.parameters.append(TelemetryEventParam('Duration', duration))
@@ -93,8 +97,10 @@ class EventLogger(object):
except EventError as e:
logger.error("{0}", e)
+
__event_logger__ = EventLogger()
+
def add_event(name, op="", is_success=True, duration=0, version=CURRENT_VERSION,
message="", evt_type="", is_internal=False,
reporter=__event_logger__):
@@ -108,9 +114,11 @@ def add_event(name, op="", is_success=True, duration=0, version=CURRENT_VERSION,
version=str(version), message=message, evt_type=evt_type,
is_internal=is_internal)
+
def init_event_logger(event_dir, reporter=__event_logger__):
reporter.event_dir = event_dir
+
def dump_unhandled_err(name):
if hasattr(sys, 'last_type') and hasattr(sys, 'last_value') and \
hasattr(sys, 'last_traceback'):
@@ -119,9 +127,10 @@ def dump_unhandled_err(name):
last_traceback = getattr(sys, 'last_traceback')
error = traceback.format_exception(last_type, last_value,
last_traceback)
- message= "".join(error)
+ message = "".join(error)
add_event(name, is_success=False, message=message,
op=WALAEventOperation.UnhandledError)
+
def enable_unhandled_err_dump(name):
atexit.register(dump_unhandled_err, name)