decisionai_plugin/common/util/monitor.py (35 lines of code) (raw):
import time
import logging
import uuid
from os import environ
from .azureblob import AzureBlob
from .azuretable import AzureTable
from .constant import AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_TABLE_KEY, AZURE_STORAGE_ACCOUNT_DOMAIN
from telemetry import log
thumbprint = str(uuid.uuid1())
def init_monitor(config):
azure_table = AzureTable(AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_TABLE_KEY, AZURE_STORAGE_ACCOUNT_DOMAIN)
if not azure_table.exists_table(config.az_tsana_moniter_table):
azure_table.create_table_if_not_exists(config.az_tsana_moniter_table)
tk = time.time()
azure_table.insert_or_replace_entity(config.az_tsana_moniter_table, config.tsana_app_name,
thumbprint,
ping = tk)
def run_monitor(config):
azure_table = AzureTable(AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_TABLE_KEY, AZURE_STORAGE_ACCOUNT_DOMAIN)
if not azure_table.exists_table(config.az_tsana_moniter_table):
return
tk = time.time()
azure_table.insert_or_replace_entity(config.az_tsana_moniter_table, config.tsana_app_name,
thumbprint,
ping = tk)
def stop_monitor(config):
log.info('Monitor exit! ')
try:
azure_table = AzureTable(AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_TABLE_KEY, AZURE_STORAGE_ACCOUNT_DOMAIN)
if not azure_table.exists_table(config.az_tsana_moniter_table):
return
azure_table.delete_entity(config.az_tsana_moniter_table, config.tsana_app_name,
thumbprint)
except:
pass