def __init__(self):
        self.osutil = get_osutil()
        self.protocol_util = get_protocol_util()
        self.imds_client = get_imds_client()

        self.event_thread = None
        self.last_reset_loggers_time = None
        self.last_event_collection = None
        self.last_telemetry_heartbeat = None
        self.last_cgroup_polling_telemetry = None
        self.last_cgroup_report_telemetry = None
        self.last_host_plugin_heartbeat = None
        self.last_imds_heartbeat = None
        self.protocol = None
        self.health_service = None
        self.last_route_table_hash = b''
        self.last_nic_state = {}

        self.counter = 0
        self.sysinfo = []
        self.should_run = True
        self.heartbeat_id = str(uuid.uuid4()).upper()
        self.host_plugin_errorstate = ErrorState(
            min_timedelta=MonitorHandler.HOST_PLUGIN_HEALTH_PERIOD)
        self.imds_errorstate = ErrorState(
            min_timedelta=MonitorHandler.IMDS_HEALTH_PERIOD)
예제 #2
0
    def initialize_vminfo_common_parameters(self, protocol):
        """
        Initializes the common parameters that come from the goal state and IMDS
        """
        # create an index of the event parameters for faster updates
        parameters = {}
        for p in self._common_parameters:
            parameters[p.name] = p

        try:
            vminfo = protocol.get_vminfo()
            parameters[CommonTelemetryEventSchema.TenantName].value = vminfo.tenantName
            parameters[CommonTelemetryEventSchema.RoleName].value = vminfo.roleName
            parameters[CommonTelemetryEventSchema.RoleInstanceName].value = vminfo.roleInstanceName
        except Exception as e:
            logger.warn("Failed to get VM info from goal state; will be missing from telemetry: {0}", ustr(e))

        try:
            imds_client = get_imds_client(protocol.get_endpoint())
            imds_info = imds_client.get_compute()
            parameters[CommonTelemetryEventSchema.Location].value = imds_info.location
            parameters[CommonTelemetryEventSchema.SubscriptionId].value = imds_info.subscriptionId
            parameters[CommonTelemetryEventSchema.ResourceGroupName].value = imds_info.resourceGroupName
            parameters[CommonTelemetryEventSchema.VMId].value = imds_info.vmId
            parameters[CommonTelemetryEventSchema.ImageOrigin].value = int(imds_info.image_origin)
        except Exception as e:
            logger.warn("Failed to get IMDS info; will be missing from telemetry: {0}", ustr(e))
예제 #3
0
    def __init__(self):
        self.osutil = get_osutil()
        self.protocol_util = get_protocol_util()
        self.imds_client = get_imds_client()

        self.event_thread = None
        self.last_event_collection = None
        self.last_telemetry_heartbeat = None
        self.last_host_plugin_heartbeat = None
        self.protocol = None
        self.health_service = None

        self.counter = 0
        self.sysinfo = []
        self.should_run = True
        self.heartbeat_id = str(uuid.uuid4()).upper()
        self.host_plugin_errorstate = ErrorState(min_timedelta=MonitorHandler.HOST_PLUGIN_HEALTH_PERIOD)
예제 #4
0
    def __init__(self):
        self.osutil = get_osutil()
        self.protocol_util = get_protocol_util()
        self.imds_client = get_imds_client()

        self.event_thread = None
        self.last_event_collection = None
        self.last_telemetry_heartbeat = None
        self.last_cgroup_telemetry = None
        self.last_host_plugin_heartbeat = None
        self.last_imds_heartbeat = None
        self.protocol = None
        self.health_service = None
        self.last_route_table_hash = b''

        self.counter = 0
        self.sysinfo = []
        self.should_run = True
        self.heartbeat_id = str(uuid.uuid4()).upper()
        self.host_plugin_errorstate = ErrorState(min_timedelta=MonitorHandler.HOST_PLUGIN_HEALTH_PERIOD)
        self.imds_errorstate = ErrorState(min_timedelta=MonitorHandler.IMDS_HEALTH_PERIOD)
예제 #5
0
 def init_imds_client(self):
     wireserver_endpoint = self.protocol_util.get_wireserver_endpoint()
     self.imds_client = get_imds_client(wireserver_endpoint)
예제 #6
0
 def __init__(self, protocol_util, health_service):
     super(SendImdsHeartbeat, self).__init__(SendImdsHeartbeat._IMDS_HEARTBEAT_PERIOD)
     self.health_service = health_service
     self.imds_client = get_imds_client(protocol_util.get_wireserver_endpoint())
     self.imds_error_state = ErrorState(min_timedelta=SendImdsHeartbeat._IMDS_HEALTH_PERIOD)
예제 #7
0
 def __init__(self):
     self.osutil = get_osutil()
     self.protocol_util = get_protocol_util()
     self.imds_client = get_imds_client()
     self.sysinfo = []
     self.event_thread = None