Пример #1
0
 def __init__(self, os, java_runtime, java_threading, dbms_components,
              dbms_kernel, dbms_config):
     if os:
         self.os = Product(os[u"Name"], os[u"Version"], arch=os[u"Arch"])
         self.available_processors = Amount(os[u"AvailableProcessors"])
         self.process_cpu_time = Time(ns=os[u"ProcessCpuTime"])
         self.process_cpu_load = Load(os[u"ProcessCpuLoad"])
         self.system_cpu_load = Load(os[u"SystemCpuLoad"])
         self.system_load_average = Load(os[u"SystemLoadAverage"])
     if java_runtime:
         self.jvm = Product(java_runtime[u"VmName"],
                            java_runtime[u"SpecVersion"],
                            uptime=Time(ms=java_runtime[u"Uptime"]))
     if java_threading:
         self.daemon_thread_count = Amount(
             java_threading[u"DaemonThreadCount"])
         self.peak_thread_count = Amount(java_threading[u"PeakThreadCount"])
         self.thread_count = Amount(java_threading[u"ThreadCount"])
         self.total_started_thread_count = Amount(
             java_threading[u"TotalStartedThreadCount"])
     if dbms_components:
         t0 = dbms_kernel[u"KernelStartTime"]
         t1 = 1000 * datetime.now().timestamp()
         dbms_component = dbms_components[0]
         dbms_component_name = dbms_component[u"name"]
         if dbms_component_name == "Neo4j Kernel":
             dbms_component_name = "Neo4j"
         self.dbms = Product(
             dbms_component_name,
             dbms_component[u"versions"][0],
             edition=self._editions[dbms_component[u"edition"]],
             mode=dbms_config.get(u"dbms.mode", u"SINGLE"),
             uptime=(Time(ms=(t1 - t0))))
Пример #2
0
 def __init__(self, page_cache):
     """
     {'BytesRead': 147542,
      'BytesWritten': 8192,
      'EvictionExceptions': 0,
      'Evictions': 0,
      'Faults': 19,
      'FileMappings': 36,
      'FileUnmappings': 19,
      'Flushes': 1,
      'HitRatio': 0.5777777777777777,
      'Hits': 26,
      'Pins': 71,
      'Unpins': 44,
      'UsageRatio': 1.2406315990174198e-05}
     """
     self.bytes_read = BytesAmount(page_cache[u"BytesRead"])
     self.bytes_written = BytesAmount(page_cache[u"BytesWritten"])
     self.eviction_exceptions = Amount(page_cache[u"EvictionExceptions"])
     self.evictions = Amount(page_cache[u"Evictions"])
     self.faults = Amount(page_cache[u"Faults"])
     self.file_mappings = Amount(page_cache[u"FileMappings"])
     self.file_unmappings = Amount(page_cache[u"FileUnmappings"])
     self.flushes = Amount(page_cache[u"Flushes"])
     self.hit_ratio = page_cache[u"HitRatio"]
     self.hits = Amount(page_cache.get(u"Hits"))
     self.pins = Amount(page_cache[u"Pins"])
     self.unpins = Amount(page_cache.get(u"Unpins"))
     self.usage_ratio = page_cache.get(u"UsageRatio")
Пример #3
0
 def __init__(self, transaction):
     """
     {'transactionId': 'transaction-96',
      'username': '******',
      'metaData': {},
      'startTime': '2018-10-18T11:04:17.938Z',
      'protocol': 'bolt',
      'clientAddress': '127.0.0.1:41758',
      'requestUri': '127.0.0.1:17100',
      'currentQueryId': 'query-127',
      'currentQuery': 'CALL dbms.listTransactions',
      'activeLockCount': 0,
      'status': 'Running',
      'resourceInformation': {},
      'elapsedTimeMillis': 2,
      'cpuTimeMillis': 0,
      'waitTimeMillis': 0,
      'idleTimeMillis': 2,
      'allocatedBytes': 0,
      'allocatedDirectBytes': 0,
      'pageHits': 0,
      'pageFaults': 0}
     """
     self.id = int(transaction[u"transactionId"].partition("-")[-1])
     self.user = transaction[u"username"]
     self.metadata = transaction[u"metaData"]
     self.start_time = transaction[u"startTime"]  # TODO: unit
     self.protocol = transaction[u"protocol"]
     self.client_address = transaction[u"clientAddress"]
     self.request_uri = transaction[u"requestUri"]
     self.current_query_id_string = transaction[u"currentQueryId"]
     if self.current_query_id_string:
         self.current_query_id = int(
             self.current_query_id_string.partition("-")[-1])
     else:
         self.current_query_id = None
     self.current_query = transaction[u"currentQuery"]
     self.active_lock_count = Amount(transaction[u"activeLockCount"])
     self.status = transaction[u"status"]
     self.resource_information = transaction[u"resourceInformation"]
     self.elapsed_time = Time(ms=transaction[u"elapsedTimeMillis"])
     self.cpu_time = Time(ms=transaction[u"cpuTimeMillis"])
     self.wait_time = Time(ms=transaction[u"waitTimeMillis"])
     self.idle_time = Time(ms=transaction[u"idleTimeMillis"])
     self.allocated_bytes = BytesAmount(transaction[u"allocatedBytes"])
     self.allocated_direct_bytes = BytesAmount(
         transaction[u"allocatedDirectBytes"])
     self.page_hits = Amount(transaction[u"pageHits"])
     self.page_faults = Amount(transaction[u"pageFaults"])
Пример #4
0
    def __init__(self, query):
        """
        'activeLockCount': 0,
        'allocatedBytes': None,
        'clientAddress': '127.0.0.1:46718',
        'cpuTimeMillis': None,
        'elapsedTimeMillis': 0,
        'idleTimeMillis': None,
        'indexes': [],
        'metaData': {},
        'pageFaults': 0,
        'pageHits': 0,
        'parameters': {},
        'planner': 'idp',
        'protocol': 'bolt',
        'query': 'CALL dbms.listQueries',
        'queryId': 'query-64',
        'requestUri': '127.0.0.1:7687',
        'resourceInformation': {},
        'runtime': 'procedure',
        'startTime': '2018-07-13T14:06:55.851Z',
        'status': 'running',
        'username': '******',
        'waitTimeMillis': 0,

        :param query:
        """
        self.active_lock_count = Amount(query[u"activeLockCount"])
        self.allocated_bytes = BytesAmount(query[u"allocatedBytes"])
        self.client_address = query[u"clientAddress"]
        self.cpu_time = Time(ms=query[u"cpuTimeMillis"])
        self.elapsed_time = Time(ms=query[u"elapsedTimeMillis"])
        self.idle_time = Time(ms=query[u"idleTimeMillis"])
        self.wait_time = Time(ms=query[u"waitTimeMillis"])
        self.indexes = query[u"indexes"]
        self.metadata = query[u"metaData"]
        self.page_faults = Amount(query[u"pageFaults"])
        self.page_hits = Amount(query[u"pageHits"])
        self.parameters = query[u"parameters"]
        self.planner = query[u"planner"]
        self.protocol = query[u"protocol"]
        self.text = query[u"query"]
        self.request_uri = query[u"requestUri"]
        self.resource_information = query[u"resourceInformation"]
        self.runtime = query[u"runtime"]
        self.start_time = query[u"startTime"]  # TODO: unit
        self.status = query[u"status"]
        self.user = query[u"username"]
        self.id = int(query[u"queryId"].partition("-")[-1])
Пример #5
0
 def __init__(self, os, dbms_kernel, dbms_stores, dbms_primitives):
     """
     MaxFileDescriptorCount: 40000
     OpenFileDescriptorCount: 515
     """
     self.max_file_descriptor_count = Amount(os[u"MaxFileDescriptorCount"])
     self.open_file_descriptor_count = Amount(
         os[u"OpenFileDescriptorCount"])
     self.database_name = dbms_kernel[u"DatabaseName"]
     self.read_only = dbms_kernel[u"ReadOnly"]
     self.store_creation_date = dbms_kernel[u"StoreCreationDate"]  # TODO
     self.store_id = dbms_kernel[u"StoreId"]
     self.array_store_size = BytesAmount(dbms_stores[u"ArrayStoreSize"])
     self.count_store_size = BytesAmount(dbms_stores[u"CountStoreSize"])
     self.index_store_size = BytesAmount(dbms_stores[u"IndexStoreSize"])
     self.label_store_size = BytesAmount(dbms_stores[u"LabelStoreSize"])
     self.node_store_size = BytesAmount(dbms_stores[u"NodeStoreSize"])
     self.property_store_size = BytesAmount(
         dbms_stores[u"PropertyStoreSize"])
     self.relationship_store_size = BytesAmount(
         dbms_stores[u"RelationshipStoreSize"])
     self.schema_store_size = BytesAmount(dbms_stores[u"SchemaStoreSize"])
     self.string_store_size = BytesAmount(dbms_stores[u"StringStoreSize"])
     self.total_store_size = BytesAmount(dbms_stores[u"TotalStoreSize"])
     self.transaction_logs_size = BytesAmount(
         dbms_stores[u"TransactionLogsSize"])
     self.node_id_count = Amount(dbms_primitives[u"NumberOfNodeIdsInUse"])
     self.property_id_count = Amount(
         dbms_primitives[u"NumberOfPropertyIdsInUse"])
     self.relationship_id_count = Amount(
         dbms_primitives[u"NumberOfRelationshipIdsInUse"])
     self.relationship_type_id_count = Amount(
         dbms_primitives[u"NumberOfRelationshipTypeIdsInUse"])
Пример #6
0
    def __init__(self, transactions, metadata):
        """
        {'LastCommittedTxId': 1,
         'NumberOfCommittedTransactions': 1312,
         'NumberOfOpenTransactions': 1,
         'NumberOfOpenedTransactions': 1321,
         'NumberOfRolledBackTransactions': 8,
         'PeakNumberOfConcurrentTransactions': 2}

        :param transactions:
        :param metadata:
        """
        if transactions is None:
            self.__items = []
        else:
            self.__items = list(map(TransactionData, transactions))
        self.last_committed_id = metadata[u"LastCommittedTxId"]
        self.begin_count = Amount(metadata[u"NumberOfOpenedTransactions"])
        self.open_count = Amount(metadata[u"NumberOfOpenTransactions"])
        self.commit_count = Amount(metadata[u"NumberOfCommittedTransactions"])
        self.rollback_count = Amount(
            metadata[u"NumberOfRolledBackTransactions"])
        self.peak_concurrent = Amount(
            metadata[u"PeakNumberOfConcurrentTransactions"])