diff --git a/.dockerignore b/.dockerignore index 6b8710a..f1b636b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,2 @@ .git +venv diff --git a/.github/workflows/greenhack22.yml b/.github/workflows/greenhack22.yml index 6a48369..2e17e2d 100644 --- a/.github/workflows/greenhack22.yml +++ b/.github/workflows/greenhack22.yml @@ -11,17 +11,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Setup Python 3 - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.9' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4e0b715..6bf8c6f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,22 +10,25 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Setup Python 3 - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.9' + - name: Install poetry + run: python -m pip install --upgrade poetry wheel + - name: Build docker image - run: docker build . --tag ghcr.io/boavizta/boagent:$(python3 setup.py --version) + run: docker build . --tag ghcr.io/boavizta/boagent:$(poetry version -s) - name: Push docker image - run: docker push ghcr.io/boavizta/boagent:$(python3 setup.py --version) + run: docker push ghcr.io/boavizta/boagent:$(poetry version -s) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..82f7c8a --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,40 @@ +name: Execute tests + +on: + push: + branches: + - main + - dev + paths: + - "boagent/**" + - "tests/**" + - "poetry.lock" + - "pyproject.toml" + pull_request: + branches: + - main + - dev + paths: + - "boagent/**" + - "tests/**" + - "poetry.lock" + - "pyproject.toml" + +jobs: + test: + strategy: + matrix: + version: ["3.10", "3.11"] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Python setup + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.version }} + - name: Poetry setup + run : python3 -m pip install --upgrade poetry wheel + - name: Install dependencies + run: poetry install + - name: Execute tests + run: poetry run python3 -m pytest diff --git a/.gitignore b/.gitignore index 891be20..a680567 100644 --- a/.gitignore +++ b/.gitignore @@ -137,4 +137,6 @@ dmypy.json .idea/ .vscode/ -*.json +*.db +*.svg +*.csv diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..6e5b662 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,16 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace +- repo: https://github.com/psf/black + rev: 22.10.0 + hooks: + - id: black +- repo: https://github.com/PyCQA/flake8 + rev: 7.0.0 + hooks: + - id: flake8 + entry: flake8 --ignore=E501,W503 --per-file-ignores='__init__.py:F401' diff --git a/Dockerfile b/Dockerfile index 704de1c..87535aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,21 @@ FROM python:3.10-slim -LABEL org.opencontainers.image.authors="bpetit@hubblo.org" - -RUN apt update && apt install gcc g++ -y - -RUN apt-get install -y cron sqlite3 - -RUN useradd -ms /bin/bash boagent - -#USER boagent +LABEL org.opencontainers.image.authors="open-source@boavizta.org" +LABEL org.opencontainers.image.description="Docker image for Boagent, a local API & environmental impact monitoring tool." +LABEL org.opencontainers.image.licenses=Apache-2.0 WORKDIR /home/boagent -COPY requirements.txt requirements.txt +RUN python3 -m pip install --upgrade poetry + +RUN apt update && apt install lshw nvme-cli -y -RUN pip3 install -r requirements.txt +COPY pyproject.toml . -ENV PATH $PATH:/home/boagent/.local/bin +RUN poetry install COPY . . EXPOSE 8000 -ENTRYPOINT [ "/bin/bash", "-c", "cd boagent/api && uvicorn api:app --host 0.0.0.0" ] +ENTRYPOINT ["poetry", "run", "uvicorn", "--reload", "boagent.api.api:app", "--host", "0.0.0.0"] diff --git a/README.md b/README.md index 892a742..28ebb3d 100644 --- a/README.md +++ b/README.md @@ -11,23 +11,34 @@ _If no parameters are passed to the API to isolate the application, then the imp ## How to use -This is an API, you could use either your browser, curl, or call it directly from an application (which is the main usecase). +This is an API, you could use either your browser, cURL, or call it directly from an application (which is the main usecase). Once the API is running, a Swagger interface is available on [localhost:8000/docs](http://localhost:8000/docs). + ### Run natively +Boagent will not be able to return proper responses from its endpoints without root privileges in order to fetch hardware data. +It also needs information from BoaviztAPI and Scaphandre, see the [setup informations](#Setup). + To run it : +Without `poetry` + ``` -cd boagent/ +apt update && apt install lshw nvme-cli -y pip3 install -r requirements.txt -cd api/ +cd boagent/api/ uvicorn api:app --reload ``` -The app can run without root privileges, but you won't get full data about the RAM and get some warnings. -Run as root to have the best evaluation possible. +With `poetry` + +``` +apt update && apt install lshw nvme-cli -y +poetry install --only main +poetry run uvicorn --reload boagent.api.api:app +``` ### Run in a docker container @@ -35,15 +46,26 @@ You could pull the [image](https://github.com/Boavizta/boagent/pkgs/container/bo ### Run in docker-compose (with all the requirements) -To get started you need docker and docker-compose installed on your machine. On a debian or ubuntu machine, run : +To get started you need docker and docker-compose installed on your machine. On a Debian or Ubuntu environment, run : # apt update && apt install -y docker.io docker-compose -To get the full setup easily, you could run the stack in docker-compose with `docker-compose up -d`. `docker-compose.yml`, at the root of the project will build a docker image from the source for boagent, and setup a container for [Scaphandre](#Scaphandre) and another for the [BoaviztAPI](#BoaviztAPI), allowing you to get the full evaluation easily on a physical machine. +To get the full setup easily, you could run the stack in docker-compose with `docker-compose up -d`. `docker-compose.yml`, at the root of the project will build a Docker image from the source for Boagent, and setup a container for [Scaphandre](#Scaphandre) and another for the [BoaviztAPI](#BoaviztAPI), allowing you to get the full evaluation easily on a physical machine. Please see [Configuration](#Configuration) for the environment variables you can tweak in the Boagent container. -## Setup required +### Use `hardware_cli` + +To have an example of the retrieved hardware information by Boagent, you can run `sudo ./hardware_cli.py`. +At the moment, it will output the formatted data for CPU, RAM and storage devices used by Boagent when sending a request to BoaviztAPI. +`sudo ./hardware_cli.py --output-file ` can send the formatted output to a file. + +## Setup + +## Linux + +Boagent parses output from `lshw` (a tool listing hardware components and characteristics) and `nvme-cli` (a tool listing information on SSD storage +devices available through NVME interfaces). To get all actually parsed information (and for future developments), Boagent needs those two programs and toexecute them with root privileges. ### BoaviztAPI @@ -51,11 +73,11 @@ You need either to use an existing BoaviztAPI endpoint, or to build the BoaviztA Depending or your setup, specify the endpoint to be used with the environment variable `BOAVIZTAPI_ENDPOINT`, see [Configuration](#Configuration). -Ensure that the version of BoaviztAPI SDK installed (see `requirements.txt`) is the same as the version of the API running the endpoint you use. +Ensure that the version of BoaviztAPI SDK installed (see `requirements.txt` or `pyproject.toml`) is the same as the version of the API running the endpoint you use. ### Scaphandre -To get power consumption metrics, you need [Scaphandre](https://github.com/hubblo-org/scaphandre) runnig in the background, with the json exporter. This will write power metrics to a file, that Boagent will read : +To get power consumption metrics, you need [Scaphandre](https://github.com/hubblo-org/scaphandre) running in the background, with the JSON exporter. This will write power metrics to a file, that Boagent will read : ``` scaphandre json -s 5 -f power_data.json @@ -65,11 +87,11 @@ scaphandre json -s 5 -f power_data.json Boagent can be configured with the following variables : -- `DEFAULT_LIFETIME`: machines lifetime used to compute the scope 3 / manufacturing, transport, end of life impacts -- `HARDWARE_FILE_PATH`: path to the file containing the hardware list (output from hardware.py) -- `POWER_FILE_PATH`: path to the file containing power mearsurements (output from [Scaphandre](https://github.com/hubblo-org/scaphandre) with JSON exporter) -- `HARDWARE_CLI`: path to the executable file to collect hardware information (hardware.py from this project) -- `BOAVIZTAPI_ENDPOINT`: http endpoint to the BoaviztAPI, in the form `http://myendpoint.com:PORTNUMBER` +- `DEFAULT_LIFETIME`: machines lifetime used to compute the scope 3 / manufacturing, transport, end-of-life impacts +- `HARDWARE_FILE_PATH`: path to the file containing the hardware list (output from `lshw.py`) +- `POWER_FILE_PATH`: path to the file containing power measurements (output from [Scaphandre](https://github.com/hubblo-org/scaphandre) with JSON exporter) +- `HARDWARE_CLI`: path to the executable file to collect hardware information (`lshw.py` from this project) +- `BOAVIZTAPI_ENDPOINT`: HTTP endpoint to the BoaviztAPI, in the form `http://myendpoint.com:PORTNUMBER` You can set those variables in the following order (as interpreted by the tool): @@ -79,6 +101,20 @@ You can set those variables in the following order (as interpreted by the tool): You can check the configuration applied by querying the `/info` route. +## How it works + +Currently, Boagent only works for Linux systems. + +Boagent exposes multiple API endpoints, most notably `/query` and `/metrics`. Both will query an instance of [BoaviztAPI](https://doc.api.boavizta.org/) in order to give the environmental impacts +of the received hardware data. `/query` will return a response in JSON format, and `/metrics` will return a response parsable by a Prometheus instance. If needed, both those +endpoints can return data from [Scaphandre](https://github.com/hubblo-org/scaphandre/) and give the energy consumption of components from the queried hardware. + +Presently, Boagent gets hardware data through a parsing of the output of `lshw`, a common utility available for Linux distributions that lists a lot of information of all +hardware components on a running computer. The code for this `Lshw` class is an adaptation of [netbox-agent](https://github.com/Solvik/netbox-agent)'s implementation. +`lshw`, to get all proper data needed by BoaviztAPI, needs to be executed as a privileged user with `sudo`. Boagent, executed with the available `docker-compose` file, +will run as privileged and will be able to receive the needed hardware data. At the moment, only data for the CPU, RAM and storage (either HDD or SSD) are parsed and sent to BoaviztAPI +in order to calculate impacts. + ## Deeper explanations ### Environmental metrics diff --git a/boagent/__init__.py b/boagent/__init__.py index 214973d..38162a5 100644 --- a/boagent/__init__.py +++ b/boagent/__init__.py @@ -4,6 +4,6 @@ Monitoring agent/framework for evaluating the environmental impacts of a machine and its applications, including several to all steps of the life cycle of the machine and service, plus multiple criterias of impacts (not just CO2eq metrics / Global Warming Potential). Part of the efforts of https://boavizta.org/en and https://sdialliance.org/. """ -__version__ = "0.0.8" -__author__ = 'Benoit Petit ' -__credits__ = 'Boavizta contributors' +__version__ = "0.1.0" +__author__ = "Boavizta " +__credits__ = "Boavizta contributors" diff --git a/boagent/api/Query.yaml b/boagent/api/Query.yaml deleted file mode 100644 index cc5d015..0000000 --- a/boagent/api/Query.yaml +++ /dev/null @@ -1,151 +0,0 @@ -openapi: 3.1.0 -info: - title: Query API - version: 1.0.0 - summary: >- - The query API allows you to determine the environmental footprint for - different types of scenarios (time-baed or machine-based). - description: >- - Use this API to get the environmental footprint for your any operation - happening on the server. - - - You can use a time-based query in order to get the carbon emissions that - have been created during the processing of a request or a background - operation (e.g. making a thumbnail). - - - If you simply want the environmental footprint of a running pod or virtual - machine, from when it started to now (or to when it stopped), you can query - using the pod or virtual machine identifier. - license: - name: GPL v3 - url: 'https://github.com/SDIAlliance/carbon-footprint-ssa/blob/main/LICENSE' -servers: - - url: 'http://localhost:3000' -paths: - /query: - parameters: [] - get: - summary: Get - operationId: get-query - description: 'Get the environmental footprint for a machine, pod or timeframe.' - parameters: - - schema: - type: string - format: uuid - in: query - name: k8s_pod_uuid - description: >- - Each pod in K8s has a unique identifier. UUIDs are standardized as - ISO/IEC 9834-8 and as ITU-T X.667. - - schema: - type: array - uniqueItems: true - behavior: Read Only - in: query - name: k8s_pod_uuids - description: Query multiple in pods in K8s based on UUID - - schema: - type: string - format: time - in: query - name: start_time - description: >- - Unix timestamp to specify from which point in time you want to - retrieve the footprint - - schema: - type: string - format: time - in: query - name: end_time - description: >- - Unix timestamp to specify until which point in time you want to get - the footprint for. If you only specify start_time and not end_time, - it will return the footprint up until the current moment. - - schema: - type: string - in: query - name: os_instance_id - description: >- - Query a specific OpenStack virtual machine, specified by its - instance ID - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: ../models/Environmental-Footprint.yaml - '400': - description: Bad Request - content: - application/json: - schema: - type: object - properties: - error_message: - type: string - examples: - Missing any filters: - value: - error_message: >- - At least one filter parameter has to be given: - k8s_pod_uuid, os_instance_id or start_time - '406': - description: Not Acceptable - content: - application/json: - schema: - type: object - properties: - errors: - type: array - items: - type: object - properties: - param: - type: string - message: - type: string - required: - - param - - message - required: - - errors - examples: - K8s Pod UUID invalid: - value: - errors: - - param: k8s_pod_uuid - message: Invalid pod uuid or not found. - Invalid start_time or end_time: - value: - errors: - - param: start_time - message: is not a valid unix timestamp - - param: end_time - message: is not a valid unix timestamp - Invalid OpenStack Instance: - value: - errors: - - param: os_instance_id - message: invalid instance identifier or not found - K8s Pod UUIDs not an array: - value: - errors: - - param: k8s_pod_uuids - message: must be an array of UUIDs - K8 Pod UUIDs contains invalid UUID: - value: - errors: - - param: k8s_pod_uuids - message: >- - contains an invalid UUID or not found: - the-uuid-should-be-here - '500': - description: Internal Server Error - '': - parameters: [] -components: - schemas: {} diff --git a/boagent/api/__init__.py b/boagent/api/__init__.py index e69de29..25d23d8 100644 --- a/boagent/api/__init__.py +++ b/boagent/api/__init__.py @@ -0,0 +1,10 @@ +from .api import ( + build_hardware_data, + format_usage_request, + read_hardware_data, + get_hardware_data, + query_machine_impact_data, + compute_average_consumption, + get_power_data, + get_metrics, +) diff --git a/boagent/api/api.py b/boagent/api/api.py index 7abc85c..21424d8 100644 --- a/boagent/api/api.py +++ b/boagent/api/api.py @@ -1,319 +1,268 @@ import json -import math -import os import time -from datetime import datetime, timedelta -from subprocess import run -from typing import Dict, Any, Tuple, List, Optional - -import pytz -from croniter import croniter - -import pandas as pd -import requests -from fastapi import FastAPI, Response +from typing import Dict, Any, List, Union +from fastapi import FastAPI, Response, Body, HTTPException from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse from boaviztapi_sdk.api.server_api import ServerApi -from boaviztapi_sdk.model.server_dto import ServerDTO - -from utils import iso8601_or_timestamp_as_timestamp, format_prometheus_output, format_prometheus_metric, \ - get_boavizta_api_client, sort_ram, sort_disks -from config import settings -from database import create_database, get_session, get_engine, insert_metric, select_metric, \ - CarbonIntensity, add_from_scaphandre, get_most_recent_data, get_max, new_highlight_spikes +from boaviztapi_sdk.models.server import Server +from boagent.api.exceptions import InvalidPIDException +from boagent.hardware.lshw import Lshw +from .utils import ( + iso8601_or_timestamp_as_timestamp, + format_prometheus_output, + get_boavizta_api_client, + sort_ram, + sort_disks, +) + +from .config import Settings +from .process import Process +from .models import WorkloadTime, time_workload_example + +settings = Settings() + +HARDWARE_FILE_PATH = settings.hardware_file_path +POWER_DATA_FILE_PATH = settings.power_file_path +PUBLIC_PATH = settings.public_path +ASSETS_PATH = settings.assets_path +DB_PATH = settings.db_path +DEFAULT_LIFETIME = settings.default_lifetime +SECONDS_IN_ONE_YEAR = settings.seconds_in_one_year +HARDWARE_CLI = settings.hardware_cli +AZURE_LOCATION = settings.azure_location +BOAVIZTAPI_ENDPOINT = settings.boaviztapi_endpoint +CARBON_AWARE_API_ENDPOINT = settings.carbon_aware_api_endpoint +CARBON_AWARE_API_TOKEN = settings.carbon_aware_api_token +PROJECT_NAME = settings.project_name +PROJECT_VERSION = settings.project_version +PROJECT_DESCRIPTION = settings.project_description +TAGS_METADATA = settings.tags_metadata def configure_static(app): - app.mount("/assets", StaticFiles(directory=settings.assets_path), name="assets") + app.mount("/assets", StaticFiles(directory=ASSETS_PATH), name="assets") def configure_app(): - app = FastAPI(title=settings.PROJECT_NAME, version=settings.PROJECT_VERSION) + app = FastAPI( + title=PROJECT_NAME, + version=PROJECT_VERSION, + description=PROJECT_DESCRIPTION, + contact={"name": "Boavizta Members", "url": "https://boavizta.org/en"}, + license_info={"name": "Apache-2.0"}, + openapi_tags=TAGS_METADATA, + ) configure_static(app) return app app = configure_app() -items = {} -create_database(get_engine(db_path=settings.db_path)) - -@app.get("/info") +@app.get("/info", tags=["info"]) async def info(): return { - "seconds_in_one_year": settings.seconds_in_one_year, - "default_lifetime": settings.default_lifetime, - "hardware_file_path": settings.hardware_file_path, - "power_file_path": settings.power_file_path, - "hardware_cli": settings.hardware_cli, - "boaviztapi_endpoint": settings.boaviztapi_endpoint + "seconds_in_one_year": SECONDS_IN_ONE_YEAR, + "default_lifetime": DEFAULT_LIFETIME, + "hardware_file_path": HARDWARE_FILE_PATH, + "power_file_path": POWER_DATA_FILE_PATH, + "hardware_cli": HARDWARE_CLI, + "boaviztapi_endpoint": BOAVIZTAPI_ENDPOINT, } -@app.get("/web", response_class=HTMLResponse) +@app.get("/web", tags=["web"], response_class=HTMLResponse) async def web(): res = "" - with open("{}/index.html".format(settings.public_path), 'r') as fd: + with open("{}/index.html".format(PUBLIC_PATH), "r") as fd: res = fd.read() fd.close() return res -@app.get('/csv') -async def csv(data: str, since: str = "now", until: str = "24h", inwatt: bool = True) -> Response: - start_date, stop_date = parse_date_info(since, until) - - session = get_session(settings.db_path) - df = select_metric(session, data, start_date, stop_date) - df['timestamp'] = df['timestamp'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S')) - session.close() - - if data == "power" and inwatt: - df['value'] = df['value'] / 1000.0 - - return Response( - content=df.to_csv(index=False), - media_type="text/csv" - ) - - -@app.get("/yearly_embedded") -async def yearly_embedded(): - hardware_data = get_hardware_data(False) - boaviztapi_data = query_machine_impact_data( - model=None, - configuration=generate_machine_configuration(hardware_data), - usage={} - ) - - return boaviztapi_data["impacts"]["gwp"]["manufacture"] / settings.default_lifetime - -@app.get("/yearly_operational") -async def operational_impact_yearly(): - since = "now" - until = "24h" - start_date, stop_date = parse_date_info(since, until) - session = get_session(settings.db_path) - - df_power = select_metric(session, 'power', start_date, stop_date) - df_power['power_watt'] = df_power['value'] / 1000 - #df_power = df_power.drop(columns=['value']) - df_power = df_power.set_index('timestamp') - - df_carbon_intensity = select_metric(session, 'carbonintensity', start_date, stop_date) - df_carbon_intensity['carbon_intensity_g_per_watt_second'] = df_carbon_intensity['value'] / (1000 * 3600) - - yearly_operational = (df_power['power_watt'].mean()*df_carbon_intensity["carbon_intensity_g_per_watt_second"].mean())*(3600*24*365) # in gCO2eq - - return round(yearly_operational/1000.0) # in kgCO2eq - - -@app.get('/last_data') -async def last_data(table_name: str) -> Response: - data = get_most_recent_data(table_name) - if data is None: - return Response(status_code=404) - else: - df = pd.DataFrame([[data.timestamp, data.value]], columns=['timestamp', 'value']) - return Response( - content=df.to_csv(index=False), - media_type="text/csv", - status_code=200 - ) - - -@app.get("/metrics") -async def metrics(start_time: str = "0.0", end_time: str = "0.0", verbose: bool = False, output: str = "json", - location: str = None, measure_power: bool = True, lifetime: float = settings.default_lifetime, - fetch_hardware: bool = False): +@app.get("/metrics", tags=["metrics"]) +async def metrics( + start_time: str = "0.0", + end_time: str = "0.0", + verbose: bool = False, + location: str = "", + measure_power: bool = True, + lifetime: float = DEFAULT_LIFETIME, + fetch_hardware: bool = False, +): return Response( content=format_prometheus_output( get_metrics( iso8601_or_timestamp_as_timestamp(start_time), iso8601_or_timestamp_as_timestamp(end_time), - verbose, location, measure_power, lifetime, fetch_hardware - ) - ), media_type="plain-text" + verbose, + location, + measure_power, + lifetime, + fetch_hardware, + ), + verbose, + ), + media_type="plain-text", ) -@app.get("/query") -async def query(start_time: str = "0.0", end_time: str = "0.0", verbose: bool = False, location: str = None, - measure_power: bool = True, lifetime: float = settings.default_lifetime, fetch_hardware: bool = False): +@app.get("/query", tags=["query"]) +async def query( + start_time: str = "0.0", + end_time: str = "0.0", + verbose: bool = False, + location: str = "EEE", + measure_power: bool = True, + lifetime: float = DEFAULT_LIFETIME, + fetch_hardware: bool = False, +): + """ + start_time: Start time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + end_time: End time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + verbose: Get detailled metrics with extra information.\n + location: Country code to configure the local electricity grid to take into account.\n + measure_power: Get electricity consumption metrics from Scaphandre or not.\n + lifetime: Full lifetime of the machine to evaluate.\n + fetch_hardware: Regenerate hardware.json file with current machine hardware or not.\n + """ return get_metrics( iso8601_or_timestamp_as_timestamp(start_time), iso8601_or_timestamp_as_timestamp(end_time), - verbose, location, measure_power, lifetime, fetch_hardware - ) - - -@app.get("/last_info") -async def actual_intensity(): - res = {"power": get_most_recent_data("power"), "carbonintensity": get_most_recent_data("carbonintensity"), - "cpu": get_most_recent_data("cpu"), "ram": get_most_recent_data("ram")} - - return res - - -@app.get("/max_info") -async def actual_intensity(): - res = {"power": get_max("power"), "carbonintensity": get_max("carbonintensity"), "ram": get_max("ram"), - "cpu": get_max("cpu")} - return res - - -@app.get("/all_cron") -async def actual_intensity(): - return get_cron_info() - - -@app.get("/update") -async def update(): - response = query_electricity_carbon_intensity() - info = parse_electricity_carbon_intensity(response) - session = get_session(settings.db_path) - - add_from_scaphandre(session) # lots lot insert_metric called here - if info['value'] > 0: - insert_metric(session=session, metric_name='carbonintensity', timestamp=info['timestamp'], value=info['value']) - session.commit() - session.close() - return Response(status_code=200) - - -@app.get("/carbon_intensity_forecast") -async def carbon_intensity_forecast(since: str = "now", until: str = "24h") -> Response: - df = carbon_intensity_forecast_data(since, until) - df = new_highlight_spikes(df, "value") - return Response( - content=df.to_csv(index=False), - media_type="text/csv" - ) - - -def carbon_intensity_forecast_data(since: str, until: str) -> pd.DataFrame: - start_date, stop_date = parse_date_info(since, until, forecast=True) - start_date, stop_date = start_date, stop_date - - start_date = upper_round_date_minutes_with_base(start_date, base=5) - response = query_forecast_electricity_carbon_intensity(start_date, stop_date) - forecasts = parse_forecast_electricity_carbon_intensity(response) - return pd.DataFrame(forecasts) - - -@app.get("/carbon_intensity") -async def carbon_intensity(since: str = "now", until: str = "24h") -> Response: - _, stop_date = parse_date_info(since, until, forecast=True) - start_date, now = parse_date_info(since, until, forecast=False) - - session = get_session(settings.db_path) - df_history = select_metric(session, 'carbonintensity', start_date, now) - - now = upper_round_date_minutes_with_base(now, base=5) - response = query_forecast_electricity_carbon_intensity(now, stop_date) - forecasts = parse_forecast_electricity_carbon_intensity(response) - df_forecast = pd.DataFrame(forecasts) - df_forecast['timestamp'] = df_forecast['timestamp'].apply( - lambda x: datetime.strptime(x, '%Y-%m-%dT%H:%M:%SZ')) - - df = pd.concat([df_history, df_forecast]) - df = df[['timestamp', 'value']] - df = new_highlight_spikes(df, "value") - df['timestamp'] = df['timestamp'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S')) - return Response( - content=df.to_csv(index=False), - media_type="text/csv" + verbose, + location, + measure_power, + lifetime, + fetch_hardware, ) -@app.get("/init_carbon_intensity") -async def init_carbon_intensity(): - engine = get_engine(settings.db_path) - CarbonIntensity.__table__.drop(engine) - create_database(engine) - - session = get_session(settings.db_path) - now = datetime.utcnow() - curr_date = now - timedelta(hours=24) - - while curr_date < now: - # TODO: make bulk select in boaviztapi - response = query_electricity_carbon_intensity(curr_date, curr_date + timedelta(minutes=5)) - info = parse_electricity_carbon_intensity(response) - insert_metric(session, 'carbonintensity', info['timestamp'], info['value']) - curr_date += timedelta(minutes=5) - session.commit() - - -@app.get("/impact") -async def impact(since: str = "now", until: str = "24h"): - start_date, stop_date = parse_date_info(since, until) - session = get_session(settings.db_path) - - df_power = select_metric(session, 'power', start_date, stop_date) - df_power['power_watt'] = df_power['value'] / 1000 - df_power = df_power.drop(columns=['value']) - df_power = df_power.set_index('timestamp') - df_power = df_power.resample('1s').mean() - df_power = df_power.fillna(method='ffill') - - df_carbon_intensity = select_metric(session, 'carbonintensity', start_date, stop_date) - df_carbon_intensity['carbon_intensity_g_per_watt_second'] = df_carbon_intensity['value'] / (1000 * 3600) - df_carbon_intensity = df_carbon_intensity.drop(columns=['value']) - df_carbon_intensity = df_carbon_intensity.set_index('timestamp') - df_carbon_intensity = df_carbon_intensity.resample('1s').mean() - df_carbon_intensity = df_carbon_intensity.fillna(method='ffill') - df = df_power.merge(df_carbon_intensity, on='timestamp') - df['operational'] = df['power_watt'] * df['carbon_intensity_g_per_watt_second'] - - - hardware_data = get_hardware_data(False) - boaviztapi_data = query_machine_impact_data( - model=None, - configuration=generate_machine_configuration(hardware_data), - usage={} +@app.post("/query", tags=["query"]) +async def query_with_time_workload( + start_time: str = "0.0", + end_time: str = "0.0", + verbose: bool = False, + location: str = "EEE", + measure_power: bool = True, + lifetime: float = DEFAULT_LIFETIME, + fetch_hardware: bool = False, + time_workload: Union[dict[str, float], dict[str, List[WorkloadTime]]] = Body( + None, example=time_workload_example + ), +): + """ + start_time: Start time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + end_time: End time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + verbose: Get detailled metrics with extra information.\n + location: Country code to configure the local electricity grid to take into account.\n + measure_power: Get electricity consumption metrics from Scaphandre or not.\n + lifetime: Full lifetime of the machine to evaluate.\n + fetch_hardware: Regenerate hardware.json file with current machine hardware or not.\n + time_workload: Workload percentage for CPU and RAM. Can be a float or a list of dictionaries with format + {"time_percentage": float, "load_percentage": float} + """ + return get_metrics( + iso8601_or_timestamp_as_timestamp(start_time), + iso8601_or_timestamp_as_timestamp(end_time), + verbose, + location, + measure_power, + lifetime, + fetch_hardware, + time_workload, ) - yearly_embedded_emissions = boaviztapi_data["impacts"]["gwp"]["manufacture"] / settings.default_lifetime - df['embedded'] = yearly_embedded_emissions / (3.6*24*365) # from kgCO2eq/year to gCO2eq/s - df = df.drop(columns=['power_watt', 'carbon_intensity_g_per_watt_second']).reset_index() - return Response( - content=df.to_csv(index=False), - media_type="text/csv" +@app.get("/process_embedded_impacts", tags=["process"]) +async def process_embedded_impacts( + process_id: int = 0, + start_time: str = "0.0", + end_time: str = "0.0", + location: str = "EEE", + lifetime: float = DEFAULT_LIFETIME, + fetch_hardware: bool = False, +): + """ + process_id: The process ID queried to be evaluated for embedded impacts for each available component. \n + start_time: Start time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + end_time: End time for evaluation. Accepts either UNIX Timestamp or ISO8601 date format. \n + location: Country code to configure the local electricity grid to take into account.\n + lifetime: Full lifetime of the machine to evaluate.\n + """ + + verbose = True + measure_power = True + + metrics_data = get_metrics( + iso8601_or_timestamp_as_timestamp(start_time), + iso8601_or_timestamp_as_timestamp(end_time), + verbose, + location, + measure_power, + lifetime, + fetch_hardware, ) + try: + queried_process = Process(metrics_data, process_id) + except InvalidPIDException as invalid_pid: + raise HTTPException(status_code=400, detail=invalid_pid.message) + else: + process_embedded_impact_values = queried_process.embedded_impact_values + json_content = json.dumps(process_embedded_impact_values) + return Response(status_code=200, content=json_content) + + +def get_metrics( + start_time: float, + end_time: float, + verbose: bool, + location: str, + measure_power: bool, + lifetime: float, + fetch_hardware: bool, + time_workload: Union[dict[str, float], dict[str, List[WorkloadTime]], None] = None, +): -def get_metrics(start_time: float, end_time: float, verbose: bool, location: str, measure_power: bool, lifetime: float, - fetch_hardware: bool = False): now: float = time.time() if start_time and end_time: - ratio = (end_time - start_time) / (lifetime * settings.seconds_in_one_year) + ratio = (end_time - start_time) / (lifetime * SECONDS_IN_ONE_YEAR) else: ratio = 1.0 if start_time == 0.0: start_time = now - 3600 if end_time == 0.0: end_time = now - if end_time - start_time >= lifetime * settings.seconds_in_one_year: - lifetime = (end_time - start_time) / float(settings.seconds_in_one_year) + if end_time - start_time >= lifetime * SECONDS_IN_ONE_YEAR: + lifetime = (end_time - start_time) / float(SECONDS_IN_ONE_YEAR) hardware_data = get_hardware_data(fetch_hardware) res = {"emissions_calculation_data": {}} - host_avg_consumption = None + avg_power = None + + if len(location) < 3 or location == "EEE": + res["location_warning"] = { + "warning_message": "Location is either set as default, or has not been set, and is therefore set to the default BoaviztAPI location. " + "Be aware that the presented results can be drastically different due to location. " + "It is recommended that you set the asset location with the corresponding country code, see: https://doc.api.boavizta.org/Explanations/usage/countries/" + } + if measure_power: power_data = get_power_data(start_time, end_time) - host_avg_consumption = power_data["host_avg_consumption"] + avg_power = power_data["avg_power"] if "warning" in power_data: - res["emissions_calculation_data"]["energy_consumption_warning"] = power_data["warning"] + res["emissions_calculation_data"][ + "energy_consumption_warning" + ] = power_data["warning"] boaviztapi_data = query_machine_impact_data( - model=None, - configuration=generate_machine_configuration(hardware_data), - usage=format_usage_request(start_time, end_time, host_avg_consumption, location) + model={}, + configuration=hardware_data, + usage=format_usage_request( + start_time, end_time, avg_power, location, time_workload + ), ) if measure_power: @@ -322,154 +271,145 @@ def get_metrics(start_time: float, end_time: float, verbose: bool, location: str "description": "GHG emissions related to usage, from start_time to end_time.", "type": "gauge", "unit": "kg CO2eq", - "long_unit": "kilograms CO2 equivalent" + "long_unit": "kilograms CO2 equivalent", } res["total_operational_abiotic_resources_depletion"] = { "value": boaviztapi_data["impacts"]["adp"]["use"], "description": "Abiotic Resources Depletion (minerals & metals, ADPe) due to the usage phase.", "type": "gauge", "unit": "kgSbeq", - "long_unit": "kilograms Antimony equivalent" + "long_unit": "kilograms Antimony equivalent", } res["total_operational_primary_energy_consumed"] = { "value": boaviztapi_data["impacts"]["pe"]["use"], "description": "Primary Energy consumed due to the usage phase.", "type": "gauge", "unit": "MJ", - "long_unit": "Mega Joules" + "long_unit": "Mega Joules", + } + res["start_time"] = { + "value": start_time, + "description": "Start time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds", + } + res["end_time"] = { + "value": end_time, + "description": "End time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds", + } + res["average_power_measured"] = { + "value": avg_power, + "description": "Average power measured from start_time to end_time", + "type": "gauge", + "unit": "W", + "long_unit": "Watts", } - res["calculated_emissions"] = { - "value": boaviztapi_data["impacts"]["gwp"]["manufacture"] * ratio + boaviztapi_data["impacts"]["gwp"]["use"], - "description": "Total Green House Gaz emissions calculated for manufacturing and usage phases, between " - "start_time and end_time", + """ res["calculated_emissions"] = { + "value": boaviztapi_data["impacts"]["gwp"]["value"] * ratio + + boaviztapi_data["impacts"]["gwp"]["use"]["value"], + "description": "Total Green House Gas emissions calculated for manufacturing and usage phases, between " + "start_time and end_time", "type": "gauge", "unit": "kg CO2eq", - "long_unit": "kilograms CO2 equivalent" - } + "long_unit": "kilograms CO2 equivalent", + } """ - res["start_time"] = { - "value": start_time, - "description": "Start time for the evaluation, in timestamp format (seconds since 1970)", - "type": "counter", - "unit": "s", - "long_unit": "seconds" - } - res["end_time"] = { - "value": end_time, - "description": "End time for the evaluation, in timestamp format (seconds since 1970)", - "type": "counter", - "unit": "s", - "long_unit": "seconds" - } res["embedded_emissions"] = { - "value": boaviztapi_data["impacts"]["gwp"]["manufacture"] * ratio, + "value": boaviztapi_data["impacts"]["gwp"]["embedded"]["value"] * ratio, "description": "Embedded carbon emissions (manufacturing phase)", "type": "gauge", "unit": "kg CO2eq", - "long_unit": "kilograms CO2 equivalent" + "long_unit": "kilograms CO2 equivalent", } res["embedded_abiotic_resources_depletion"] = { - "value": boaviztapi_data["impacts"]["adp"]["manufacture"] * ratio, + "value": boaviztapi_data["impacts"]["adp"]["embedded"]["value"] * ratio, "description": "Embedded abiotic ressources consumed (manufacturing phase)", "type": "gauge", "unit": "kg Sbeq", - "long_unit": "kilograms ADP equivalent" + "long_unit": "kilograms ADP equivalent", } res["embedded_primary_energy"] = { - "value": boaviztapi_data["impacts"]["pe"]["manufacture"] * ratio, + "value": boaviztapi_data["impacts"]["pe"]["embedded"]["value"] * ratio, "description": "Embedded primary energy consumed (manufacturing phase)", "type": "gauge", "unit": "MJ", - "long_unit": "Mega Joules" - } - res["emissions_calculation_data"] = { - "average_power_measured": { - "value": host_avg_consumption, - "description": "Average power measured from start_time to end_time", - "type": "gauge", - "unit": "W", - "long_unit": "Watts" - }, - "electricity_carbon_intensity": { - "value": boaviztapi_data["verbose"]["USAGE"]["gwp_factor"]["value"], - "description": "Carbon intensity of the electricity mix. Mix considered : {}".format(location), - "type": "gauge", - "unit": "kg CO2eq / kWh", - "long_unit": "Kilograms CO2 equivalent per KiloWattHour" - } + "long_unit": "Mega Joules", } - usage_location_status = boaviztapi_data["verbose"]["USAGE"]["usage_location"]["status"] - if usage_location_status == "MODIFY": - res["emissions_calculation_data"]["electricity_carbon_intensity"][ - "description"] += "WARNING : The provided trigram doesn't match any existing country. So this result is " \ - "based on average European electricity mix. Be careful with this data. " - elif usage_location_status == "SET": - res["emissions_calculation_data"]["electricity_carbon_intensity"][ - "description"] += "WARNING : As no information was provided about your location, this result is based on " \ - "average European electricity mix. Be careful with this data. " if verbose: - res["emissions_calculation_data"]["raw_data"] = { + res["raw_data"] = { "hardware_data": hardware_data, "resources_data": "not implemented yet", "boaviztapi_data": boaviztapi_data, - "power_data": power_data, "start_time": start_time, - "end_time": end_time + "end_time": end_time, } + res["electricity_carbon_intensity"] = { + "value": boaviztapi_data["verbose"]["gwp_factor"]["value"], + "description": "Carbon intensity of the electricity mix. Mix considered : {}".format( + location + ), + "type": "gauge", + "unit": "kg CO2eq / kWh", + "long_unit": "Kilograms CO2 equivalent per KiloWattHour", + } + + if measure_power: + res["raw_data"]["power_data"] = power_data + return res -def format_usage_request(start_time, end_time, host_avg_consumption=None, location=None): +def format_usage_request( + start_time: float, + end_time: float, + avg_power: Union[float, None] = None, + location: str = "EEE", + time_workload: Union[dict[str, float], dict[str, List[WorkloadTime]], None] = None, +): hours_use_time = (end_time - start_time) / 3600.0 - kwargs_usage = { - "hours_use_time": hours_use_time - } + kwargs_usage = {"hours_use_time": hours_use_time} if location: kwargs_usage["usage_location"] = location - if host_avg_consumption: - kwargs_usage["hours_electrical_consumption"] = host_avg_consumption + if avg_power: + kwargs_usage["avg_power"] = avg_power + if time_workload: + kwargs_usage["time_workload"] = time_workload return kwargs_usage def get_power_data(start_time, end_time): + # Get all items of the json list where start_time <= host.timestamp <= end_time power_data = {} - with open(settings.power_file_path, 'r') as fd: - # Get all items of the json list where start_time <= host.timestamp <= end_time - data = json.load(fd) - res = [e for e in data if start_time <= float(e['host']['timestamp']) <= end_time] - power_data['raw_data'] = res - power_data['host_avg_consumption'] = compute_average_consumption(res) + with open(POWER_DATA_FILE_PATH, "r") as power_data_file: + formatted_data = f"{power_data_file.read()}]" + data = json.loads(formatted_data) + queried_power_data = [ + e for e in data if start_time <= float(e["host"]["timestamp"]) <= end_time + ] + power_data["raw_data"] = queried_power_data + power_data["avg_power"] = compute_average_consumption(queried_power_data) if end_time - start_time <= 3600: - power_data[ - 'warning'] = "The time window is lower than one hour, but the energy consumption estimate is in " \ - "Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be " \ - "careful with this data. " - return power_data - -def get_timeseries_data(start_time, end_time): - with open(settings.power_file_path, 'r') as fd: - # Get all items of the json list where start_time <= host.timestamp <= end_time - data = json.load(fd) - res = [e for e in data if start_time <= float(e['host']['timestamp']) <= end_time] - power_data['raw_data'] = res - power_data['host_avg_consumption'] = compute_average_consumption(res) - if end_time - start_time <= 3600: - power_data[ - 'warning'] = "The time window is lower than one hour, but the energy consumption estimate is in " \ - "Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be " \ - "careful with this data. " + power_data["warning"] = ( + "The time window is lower than one hour, but the energy consumption estimate is in " + "Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be " + "careful with this data. " + ) return power_data -def compute_average_consumption(power_data): +def compute_average_consumption(power_data) -> float: # Host energy consumption total_host = 0.0 avg_host = 0.0 if len(power_data) > 0: for r in power_data: - total_host += float(r['host']['consumption']) + total_host += float(r["host"]["consumption"]) avg_host = total_host / len(power_data) / 1000000.0 # from microwatts to watts @@ -482,295 +422,70 @@ def get_hardware_data(fetch_hardware: bool): build_hardware_data() try: data = read_hardware_data() - except Exception as e: + except Exception: build_hardware_data() data = read_hardware_data() return data -def read_hardware_data(): - with open(settings.hardware_file_path, 'r') as fd: +def read_hardware_data() -> Dict: + with open(HARDWARE_FILE_PATH, "r") as fd: data = json.load(fd) return data def build_hardware_data(): - p = run([settings.hardware_cli, "--output-file", settings.hardware_file_path]) - - -def query_machine_impact_data(model: dict = None, configuration: dict = None, usage: dict = None): + lshw = Lshw() + with open(HARDWARE_FILE_PATH, "w") as hardware_file: + hardware_data = {} + hardware_data["disks"] = lshw.disks + hardware_data["cpus"] = lshw.cpus + hardware_data["rams"] = lshw.memories + json.dump(hardware_data, hardware_file) + + +def query_machine_impact_data( + model: dict[str, str], + configuration: dict[str, dict[str, int]], + usage: dict[str, Any], +) -> dict: server_api = ServerApi(get_boavizta_api_client()) server_impact = None if configuration: - server_dto = ServerDTO(usage=usage, configuration=configuration) - server_impact = server_api.server_impact_by_config_v1_server_post(server_dto=server_dto) + server = Server(usage=usage, configuration=configuration) + server_impact = server_api.server_impact_from_configuration_v1_server_post( + server=server + ) elif model: - server_dto = ServerDTO(usage=usage, model=model) - server_impact = server_api.server_impact_by_model_v1_server_get(server_dto=server_dto) + # server = Server(usage=usage, model=model) + # TO IMPLEMENT + # This conditional was based on a previous version of BoaviztAPI, where a server model could + # be sent to /v1/server through a GET method. BoaviztAPI now expects an archetype string to + # return a prerecorded impact from an asset. + server_impact = server_api.server_impact_from_model_v1_server_get( + archetype="dellR740" + ) return server_impact -def generate_machine_configuration(hardware_data): +def generate_machine_configuration(hardware_data) -> Dict[str, Any]: + # Either delete or transfer this logic to hardware_cli / lshw config = { "cpu": { "units": len(hardware_data["cpus"]), - "core_units": hardware_data['cpus'][0]["core_units"], - "family": hardware_data['cpus'][0]['family'] + "core_units": hardware_data["cpus"][1]["core_units"], + # "family": hardware_data['cpus'][1]['family'] }, "ram": sort_ram(hardware_data["rams"]), "disk": sort_disks(hardware_data["disks"]), - "motherboard": hardware_data["mother_board"] if "mother_board" in hardware_data else {"units": 1}, - # TODO: improve once the API provides more detail input - "power_supply": hardware_data["power_supply"] if "power_supply" in hardware_data else {"units": 1} + "power_supply": ( + hardware_data["power_supply"] + if "power_supply" in hardware_data + else {"units": 1} + ), # TODO: if cpu is a small one, guess that power supply is light/average weight of a laptops power supply ? } return config - - -def query_electricity_carbon_intensity(start_date: Optional[datetime] = None, - stop_date: Optional[datetime] = None) -> Dict[str, Any]: - url = settings.boaviztapi_endpoint + f'/v1/usage_router/gwp/current_intensity?location={settings.azure_location}' - start_date = start_date or (datetime.utcnow() - timedelta(minutes=5)) - stop_date = stop_date or datetime.utcnow() - response = requests.post(url, json={ - "source": "carbon_aware_api", - "url": settings.carbon_aware_api_endpoint, - "token": settings.carbon_aware_api_token, - "start_date": start_date.strftime("%Y-%m-%dT%H:%M:%SZ"), - "stop_date": stop_date.strftime("%Y-%m-%dT%H:%M:%SZ") - }) - return response.json() - - -def parse_electricity_carbon_intensity(carbon_aware_api_response: Dict[str, Any]): - intensity_dict = carbon_aware_api_response['_value'] - if 'endTime' in intensity_dict and 'carbonIntensity' in intensity_dict: - return { - 'timestamp': datetime.fromisoformat(intensity_dict['endTime']), - 'value': round(intensity_dict['carbonIntensity'], 3) - } - else: - return { - 'timestamp': datetime.now(), - 'value': 0 - } - - -def query_forecast_electricity_carbon_intensity(start_date: datetime, stop_date: datetime) -> Dict[str, Any]: - url = settings.boaviztapi_endpoint + f'/v1/usage_router/gwp/forecast_intensity?location={settings.azure_location}' - retry = 0 - while retry < 3: - retry += 1 - try: - response = requests.post(url, json={ - "source": "carbon_aware_api", - "url": settings.carbon_aware_api_endpoint, - "token": settings.carbon_aware_api_token, - "start_date": start_date.strftime("%Y-%m-%dT%H:%M:%SZ"), - "stop_date": stop_date.strftime("%Y-%m-%dT%H:%M:%SZ") - }) - return response.json()[0] - except KeyError: - response_err = response.json() - if response_err['title'] == 'ArgumentException': - errors = response_err['errors'] - if 'dataStartAt' in errors: - if len(errors['dataStartAt']) == 1: - error_msg = errors['dataStartAt'][0].split("'") - start_date = datetime.strptime(error_msg[1][:-10], '%m/%d/%Y %H:%M:%S') - stop_date = datetime.strptime(error_msg[3][:-10], '%m/%d/%Y %H:%M:%S') - elif 'dataEndAt' in errors: - if len(errors['dataEndAt']) == 1: - error_msg = errors['dataEndAt'][0].split("'") - start_date = datetime.strptime(error_msg[1][:-10], '%m/%d/%Y %H:%M:%S') - stop_date = datetime.strptime(error_msg[3][:-10], '%m/%d/%Y %H:%M:%S') - - -def parse_forecast_electricity_carbon_intensity(response: Dict[str, Any]) -> List[Dict[str, Any]]: - forecasts = response['forecastData'] - results = [] - for item in forecasts: - results.append({ - 'timestamp': datetime.fromisoformat(item['timestamp']).strftime("%Y-%m-%dT%H:%M:%SZ"), - 'value': item['value'] - }) - return results - - -def parse_date_info(since: str, until: str, forecast: bool = False) -> Tuple[datetime, datetime]: - if forecast: - start_date = datetime.utcnow() - end_date = start_date + timedelta(hours=1) - else: - end_date = datetime.utcnow() - start_date = end_date - timedelta(hours=1) - - if since == 'now' and not forecast: - end_date = datetime.utcnow() - elif since == 'now' and forecast: - start_date = datetime.utcnow() - else: - ValueError(f'unknown value since={since}') - - if until.endswith('d'): - days = int(until.replace('d', '')) - if forecast: - end_date = start_date + timedelta(days=days) - else: - start_date = end_date - timedelta(days=days) - if until.endswith('h'): - hours = int(until.replace('h', '')) - if forecast: - end_date = start_date + timedelta(hours=hours) - else: - start_date = end_date - timedelta(hours=hours) - elif until.endswith('m'): - minutes = int(until.replace('m', '')) - if forecast: - end_date = start_date + timedelta(minutes=minutes) - else: - start_date = end_date - timedelta(minutes=minutes) - else: - ValueError(f'unknown value until={until}') - - return start_date.astimezone(pytz.UTC), end_date.astimezone(pytz.UTC) - - -def upper_round_date_minutes_with_base(date: datetime, base: int) -> datetime: - delta_minutes = base * math.ceil((date.minute + 1) / base) - date.minute - return date + timedelta(minutes=delta_minutes) - - -def get_cron_per_user(): - user = [] - with open("/etc/passwd", "r") as f: - for line in f.readlines(): - user.append(line.split(":")[0]) - user.sort() - cron_user = [] - for item in user: - output = os.popen(f"crontab -u {item} -l").read() - for line in output.splitlines(): - if line == f"no crontab for {item}": - break - else: - cron_user.append(line) - return cron_user - - -def get_all_cron(): - crons = [] - - if os.geteuid() == 0: - cron_user = get_cron_per_user() - if cron_user: - crons.append(cron_user) - else: - output = os.popen(f"crontab -l").read() - for line in output.splitlines(): - if line != "" and (line[0].isdigit() or line[0] == "*"): - crons.append(line) - - with open("/etc/crontab", "r") as f: - for line in f.readlines(): - if line != "" and (line[0].isdigit() or line[0] == "*"): - crons.append(line) - return crons - - -def get_cron_info(): - crons_info = [] - base = datetime.today() - cron_lines = get_all_cron() - for cron in cron_lines: - info = {} - sched = "" - for char in cron: - if char.isdigit() or char == "*" or char == " " or char == "\t": - sched += char - info["next"] = croniter(sched, base).get_next(datetime).astimezone(pytz.UTC) - info["previous"] = croniter(sched, base).get_prev(datetime).astimezone(pytz.UTC) - info["job"] = cron.strip() - crons_info.append(info) - return crons_info - - -def event_is_in_bad_time(event, df: pd.DataFrame): - df = df.set_index('timestamp') - index = df.index.get_indexer([event], method='nearest') - return df.iloc[index].peak.values[0] == 1 - - -def compute_recommendations(since="now", until="24h"): - start_date, stop_date = parse_date_info(since, until) - session = get_session(settings.db_path) - df_power = select_metric(session, 'power', start_date, stop_date) - # df_power['timestamp'] = pd.to_datetime(df_power['timestamp']) - df_history = select_metric(session, 'carbonintensity', start_date, stop_date) - - df_forecast = carbon_intensity_forecast_data(since, until) - df_forecast['timestamp'] = df_forecast['timestamp'].apply(lambda x: datetime.strptime(x, '%Y-%m-%dT%H:%M:%SZ')) - - df_carbon_intensity = pd.concat([df_history, df_forecast]) - df_carbon_intensity['timestamp'] = df_carbon_intensity['timestamp'].apply(pytz.utc.localize) - df_carbon_intensity = new_highlight_spikes(df_carbon_intensity, "value") - - recommendations = [] - crons = get_cron_info() - for cron in crons: - if event_is_in_bad_time(cron['next'], df_carbon_intensity): - recommendations.append({ - 'type': 'CRON', - 'execution_date': cron['next'], - 'preferred_execution_date': find_preferred_execution_date_in_future(df_forecast), - 'mode': 'forecast', - 'job': cron['job'] - }) - if event_is_in_bad_time(cron['previous'], df_carbon_intensity): - recommendations.append({ - 'type': 'CRON', - 'execution_date': datetime.strptime(str(cron['previous'])[:-6], '%Y-%m-%d %H:%M:%S'), - 'preferred_execution_date': find_preferred_execution_date_in_history(cron['previous'], df_power, - df_history), - 'mode': 'history', - 'job': cron['job'] - }) - return recommendations - - -def find_preferred_execution_date_in_future(df_forecast: pd.DataFrame): - bests = df_forecast[df_forecast['value'] == df_forecast['value'].min()] - return bests.iloc[0].timestamp - - -def find_preferred_execution_date_in_history(execution_date: datetime, - df_power: pd.DataFrame, - df_intensity: pd.DataFrame) -> datetime: - df_power = df_power.rename(columns={'value': 'power'}) - df_power = df_power.set_index('timestamp') - df_power = df_power.resample('1s').mean() - df_power = df_power.fillna(method='ffill') - df_intensity = df_intensity.rename(columns={'value': 'carbon_intensity'}) - df_intensity = df_intensity.set_index('timestamp') - df_intensity = df_intensity.resample('1s').mean() - df_intensity = df_intensity.fillna(method='ffill') - df = df_power.merge(df_intensity, on='timestamp') - df = df.reset_index(names='timestamp') - - df['ratio'] = df['power'] * df['carbon_intensity'] - bests = df[df['ratio'] == df['ratio'].min()] - - for row in bests.itertuples(): - new_execution_date = pytz.utc.localize(datetime.strptime(str(row.timestamp), '%Y-%m-%d %H:%M:%S')) - if new_execution_date >= execution_date: - return new_execution_date - - return bests.iloc[0].timestamp - - -@app.get("/recommendation") -async def info(): - return compute_recommendations() diff --git a/boagent/api/config.py b/boagent/api/config.py index dbce29b..b085287 100644 --- a/boagent/api/config.py +++ b/boagent/api/config.py @@ -1,25 +1,35 @@ -from pydantic import BaseSettings -import os +from pydantic_settings import BaseSettings class Settings(BaseSettings): - PROJECT_NAME: str = "boagent" - PROJECT_VERSION: str = "0.1.0" + project_name: str = "boagent" + project_version: str = "0.1.0" + project_description: str = "Boagent is a local API and monitoring agent to help you estimate the environmental impact of your machine, including software activity and hardware embodied impacts." + tags_metadata: list = [ + {"name": "info", "description": "Returns runtime configuration of Boagent."}, + {"name": "web", "description": "Web UI to explore Boagent metrics."}, + { + "name": "csv", + "description": "Internal route. Generates and returns a CSV-formatted dataset with metrics needed by the webUI", + }, + { + "name": "metrics", + "description": "Returns metrics as a Prometheus HTTP exporter.", + }, + { + "name": "query", + "description": "This is the main route. Returns metrics in JSON format.", + }, + ] seconds_in_one_year: int = 31536000 - default_lifetime: float = os.getenv("DEFAULT_LIFETIME", 5.0) - hardware_file_path: str = os.getenv("HARDWARE_FILE_PATH", "./hardware_data.json") - power_file_path: str = os.getenv("POWER_FILE_PATH", "./power_data.json") - hardware_cli: str = os.getenv("HARDWARE_CLI", "../hardware/hardware.py") - boaviztapi_endpoint: str = os.getenv("BOAVIZTAPI_ENDPOINT", "http://localhost:5000") - db_path: str = os.getenv("BOAGENT_DB_PATH", "../../db/boagent.db") - public_path: str = os.getenv("BOAGENT_PUBLIC_PATH", "../public") - assets_path: str = os.getenv("BOAGENT_ASSETS_PATH", "../public/assets") - carbon_aware_api_endpoint: str = os.getenv("CARBON_AWARE_API_ENDPOINT", "https://carbon-aware-api.azurewebsites.net") - carbon_aware_api_token: str = os.getenv("CARBON_AWARE_API_TOKEN") - azure_location: str = os.getenv("AZURE_LOCATION", "northeurope") - - class Config: - env_file = ".env" - - -settings = Settings() + default_lifetime: float = 5.0 + hardware_file_path: str = "./hardware_data.json" + power_file_path: str = "./power_data.json" + hardware_cli: str = "./boagent/hardware/hardware_cli.py" + boaviztapi_endpoint: str = "http://localhost:5000" + db_path: str = "../../db/boagent.db" + public_path: str = "./boagent/public" + assets_path: str = "./boagent/public/assets/" + carbon_aware_api_endpoint: str = "https://carbon-aware-api.azurewebsites.net" + carbon_aware_api_token: str = "token" + azure_location: str = "northeurope" diff --git a/boagent/api/database.py b/boagent/api/database.py deleted file mode 100644 index 7c0b36a..0000000 --- a/boagent/api/database.py +++ /dev/null @@ -1,228 +0,0 @@ -from datetime import datetime, timedelta, timezone -from distutils.log import error -from typing import Any, Optional - -import pytz -from click import option - -import pandas as pd -import numpy as np -from sqlalchemy import Column, DateTime, Integer, Float, insert, select, inspect -from sqlalchemy.engine import Engine, create_engine -from sqlalchemy.orm import Session, declarative_base, declared_attr - -import json -from utils import filter_date_range -from config import settings - -Base = declarative_base() - - -class TimeSeriesRecord(Base): - __abstract__ = True - - id = Column(Integer, autoincrement=True, primary_key=True) - timestamp = Column(DateTime, unique=True, nullable=False) - value = Column(Float, nullable=False) - - @declared_attr - def __tablename__(cls): - return cls.__name__.lower() - - -class CarbonIntensity(TimeSeriesRecord): - pass - - -class Power(TimeSeriesRecord): - pass - - -class Cpu(TimeSeriesRecord): - pass - - -class Ram(TimeSeriesRecord): - pass - - -metrics = { - 'carbonintensity': CarbonIntensity, - 'power': Power, - 'cpu': Cpu, - 'ram': Ram, -} - - -def create_database(engine: Engine) -> None: - inspector = inspect(engine) - for model_name, model in metrics.items(): - if not inspector.has_table(model_name): - model.__table__.create(engine) - - -def get_session(db_path: str) -> Session: - engine = get_engine(db_path) - return Session(engine) - - -def get_engine(db_path: str) -> Engine: - return create_engine(f'sqlite:///{db_path}') - - -def insert_metric(session: Session, metric_name: str, timestamp: datetime, value: Any): - model = metrics[metric_name] - statement = insert(model).values(timestamp=timestamp, value=value) - session.execute(statement) - - -def insert_metric_and_commit(session: Session, metric_name: str, timestamp: datetime, value: Any): - model = metrics[metric_name] - statement = insert(model).values(timestamp=timestamp, value=value) - session.execute(statement) - session.commit() - - -def select_metric(session: Session, - metric_name: str, - start_date: Optional[datetime] = None, - stop_date: Optional[datetime] = None) -> pd.DataFrame: - if metric_name not in metrics: - return pd.DataFrame() - model = metrics[metric_name] - if stop_date is None: - stop_date = datetime.utcnow() - if start_date is None: - start_date = stop_date - timedelta(hours=1) - statement = select(model.timestamp, model.value).where( - model.timestamp >= start_date, - model.timestamp <= stop_date - ) - results = session.execute(statement).all() - return pd.DataFrame(results) - - -def get_full_peak(start: int, diffs: list) -> list: - val = diffs[start] - sign = -1 if val < 0 else 0 if val == 0 else 1 - res = [] - recover = 0.25 - i = 1 - if sign > 0: - while val > recover * val and start + i < len(diffs): - val += diffs[start + i] - res.append(start + i) - i = i + 1 - else: - while val < (- 3 * recover * val) and start + i < len(diffs): - val += diffs[start + i] - res.append(start + i) - i = i + 1 - return res, sign - - -def highlight_spikes(data: pd.DataFrame, colname: str = None) -> pd.DataFrame: - if len(data.keys()) > 0: - if colname is None: - colname = data.keys()[1] - - diffs = np.diff(data[colname]) - - factor = 1.2 - - avg_diff = sum([abs(d) for d in diffs]) / len(diffs) - - peaks_ids = np.where(abs(diffs) > avg_diff * factor) - - data["peak"] = 0 - - for i in peaks_ids[0].tolist(): - full_peak = get_full_peak(i, diffs.tolist()) - data["peak"][full_peak[0]] = full_peak[1] - # data.loc[:, ("peak", full_peak[0])] = full_peak[1] - - data["peak"][data[[colname]].idxmin()] = -1 - data["peak"][data[[colname]].idxmax()] = 1 - - return data - - -def new_highlight_spikes(df: pd.DataFrame, col: str = 'value') -> pd.DataFrame: - df = df.set_index('timestamp').reset_index(names='timestamp') - rol_col = f'_rolling_{col}' - quant_max = df[col].quantile(q=0.70) - quant_min = df[col].quantile(q=0.20) - window = 3 - df[rol_col] = df[col].ewm(span=window).mean() - df['peak'] = 0 - indexes_max = df[df[rol_col] >= quant_max].index - indexes_min = df[df[rol_col] <= quant_min].index - df.loc[indexes_max, 'peak'] = 1 - df.loc[indexes_min, 'peak'] = -1 - - for row in df.itertuples(): - if row.peak != 0 and row.Index > window + 2: - for i in range(window + 1): - df.loc[row.Index - i, 'peak'] = row.peak - - df = df.drop(columns=[rol_col]) - return df - - -def get_most_recent_timestamp(session): - """ Get a single row from the table which has the most recent timestamp""" - table_list = [Power, Cpu, Ram] - last_timestamp_list = [] - for table in table_list: - data = session.query(table).order_by(table.timestamp.desc()).first() - if data != None: last_timestamp_list.append(data.timestamp) - return max(last_timestamp_list) if last_timestamp_list else None - - -def get_most_recent_data(table_name): - """ Get a single row from the table which has the most recent timestamp""" - session = get_session(settings.db_path) - table = metrics[table_name] - data = session.query(table).order_by(table.timestamp.desc()).first() - return data - - -def get_max(table_name): - """ Get a single row from the table which has the most recent timestamp""" - session = get_session(settings.db_path) - table = metrics[table_name] - data = session.query(table).order_by(table.value.desc()).first() - return data - - -def add_from_scaphandre(session): - last_timestamp = get_most_recent_timestamp(session) - last_timestamp = last_timestamp + timedelta(seconds=5) if last_timestamp != None else datetime.now() - timedelta(hours=24) - df = scaphandre_to_csv(start_date=last_timestamp, stop_date=datetime.utcnow()) - if df.empty: - return - else: - for row in df.itertuples(): - insert_metric(session, metric_name='power', timestamp=row.timestamp, value=row.consumption) - insert_metric(session, metric_name='cpu', timestamp=row.timestamp, value=row.cpu_total_active) - insert_metric(session, metric_name='ram', timestamp=row.timestamp, value=row.ram_used) - - -def scaphandre_to_csv(start_date: datetime, stop_date: datetime) -> pd.DataFrame: - with open(settings.power_file_path, 'r') as f: # if scaphandre is writing in the json -> KABOUM - data = json.loads(f.read()) - lst = [] - for d in data: - data_point = {} - data_point['timestamp'] = d['host']['timestamp'] - data_point['consumption'] = d['host']['consumption'] - data_point['cpu_total_active'] = float(d['resources']['cpu']['total_active']) - data_point['ram_used'] = d['resources']['ram']['used'].split()[0] - lst.append(data_point) - - wanted_data = filter_date_range(lst, start_date, stop_date) - for d in wanted_data: - d["timestamp"] = datetime.fromtimestamp(d["timestamp"], tz=timezone.utc) - d["consumption"] = float("{:.4f}".format(d["consumption"] * 10 ** -3)) - d["cpu_total_active"] = float("{:.4f}".format(d["cpu_total_active"])) - return pd.DataFrame(wanted_data, columns=["timestamp", "consumption", "cpu_total_active", "ram_used"]) diff --git a/boagent/api/exceptions.py b/boagent/api/exceptions.py new file mode 100644 index 0000000..bb57c1a --- /dev/null +++ b/boagent/api/exceptions.py @@ -0,0 +1,5 @@ +class InvalidPIDException(Exception): + def __init__(self, pid): + self.pid = pid + self.message = f"Process_id {self.pid} has not been found in metrics data. Check the queried PID." + super().__init__(self.message) diff --git a/boagent/api/log.txt b/boagent/api/log.txt deleted file mode 100644 index 113dbc1..0000000 --- a/boagent/api/log.txt +++ /dev/null @@ -1 +0,0 @@ -Application shutdownApplication shutdown \ No newline at end of file diff --git a/boagent/api/models.py b/boagent/api/models.py new file mode 100644 index 0000000..8d5d4d5 --- /dev/null +++ b/boagent/api/models.py @@ -0,0 +1,15 @@ +from pydantic import BaseModel + + +class WorkloadTime(BaseModel): + time_percentage: float = 0.0 + load_percentage: float = 0.0 + + +time_workload_example = { + "time_workload": [ + {"time_percentage": 50, "load_percentage": 0}, + {"time_percentage": 25, "load_percentage": 60}, + {"time_percentage": 25, "load_percentage": 100}, + ] +} diff --git a/boagent/api/process.py b/boagent/api/process.py new file mode 100644 index 0000000..f8d7c3b --- /dev/null +++ b/boagent/api/process.py @@ -0,0 +1,233 @@ +from collections import defaultdict +from .exceptions import InvalidPIDException + + +class Process: + def __init__(self, metrics_data, pid): + self.metrics_data = metrics_data + self.validate_pid(pid) + self._pid = pid + self.process_info = self.get_process_info() + + def validate_pid(self, value): + + timestamps = [ + timestamp + for timestamp in self.metrics_data["raw_data"]["power_data"]["raw_data"] + ] + consumers = [timestamp["consumers"] for timestamp in timestamps] + pids = set([process["pid"] for consumer in consumers for process in consumer]) + if value in pids: + return value + else: + raise InvalidPIDException(value) + + @property + def pid(self, pid): + """The PID queried in data coming from Scaphandre.""" + return self._pid + + @pid.setter + def pid(self, value): + self._pid = self.validate_pid(value) + + def get_process_info(self): + + timestamps = [ + timestamp + for timestamp in self.metrics_data["raw_data"]["power_data"]["raw_data"] + ] + consumers = [timestamp["consumers"] for timestamp in timestamps] + process_info = [ + process + for consumer in consumers + for process in consumer + if process["pid"] == self._pid + ] + return process_info + + @property + def process_name(self): + process_name = self.process_info[0]["exe"].split("/")[-1] + return process_name + + @property + def process_exe(self): + process_exe = self.process_info[0]["exe"] + return process_exe + + def get_total_ram_in_bytes(self): + + ram_data = self.metrics_data["raw_data"]["hardware_data"]["rams"] + total_ram_in_bytes = ( + sum(ram_unit["capacity"] for ram_unit in ram_data) * 1073741824 + ) + + return total_ram_in_bytes + + def get_disk_usage_in_bytes(self): + + disk_total_bytes = int( + self.metrics_data["raw_data"]["power_data"]["raw_data"][1]["host"][ + "components" + ]["disks"][0]["disk_total_bytes"] + ) + disk_available_bytes = int( + self.metrics_data["raw_data"]["power_data"]["raw_data"][1]["host"][ + "components" + ]["disks"][0]["disk_available_bytes"] + ) + disk_usage_in_bytes = disk_total_bytes - disk_available_bytes + return disk_usage_in_bytes + + @property + def ram_shares(self): + + process_ram_shares = [ + ( + ( + int(timestamp["resources_usage"]["memory_usage"]) + / self.get_total_ram_in_bytes() + ) + * 100 + ) + for timestamp in self.process_info + ] + + return process_ram_shares + + @property + def cpu_load_shares(self): + + process_cpu_load_shares = [ + float(timestamp["resources_usage"]["cpu_usage"]) + for timestamp in self.process_info + ] + return process_cpu_load_shares + + @property + def storage_shares(self): + process_storage_shares = [ + ( + ( + int(timestamp["resources_usage"]["disk_usage_write"]) + / self.get_disk_usage_in_bytes() + ) + * 100 + ) + for timestamp in self.process_info + ] + return process_storage_shares + + def get_component_embedded_impact_shares(self, queried_component, component_shares): + + component = f"{queried_component}-1" + component_impacts_data = self.metrics_data["raw_data"]["boaviztapi_data"][ + "verbose" + ][component]["impacts"] + component_embedded_impact_shares = list() + for impact in component_impacts_data: + impact_embedded_value = component_impacts_data[impact]["embedded"]["value"] + for process_component_share in component_shares: + if process_component_share == 0.0: + component_embedded_impact = ( + f"{impact}_embedded_share", + float(process_component_share), + ) + component_embedded_impact_shares.append(component_embedded_impact) + else: + component_embedded_impact_share = ( + float(impact_embedded_value) * float(process_component_share) + ) / 100 + component_embedded_impact = ( + f"{impact}_embedded_share", + float(component_embedded_impact_share), + ) + component_embedded_impact_shares.append(component_embedded_impact) + return component_embedded_impact_shares + + def get_component_embedded_impact_values(self, queried_component): + if queried_component == "cpu": + component_impact_shares = self.get_component_embedded_impact_shares( + "CPU", self.cpu_load_shares + ) + elif queried_component == "ram": + component_impact_shares = self.get_component_embedded_impact_shares( + "RAM", self.ram_shares + ) + elif queried_component == "ssd": + component_impact_shares = self.get_component_embedded_impact_shares( + "SSD", self.storage_shares + ) + elif queried_component == "hdd": + component_impact_shares = self.get_component_embedded_impact_shares( + "HDD", self.storage_shares + ) + else: + return "Queried component is not available for evaluation." + + gwp_list = defaultdict(list) + adp_list = defaultdict(list) + pe_list = defaultdict(list) + + for impact_key, impact_value in component_impact_shares: + if impact_key == "gwp_embedded_share": + gwp_list[impact_key].append(impact_value) + if impact_key == "adp_embedded_share": + adp_list[impact_key].append(impact_value) + if impact_key == "pe_embedded_share": + pe_list[impact_key].append(impact_value) + + gwp_average = sum(gwp_list["gwp_embedded_share"]) / len( + gwp_list["gwp_embedded_share"] + ) + adp_average = sum(adp_list["adp_embedded_share"]) / len( + adp_list["adp_embedded_share"] + ) + pe_average = sum(pe_list["pe_embedded_share"]) / len( + pe_list["pe_embedded_share"] + ) + + gwp_max = max(gwp_list["gwp_embedded_share"]) + adp_max = max(adp_list["adp_embedded_share"]) + pe_max = max(pe_list["pe_embedded_share"]) + + gwp_min = min(gwp_list["gwp_embedded_share"]) + adp_min = min(adp_list["adp_embedded_share"]) + pe_min = min(pe_list["pe_embedded_share"]) + + component_embedded_impact_values = { + f"gwp_{queried_component}_average_impact": gwp_average, + f"adp_{queried_component}_average_impact": adp_average, + f"pe_{queried_component}_average_impact": pe_average, + f"gwp_{queried_component}_max_impact": gwp_max, + f"adp_{queried_component}_max_impact": adp_max, + f"pe_{queried_component}_max_impact": pe_max, + f"gwp_{queried_component}_min_impact": gwp_min, + f"adp_{queried_component}_min_impact": adp_min, + f"pe_{queried_component}_min_impact": pe_min, + } + return component_embedded_impact_values + + @property + def embedded_impact_values(self): + process_embedded_impact_values = { + "pid": self._pid, + "process_embedded_impacts": {}, + } + components = ["cpu", "ram", "hdd", "ssd"] + + for component in components: + try: + process_component_embedded_impact_values = ( + self.get_component_embedded_impact_values(component) + ) + process_embedded_impact_values["process_embedded_impacts"][ + f"process_{component}_embedded_impact_values" + ] = process_component_embedded_impact_values + except KeyError as absent_component: + print( + f"Queried component is not present in Boagent metrics: {absent_component}" + ) + + return process_embedded_impact_values diff --git a/boagent/api/utils.py b/boagent/api/utils.py index c7099ba..4ea4b5d 100644 --- a/boagent/api/utils.py +++ b/boagent/api/utils.py @@ -1,7 +1,11 @@ from datetime import datetime from boaviztapi_sdk import ApiClient, Configuration from dateutil import parser -from config import settings +from .config import Settings +from os import PathLike + +settings = Settings() +BOAVIZTAPI_ENDPOINT = settings.boaviztapi_endpoint def sort_ram(items: list): @@ -9,48 +13,51 @@ def sort_ram(items: list): for r in items: if "manufacturer" in r: if "{}:{}".format(r["capacity"], r["manufacturer"]) in hash_map: - hash_map["{}:{}".format(r["capacity"], r["manufacturer"])]["units"]+=1 + hash_map["{}:{}".format(r["capacity"], r["manufacturer"])]["units"] += 1 else: hash_map["{}:{}".format(r["capacity"], r["manufacturer"])] = { "units": 1, "manufacturer": r["manufacturer"], - "capacity": r["capacity"] + "capacity": r["capacity"], } else: hash_map["{}".format(r["capacity"])] = { "units": 1, - "capacity": r["capacity"] + "capacity": r["capacity"], } - return [v for k,v in hash_map.items()] + return [v for k, v in hash_map.items()] + def sort_disks(items: list): hash_map = {} for r in items: - if "{}:{}".format(r["capacity"], r["manufacturer"], r["type"]) in hash_map: - hash_map["{}:{}:{}".format(r["capacity"], r["manufacturer"], r["type"])]["units"]+=1 + if "{}:{}:{}".format(r["capacity"], r["manufacturer"], r["type"]) in hash_map: + hash_map["{}:{}:{}".format(r["capacity"], r["manufacturer"], r["type"])][ + "units" + ] += 1 else: - hash_map["{}:{}".format(r["capacity"], r["manufacturer"], r["type"])] = { + hash_map["{}:{}:{}".format(r["capacity"], r["manufacturer"], r["type"])] = { "units": 1, "manufacturer": r["manufacturer"], "capacity": r["capacity"], - "type": r["type"] + "type": r["type"], } - return [v for k,v in hash_map.items()] + return [v for k, v in hash_map.items()] + def get_boavizta_api_client(): config = Configuration( - host=settings.boaviztapi_endpoint, - ) - client = ApiClient( - configuration=config, pool_threads=2 + host=BOAVIZTAPI_ENDPOINT, ) + client = ApiClient(configuration=config) return client -def iso8601_or_timestamp_as_timestamp(iso_time: str): - ''' + +def iso8601_or_timestamp_as_timestamp(iso_time: str) -> float: + """ Takes an str that's either a timestamp or an iso8601 time. Returns a float that represents a timestamp. - ''' + """ if iso_time == "0.0" or iso_time == "0": return float(iso_time) else: @@ -74,40 +81,137 @@ def iso8601_or_timestamp_as_timestamp(iso_time: str): else: return float(iso_time) -def format_prometheus_output(res): + +def format_prometheus_output(res, verbose: bool): response = "" for k, v in res.items(): if "value" in v and "type" in v: if "description" not in v: v["description"] = "TODO: define me" - response += format_prometheus_metric(k, "{}. {}".format(v["description"], "In {} ({}).".format(v["long_unit"], v["unit"])), v["type"], v["value"]) - #response += format_prometheus_metric("energy_consumption", "Energy consumed in the evaluation time window (evaluated at least for an hour, be careful if the time windows is lower than 1 hour), in Wh", "counter", res["emissions_calculation_data"]["energy_consumption"]) + if type(v["value"]) is float: + response += format_prometheus_metric( + k, + "{}. {}".format( + v["description"], + "In {} ({}).".format(v["long_unit"], v["unit"]), + ), + v["type"], + v["value"], + ) + if type(v["value"]) is dict: + response += format_prometheus_metric( + k, + "{}. {}".format( + v["description"], + "In {} ({}).".format(v["long_unit"], v["unit"]), + ), + v["type"], + v["value"]["value"], + ) + else: for x, y in v.items(): - if "value" in y and "type" in y: - if "description" not in y: - y["description"] = "TODO: define me" - response += format_prometheus_metric("{}_{}".format(k,x), "{}. {}".format(y["description"], "In {} ({}).".format(y["long_unit"], y["unit"])), y["type"], y["value"]) + if type(y) is float: + pass + else: + if "value" in y and "type" in y: + if "description" not in y: + y["description"] = "TODO: define me" + response += format_prometheus_metric( + "{}_{}".format(k, x), + "{}. {}".format( + y["description"], + "In {} ({}).".format(y["long_unit"], y["unit"]), + ), + y["type"], + y["value"], + ) + if verbose: + if "boaviztapi_data" in v: + for impact_name, impact_items in v["boaviztapi_data"][ + "impacts" + ].items(): + if "unit" in impact_items: + for value in impact_items["embedded"]: + if value == "warnings": + pass + else: + response += format_prometheus_metric( + "{}".format(f"{impact_name}_total_impact_{value}"), + "{}. {}".format( + impact_items["description"], + "In {}".format(impact_items["unit"]), + ), + "{}".format("gauge"), + "{}".format(f"{impact_items['embedded'][value]}"), + ) + + for component_name, component_impacts in v["boaviztapi_data"][ + "verbose" + ].items(): + formatted_component_name = component_name.lower().replace("-", "_") + if "impacts" in component_impacts: + for impact, items in component_impacts["impacts"].items(): + for component_embedded_impact_metric, value in items[ + "embedded" + ].items(): + if component_embedded_impact_metric == "warnings": + pass + else: + response += format_prometheus_metric( + "{}".format( + f"{formatted_component_name}_{impact}_embedded_impact_{component_embedded_impact_metric}" + ), + "{}. {}".format( + items["description"], + "In {}".format(items["unit"]), + ), + "{}".format("gauge"), + "{}".format( + f"{value}", + ), + ) return response -def format_prometheus_metric(metric_name, metric_description, metric_type, metric_value): + +def format_prometheus_metric( + metric_name, metric_description, metric_type, metric_value +): response = """# HELP {} {} # TYPE {} {} {} {} -""".format(metric_name, metric_description, metric_name, metric_type, metric_name, metric_value) +""".format( + metric_name, + metric_description, + metric_name, + metric_type, + metric_name, + metric_value, + ) return response + def filter_date_range(data: list, start_date: datetime, stop_date: datetime) -> list: lower_index = 0 upper_index = 0 start = datetime.timestamp(start_date) - end = datetime.timestamp(stop_date) + end = datetime.timestamp(stop_date) for d in data: - if d["timestamp"] < start: lower_index+=1 - if d["timestamp"] < end: upper_index+=1 + if d["timestamp"] < start: + lower_index += 1 + if d["timestamp"] < end: + upper_index += 1 + + return data[lower_index:upper_index] + - return data[lower_index : upper_index] +def format_scaphandre_json(file: str | PathLike) -> str: + with open(file, "r") as fd: + formatted_scaphandre_json = f"[{fd.read()}]".replace( + '{"host"', ',{"host"' + ).replace(',{"host"', '{"host"', 1) + return formatted_scaphandre_json diff --git a/boagent/hardware/AWS/README.md b/boagent/hardware/AWS/README.md deleted file mode 100644 index 7038cd7..0000000 --- a/boagent/hardware/AWS/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Agent - - diff --git a/boagent/hardware/README.md b/boagent/hardware/__init__.py similarity index 100% rename from boagent/hardware/README.md rename to boagent/hardware/__init__.py diff --git a/boagent/hardware/cpu/__init__.py b/boagent/hardware/cpu/__init__.py deleted file mode 100644 index faf358d..0000000 --- a/boagent/hardware/cpu/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .cpu import get_cpus diff --git a/boagent/hardware/cpu/cpu.py b/boagent/hardware/cpu/cpu.py deleted file mode 100644 index cc5df55..0000000 --- a/boagent/hardware/cpu/cpu.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python3 -from cpuinfo import get_cpu_info -from cpuid import * -import cpuid_native -import sys - - -def get_socket_number_linux(location="/sys/devices/system/node/possible"): - if sys.platform != "linux": - return "cannot compute socket number for other OS than linux" - with open(location, 'r') as f: - data = f.read() - return int(data.split('-')[-1])+1 - - -def is_set(id, reg_idx, bit): - regs = cpuid(id) - - if (1 << bit) & regs[reg_idx]: - return "Yes" - else: - return "--" - -def get_cpus(): - cpu_info = [] - for i in range(get_socket_number_linux()): - cpu_info.append({ - "vendor": cpu_vendor(), - "name": cpu_name(), - "microarch": cpu_microarchitecture(), - "vector_instructions": { - "sse": is_set(1, 3, 25), - "sse2": is_set(1, 3, 26), - "sse3": is_set(1, 2, 0), - "ssse3": is_set(1, 2, 9), - "sse4.1": is_set(1, 2, 19), - "sse4.2": is_set(1, 2, 20), - "sse4a": is_set(0x80000001, 2, 6), - "avx": is_set(1, 2, 28), - "avx2": is_set(7, 1, 5), - "bmi1": is_set(7, 1, 3), - "bmi2": is_set(7, 1, 8), - }, - "cpu_info": get_cpu_info(), - }) - return cpu_info - -if __name__ =="__main__": - print("socket number linux from a file : {}".format(get_socket_number_linux())) - print("Info from the library cpuid-py:") - cpu_info = get_cpus() - for toto in [cpu_info[0], get_cpu_info()]: - print("\n\n\n") - for key,value in toto.items(): - if(value is dict): - for i,j in value.items(): - if(j is dict): - for a,b in value.items(): - print("{} : {}\n".format(a ,b)) - - print("{} : {}\n".format(i,j)) - - else: - print("{} : {}\n".format(key,value)) diff --git a/boagent/hardware/disk/README.md b/boagent/hardware/disk/README.md deleted file mode 100644 index cf17a63..0000000 --- a/boagent/hardware/disk/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Disk hardware information retrieval. -## Linux -### Drives detection -Hardware drive information can be retrieved with sysfs (mounted on `/sys`). Partitions and -disks (real ones and software raids) can be found under `/sys/dev/block/`. If we are only -interrested in drives, then `/sys/block/` will be the root path of choice. - -Under the `/sys/block/` directory, we will find soft links pointing to devices. -For the running kernel, _virtual_ drives are pointing to paths that looks like `.*/devices/virtual/.*`. -Virtual drives can be `lvm` volumes or `software raid` volumes. -For now on, other patterns can be considered as _real_ drives. One big warning here though, -if we are running in a virtual machine or a containerized environnement then the kernel will think -it is running on real drives. - -## MacOS -TBD -## Windows -TBD \ No newline at end of file diff --git a/boagent/hardware/disk/__init__.py b/boagent/hardware/disk/__init__.py deleted file mode 100644 index 4faf064..0000000 --- a/boagent/hardware/disk/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .disk import Partition, Disk, DiskException, search_physical_drives diff --git a/boagent/hardware/disk/disk.py b/boagent/hardware/disk/disk.py deleted file mode 100644 index ea10a80..0000000 --- a/boagent/hardware/disk/disk.py +++ /dev/null @@ -1,165 +0,0 @@ -from dataclasses import dataclass -import os -import re - -class DiskException(Exception): - pass - - -@dataclass -class Partition: - major: int = None - minor: int = None - blocks: int = None - name: str = None - - @classmethod - def from_proc(cls, data=None): - if not data: - raise DiskException('No data found!') - - data = data.strip().split() - obj = {'major': int(data[0]), - 'minor': int(data[1]), - 'blocks': int(data[2]), - 'name': data[3]} - return cls(**obj) - - -class Disk: - def __init__(self, sysfs_device_path): - self._type = None - self._size = None - self._blocks = None - self._model = None - self._major_minor = None - self._partitions = [] - self._sysfs_path = sysfs_device_path - self._name = os.path.basename(sysfs_device_path) - self._looked_up = False - - @property - def type(self): - return self._type - - @property - def size(self): - return self._size - - def vendor(self): - return self._model.split(' ')[0] - - @property - def model(self): - return self._model - - @staticmethod - def __try_to_read_first_line(item_path, default_value): - retour = default_value - if os.path.exists(item_path): - with open(item_path, 'r') as f: - retour = f.readline().strip() - return retour - - @staticmethod - def __safe_int(maybeint): - if maybeint is not None: - try: - return int(maybeint) - except ValueError: - # on retournera null - pass - return None - - @staticmethod - def __rotational_info_to_disk_type(info): - retour = "Unknown" - iinfo = Disk.__safe_int(info) - if iinfo is not None: - if iinfo == 0: - retour = "ssd" - elif iinfo == 1: - retour = "hdd" - return retour - - def _populate_partitions(self): - """ - Retrieve partitions information for one device from sysfs - """ - part_info_path_base = f'{self._sysfs_path}/{self._name}' - index = 1 - part_info_path = f'{part_info_path_base}{index}' - while os.path.exists(part_info_path): - majmin = Disk.__try_to_read_first_line(f'{part_info_path}/dev', '-1:-1').split(':') - - self._partitions.append(Partition(major=Disk.__safe_int(majmin[0]), - minor=Disk.__safe_int(majmin[1]), - blocks=Disk.__safe_int(Disk.__try_to_read_first_line(f'{part_info_path}/size', 0)), - name=f'{self._name}{index}' - ) - ) - index += 1 - part_info_path = f'{part_info_path_base}{index}' - - - def lookup(self): - """ - Retrieve disk information from /sys/block/xxx where xxx is device logical name. - Data read/guessed : - * disk model (usually "Vendor Model") - * disk type (hdd / ssd), guessed from /sys/block/xxx/queue/rotational - * disk size, computed from sectors count - * partitions - """ - device = None - - if self._looked_up: - return - - self._model = Disk.__try_to_read_first_line(f'{self._sysfs_path}/device/model', 'Unknown model') - rotational = Disk.__try_to_read_first_line(f'{self._sysfs_path}/queue/rotational', None) - self._type = Disk.__rotational_info_to_disk_type(rotational) - self._major_minor = Disk.__try_to_read_first_line(f'{self._sysfs_path}/dev', None) - sectors_count = Disk.__safe_int(Disk.__try_to_read_first_line(f'{self._sysfs_path}/size', None)) - if sectors_count is not None: - # Linux uses 512 bytes sectors - self._size = sectors_count // (2 * 1024 * 1024) - self._blocks = sectors_count - self._populate_partitions() - - self._looked_up = True - - def __repr__(self): - if not self._looked_up: - self.lookup() - - ret = '' - ret = f'Disk ({self._major_minor}) {self._name}: \n' - ret += f'\tBlocks: {self._blocks}\n' - ret += f'\tSize: {self._size}Gb\n' - ret += f'\tModel: {self._model}\n' - ret += f'\tType: {self._type}\n' - ret += '\n' - - ret += f'Disk has {len(self._partitions)} partition(s): \n' - for part in self._partitions: - if part.minor != 0: - ret += f'\tBlocks: {part.blocks}\n' - ret += f'\tSize: {part.blocks // (2 * 1024 * 1024)}Gb\n' - ret += f'\tName: {part.name}\n' - ret += '\n' - - return ret - - -def search_physical_drives(): - disks = [] - - virtual_drive_pattern = re.compile('.*/devices/virtual/.*') - for possible_drive in os.scandir('/sys/block'): - realpath = os.path.realpath(possible_drive.path) - # path seems to point to a "real" drive - if virtual_drive_pattern.match(realpath) is None: - disks.append(Disk(sysfs_device_path=realpath)) - - return disks diff --git a/boagent/hardware/hardware.py b/boagent/hardware/hardware.py deleted file mode 100755 index 53fb49e..0000000 --- a/boagent/hardware/hardware.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3 - -import click -import json -import sys -from disk import search_physical_drives -from cpu import get_cpus -from ram import get_ram_info - -@click.command() -@click.option("--output-file", help="File to output the hardwate data to") -def main(output_file): - res = {} - res["disks"] = format_disks(disks()) - res["cpus"] = format_cpus(get_cpus()) - res["rams"] = format_rams(rams()) - res["mother_board"] = format_mother_board(mother_board()) - if output_file is not None: - with open(output_file, 'w') as fd: - json.dump(res, fd, indent=4) - else: - json.dump(res, sys.stdout, indent=4) - return 0 - -def disks(): - disks = search_physical_drives() - for disk in disks: - disk.lookup() - return disks - -def format_disks(disks): - res = [] - for disk in disks: - res.append({ - "capacity": disk.size, - "manufacturer": disk.vendor(), - "type": disk.type - }) - return res - -def format_cpus(cpus): - for cpu in cpus: - cpu["core_units"] = cpu["cpu_info"]["count"] - print("cpu[microarch][0][0] : {}".format(cpu["microarch"][0][0])) - cpu["family"] = cpu["microarch"][0][0].upper()+cpu["microarch"][0][1:] # Ensure first letter of CPU family is upper case, while boaviztapi 2.0 is not released and cpu family usage is not fixed - return cpus - -def rams(): - rams = get_ram_info() - return rams - -def format_rams(rams): - res = [] - for ram in rams: - options = { - "capacity": ram.size_gb, - } - if ram.manufacturer is not None and len(ram.manufacturer) > 0: - options["manufacturer"] = ram.manufacturer - res.append(options) - return res - -def mother_board(): - pass - -def format_mother_board(mother_board): - return {} - -if __name__ == '__main__': - main() diff --git a/boagent/hardware/lshw.py b/boagent/hardware/lshw.py new file mode 100644 index 0000000..8998393 --- /dev/null +++ b/boagent/hardware/lshw.py @@ -0,0 +1,258 @@ +""" +This file is modified code issued from https://github.com/Solvik/netbox-agent/blob/master/netbox_agent/lshw.py, +copyright under Apache-2.0 licence. +""" + +from shutil import which +import subprocess +import json +import sys +import re +import os + +SYS_BLOCK_PATH = "/sys/block" + + +def is_tool(name): + """Check whether `name` is on PATH and marked as executable""" + return which(name) is not None + + +def serialized_lshw_output(): + try: + lshw_output = subprocess.getoutput("lshw -quiet -json 2> /dev/null") + serialized_lshw_output = json.loads(lshw_output) + except json.JSONDecodeError: + raise Exception("lshw does not seem do be executed as root.") + else: + if isinstance(serialized_lshw_output, list): + return serialized_lshw_output[0] + else: + return serialized_lshw_output + + +def serialized_nvme_output(): + nvme_output = subprocess.check_output( + ["nvme", "-list", "-o", "json"], encoding="utf8" + ) + serialized_nvme_output = json.loads(nvme_output) + return serialized_nvme_output + + +class Lshw: + def __init__(self): + if not is_tool("lshw"): + raise Exception("lshw does not seem to be installed.") + self.hw_info = serialized_lshw_output() + self.info = {} + self.memories = [] + self.cpus = [] + self.power = [] + self.disks = [] + self.gpus = [] + self.motherboard_serial = self.hw_info["children"][0].get("serial", "No S/N") + self.motherboard = self.hw_info["children"][0].get("product", "Motherboard") + + for k in self.hw_info["children"]: + if k["class"] == "power": + self.power.append(k) + + if "children" in k: + for j in k["children"]: + if j["class"] == "generic": + continue + + if j["class"] == "storage": + self.find_storage(j) + + if j["class"] == "memory": + self.find_memories(j) + + if j["class"] == "processor": + self.find_cpus(j) + + if j["class"] == "bridge": + self.walk_bridge(j) + + def get_hw_linux(self, hwclass): + if hwclass == "cpu": + return self.cpus + if hwclass == "gpu": + return self.gpus + """ if hwclass == "network": + return self.interfaces """ + if hwclass == "storage": + return self.disks + if hwclass == "memory": + return self.memories + + """ + def find_network(self, obj): + # Some interfaces do not have device (logical) name (eth0, for + # instance), such as not connected network mezzanine cards in blade + # servers. In such situations, the card will be named `unknown[0-9]`. + unkn_intfs = [] + for i in self.interfaces: + # newer versions of lshw can return a list of names, see issue #227 + if not isinstance(i["name"], list): + if i["name"].startswith("unknown"): + unkn_intfs.push(i) + else: + for j in i["name"]: + if j.startswith("unknown"): + unkn_intfs.push(j) + + unkn_name = "unknown{}".format(len(unkn_intfs)) + self.interfaces.append( + { + "name": obj.get("logicalname", unkn_name), + "macaddress": obj.get("serial", ""), + "serial": obj.get("serial", ""), + "product": obj["product"], + "vendor": obj["vendor"], + "description": obj["description"], + } + ) + """ + + def find_storage(self, obj): + if "children" in obj: + for device in obj["children"]: + if "vendor" in device and "size" in device: + d = { + "units": +1, + "manufacturer": self.check_disk_vendor( + device["vendor"] + ).lower(), + "capacity": device["size"], + "logicalname": device["logicalname"], + "type": self.get_disk_type(device["logicalname"]), + } + self.disks.append(d) + if "nvme" in obj["configuration"]["driver"]: + if not is_tool("nvme"): + raise Exception("nvme-cli >= 1.0 does not seem to be installed") + try: + nvme = serialized_nvme_output() + for device in nvme["Devices"]: + d = { + "units": +1, + "logicalname": device["DevicePath"], + "manufacturer": self.check_disk_vendor( + device["ModelNumber"] + ).lower(), + "type": "ssd", + "capacity": device["PhysicalSize"] // 1073741824, + } + self.disks.append(d) + except Exception: + pass + + def find_cpus(self, obj): + if "product" in obj: + self.cpus.append( + { + "units": +1, + "name": obj["product"], + "manufacturer": obj["vendor"], + "core_units": int(obj["configuration"]["cores"]), + } + ) + + def find_memories(self, obj): + if "children" not in obj: + # print("not a DIMM memory.") + return + + for dimm in obj["children"]: + if "empty" in dimm["description"]: + continue + + self.memories.append( + { + "units": +1, + "manufacturer": dimm.get("vendor", "N/A"), + "capacity": dimm.get("size", 0) // 2**20 // 1024, + } + ) + + def find_gpus(self, obj): + if "product" in obj: + self.gpus.append( + { + "product": obj["product"], + "vendor": obj["vendor"], + "description": obj["description"], + } + ) + + def walk_bridge(self, obj): + if "children" not in obj: + return + + for bus in obj["children"]: + if bus["class"] == "storage": + self.find_storage(bus) + if bus["class"] == "display": + self.find_gpus(bus) + + if "children" in bus: + for b in bus["children"]: + if b["class"] == "storage": + self.find_storage(b) + if b["class"] == "display": + self.find_gpus(b) + + def check_disk_vendor(self, model_string: str) -> str: + split_model = model_string.split(" ") + vendor = "" + + if len(split_model) == 1: + check_string_for_numbers = bool(re.search("\\d", model_string)) + if check_string_for_numbers: + raise Exception( + "Lshw did not output a parsable manufacturer name for this device." + ) + else: + return model_string + + model_first_str = split_model[0] + model_second_str = split_model[1] + check_first_string_for_numbers = re.search("\\d", model_first_str) + result = bool(check_first_string_for_numbers) + + if result: + vendor = model_second_str + return vendor + else: + vendor = model_first_str + return vendor + + def get_disk_type(self, dev_path: str) -> str: + + rotational = self.get_rotational_int(dev_path) + + if rotational == 0: + return "ssd" + if rotational == 1: + return "hdd" + if rotational == 2: + return "unknown" + return "unknown" + + def get_rotational_int(self, dev_path: str) -> int: + + device = dev_path.removeprefix("/dev") + + try: + rotational_fp = os.path.realpath( + f"{SYS_BLOCK_PATH}{device}/queue/rotational", strict=True + ) + + except OSError: + sys.stderr.write("Rotational file was not found") + return 2 + else: + with open(rotational_fp, "r") as file: + rotational_int = int(file.read()) + return rotational_int diff --git a/boagent/hardware/ram/__init__.py b/boagent/hardware/ram/__init__.py deleted file mode 100644 index 5dc23da..0000000 --- a/boagent/hardware/ram/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .ram import get_ram_info diff --git a/boagent/hardware/ram/dmidecode.py b/boagent/hardware/ram/dmidecode.py deleted file mode 100644 index d6a241e..0000000 --- a/boagent/hardware/ram/dmidecode.py +++ /dev/null @@ -1,110 +0,0 @@ -import re -import subprocess - -from typing import Optional, Mapping, List - -from .model import MemoryDevice - - -class DMIDecodeError(Exception): - pass - - -def get_dmidecode_info() -> List[MemoryDevice]: - try: - cmd_output = execute_dmidecode() - return parse_dmidecode(cmd_output) - except Exception as e: - raise DMIDecodeError('cannot extract ram info from dmidecode.') from e - - -def execute_dmidecode() -> Optional[str]: - proc = subprocess.Popen(['dmidecode', '-t', '17'], stdout=subprocess.PIPE) - stdout, stderr = proc.communicate() - if proc.returncode > 0: - raise RuntimeError(f'failed to run dmidecode command.') - else: - return stdout.decode() - - -def parse_dmidecode(dmidecode_dump: str) -> List[MemoryDevice]: - memory_devices = [] - for record in dmidecode_dump.split('\n\n'): - if skip_record(record): - continue - - record_lines = record.split('\n') - record_map = build_record_map(record_lines) - - if not is_record_map_valid(record_map): - continue - - memory_devices.append(parse_record_map_to_memory_device(record_map)) - return memory_devices - - -def skip_record(record) -> bool: - if len(record.split('\n')) < 4: - return True - return False - - -def build_record_map(record_lines: List[str]) -> Mapping[str, str]: - record_map = {} - for raw_line in record_lines: - if skip_record_line(raw_line): - continue - line = raw_line.replace('\t', '') - line = line.strip() - key, value = line.split(':') - value = value.strip() - record_map[key] = value - return record_map - - -def skip_record_line(line: str) -> bool: - if not line.startswith('\t'): - return True - return False - - -def is_record_map_valid(record_map: Mapping) -> bool: - if re.search(r'empty', record_map['Manufacturer'], re.IGNORECASE): - return False - return True - - -def parse_record_map_to_memory_device(record_map: Mapping[str, str]): - size = record_map.get('Size') - if size: - size = parse_size_to_gb(size) - - speed = record_map.get('Speed') - if speed: - speed = parse_speed_to_mt_s(speed) - - return MemoryDevice( - manufacturer=record_map.get('Manufacturer'), - model=record_map.get('Part Number'), - size_gb=size, - type_=record_map.get('Type'), - speed_mt_s=speed, - form_factor=record_map.get('Form Factor') - ) - - -def parse_size_to_gb(size_str: str) -> int: - size = re.search(r'[0-9]+', size_str) - if size: - size = int(size[0]) - if 'MB' in size_str: - size = int(size / 1024) - return size - return 0 - - -def parse_speed_to_mt_s(speed_str: str) -> int: - speed = re.search(r'[0-9]+', speed_str) - if speed: - return int(speed[0]) - return 0 diff --git a/boagent/hardware/ram/meminfo.py b/boagent/hardware/ram/meminfo.py deleted file mode 100644 index 730ab0d..0000000 --- a/boagent/hardware/ram/meminfo.py +++ /dev/null @@ -1,34 +0,0 @@ -import re - -from typing import List - -from .model import MemoryDevice - -CONVERT_KB_IN_GB = 9.536e-7 - - -class MemInfoError(Exception): - pass - - -def get_meminfo() -> List[MemoryDevice]: - try: - memory_size_kb = get_total_memory_in_kb() - memory_size_gb = convert_kb_in_gb(memory_size_kb) - return [MemoryDevice(size_gb=memory_size_gb)] - except Exception as e: - raise MemInfoError('cannot extract ram info from meminfo.') from e - - -def get_total_memory_in_kb() -> int: - with open('/proc/meminfo', 'r') as f: - for line in f.readlines(): - if 'MemTotal' in line: - mem_total_line = line.strip() - break - total_size_kb = int(re.search(r'[0-9]+', mem_total_line)[0]) - return total_size_kb - - -def convert_kb_in_gb(value: int) -> int: - return int(value * CONVERT_KB_IN_GB) diff --git a/boagent/hardware/ram/model.py b/boagent/hardware/ram/model.py deleted file mode 100644 index a32daf5..0000000 --- a/boagent/hardware/ram/model.py +++ /dev/null @@ -1,15 +0,0 @@ -from dataclasses import dataclass -from typing import Optional - - -# TODO: To be replaced by ComponentRAM from openapi client. - -@dataclass() -class MemoryDevice: - manufacturer: Optional[str] = None - model: Optional[str] = None - size_gb: Optional[int] = None - type_: Optional[str] = None - speed_mt_s: Optional[int] = None - form_factor: Optional[str] = None - diff --git a/boagent/hardware/ram/ram.py b/boagent/hardware/ram/ram.py deleted file mode 100644 index eb0ecea..0000000 --- a/boagent/hardware/ram/ram.py +++ /dev/null @@ -1,17 +0,0 @@ -from typing import List, Optional - -from .dmidecode import get_dmidecode_info, DMIDecodeError -from .meminfo import get_meminfo, MemInfoError -from .model import MemoryDevice - - -def get_ram_info() -> Optional[List[MemoryDevice]]: - try: - return get_dmidecode_info() - except DMIDecodeError: - pass - - try: - return get_meminfo() - except MemInfoError: - pass diff --git a/boagent/public/assets/dygraph.min.js b/boagent/public/assets/dygraph.min.js index 0ec8abb..ef3b4da 100644 --- a/boagent/public/assets/dygraph.min.js +++ b/boagent/public/assets/dygraph.min.js @@ -3,4 +3,4 @@ null===d||isNaN(d)||(d=u.yval_stacked)),null===d&&(d=NaN,o||(u.yval=NaN)),u.y=r.calcYNormal_(s,d,l)}this.dygraph_.dataHandler_.onLineEvaluated(i,s,l)}},r.prototype._evaluateLineTicks=function(){var t,e,a,i,n,r;for(this.xticks=[],t=0;t=0&&i<1&&this.xticks.push({pos:i,label:a,has_tick:r});for(this.yticks=[],t=0;t0&&i<=1&&this.yticks.push({axis:t,pos:i,label:a,has_tick:r})},r.prototype._evaluateAnnotations=function(){var t,e={};for(t=0;t1&&o.update(this.yAxes_[1].options,s.y2||{}),o.update(this.xAxis_.options,s.x||{})}},u.prototype.get=function(t){var e=this.getGlobalUser_(t);return null!==e?e:this.getGlobalDefault_(t)},u.prototype.getGlobalUser_=function(t){return this.user_.hasOwnProperty(t)?this.user_[t]:null},u.prototype.getGlobalDefault_=function(t){return this.global_.hasOwnProperty(t)?this.global_[t]:l.default.hasOwnProperty(t)?l.default[t]:null},u.prototype.getForAxis=function(t,e){var a,i;if("number"==typeof e)a=e,i=0===a?"y":"y2";else{if("y1"==e&&(e="y"),"y"==e)a=0;else if("y2"==e)a=1;else{if("x"!=e)throw"Unknown axis "+e;a=-1}i=e}var n=-1==a?this.xAxis_:this.yAxes_[a];if(n){var r=n.options;if(r.hasOwnProperty(t))return r[t]}if("x"!==e||"logscale"!==t){var o=this.getGlobalUser_(t);if(null!==o)return o}var s=l.default.axes[i];return s.hasOwnProperty(t)?s[t]:this.getGlobalDefault_(t)},u.prototype.getForSeries=function(t,e){if(e===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(t))return this.highlightSeries_[t];if(!this.series_.hasOwnProperty(e))throw"Unknown series: "+e;var a=this.series_[e],i=a.options;return i.hasOwnProperty(t)?i[t]:this.getForAxis(t,a.yAxis)},u.prototype.numAxes=function(){return this.yAxes_.length},u.prototype.axisForSeries=function(t){return this.series_[t].yAxis},u.prototype.axisOptions=function(t){return this.yAxes_[t].options},u.prototype.seriesForAxis=function(t){return this.yAxes_[t].series},u.prototype.seriesNames=function(){return this.labels_},void 0!==i);a.default=u,e.exports=a.default}).call(this,t("_process"))},{"./dygraph-default-attrs":10,"./dygraph-options-reference":14,"./dygraph-utils":17,_process:1}],16:[function(t,e,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i=t("./dygraph-utils"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=function(t,e,a,i,n,r){return o(t,e,a,function(t){return"logscale"!==t&&i(t)},n,r)};a.numericLinearTicks=r;var o=function(t,e,a,i,r,o){var s,l,h,u,c=i("pixelsPerLabel"),p=[];if(o)for(s=0;s=u/4){for(var v=f;v>=g;v--){var y=d[v],x=Math.log(y/t)/Math.log(e/t)*a,m={v:y};null===_?_={tickValue:y,pixel_coord:x}:Math.abs(x-_.pixel_coord)>=c?_={tickValue:y,pixel_coord:x}:m.label="",p.push(m)}p.reverse()}}if(0===p.length){var b,w,A=i("labelsKMG2");A?(b=[1,2,4,8,16,32,64,128,256],w=16):(b=[1,2,5,10,20,50,100],w=10);var O,D,E,L=Math.ceil(a/c),T=Math.abs(e-t)/L,S=Math.floor(Math.log(T)/Math.log(w)),P=Math.pow(w,S);for(l=0;lc));l++);for(D>E&&(O*=-1),s=0;s<=u;s++)h=D+s*O,p.push({v:h})}}var C=i("axisLabelFormatter");for(s=0;s=0?g(t,e,o,i,n):[]};a.dateTicker=s;var l={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29};a.Granularity=l;var h={DATEFIELD_Y:0,DATEFIELD_M:1,DATEFIELD_D:2,DATEFIELD_HH:3,DATEFIELD_MM:4,DATEFIELD_SS:5,DATEFIELD_MS:6,NUM_DATEFIELDS:7},u=[];u[l.MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:1,spacing:1},u[l.TWO_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:2,spacing:2},u[l.FIVE_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:5,spacing:5},u[l.TEN_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:10,spacing:10},u[l.FIFTY_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:50,spacing:50},u[l.HUNDRED_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:100,spacing:100},u[l.FIVE_HUNDRED_MILLISECONDLY]={datefield:h.DATEFIELD_MS,step:500,spacing:500},u[l.SECONDLY]={datefield:h.DATEFIELD_SS,step:1,spacing:1e3},u[l.TWO_SECONDLY]={datefield:h.DATEFIELD_SS,step:2,spacing:2e3},u[l.FIVE_SECONDLY]={datefield:h.DATEFIELD_SS,step:5,spacing:5e3},u[l.TEN_SECONDLY]={datefield:h.DATEFIELD_SS,step:10,spacing:1e4},u[l.THIRTY_SECONDLY]={datefield:h.DATEFIELD_SS,step:30,spacing:3e4},u[l.MINUTELY]={datefield:h.DATEFIELD_MM,step:1,spacing:6e4},u[l.TWO_MINUTELY]={datefield:h.DATEFIELD_MM,step:2,spacing:12e4},u[l.FIVE_MINUTELY]={datefield:h.DATEFIELD_MM,step:5,spacing:3e5},u[l.TEN_MINUTELY]={datefield:h.DATEFIELD_MM,step:10,spacing:6e5},u[l.THIRTY_MINUTELY]={datefield:h.DATEFIELD_MM,step:30,spacing:18e5},u[l.HOURLY]={datefield:h.DATEFIELD_HH,step:1,spacing:36e5},u[l.TWO_HOURLY]={datefield:h.DATEFIELD_HH,step:2,spacing:72e5},u[l.SIX_HOURLY]={datefield:h.DATEFIELD_HH,step:6,spacing:216e5},u[l.DAILY]={datefield:h.DATEFIELD_D,step:1,spacing:864e5},u[l.TWO_DAILY]={datefield:h.DATEFIELD_D,step:2,spacing:1728e5},u[l.WEEKLY]={datefield:h.DATEFIELD_D,step:7,spacing:6048e5},u[l.MONTHLY]={datefield:h.DATEFIELD_M,step:1,spacing:2629817280},u[l.QUARTERLY]={datefield:h.DATEFIELD_M,step:3,spacing:216e5*365.2524},u[l.BIANNUAL]={datefield:h.DATEFIELD_M,step:6,spacing:432e5*365.2524},u[l.ANNUAL]={datefield:h.DATEFIELD_Y,step:1,spacing:864e5*365.2524},u[l.DECADAL]={datefield:h.DATEFIELD_Y,step:10,spacing:315578073600},u[l.CENTENNIAL]={datefield:h.DATEFIELD_Y,step:100,spacing:3155780736e3};var d=function(){for(var t=[],e=-39;e<=39;e++)for(var a=Math.pow(10,e),i=1;i<=9;i++){var n=a*i;t.push(n)}return t}(),c=function(t,e,a,i){for(var n=i("pixelsPerLabel"),r=0;r=n)return r}return-1},p=function(t,e,a){var i=u[a].spacing;return Math.round(1*(e-t)/i)},g=function(t,e,a,i,r){var o=i("axisLabelFormatter"),s=i("labelsUTC"),d=s?n.DateAccessorsUTC:n.DateAccessorsLocal,c=u[a].datefield,p=u[a].step,g=u[a].spacing,f=new Date(t),_=[];_[h.DATEFIELD_Y]=d.getFullYear(f),_[h.DATEFIELD_M]=d.getMonth(f),_[h.DATEFIELD_D]=d.getDate(f),_[h.DATEFIELD_HH]=d.getHours(f),_[h.DATEFIELD_MM]=d.getMinutes(f),_[h.DATEFIELD_SS]=d.getSeconds(f),_[h.DATEFIELD_MS]=d.getMilliseconds(f);var v=_[c]%p;a==l.WEEKLY&&(v=d.getDay(f)),_[c]-=v;for(var y=c+1;y=l.DAILY||d.getHours(m)%p==0)&&x.push({v:b,label:o.call(r,m,a,i,r)}),_[c]+=p,m=d.makeDate.apply(null,_),b=m.getTime();return x};a.getDateAxis=g},{"./dygraph-utils":17}],17:[function(t,e,a){"use strict";function i(t,e,a){t.removeEventListener(e,a,!1)}function n(t){return t=t||window.event,t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.cancelBubble=!0,t.cancel=!0,t.returnValue=!1,!1}function r(t,e,a){var i,n,r;if(0===e)i=a,n=a,r=a;else{var o=Math.floor(6*t),s=6*t-o,l=a*(1-e),h=a*(1-e*s),u=a*(1-e*(1-s));switch(o){case 1:i=h,n=a,r=l;break;case 2:i=l,n=a,r=u;break;case 3:i=l,n=h,r=a;break;case 4:i=u,n=l,r=a;break;case 5:i=a,n=l,r=h;break;case 6:case 0:i=a,n=u,r=l}}return i=Math.floor(255*i+.5),n=Math.floor(255*n+.5),r=Math.floor(255*r+.5),"rgb("+i+","+n+","+r+")"}function o(t){var e=t.getBoundingClientRect(),a=window,i=document.documentElement;return{x:e.left+(a.pageXOffset||i.scrollLeft),y:e.top+(a.pageYOffset||i.scrollTop)}}function s(t){return!t.pageX||t.pageX<0?0:t.pageX}function l(t){return!t.pageY||t.pageY<0?0:t.pageY}function h(t,e){return s(t)-e.px}function u(t,e){return l(t)-e.py}function d(t){return!!t&&!isNaN(t)}function c(t,e){return!!t&&(null!==t.yval&&(null!==t.x&&void 0!==t.x&&(null!==t.y&&void 0!==t.y&&!(isNaN(t.x)||!e&&isNaN(t.y)))))}function p(t,e){var a=Math.min(Math.max(1,e||2),21);return Math.abs(t)<.001&&0!==t?t.toExponential(a-1):t.toPrecision(a)}function g(t){return t<10?"0"+t:""+t}function f(t,e,a,i){var n=g(t)+":"+g(e);if(a&&(n+=":"+g(a),i)){var r=""+i;n+="."+("000"+r).substring(r.length)}return n}function _(t,e){var a=e?tt:$,i=new Date(t),n=a.getFullYear(i),r=a.getMonth(i),o=a.getDate(i),s=a.getHours(i),l=a.getMinutes(i),h=a.getSeconds(i),u=a.getMilliseconds(i),d=""+n,c=g(r+1),p=g(o),_=3600*s+60*l+h+.001*u,v=d+"/"+c+"/"+p;return _&&(v+=" "+f(s,l,h,u)),v}function v(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}function y(t,e,a,i,n){for(var r=!0;r;){var o=t,s=e,l=a,h=i,u=n;if(r=!1,null!==h&&void 0!==h&&null!==u&&void 0!==u||(h=0,u=s.length-1),h>u)return-1;null!==l&&void 0!==l||(l=0);var d,c=function(t){return t>=0&&to){if(l>0&&(d=p-1,c(d)&&s[d]o))return p;t=o,e=s,a=l,i=p+1,n=u,r=!0,c=p=g=d=void 0}}}function x(t){var e,a;if((-1==t.search("-")||-1!=t.search("T")||-1!=t.search("Z"))&&(a=m(t))&&!isNaN(a))return a;if(-1!=t.search("-")){for(e=t.replace("-","/","g");-1!=e.search("-");)e=e.replace("-","/");a=m(e)}else 8==t.length?(e=t.substr(0,4)+"/"+t.substr(4,2)+"/"+t.substr(6,2),a=m(e)):a=m(t);return a&&!isNaN(a)||console.error("Couldn't parse "+t+" as a date"),a}function m(t){return new Date(t).getTime()}function b(t,e){if(void 0!==e&&null!==e)for(var a in e)e.hasOwnProperty(a)&&(t[a]=e[a]);return t}function w(t,e){if(void 0!==e&&null!==e)for(var a in e)e.hasOwnProperty(a)&&(null===e[a]?t[a]=null:A(e[a])?t[a]=e[a].slice():!function(t){return"object"==typeof Node?t instanceof Node:"object"==typeof t&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName}(e[a])&&"object"==typeof e[a]?("object"==typeof t[a]&&null!==t[a]||(t[a]={}),w(t[a],e[a])):t[a]=e[a]);return t}function A(t){var e=typeof t;return("object"==e||"function"==e&&"function"==typeof t.item)&&null!==t&&"number"==typeof t.length&&3!==t.nodeType}function O(t){return"object"==typeof t&&null!==t&&"function"==typeof t.getTime}function D(t){for(var e=[],a=0;a=e||et.call(window,function(){var e=(new Date).getTime(),h=e-o;n=r,r=Math.floor(h/a);var u=r-n;r+u>s||r>=s?(t(s),i()):(0!==u&&t(r),l())})}()}function C(t,e){var a={};if(t)for(var i=1;i=Math.pow(10,r)||Math.abs(t)=0;g--,c/=l)if(d>=c){i=v(t/c,n)+h[g];break}if(s){var f=String(t.toExponential()).split("e-");2===f.length&&f[1]>=3&&f[1]<=24&&(i=f[1]%3>0?v(f[0]/F(10,f[1]%3),n):Number(f[0]).toFixed(2),i+=u[Math.floor(f[1]/3)-1])}}return i}function X(t,e,a){return Y.call(this,t,a)}function V(t,e,a){var i=a("labelsUTC"),n=i?tt:$,r=n.getFullYear(t),o=n.getMonth(t),s=n.getDate(t),l=n.getHours(t),h=n.getMinutes(t),u=n.getSeconds(t),d=n.getMilliseconds(t);if(e>=G.Granularity.DECADAL)return""+r;if(e>=G.Granularity.MONTHLY)return lt[o]+" "+r;if(0===3600*l+60*h+u+.001*d||e>=G.Granularity.DAILY)return g(s)+" "+lt[o];if(eG.Granularity.MINUTELY?f(l,h,u,0):f(l,h,u,d)}function Z(t,e){return _(t,e("labelsUTC"))}Object.defineProperty(a,"__esModule",{value:!0}),a.removeEvent=i,a.cancelEvent=n,a.hsvToRGB=r,a.findPos=o,a.pageX=s,a.pageY=l,a.dragGetX_=h,a.dragGetY_=u,a.isOK=d,a.isValidPoint=c,a.floatFormat=p,a.zeropad=g,a.hmsString_=f,a.dateString_=_,a.round_=v,a.binarySearch=y,a.dateParser=x,a.dateStrToMillis=m,a.update=b,a.updateDeep=w,a.isArrayLike=A,a.isDateLike=O,a.clone=D,a.createCanvas=E,a.getContextPixelRatio=L,a.Iterator=T,a.createIterator=S,a.repeatAndCleanup=P,a.isPixelChangingOptionList=C,a.detectLineDelimiter=M,a.isNodeContainedBy=N,a.pow=F,a.toRGB_=R,a.isCanvasSupported=I,a.parseFloat_=H,a.numberValueFormatter=Y,a.numberAxisLabelFormatter=X,a.dateAxisLabelFormatter=V,a.dateValueFormatter=Z;var B=t("./dygraph-tickers"),G=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(B);a.LOG_SCALE=10;var W=Math.log(10);a.LN_TEN=W;var U=function(t){return Math.log(t)/W};a.log10=U;var z=function(t,e,a){var i=U(t),n=U(e),r=i+a*(n-i);return Math.pow(10,r)};a.logRangeFraction=z;var j=[2,2];a.DOTTED_LINE=j;var K=[7,3];a.DASHED_LINE=K;var q=[7,2,2,2];a.DOT_DASH_LINE=q;a.HORIZONTAL=1;a.VERTICAL=2;var Q=function(t){return t.getContext("2d")};a.getContext=Q;var J=function(t,e,a){t.addEventListener(e,a,!1)};a.addEvent=J;var $={getFullYear:function(t){return t.getFullYear()},getMonth:function(t){return t.getMonth()},getDate:function(t){return t.getDate()},getHours:function(t){return t.getHours()},getMinutes:function(t){return t.getMinutes()},getSeconds:function(t){return t.getSeconds()},getMilliseconds:function(t){return t.getMilliseconds()},getDay:function(t){return t.getDay()},makeDate:function(t,e,a,i,n,r,o){return new Date(t,e,a,i,n,r,o)}};a.DateAccessorsLocal=$;var tt={getFullYear:function(t){return t.getUTCFullYear()},getMonth:function(t){return t.getUTCMonth()},getDate:function(t){return t.getUTCDate()},getHours:function(t){return t.getUTCHours()},getMinutes:function(t){return t.getUTCMinutes()},getSeconds:function(t){return t.getUTCSeconds()},getMilliseconds:function(t){return t.getUTCMilliseconds()},getDay:function(t){return t.getUTCDay()},makeDate:function(t,e,a,i,n,r,o){return new Date(Date.UTC(t,e,a,i,n,r,o))}};a.DateAccessorsUTC=tt,T.prototype.next=function(){if(!this.hasNext)return null;for(var t=this.peek,e=this.nextIdx_+1,a=!1;e=0;n--){var r=i[n][0],o=i[n][1];if(o.call(r,a),a.propagationStopped)break}return a.defaultPrevented},Q.prototype.getPluginInstance_=function(t){for(var e=0;e=0;if(null===t||void 0===t)return e||a;if("y"===t)return a;throw new Error("axis parameter is ["+t+"] must be null, 'x' or 'y'.")},Q.prototype.toString=function(){var t=this.maindiv_;return"[Dygraph "+(t&&t.id?t.id:t)+"]"},Q.prototype.attr_=function(t,e){return e?this.attributes_.getForSeries(t,e):this.attributes_.get(t)},Q.prototype.getOption=function(t,e){return this.attr_(t,e)},Q.prototype.getNumericOption=function(t,e){return this.getOption(t,e)},Q.prototype.getStringOption=function(t,e){return this.getOption(t,e)},Q.prototype.getBooleanOption=function(t,e){return this.getOption(t,e)},Q.prototype.getFunctionOption=function(t,e){return this.getOption(t,e)},Q.prototype.getOptionForAxis=function(t,e){return this.attributes_.getForAxis(t,e)},Q.prototype.optionsViewForAxis_=function(t){var e=this;return function(a){var i=e.user_attrs_.axes;return i&&i[t]&&i[t].hasOwnProperty(a)?i[t][a]:("x"!==t||"logscale"!==a)&&(void 0!==e.user_attrs_[a]?e.user_attrs_[a]:(i=e.attrs_.axes,i&&i[t]&&i[t].hasOwnProperty(a)?i[t][a]:"y"==t&&e.axes_[0].hasOwnProperty(a)?e.axes_[0][a]:"y2"==t&&e.axes_[1].hasOwnProperty(a)?e.axes_[1][a]:e.attr_(a)))}},Q.prototype.rollPeriod=function(){return this.rollPeriod_},Q.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},Q.prototype.xAxisExtremes=function(){var t=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-t,1+t];var e=this.rawData_[0][0],a=this.rawData_[this.rawData_.length-1][0];if(t){var i=a-e;e-=i*t,a+=i*t}return[e,a]},Q.prototype.yAxisExtremes=function(){var t=this.gatherDatasets_(this.rolledSeries_,null),e=t.extremes,a=this.axes_;this.computeYAxisRanges_(e);var i=this.axes_;return this.axes_=a,i.map(function(t){return t.extremeRange})},Q.prototype.yAxisRange=function(t){if(void 0===t&&(t=0),t<0||t>=this.axes_.length)return null;var e=this.axes_[t];return[e.computedValueRange[0],e.computedValueRange[1]]},Q.prototype.yAxisRanges=function(){for(var t=[],e=0;ethis.rawData_.length?null:e<0||e>this.rawData_[t].length?null:this.rawData_[t][e]},Q.prototype.createInterface_=function(){var t=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",t.appendChild(this.graphDiv),this.canvas_=x.createCanvas(),this.canvas_.style.position="absolute",this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=x.getContext(this.canvas_),this.hidden_ctx_=x.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new h.default(this);var e=this;this.mouseMoveHandler_=function(t){e.mouseMove_(t)},this.mouseOutHandler_=function(t){var a=t.target||t.fromElement,i=t.relatedTarget||t.toElement;x.isNodeContainedBy(a,e.graphDiv)&&!x.isNodeContainedBy(i,e.graphDiv)&&e.mouseOut_(t)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeHandler_||(this.resizeHandler_=function(t){e.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_))},Q.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var t=this.getNumericOption("pixelRatio"),e=t||x.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*e,this.canvas_.height=this.height_*e,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==e&&this.canvas_ctx_.scale(e,e);var a=t||x.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*a,this.hidden_.height=this.height_*a,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==a&&this.hidden_ctx_.scale(a,a)},Q.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var t=this.plugins_.length-1;t>=0;t--){var e=this.plugins_.pop();e.plugin.destroy&&e.plugin.destroy()}this.removeTrackedEvents_(),x.removeEvent(window,"mouseout",this.mouseOutHandler_),x.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),x.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,function t(e){for(;e.hasChildNodes();)t(e.firstChild),e.removeChild(e.firstChild)}(this.maindiv_);var a=function(t){for(var e in t)"object"==typeof t[e]&&(t[e]=null)};a(this.layout_),a(this.plotter_),a(this)},Q.prototype.createPlotKitCanvas_=function(t){var e=x.createCanvas();return e.style.position="absolute",e.style.top=t.style.top,e.style.left=t.style.left, e.width=this.width_,e.height=this.height_,e.style.width=this.width_+"px",e.style.height=this.height_+"px",e},Q.prototype.createMouseEventElement_=function(){return this.canvas_},Q.prototype.setColors_=function(){var t=this.getLabels(),e=t.length-1;this.colors_=[],this.colorsMap_={};for(var a=this.getNumericOption("colorSaturation")||1,i=this.getNumericOption("colorValue")||.5,n=Math.ceil(e/2),r=this.getOption("colors"),o=this.visibility(),s=0;s=0;--u)for(var d=this.layout_.points[u],c=0;c=l.length)){var h=l[s];if(x.isValidPoint(h)){var u=h.canvasy;if(t>h.canvasx&&s+10){var p=(t-h.canvasx)/c;u+=p*(d.canvasy-h.canvasy)}}}else if(t0){var g=l[s-1];if(x.isValidPoint(g)){var c=h.canvasx-g.canvasx;if(c>0){var p=(h.canvasx-t)/c;u+=p*(g.canvasy-h.canvasy)}}}(0===r||u=0){var r=0,o=this.attr_("labels");for(e=1;er&&(r=s)}var l=this.previousVerticalX_;a.clearRect(l-r-1,0,2*r+2,this.height_)}if(this.selPoints_.length>0){var h=this.selPoints_[0].canvasx;for(a.save(),e=0;e=0){t!=this.lastRow_&&(i=!0),this.lastRow_=t;for(var n=0;n=0&&o=0&&(i=!0),this.lastRow_=-1;return this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=-1,void 0!==e&&(this.highlightSet_!==e&&(i=!0),this.highlightSet_=e),void 0!==a&&(this.lockedSet_=a),i&&this.updateSelection_(void 0),i},Q.prototype.mouseOut_=function(t){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,t),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},Q.prototype.clearSelection=function(){if(this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel)return void this.animateSelection_(-1);this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=-1,this.lastRow_=-1,this.highlightSet_=null},Q.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var t=0;t1&&(a=this.dataHandler_.rollingAverage(a,this.rollPeriod_,this.attributes_)),this.rolledSeries_.push(a)}this.drawGraph_();var i=new Date;this.drawingTimeMs_=i-t},Q.PointType=void 0,Q.stackPoints_=function(t,e,a,i){for(var n=null,r=null,o=null,s=-1,l=0;l=e))for(var a=e;aa[1]&&(a[1]=c),c=1;a--)if(this.visibility()[a-1]){if(e){s=t[a];var p=e[0],g=e[1];for(n=null,r=null,i=0;i=p&&null===n&&(n=i),s[i][0]<=g&&(r=i);null===n&&(n=0);for(var f=n,_=!0;_&&f>0;)f--,_=null===s[f][1];null===r&&(r=s.length-1);var v=r;for(_=!0;_&&v0;){var n=this.readyFns_.pop();n(this)}},Q.prototype.computeYAxes_=function(){var t,e,a;for(this.axes_=[],t=0;t0&&(_=0),v<0&&(v=0)),_==1/0&&(_=0),v==-1/0&&(v=1),a=v-_,0===a&&(0!==v?a=Math.abs(v):(v=1,a=1));var m=v,b=_;e&&(u?(m=v+n*a,b=_):(m=v+n*a,b=_-n*a,b<0&&_>=0&&(b=0),m>0&&v<=0&&(m=0))),h.extremeRange=[b,m]}if(h.valueRange){var w=o(h.valueRange[0])?h.extremeRange[0]:h.valueRange[0],A=o(h.valueRange[1])?h.extremeRange[1]:h.valueRange[1];h.computedValueRange=[w,A]}else h.computedValueRange=h.extremeRange;if(!e)if(u){w=h.computedValueRange[0],A=h.computedValueRange[1];var O=n/(2*n-1),D=(n-1)/(2*n-1);h.computedValueRange[0]=x.logRangeFraction(w,A,O),h.computedValueRange[1]=x.logRangeFraction(w,A,D)}else w=h.computedValueRange[0],A=h.computedValueRange[1],a=A-w,h.computedValueRange[0]=w-a*n,h.computedValueRange[1]=A+a*n;if(c){h.independentTicks=c;var E=this.optionsViewForAxis_("y"+(l?"2":"")),L=E("ticker");h.ticks=L(h.computedValueRange[0],h.computedValueRange[1],this.plotter_.area.h,E,this),r||(r=h)}}if(void 0===r)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(var l=0;l0&&"e"!=t[a-1]&&"E"!=t[a-1]||t.indexOf("/")>=0||isNaN(parseFloat(t))?e=!0:8==t.length&&t>"19700101"&&t<"20371231"&&(e=!0),this.setXAxisOptions_(e)},Q.prototype.setXAxisOptions_=function(t){t?(this.attrs_.xValueParser=x.dateParser,this.attrs_.axes.x.valueFormatter=x.dateValueFormatter,this.attrs_.axes.x.ticker=v.dateTicker,this.attrs_.axes.x.axisLabelFormatter=x.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(t){return parseFloat(t)},this.attrs_.axes.x.valueFormatter=function(t){return t},this.attrs_.axes.x.ticker=v.numericTicks,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},Q.prototype.parseCSV_=function(t){var e,a,i=[],n=x.detectLineDelimiter(t),r=t.split(n||"\n"),o=this.getStringOption("delimiter");-1==r[0].indexOf(o)&&r[0].indexOf("\t")>=0&&(o="\t");var s=0;"labels"in this.user_attrs_||(s=1,this.attrs_.labels=r[0].split(o),this.attributes_.reparseSeries());for(var l,h=!1,u=this.attr_("labels").length,d=!1,c=s;c0&&f[0]0;)e=String.fromCharCode(65+(t-1)%26)+e.toLowerCase(),t=Math.floor((t-1)/26);return e}(g.length),y.text="";for(var m=0;m0&&f[0]0&&this.setAnnotations(g,!0),this.attributes_.reparseSeries()},Q.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},Q.prototype.start_=function(){var t=this.file_;if("function"==typeof t&&(t=t()),x.isArrayLike(t))this.rawData_=this.parseArray_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==typeof t&&"function"==typeof t.getColumnRange)this.parseDataTable_(t),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==typeof t){var e=x.detectLineDelimiter(t);if(e)this.loadedEvent_(t);else{var a;a=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var i=this;a.onreadystatechange=function(){4==a.readyState&&(200!==a.status&&0!==a.status||i.loadedEvent_(a.responseText))},a.open("GET",t,!0),a.send(null)}}else console.error("Unknown data format: "+typeof t)},Q.prototype.updateOptions=function(t,e){void 0===e&&(e=!1);var a=t.file,i=Q.copyUserAttrs_(t);"rollPeriod"in i&&(this.rollPeriod_=i.rollPeriod),"dateWindow"in i&&(this.dateWindow_=i.dateWindow);var n=x.isPixelChangingOptionList(this.attr_("labels"),i);x.updateDeep(this.user_attrs_,i),this.attributes_.reparseSeries(),a?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=a,e||this.start_()):e||(n?this.predraw_():this.renderGraph_(!1))},Q.copyUserAttrs_=function(t){var e={};for(var a in t)t.hasOwnProperty(a)&&"file"!=a&&t.hasOwnProperty(a)&&(e[a]=t[a]);return e},Q.prototype.resize=function(t,e){if(!this.resize_lock){this.resize_lock=!0,null===t!=(null===e)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),t=e=null);var a=this.width_,i=this.height_;t?(this.maindiv_.style.width=t+"px",this.maindiv_.style.height=e+"px",this.width_=t,this.height_=e):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),a==this.width_&&i==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},Q.prototype.adjustRoll=function(t){this.rollPeriod_=t,this.predraw_()},Q.prototype.visibility=function(){for(this.getOption("visibility")||(this.attrs_.visibility=[]);this.getOption("visibility").length=a.length?console.warn("Invalid series number in setVisibility: "+n):a[n]=t[n]);else for(var n=0;n=a.length?console.warn("Invalid series number in setVisibility: "+n):a[n]=t[n]:t[n]<0||t[n]>=a.length?console.warn("Invalid series number in setVisibility: "+t[n]):a[t[n]]=e;this.predraw_()},Q.prototype.size=function(){return{width:this.width_,height:this.height_}},Q.prototype.setAnnotations=function(t,e){if(this.annotations_=t,!this.layout_)return void console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html");this.layout_.setAnnotations(this.annotations_),e||this.predraw_()},Q.prototype.annotations=function(){return this.annotations_},Q.prototype.getLabels=function(){var t=this.attr_("labels");return t?t.slice():null},Q.prototype.indexFromSetName=function(t){return this.setIndexByName_[t]},Q.prototype.getRowForX=function(t){for(var e=0,a=this.numRows()-1;e<=a;){var i=a+e>>1,n=this.getValue(i,0);if(nt)a=i-1;else{if(e==i)return i;a=i}}return null},Q.prototype.ready=function(t){this.is_initial_draw_?this.readyFns_.push(t):t.call(this,this)},Q.prototype.addAndTrackEvent=function(t,e,a){x.addEvent(t,e,a),this.registeredEvents_.push({elem:t,type:e,fn:a})},Q.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var t=0;tr.x+r.w||l.canvasyr.y+r.h)){var h=l.annotation,u=6;h.hasOwnProperty("tickHeight")&&(u=h.tickHeight);var d=document.createElement("div") ;d.style.fontSize=e.getOption("axisLabelFontSize")+"px";var c="dygraph-annotation";h.hasOwnProperty("icon")||(c+=" dygraphDefaultAnnotation dygraph-default-annotation"),h.hasOwnProperty("cssClass")&&(c+=" "+h.cssClass),d.className=c;var p=h.hasOwnProperty("width")?h.width:16,g=h.hasOwnProperty("height")?h.height:16;if(h.hasOwnProperty("icon")){var f=document.createElement("img");f.src=h.icon,f.width=p,f.height=g,d.appendChild(f)}else l.annotation.hasOwnProperty("shortText")&&d.appendChild(document.createTextNode(l.annotation.shortText));var _=l.canvasx-p/2;d.style.left=_+"px";var v=0;if(h.attachAtBottom){var y=r.y+r.h-g-u;o[_]?y-=o[_]:o[_]=0,o[_]+=u+g,v=y}else v=l.canvasy-g-u;d.style.top=v+"px",d.style.width=p+"px",d.style.height=g+"px",d.title=l.annotation.text,d.style.color=e.colorsMap_[l.name],d.style.borderColor=e.colorsMap_[l.name],h.div=d,e.addAndTrackEvent(d,"click",n("clickHandler","annotationClickHandler",l)),e.addAndTrackEvent(d,"mouseover",n("mouseOverHandler","annotationMouseOverHandler",l)),e.addAndTrackEvent(d,"mouseout",n("mouseOutHandler","annotationMouseOutHandler",l)),e.addAndTrackEvent(d,"dblclick",n("dblClickHandler","annotationDblClickHandler",l)),i.appendChild(d),this.annotations_.push(d);var x=t.drawingContext;if(x.save(),x.strokeStyle=h.hasOwnProperty("tickColor")?h.tickColor:e.colorsMap_[l.name],x.lineWidth=h.hasOwnProperty("tickWidth")?h.tickWidth:e.getOption("strokeWidth"),x.beginPath(),h.attachAtBottom){var y=v+g;x.moveTo(l.canvasx,y),x.lineTo(l.canvasx,y+u)}else x.moveTo(l.canvasx,l.canvasy),x.lineTo(l.canvasx,l.canvasy-2-u);x.closePath(),x.stroke(),x.restore()}}},i.prototype.destroy=function(){this.detachLabels()},a.default=i,e.exports=a.default},{}],21:[function(t,e,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i=t("../dygraph-utils"),n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(i),r=function(){this.xlabels_=[],this.ylabels_=[]};r.prototype.toString=function(){return"Axes Plugin"},r.prototype.activate=function(t){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},r.prototype.layout=function(t){var e=t.dygraph;if(e.getOptionForAxis("drawAxis","y")){var a=e.getOptionForAxis("axisLabelWidth","y")+2*e.getOptionForAxis("axisTickSize","y");t.reserveSpaceLeft(a)}if(e.getOptionForAxis("drawAxis","x")){var i;i=e.getOption("xAxisHeight")?e.getOption("xAxisHeight"):e.getOptionForAxis("axisLabelFontSize","x")+2*e.getOptionForAxis("axisTickSize","x"),t.reserveSpaceBottom(i)}if(2==e.numAxes()){if(e.getOptionForAxis("drawAxis","y2")){var a=e.getOptionForAxis("axisLabelWidth","y2")+2*e.getOptionForAxis("axisTickSize","y2");t.reserveSpaceRight(a)}}else e.numAxes()>2&&e.error("Only two y-axes are supported at this time. (Trying to use "+e.numAxes()+")")},r.prototype.detachLabels=function(){function t(t){for(var e=0;e0){var x=r.numAxes(),m=[y("y"),y("y2")];_.yticks.forEach(function(t){if(void 0!==t.label){s=v.x;var e="y1",a=m[0];1==t.axis&&(s=v.x+v.w,-1,e="y2",a=m[1]);var n=a("axisLabelFontSize");l=v.y+t.pos*v.h,o=f(t.label,"y",2==x?e:null);var r=l-n/2;r<0&&(r=0),r+n+3>c?o.style.bottom="0":o.style.top=r+"px",0===t.axis?(o.style.left=v.x-a("axisLabelWidth")-a("axisTickSize")+"px",o.style.textAlign="right"):1==t.axis&&(o.style.left=v.x+v.w+a("axisTickSize")+"px",o.style.textAlign="left"),o.style.width=a("axisLabelWidth")+"px",u.appendChild(o),i.ylabels_.push(o)}});var b=this.ylabels_[0],w=r.getOptionForAxis("axisLabelFontSize","y");parseInt(b.style.top,10)+w>c-w&&(b.style.top=parseInt(b.style.top,10)-w/2+"px")}var A;if(r.getOption("drawAxesAtZero")){var O=r.toPercentXCoord(0);(O>1||O<0||isNaN(O))&&(O=0),A=e(v.x+O*v.w)}else A=e(v.x);h.strokeStyle=r.getOptionForAxis("axisLineColor","y"),h.lineWidth=r.getOptionForAxis("axisLineWidth","y"),h.beginPath(),h.moveTo(A,a(v.y)),h.lineTo(A,a(v.y+v.h)),h.closePath(),h.stroke(),2==r.numAxes()&&(h.strokeStyle=r.getOptionForAxis("axisLineColor","y2"),h.lineWidth=r.getOptionForAxis("axisLineWidth","y2"),h.beginPath(),h.moveTo(a(v.x+v.w),a(v.y)),h.lineTo(a(v.x+v.w),a(v.y+v.h)),h.closePath(),h.stroke())}if(r.getOptionForAxis("drawAxis","x")){if(_.xticks){var D=y("x");_.xticks.forEach(function(t){if(void 0!==t.label){s=v.x+t.pos*v.w,l=v.y+v.h,o=f(t.label,"x"),o.style.textAlign="center",o.style.top=l+D("axisTickSize")+"px";var e=s-D("axisLabelWidth")/2;e+D("axisLabelWidth")>d&&(e=d-D("axisLabelWidth"),o.style.textAlign="right"),e<0&&(e=0,o.style.textAlign="left"),o.style.left=e+"px",o.style.width=D("axisLabelWidth")+"px",u.appendChild(o),i.xlabels_.push(o)}})}h.strokeStyle=r.getOptionForAxis("axisLineColor","x"),h.lineWidth=r.getOptionForAxis("axisLineWidth","x"),h.beginPath();var E;if(r.getOption("drawAxesAtZero")){var O=r.toPercentYCoord(0,0);(O>1||O<0)&&(O=1),E=a(v.y+O*v.h)}else E=a(v.y+v.h);h.moveTo(e(v.x),E),h.lineTo(e(v.x+v.w),E),h.closePath(),h.stroke()}h.restore()}},a.default=r,e.exports=a.default},{"../dygraph-utils":17}],22:[function(t,e,a){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};i.prototype.toString=function(){return"ChartLabels Plugin"},i.prototype.activate=function(t){return{layout:this.layout,didDrawChart:this.didDrawChart}};var n=function(t){var e=document.createElement("div");return e.style.position="absolute",e.style.left=t.x+"px",e.style.top=t.y+"px",e.style.width=t.w+"px",e.style.height=t.h+"px",e};i.prototype.detachLabels_=function(){for(var t=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],e=0;e=2);o=h.yticks,l.save(),o.forEach(function(t){if(t.has_tick){var r=t.axis;g[r]&&(l.save(),f[r]&&l.setLineDash&&l.setLineDash(_[r]),l.strokeStyle=c[r],l.lineWidth=p[r],i=e(u.x),n=a(u.y+t.pos*u.h),l.beginPath(),l.moveTo(i,n),l.lineTo(i+u.w,n),l.stroke(),l.restore())}}),l.restore()}if(s.getOptionForAxis("drawGrid","x")){o=h.xticks,l.save();var _=s.getOptionForAxis("gridLinePattern","x"),f=_&&_.length>=2;f&&l.setLineDash&&l.setLineDash(_),l.strokeStyle=s.getOptionForAxis("gridLineColor","x"),l.lineWidth=s.getOptionForAxis("gridLineWidth","x"),o.forEach(function(t){t.has_tick&&(i=e(u.x+t.pos*u.w),n=a(u.y+u.h),l.beginPath(),l.moveTo(i,n),l.lineTo(i,u.y),l.closePath(),l.stroke())}),f&&l.setLineDash&&l.setLineDash([]),l.restore()}},i.prototype.destroy=function(){},a.default=i,e.exports=a.default},{}],24:[function(t,e,a){"use strict";function i(t,e,a){if(!t||t.length<=1)return'
';var i,n,r,o,s,l=0,h=0,u=[];for(i=0;i<=t.length;i++)l+=t[i%t.length];if((s=Math.floor(a/(l-t[0])))>1){for(i=0;i';return d}Object.defineProperty(a,"__esModule",{value:!0});var n=t("../dygraph-utils"),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(n),o=function(){this.legend_div_=null,this.is_generated_div_=!1};o.prototype.toString=function(){return"Legend Plugin"},o.prototype.activate=function(t){var e,a=t.getOption("labelsDiv");return a&&null!==a?e="string"==typeof a||a instanceof String?document.getElementById(a):a:(e=document.createElement("div"),e.className="dygraph-legend",t.graphDiv.appendChild(e),this.is_generated_div_=!0),this.legend_div_=e,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};var s=function(t){var e=document.createElement("span");e.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),t.appendChild(e);var a=e.offsetWidth;return t.removeChild(e),a},l=function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")};o.prototype.select=function(t){var e=t.selectedX,a=t.selectedPoints,i=t.selectedRow,n=t.dygraph.getOption("legend");if("never"===n)return void(this.legend_div_.style.display="none");if("follow"===n){var r=t.dygraph.plotter_.area,s=this.legend_div_.offsetWidth,l=t.dygraph.getOptionForAxis("axisLabelWidth","y"),h=a[0].x*r.w+50,u=a[0].y*r.h-50;h+s+1>r.w&&(h=h-100-s-(l-r.x)),t.dygraph.graphDiv.appendChild(this.legend_div_),this.legend_div_.style.left=l+h+"px",this.legend_div_.style.top=u+"px"}var d=o.generateLegendHTML(t.dygraph,e,a,this.one_em_width_,i);this.legend_div_.innerHTML=d,this.legend_div_.style.display=""},o.prototype.deselect=function(t){"always"!==t.dygraph.getOption("legend")&&(this.legend_div_.style.display="none");var e=s(this.legend_div_);this.one_em_width_=e;var a=o.generateLegendHTML(t.dygraph,void 0,void 0,e,null);this.legend_div_.innerHTML=a},o.prototype.didDrawChart=function(t){this.deselect(t)},o.prototype.predraw=function(t){if(this.is_generated_div_){t.dygraph.graphDiv.appendChild(this.legend_div_);var e=t.dygraph.getArea(),a=this.legend_div_.offsetWidth;this.legend_div_.style.left=e.x+e.w-a-1+"px",this.legend_div_.style.top=e.y+"px"}},o.prototype.destroy=function(){this.legend_div_=null},o.generateLegendHTML=function(t,e,a,n,s){var h={dygraph:t,x:e,series:[]},u={},d=t.getLabels();if(d)for(var c=1;c":" "),a+=""+r.dashHTML+" "+r.labelHTML+"")}return a}a=t.xHTML+":";for(var n=0;n");a+=" "+r.labelHTML+": "+r.yHTML+""}}return a},a.default=o,e.exports=a.default},{"../dygraph-utils":17}],25:[function(t,e,a){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(a,"__esModule",{value:!0});var n=t("../dygraph-utils"),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e.default=t,e}(n),o=t("../dygraph-interaction-model"),s=i(o),l=t("../iframe-tarp"),h=i(l),u=function(){this.hasTouchInterface_="undefined"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};u.prototype.toString=function(){return"RangeSelector Plugin"},u.prototype.activate=function(t){return this.dygraph_=t,this.getOption_("showRangeSelector")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},u.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},u.prototype.getOption_=function(t,e){return this.dygraph_.getOption(t,e)},u.prototype.setDefaultOption_=function(t,e){this.dygraph_.attrs_[t]=e},u.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_("animatedZooms")&&(console.warn("Animated zooms and range selector are not compatible; disabling animatedZooms."),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},u.prototype.addToGraph_=function(){var t=this.graphDiv_=this.dygraph_.graphDiv;t.appendChild(this.bgcanvas_),t.appendChild(this.fgcanvas_),t.appendChild(this.leftZoomHandle_),t.appendChild(this.rightZoomHandle_)},u.prototype.removeFromGraph_=function(){var t=this.graphDiv_;t.removeChild(this.bgcanvas_),t.removeChild(this.fgcanvas_),t.removeChild(this.leftZoomHandle_),t.removeChild(this.rightZoomHandle_),this.graphDiv_=null},u.prototype.reserveSpace_=function(t){this.getOption_("showRangeSelector")&&t.reserveSpaceBottom(this.getOption_("rangeSelectorHeight")+4)},u.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},u.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},u.prototype.updateVisibility_=function(){var t=this.getOption_("showRangeSelector");if(t)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var e=this.dygraph_;setTimeout(function(){e.width_=0,e.resize()},1)}return t},u.prototype.resize_=function(){function t(t,e,a,i){var n=i||r.getContextPixelRatio(e);t.style.top=a.y+"px",t.style.left=a.x+"px",t.width=a.w*n,t.height=a.h*n,t.style.width=a.w+"px",t.style.height=a.h+"px",1!=n&&e.scale(n,n)}var e=this.dygraph_.layout_.getPlotArea(),a=0;this.dygraph_.getOptionForAxis("drawAxis","x")&&(a=this.getOption_("xAxisHeight")||this.getOption_("axisLabelFontSize")+2*this.getOption_("axisTickSize")),this.canvasRect_={x:e.x,y:e.y+e.h+a+4,w:e.w,h:this.getOption_("rangeSelectorHeight")};var i=this.dygraph_.getNumericOption("pixelRatio");t(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,i),t(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,i)},u.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className="dygraph-rangesel-bgcanvas",this.bgcanvas_.style.position="absolute",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className="dygraph-rangesel-fgcanvas",this.fgcanvas_.style.position="absolute",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor="default",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},u.prototype.createZoomHandles_=function(){var t=new Image;t.className="dygraph-rangesel-zoomhandle",t.style.position="absolute",t.style.zIndex=10,t.style.visibility="hidden",t.style.cursor="col-resize",t.width=9,t.height=16,t.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=",this.isMobileDevice_&&(t.width*=2,t.height*=2),this.leftZoomHandle_=t,this.rightZoomHandle_=t.cloneNode(!1)},u.prototype.initInteraction_=function(){var t,e,a,i,n,o,l,u,d,c,p,g,f,_,v=this,y=document,x=0,m=null,b=!1,w=!1,A=!this.isMobileDevice_,O=new h.default;t=function(t){var e=v.dygraph_.xAxisExtremes(),a=(e[1]-e[0])/v.canvasRect_.w;return[e[0]+(t.leftHandlePos-v.canvasRect_.x)*a,e[0]+(t.rightHandlePos-v.canvasRect_.x)*a]},e=function(t){return r.cancelEvent(t),b=!0,x=t.clientX,m=t.target?t.target:t.srcElement,"mousedown"!==t.type&&"dragstart"!==t.type||(r.addEvent(y,"mousemove",a),r.addEvent(y,"mouseup",i)),v.fgcanvas_.style.cursor="col-resize",O.cover(),!0},a=function(t){if(!b)return!1;r.cancelEvent(t);var e=t.clientX-x;if(Math.abs(e)<4)return!0;x=t.clientX;var a,i=v.getZoomHandleStatus_();m==v.leftZoomHandle_?(a=i.leftHandlePos+e,a=Math.min(a,i.rightHandlePos-m.width-3),a=Math.max(a,v.canvasRect_.x)):(a=i.rightHandlePos+e,a=Math.min(a,v.canvasRect_.x+v.canvasRect_.w),a=Math.max(a,i.leftHandlePos+m.width+3));var o=m.width/2;return m.style.left=a-o+"px",v.drawInteractiveLayer_(),A&&n(),!0},i=function(t){return!!b&&(b=!1,O.uncover(),r.removeEvent(y,"mousemove",a),r.removeEvent(y,"mouseup",i),v.fgcanvas_.style.cursor="default",A||n(),!0)},n=function(){try{var e=v.getZoomHandleStatus_();if(v.isChangingRange_=!0,e.isZoomed){var a=t(e);v.dygraph_.doZoomXDates_(a[0],a[1])}else v.dygraph_.resetZoom()}finally{v.isChangingRange_=!1}},o=function(t){var e=v.leftZoomHandle_.getBoundingClientRect(),a=e.left+e.width/2;e=v.rightZoomHandle_.getBoundingClientRect();var i=e.left+e.width/2;return t.clientX>a&&t.clientX=v.canvasRect_.x+v.canvasRect_.w?(n=v.canvasRect_.x+v.canvasRect_.w,i=n-o):(i+=e,n+=e);var s=v.leftZoomHandle_.width/2;return v.leftZoomHandle_.style.left=i-s+"px",v.rightZoomHandle_.style.left=n-s+"px",v.drawInteractiveLayer_(),A&&c(),!0},d=function(t){return!!w&&(w=!1,r.removeEvent(y,"mousemove",u),r.removeEvent(y,"mouseup",d),A||c(),!0)},c=function(){try{v.isChangingRange_=!0,v.dygraph_.dateWindow_=t(v.getZoomHandleStatus_()),v.dygraph_.drawGraph_(!1)}finally{v.isChangingRange_=!1}},p=function(t){if(!b&&!w){var e=o(t)?"move":"default";e!=v.fgcanvas_.style.cursor&&(v.fgcanvas_.style.cursor=e)}},g=function(t){"touchstart"==t.type&&1==t.targetTouches.length?e(t.targetTouches[0])&&r.cancelEvent(t):"touchmove"==t.type&&1==t.targetTouches.length?a(t.targetTouches[0])&&r.cancelEvent(t):i(t)},f=function(t){"touchstart"==t.type&&1==t.targetTouches.length?l(t.targetTouches[0])&&r.cancelEvent(t):"touchmove"==t.type&&1==t.targetTouches.length?u(t.targetTouches[0])&&r.cancelEvent(t):d(t)},_=function(t,e){for(var a=["touchstart","touchend","touchmove","touchcancel"],i=0;i1&&(g=c.rollingAverage(g,e.rollPeriod(),p)),d.push(g)}var f=[];for(t=0;t0)&&(m=Math.min(m,w),b=Math.max(b,w))}if(a)for(b=r.log10(b),b+=.25*b,m=r.log10(m),t=0;tthis.canvasRect_.x||a+1Current intensity (CO2eq./kWh)

Current RAM consumption

- +
@@ -334,4 +334,3 @@

Recommandations

- diff --git a/boagent/requirements.txt b/boagent/requirements.txt deleted file mode 100644 index fdf3600..0000000 --- a/boagent/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -fastapi==0.75.2 -uvicorn==0.17.6 -boaviztapi-sdk==0.1.2 -cpuid==0.0.10 -py-cpuinfo==8.0.0 -dataclasses diff --git a/data_witout_header.csv b/data_witout_header.csv deleted file mode 100644 index acfde48..0000000 --- a/data_witout_header.csv +++ /dev/null @@ -1,61 +0,0 @@ -2022/10/21 00:00:00,98,34,12,24,12,46.8,1176,2352,4586.4,1,890 -2022/10/21 00:05:00,96,35,15,22,11,42.9,1056,2112,4118.4,1,890 -2022/10/21 00:10:00,94,33,18,21,14,45.5,1316,1974,4277,1,890 -2022/10/21 00:15:00,92,23,22,23,16,50.7,1472,2116,4664.4,1,890 -2022/10/21 00:20:00,90,36,29,25,12,48.1,1080,2250,4329,1,890 -2022/10/21 00:25:00,88,44,22,28,15,55.9,1320,2464,4919.2,1,890 -2022/10/21 00:30:00,89,48,34,29,21,65,1869,2581,5785,1,890 -2022/10/21 00:35:00,97,57,34,32,13,58.5,1261,3104,5674.5,1,890 -2022/10/21 00:40:00,67,68,32,35,15,65,1005,2345,4355,1,890 -2022/10/21 00:45:00,66,90,31,23,12,45.5,792,1518,3003,1,890 -2022/10/21 00:50:00,66,87,59,24,11,45.5,726,1584,3003,1,890 -2022/10/21 00:55:00,98,78,70,34,16,65,1568,3332,6370,1,890 -2022/10/21 01:00:00,96,75,99,28,19,61.1,1824,2688,5865.6,2,890 -2022/10/21 01:05:00,94,45,40,27,22,63.7,2068,2538,5987.8,2,890 -2022/10/21 01:10:00,92,55,30,24,18,54.6,1656,2208,5023.2,2,890 -2022/10/21 01:15:00,90,34,22,22,14,46.8,1260,1980,4212,2,890 -2022/10/21 01:20:00,88,35,16,21,11,41.6,968,1848,3660.8,2,890 -2022/10/21 01:25:00,89,33,12,23,12,45.5,1068,2047,4049.5,2,890 -2022/10/21 01:30:00,97,23,15,25,11,46.8,1067,2425,4539.6,2,890 -2022/10/21 01:35:00,67,36,18,28,14,54.6,938,1876,3658.2,1,890 -2022/10/21 01:40:00,66,44,22,29,16,58.5,1056,1914,3861,1,890 -2022/10/21 01:45:00,98,48,29,32,12,57.2,1176,3136,5605.6,1,890 -2022/10/21 01:50:00,96,57,22,35,15,65,1440,3360,6240,1,890 -2022/10/21 01:55:00,94,68,34,23,21,57.2,1974,2162,5376.8,1,890 -2022/10/21 02:00:00,92,90,34,24,13,48.1,1196,2208,4425.2,1,890 -2022/10/21 02:05:00,90,87,32,34,15,63.7,1350,3060,5733,1,890 -2022/10/21 02:10:00,88,78,31,28,12,52,1056,2464,4576,1,890 -2022/10/21 02:15:00,89,75,59,27,11,49.4,979,2403,4396.6,1,890 -2022/10/21 02:20:00,97,45,70,24,16,52,1552,2328,5044,0,890 -2022/10/21 02:25:00,67,55,99,22,19,53.3,1273,1474,3571.1,0,890 -2022/10/21 02:30:00,66,34,40,21,22,55.9,1452,1386,3689.4,0,890 -2022/10/21 02:35:00,66,35,30,23,18,53.3,1188,1518,3517.8,0,890 -2022/10/21 02:40:00,98,33,22,25,14,50.7,1372,2450,4968.6,0,890 -2022/10/21 02:45:00,96,23,16,28,11,50.7,1056,2688,4867.2,0,890 -2022/10/21 02:50:00,94,36,12,29,12,53.3,1128,2726,5010.2,0,890 -2022/10/21 02:55:00,92,44,15,32,11,55.9,1012,2944,5142.8,0,890 -2022/10/21 03:00:00,90,48,18,35,14,63.7,1260,3150,5733,0,890 -2022/10/21 03:05:00,88,57,22,23,16,50.7,1408,2024,4461.6,1,890 -2022/10/21 03:10:00,89,68,29,24,12,46.8,1068,2136,4165.2,1,890 -2022/10/21 03:15:00,97,90,22,34,15,63.7,1455,3298,6178.9,1,890 -2022/10/21 03:20:00,67,87,34,28,21,63.7,1407,1876,4267.9,1,890 -2022/10/21 03:25:00,66,78,34,27,13,52,858,1782,3432,1,890 -2022/10/21 03:30:00,98,75,32,24,15,50.7,1470,2352,4968.6,1,890 -2022/10/21 03:35:00,96,45,31,22,12,44.2,1152,2112,4243.2,1,890 -2022/10/21 03:40:00,94,55,59,21,11,41.6,1034,1974,3910.4,1,890 -2022/10/21 03:45:00,92,34,70,23,16,50.7,1472,2116,4664.4,1,890 -2022/10/21 03:50:00,90,35,99,25,19,57.2,1710,2250,5148,1,890 -2022/10/21 03:55:00,88,33,40,28,22,65,1936,2464,5720,1,890 -2022/10/21 04:00:00,89,23,30,29,18,61.1,1602,2581,5437.9,1,890 -2022/10/21 04:05:00,97,36,22,32,12,57.2,1164,3104,5548.4,1,890 -2022/10/21 04:10:00,67,44,16,35,11,59.8,737,2345,4006.6,1,890 -2022/10/21 04:15:00,66,48,12,23,14,48.1,924,1518,3174.6,1,890 -2022/10/21 04:20:00,66,57,15,24,16,52,1056,1584,3432,2,890 -2022/10/21 04:25:00,98,68,18,24,12,46.8,1176,2352,4586.4,2,890 -2022/10/21 04:30:00,96,90,22,22,15,48.1,1440,2112,4617.6,2,890 -2022/10/21 04:35:00,94,34,29,21,21,54.6,1974,1974,5132.4,2,890 -2022/10/21 04:40:00,92,35,22,23,13,46.8,1196,2116,4305.6,2,890 -2022/10/21 04:45:00,90,33,34,25,15,52,1350,2250,4680,0,890 -2022/10/21 04:50:00,88,23,34,28,12,52,1056,2464,4576,0,890 -2022/10/21 04:55:00,89,36,32,29,11,52,979,2581,4628,0,890 -2022/10/21 05:00:00,97,44,31,32,16,62.4,1552,3104,6052.8,0,890 diff --git a/docker-compose.yaml b/docker-compose.yaml index a43d869..3e07ff7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -3,8 +3,6 @@ version: '3.2' services: boagent: - #image: ghcr.io/boavizta/boagent:0.0.1 - ## UNCOMMENT THE NEXT TWO LINES TO USE THIS DOCKER FILE AS A DEV ENVIRONMENT build: context: . environment: @@ -12,11 +10,11 @@ services: DEFAULT_LIFETIME: 5.0 HARDWARE_FILE_PATH: "/home/boagent/hardware_data.json" POWER_FILE_PATH: "/app/data/power_data.json" - #user: boagent + privileged: true depends_on: - boaviztapi - scaphandre - ports: + ports: - "8000:8000" networks: - boagent-network @@ -27,9 +25,11 @@ services: - "./db:/app/db" - "../boaviztapi/boaviztapi:/app/boaviztapi" - "/etc/crontab:/etc/crontab" + - "./boagent:/home/boagent/boagent" scaphandre: - image: hubblo/scaphandre:greenhack22 + image: hubblo/scaphandre:dev + privileged: true volumes: - type: bind source: /proc @@ -38,18 +38,16 @@ services: source: /sys/class/powercap target: /sys/class/powercap - "powerdata:/app/data:rw" - command: [ "--no-header", "json", "-s", "10", "--max-top-consumers", "0", "-f", "/app/data/power_data.json" ] + command: [ "--no-header", "json", "-s", "10", "--resources", "-f", "/app/data/power_data.json" ] networks: - boagent-network - + boaviztapi: - image: ghcr.io/boavizta/boaviztapi:0.2.0a0 - ports: + image: ghcr.io/boavizta/boaviztapi:1.2.2 + ports: - "5000:5000" networks: - boagent-network - volumes: - - "../boaviztapi/boaviztapi:/app/boaviztapi" volumes: powerdata: {} diff --git a/hardware_cli.py b/hardware_cli.py new file mode 100755 index 0000000..75a494d --- /dev/null +++ b/hardware_cli.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +import json +import sys + +from boagent.hardware.lshw import Lshw +from click import command, option, ClickException + + +@command() +@option("--output-file", help="File to output the hardwate data to") +def main(output_file): + try: + lshw = Lshw() + + lshw_cpus = lshw.cpus + lshw_ram = lshw.memories + lshw_disks = lshw.disks + except KeyError: + error_message = "Hardware_cli was not executed with privileges, try `sudo ./hardware_cli.py`." + exception = ClickException(error_message) + exception.show() + else: + hardware_data = {} + hardware_data["disks"] = lshw_disks + hardware_data["cpus"] = lshw_cpus + hardware_data["rams"] = lshw_ram + if output_file is not None: + with open(output_file, "w") as fd: + json.dump(hardware_data, fd, indent=4) + else: + json.dump(hardware_data, sys.stdout, indent=4) + return 0 + + +if __name__ == "__main__": + main() diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..4e9a19f --- /dev/null +++ b/poetry.lock @@ -0,0 +1,848 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.6.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a"}, + {file = "anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "boaviztapi-sdk" +version = "1.2.4" +description = "BOAVIZTAPI - DEMO" +optional = false +python-versions = "^3.7" +files = [ + {file = "boaviztapi-sdk-1.2.4.tar.gz", hash = "sha256:614d56ca421d697ab0c1429643c2e60e2e48909c79ce45b7f5b20f4ff5cd7f64"}, +] + +[package.dependencies] +pydantic = ">=2" +python-dateutil = ">=2.8.2" +typing-extensions = ">=4.7.1" +urllib3 = ">=1.25.3" + +[[package]] +name = "certifi" +version = "2024.8.30" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "deptry" +version = "0.20.0" +description = "A command line utility to check for unused, missing and transitive dependencies in a Python project." +optional = false +python-versions = ">=3.8" +files = [ + {file = "deptry-0.20.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:41434d95124851b83cb05524d1a09ad6fea62006beafed2ef90a6b501c1b237f"}, + {file = "deptry-0.20.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:b3b4b22d1406147de5d606a24042126cd74d52fdfdb0232b9c5fd0270d601610"}, + {file = "deptry-0.20.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:012fb106dbea6ca95196cdcd75ac90c516c8f01292f7934f2e802a7cf025a660"}, + {file = "deptry-0.20.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ce3920e2bd6d2b4427ab31ab8efb94bbef897001c2d395782bc30002966d12d"}, + {file = "deptry-0.20.0-cp38-abi3-win_amd64.whl", hash = "sha256:0c90ce64e637d0e902bc97c5a020adecfee9e9f09ee0bf4c61554994139bebdb"}, + {file = "deptry-0.20.0-cp38-abi3-win_arm64.whl", hash = "sha256:6886ff44aaf26fd83093f14f844ebc84589d90df9bbad9a1625e8a080e6f1be2"}, + {file = "deptry-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ace3b39b1d0763f357c79bab003d1b135bea2eb61102be539992621a42d1ac7b"}, + {file = "deptry-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d1a00f8c9e6c0829a4a523edd5e526e3df06d2b50e0a99446f09f9723df2efad"}, + {file = "deptry-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e233859f150df70ffff76e95f9b7326fc25494b9beb26e776edae20f0f515e7d"}, + {file = "deptry-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f92e7e97ef42477717747b190bc6796ab94b35655af126d8c577f7eae0eb3a9"}, + {file = "deptry-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f6cee6005997791bb77155667be055333fb63ae9a24f0f103f25faf1e7affe34"}, + {file = "deptry-0.20.0.tar.gz", hash = "sha256:62e9aaf3aea9e2ca66c85da98a0ba0290b4d3daea4e1d0ad937d447bd3c36402"}, +] + +[package.dependencies] +click = ">=8.0.0,<9" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} + +[[package]] +name = "distlib" +version = "0.3.8" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.110.3" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi-0.110.3-py3-none-any.whl", hash = "sha256:fd7600612f755e4050beb74001310b5a7e1796d149c2ee363124abdfa0289d32"}, + {file = "fastapi-0.110.3.tar.gz", hash = "sha256:555700b0159379e94fdbfc6bb66a0f1c43f4cf7060f25239af3d84b63a656626"}, +] + +[package.dependencies] +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.37.2,<0.38.0" +typing-extensions = ">=4.8.0" + +[package.extras] +all = ["email_validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httpx" +version = "0.27.2" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.8.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pydantic" +version = "2.9.2" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"}, + {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.23.4" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.23.4" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"}, + {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"}, + {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"}, + {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"}, + {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"}, + {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"}, + {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"}, + {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"}, + {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"}, + {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"}, + {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"}, + {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"}, + {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"}, + {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"}, + {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"}, + {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"}, + {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"}, + {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"}, + {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"}, + {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"}, + {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"}, + {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"}, + {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"}, + {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"}, + {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"}, + {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"}, + {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"}, + {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"}, + {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"}, + {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"}, + {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"}, + {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"}, + {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"}, + {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-settings" +version = "2.5.2" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_settings-2.5.2-py3-none-any.whl", hash = "sha256:2c912e55fd5794a59bf8c832b9de832dcfdf4778d79ff79b708744eed499a907"}, + {file = "pydantic_settings-2.5.2.tar.gz", hash = "sha256:f90b139682bee4d2065273d5185d71d37ea46cfe57e1b5ae184fc6a0b2484ca0"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "starlette" +version = "0.37.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.8" +files = [ + {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, + {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.30.6" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.30.6-py3-none-any.whl", hash = "sha256:65fd46fe3fda5bdc1b03b94eb634923ff18cd35b2f084813ea79d1f103f711b5"}, + {file = "uvicorn-0.30.6.tar.gz", hash = "sha256:4b15decdda1e72be08209e860a1e10e92439ad5b97cf44cc945fcbee66fc5788"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "virtualenv" +version = "20.26.5" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.26.5-py3-none-any.whl", hash = "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6"}, + {file = "virtualenv-20.26.5.tar.gz", hash = "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "542420f484c068ee00130651b2d1adf88e0e8c46dd1c5867919339d4fa659d85" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..2b375a8 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,29 @@ +[tool.poetry] +name = "boagent" +version = "0.1.0" +description = "Local API to collect and compute data on used device and running applications to give insight on their environmental impacts." +authors = ["Boavizta "] +license = "Apache-2.0" +readme = "README.md" +package-mode = false + +[tool.poetry.dependencies] +python = "^3.10" +boaviztapi-sdk = "^1.2.4" +fastapi = "^0.110.0" +pydantic = "^2.6.4" +pydantic-settings = "^2.2.1" +click = "^8.1.7" +python-dateutil = "^2.9.0.post0" + +[tool.poetry.group.dev.dependencies] +pytest = "^8.0.2" +pre-commit = "^3.6.2" +deptry = "^0.20.0" +httpx = "^0.27.2" +requests = "^2.32.3" +uvicorn = "^0.30.6" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..2d336c0 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,7 @@ +[pytest] +addopts = --import-mode=importlib +testpaths = + tests +markers = + query: mark a test for Boagent query endpoint. + database: mark a test a Boagent API route that is dependent on a SQLite database. diff --git a/requirements.txt b/requirements.txt index 0e2f523..67b993e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,32 +1,51 @@ --i https://pypi.python.org/simple aiofile==3.8.1 -anyio==3.6.2 ; python_full_version >= '3.6.2' -boaviztapi-sdk==0.1.2 -caio==0.9.8 ; python_version >= '3.5' and python_version < '4' -certifi==2022.9.24 ; python_version >= '3.6' -charset-normalizer==2.1.1 ; python_full_version >= '3.6.0' -click==8.1.3 ; python_version >= '3.7' -cpuid==0.0.10 -cpuid-native==0.0.7 +annotated-types==0.6.0 +anyio==3.6.2 +asgiref==3.7.2 +boaviztapi-sdk==1.2.4 +caio==0.9.8 +certifi==2022.9.24 +cfgv==3.4.0 +charset-normalizer==2.1.1 +click==8.1.3 croniter==1.3.7 dataclasses==0.6 -fastapi==0.85.1 -greenlet==1.1.3.post0 ; python_version >= '3' and platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32'))))) -h11==0.14.0 ; python_version >= '3.7' -idna==3.4 ; python_version >= '3.5' +distlib==0.3.8 +exceptiongroup==1.2.0 +fastapi==0.110.0 +filelock==3.13.1 +greenlet==1.1.3.post0 +h11==0.14.0 +httpcore==1.0.4 +httpx==0.27.0 +identify==2.5.35 +idna==3.4 +iniconfig==2.0.0 mangum==0.16.0 -numpy==1.23.4 ; python_version < '3.10' +nodeenv==1.8.0 +numpy==1.26.4 +packaging==23.2 pandas==1.5.1 +platformdirs==4.2.0 +pluggy==1.4.0 +pre-commit==3.6.2 py-cpuinfo==9.0.0 -pydantic[dotenv]==1.10.2 -python-dateutil==2.8.2 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +pydantic==2.6.4 +pydantic-settings==2.2.1 +pydantic_core==2.16.3 +pytest==8.0.2 +python-dateutil==2.8.2 python-dotenv==0.21.0 pytz==2022.5 +PyYAML==6.0.1 requests==2.28.1 -six==1.16.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -sniffio==1.3.0 ; python_version >= '3.7' -sqlalchemy==1.4.42 -starlette==0.20.4 ; python_version >= '3.7' -typing-extensions==4.4.0 ; python_version < '3.10' -urllib3==1.26.12 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4' +six==1.16.0 +sniffio==1.3.0 +SQLAlchemy==1.4.42 +starlette==0.36.3 +tomli==2.0.1 +typing_extensions==4.9.0 +tzdata==2024.1 +urllib3==1.26.12 uvicorn==0.19.0 +virtualenv==20.25.1 diff --git a/setup.py b/setup.py index 7be9436..1673345 100644 --- a/setup.py +++ b/setup.py @@ -10,24 +10,40 @@ with open("README.md", "r") as fh: long_description = fh.read() -setup(name='boagent', - maintainer="Benoit Petit", - maintainer_email="bpetit@hubblo.org", - version=__version__, - packages=find_packages(), - include_package_data=True, - description="Monitoring agent/framework for evaluating the environmental impacts of a machine and its applications, including several to all steps of the life cycle of the machine and service, plus multiple criterias of impacts (not just CO2eq metrics / Global Warming Potential). Part of the efforts of https://boavizta.org/en and https://sdialliance.org/.", - use_pipfile=True, - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/Boavizta/boagent", - test_suite='tests', - setup_requires=['setuptools-pipfile'], - keywords=['carbon', 'footprint', 'environment', 'climate', 'co2', 'gwp', 'adp', 'pe', 'energy', 'boagent', 'scaphandre', 'boavizta', 'api'], - classifiers=[ - "Programming Language :: Python :: 3.9", - "Intended Audience :: Developers", - "Operating System :: OS Independent", - ], - python_requires='>=3.9', - entry_points=''' ''') +setup( + name="boagent", + maintainer="Benoit Petit", + maintainer_email="bpetit@hubblo.org", + version=__version__, + packages=find_packages(), + include_package_data=True, + description="Monitoring agent/framework for evaluating the environmental impacts of a machine and its applications, including several to all steps of the life cycle of the machine and service, plus multiple criterias of impacts (not just CO2eq metrics / Global Warming Potential). Part of the efforts of https://boavizta.org/en and https://sdialliance.org/.", + use_pipfile=True, + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/Boavizta/boagent", + test_suite="tests", + setup_requires=["setuptools-pipfile"], + keywords=[ + "carbon", + "footprint", + "environment", + "climate", + "co2", + "gwp", + "adp", + "pe", + "energy", + "boagent", + "scaphandre", + "boavizta", + "api", + ], + classifiers=[ + "Programming Language :: Python :: 3.9", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + ], + python_requires=">=3.9", + entry_points=""" """, +) diff --git a/setup/docker-compose.yaml b/setup/docker-compose.yaml index 5678d82..ffbf2c4 100644 --- a/setup/docker-compose.yaml +++ b/setup/docker-compose.yaml @@ -12,7 +12,7 @@ services: depends_on: - boaviztapi - scaphandre - ports: + ports: - "8000:8000" networks: - boagent-network @@ -31,14 +31,14 @@ services: source: /sys/class/powercap target: /sys/class/powercap - "powerdata:/app/data:rw" - command: [ "json", "-s", "10", "-f", "/app/data/power_data.json" ] + command: [ "json", "-s", "10", "-f", "/app/data/power_data.json" ] networks: - boagent-network - + boaviztapi: #image: ghcr.io/boavizta/boaviztapi:0.1.2 image: bpetit/boaviztapi:v0.1.3 - ports: + ports: - "5000:5000" networks: - boagent-network diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/api/test_api_integration.py b/tests/api/test_api_integration.py new file mode 100644 index 0000000..68ec5be --- /dev/null +++ b/tests/api/test_api_integration.py @@ -0,0 +1,244 @@ +import json + +from datetime import datetime, timedelta +from fastapi.testclient import TestClient +from unittest import TestCase +from unittest.mock import patch +from pytest import mark +from boagent.api.config import Settings +from tests.mocks.mocks import ( + mock_boaviztapi_response_not_verbose, + mock_get_metrics_verbose, + mock_get_metrics_not_verbose, +) + +# Mock settings for testing environment +settings = Settings( + hardware_file_path="./tests/mocks/hardware_data.json", + db_path="./tests/mocks/boagent.db", + power_file_path="./tests/mocks/power_data.json", +) + +from boagent.api.api import app # noqa + +NOW_ISO8601 = datetime.now().isoformat() +NOW_ISO8601_MINUS_ONE_MINUTE = datetime.fromisoformat(NOW_ISO8601) - timedelta( + minutes=1 +) + +client = TestClient(app) + + +class ApiEndpointsTest(TestCase): + def setUp(self): + with open( + mock_boaviztapi_response_not_verbose, "r" + ) as boaviztapi_response_file: + self.boaviztapi_response_not_verbose = json.load(boaviztapi_response_file) + + with open(mock_get_metrics_not_verbose, "r") as get_metrics_not_verbose_file: + self.get_metrics_not_verbose = json.load(get_metrics_not_verbose_file) + with open(mock_get_metrics_verbose, "r") as get_metrics_verbose_file: + self.get_metrics_verbose = json.load(get_metrics_verbose_file) + + def test_read_info(self): + response = client.get("/info") + assert response.status_code == 200 + + def test_read_web(self): + response = client.get("/web") + assert response.status_code == 200 + + @patch("boagent.api.api.get_metrics") + def test_read_metrics_with_success(self, mocked_get_metrics): + + mocked_get_metrics.return_value = self.get_metrics_not_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "false", + "lifetime": 5, + "fetch_hardware": "false", + } + + response = client.get("/metrics", params=params) + assert response.status_code == 200 + + @patch("boagent.api.api.get_metrics") + def test_read_metrics_with_verbose_with_success(self, mocked_get_metrics): + + mocked_get_metrics.return_value = self.get_metrics_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "false", + "lifetime": 5, + "fetch_hardware": "false", + } + + response = client.get("/metrics", params=params) + assert response.status_code == 200 + + @mark.query + @patch("boagent.api.api.get_metrics") + def test_read_query_without_measure_power_and_fetch_hardware_with_success( + self, mocked_get_metrics + ): + + mocked_get_metrics.return_value = self.boaviztapi_response_not_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "false", + "lifetime": 5, + "fetch_hardware": "false", + } + + response = client.get("/query", params=params) + assert response.status_code == 200 + + @mark.query + @patch("boagent.api.api.get_metrics") + def test_read_query_with_measure_power_with_success(self, mocked_get_metrics): + + mocked_get_metrics.return_value = self.get_metrics_not_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "true", + "lifetime": 5, + "fetch_hardware": "false", + } + + response = client.get("/query", params=params) + assert response.status_code == 200 + + @mark.query + @patch("boagent.api.api.get_metrics") + def test_read_query_with_fetch_hardware_with_success(self, mocked_get_metrics): + + mocked_get_metrics.return_value = self.get_metrics_not_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "false", + "lifetime": 5, + "fetch_hardware": "true", + } + + response = client.get("query", params=params) + assert response.status_code == 200 + + @mark.query + @patch("boagent.api.api.get_metrics") + def test_read_query_with_measure_power_and_fetch_hardware(self, mocked_get_metrics): + + mocked_get_metrics.return_value = self.boaviztapi_response_not_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "false", + "location": "FRA", + "measure_power": "true", + "lifetime": 5, + "fetch_hardware": "true", + } + + response = client.get("/query", params=params) + assert response.status_code == 200 + + @mark.query + @patch("boagent.api.api.get_metrics") + def test_read_query_with_measure_power_and_fetch_hardware_verbose( + self, mocked_get_metrics + ): + + mocked_get_metrics.return_value = self.get_metrics_verbose + + params = { + "start_time": f"{NOW_ISO8601_MINUS_ONE_MINUTE}", + "end_time": f"{NOW_ISO8601}", + "verbose": "true", + "location": "FRA", + "measure_power": "true", + "lifetime": 5, + "fetch_hardware": "true", + } + + response = client.get("/query", params=params) + assert response.status_code == 200 + + @patch("boagent.api.api.get_metrics") + def test_get_process_embedded_impacts_with_success(self, mocked_get_metrics): + mocked_get_metrics.return_value = self.get_metrics_verbose + params = { + "process_id": 3099, + "start_time": "1717500637.2979465", + "end_time": "1717504237.2979465", + "verbose": "true", + "location": "FRA", + "measure_power": "true", + "lifetime": 5, + "fetch_hardware": "true", + } + response = client.get("/process_embedded_impacts", params=params) + assert response.status_code == 200 + self.assertIn("pid", response.json()) + self.assertEqual(response.json()["pid"], 3099) + self.assertIn("process_embedded_impacts", response.json()) + self.assertIn( + "process_cpu_embedded_impact_values", + response.json()["process_embedded_impacts"], + ) + self.assertIn( + "process_ram_embedded_impact_values", + response.json()["process_embedded_impacts"], + ) + self.assertIn( + "process_ssd_embedded_impact_values", + response.json()["process_embedded_impacts"], + ) + self.assertIn( + "process_hdd_embedded_impact_values", + response.json()["process_embedded_impacts"], + ) + + @patch("boagent.api.api.get_metrics") + def test_get_process_embedded_impacts_with_error_if_pid_not_found_in_metrics_data( + self, mocked_get_metrics + ): + + mocked_get_metrics.return_value = self.get_metrics_verbose + params = { + "process_id": 1234, + "start_time": "1717500637.2979465", + "end_time": "1717504237.2979465", + "verbose": "true", + "location": "FRA", + "measure_power": "true", + "lifetime": 5, + "fetch_hardware": "true", + } + + response = client.get("/process_embedded_impacts", params=params) + error_message = ( + "Process_id 1234 has not been found in metrics data. Check the queried PID." + ) + self.assertEqual(response.status_code, 400) + self.assertIs(error_message in response.text, True) diff --git a/tests/api/test_api_process.py b/tests/api/test_api_process.py new file mode 100644 index 0000000..8414784 --- /dev/null +++ b/tests/api/test_api_process.py @@ -0,0 +1,305 @@ +import json +from unittest import TestCase, TestSuite, TestLoader +from unittest.mock import patch +from boagent.api.api import ( + get_metrics, +) +from boagent.api.process import Process, InvalidPIDException +from tests.mocks.mocks import ( + mock_hardware_data, + mock_boaviztapi_response_not_verbose, + mock_get_metrics_verbose, + mock_get_metrics_verbose_no_hdd, +) + + +@patch("boagent.api.api.HARDWARE_FILE_PATH", mock_hardware_data) +class AllocateEmbeddedImpactForProcess(TestCase): + def setUp(self): + + self.start_time = 1710837858 + self.end_time = 1710841458 + self.verbose = False + self.location = "EEE" + self.measure_power = False + self.lifetime = 5.0 + self.fetch_hardware = False + self.pid = 3099 + + with open(mock_boaviztapi_response_not_verbose, "r") as boaviztapi_data: + self.boaviztapi_data = json.load(boaviztapi_data) + + with open(mock_get_metrics_verbose, "r") as get_metrics_verbose: + self.get_metrics_verbose = json.load(get_metrics_verbose) + + with open(mock_get_metrics_verbose_no_hdd, "r") as get_metrics_verbose_no_hdd: + self.get_metrics_verbose_no_hdd = json.load(get_metrics_verbose_no_hdd) + + self.process = Process(self.get_metrics_verbose, self.pid) + + @patch("boagent.api.api.query_machine_impact_data") + def test_get_total_embedded_impacts_for_host( + self, mocked_query_machine_impact_data + ): + + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + total_embedded_impacts_host = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + ) + + assert "embedded_emissions" in total_embedded_impacts_host + assert "embedded_abiotic_resources_depletion" in total_embedded_impacts_host + assert "embedded_primary_energy" in total_embedded_impacts_host + + def test_get_process_info(self): + + process_details = self.process.process_info + for process in process_details: + assert type(process) is dict + self.assertEqual(process["pid"], 3099) + self.assertEqual( + process["exe"], "/snap/firefox/4336/usr/lib/firefox/firefox" + ) + assert type(process_details) is list + + def test_get_process_name(self): + + expected_process_name = "firefox" + process_name = self.process.process_name + + self.assertEqual(expected_process_name, process_name) + + def test_get_process_exe(self): + + expected_process_exe = "/snap/firefox/4336/usr/lib/firefox/firefox" + process_exe = self.process.process_exe + + self.assertEqual(expected_process_exe, process_exe) + + def test_validate_pid_with_error_if_process_id_not_in_metrics(self): + + expected_error_message = ( + "Process_id 1234 has not been found in metrics data. Check the queried PID." + ) + + with self.assertRaises(InvalidPIDException) as context_manager: + self.process = Process(self.get_metrics_verbose, 1234) + + self.assertEqual(context_manager.exception.message, expected_error_message) + + with self.assertRaises(InvalidPIDException) as context_manager: + self.process.pid = 1234 + + self.assertEqual(context_manager.exception.message, expected_error_message) + + def test_get_total_ram_in_bytes(self): + + expected_ram_total = 8589934592 + total_ram_in_bytes = self.process.get_total_ram_in_bytes() + assert type(total_ram_in_bytes) is int + self.assertEqual(total_ram_in_bytes, expected_ram_total) + + def test_get_process_ram_share_by_timestamp(self): + + expected_ram_shares = [5.918979644775391, 0.0, 5.9177398681640625] + process_ram_shares = self.process.ram_shares + for index, ram_share in enumerate(process_ram_shares): + assert type(ram_share) is float + self.assertEqual(ram_share, expected_ram_shares[index]) + assert type(process_ram_shares) is list + + def test_get_disk_usage_in_bytes(self): + disk_total_bytes = int( + self.get_metrics_verbose["raw_data"]["power_data"]["raw_data"][1]["host"][ + "components" + ]["disks"][0]["disk_total_bytes"] + ) + disk_available_bytes = int( + self.get_metrics_verbose["raw_data"]["power_data"]["raw_data"][1]["host"][ + "components" + ]["disks"][0]["disk_available_bytes"] + ) + expected_disk_usage = disk_total_bytes - disk_available_bytes + disk_usage = self.process.get_disk_usage_in_bytes() + assert type(disk_usage) is int + self.assertEqual(expected_disk_usage, disk_usage) + + def test_get_process_storage_share_by_timestamp(self): + + expected_storage_shares = [0.0, 0.0, 0.0] + process_storage_shares = self.process.storage_shares + for index, storage_share in enumerate(process_storage_shares): + assert type(storage_share) is float + self.assertEqual(storage_share, expected_storage_shares[index]) + assert type(process_storage_shares) is list + + def test_get_embedded_impact_share_for_ssd_by_timestamp(self): + + storage_embedded_impact_shares = ( + self.process.get_component_embedded_impact_shares( + "SSD", self.process.storage_shares + ) + ) + + for storage_embedded_impact_share in storage_embedded_impact_shares: + assert type(storage_embedded_impact_share) is tuple + for value in storage_embedded_impact_share: + assert type(storage_embedded_impact_share[1]) is float + assert type(storage_embedded_impact_shares) + + def test_get_embedded_impact_share_for_hdd_by_timestamp(self): + + storage_embedded_impact_shares = ( + self.process.get_component_embedded_impact_shares( + "HDD", self.process.storage_shares + ) + ) + + for storage_embedded_impact_share in storage_embedded_impact_shares: + assert type(storage_embedded_impact_share) is tuple + for value in storage_embedded_impact_share: + assert type(storage_embedded_impact_share[1]) is float + assert type(storage_embedded_impact_shares) + + def test_get_embedded_impact_share_for_ram_by_timestamp(self): + + ram_embedded_impact_shares = self.process.get_component_embedded_impact_shares( + "RAM", self.process.ram_shares + ) + + for ram_embedded_impact_share in ram_embedded_impact_shares: + assert type(ram_embedded_impact_share) is tuple + for value in ram_embedded_impact_share: + assert type(ram_embedded_impact_share[1]) is float + assert type(ram_embedded_impact_shares) is list + + def test_get_process_cpu_load_shares_by_timestamp(self): + + expected_cpu_load_shares = [5.9772415, 5.2776732, 2.9987452] + process_cpu_load_shares = self.process.cpu_load_shares + + for index, cpu_load_share in enumerate(process_cpu_load_shares): + assert type(cpu_load_share) is float + self.assertEqual(cpu_load_share, expected_cpu_load_shares[index]) + assert type(process_cpu_load_shares) is list + + def test_get_embedded_impact_share_for_cpu_by_timestamp(self): + + cpu_embedded_impact_shares = self.process.get_component_embedded_impact_shares( + "CPU", self.process.cpu_load_shares + ) + + for cpu_embedded_impact_share in cpu_embedded_impact_shares: + assert type(cpu_embedded_impact_share) is tuple + assert type(cpu_embedded_impact_shares) is list + + def test_get_avg_min_max_embedded_impact_shares_for_cpu_and_ram(self): + + impact_criterias = ["gwp", "adp", "pe"] + cpu_embedded_impact_values = self.process.get_component_embedded_impact_values( + "cpu" + ) + ram_embedded_impact_values = self.process.get_component_embedded_impact_values( + "ram" + ) + + assert type(cpu_embedded_impact_values) is dict + assert type(ram_embedded_impact_values) is dict + for criteria in impact_criterias: + assert f"{criteria}_cpu_average_impact" in cpu_embedded_impact_values + assert f"{criteria}_cpu_max_impact" in cpu_embedded_impact_values + assert f"{criteria}_cpu_min_impact" in cpu_embedded_impact_values + assert f"{criteria}_ram_average_impact" in ram_embedded_impact_values + assert f"{criteria}_ram_max_impact" in ram_embedded_impact_values + assert f"{criteria}_ram_min_impact" in ram_embedded_impact_values + + def test_get_embedded_impact_values_with_error_if_invalid_component_queried(self): + + invalid_component_queried = self.process.get_component_embedded_impact_values( + "invalid_component" + ) + assert ( + invalid_component_queried + == "Queried component is not available for evaluation." + ) + + def test_get_embedded_impact_values_for_ssd(self): + + impact_criterias = ["gwp", "adp", "pe"] + ssd_embedded_impact_values = self.process.get_component_embedded_impact_values( + "ssd" + ) + + assert type(ssd_embedded_impact_values) is dict + for criteria in impact_criterias: + assert f"{criteria}_ssd_average_impact" in ssd_embedded_impact_values + + def test_get_embedded_impact_values_for_hdd(self): + + impact_criterias = ["gwp", "adp", "pe"] + hdd_embedded_impact_values = self.process.get_component_embedded_impact_values( + "hdd" + ) + + assert type(hdd_embedded_impact_values) is dict + for criteria in impact_criterias: + assert f"{criteria}_hdd_average_impact" in hdd_embedded_impact_values + + def test_get_all_components_embedded_impact_values(self): + + process_embedded_impacts = self.process.embedded_impact_values + self.assertIn("process_embedded_impacts", process_embedded_impacts) + self.assertIn("pid", process_embedded_impacts) + self.assertIn( + "process_cpu_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertIn( + "process_ram_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertIn( + "process_ssd_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertIn( + "process_hdd_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + + def test_get_components_embedded_impact_values_with_hdd_absent_from_get_metrics( + self, + ): + self.process = Process(self.get_metrics_verbose_no_hdd, self.pid) + process_embedded_impacts = self.process.embedded_impact_values + self.assertIn("pid", process_embedded_impacts) + self.assertIn("process_embedded_impacts", process_embedded_impacts) + self.assertIn( + "process_cpu_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertIn( + "process_ram_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertIn( + "process_ssd_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + self.assertNotIn( + "process_hdd_embedded_impact_values", + process_embedded_impacts["process_embedded_impacts"], + ) + + +loader = TestLoader() +suite = TestSuite() + +suite.addTests(loader.loadTestsFromTestCase(AllocateEmbeddedImpactForProcess)) diff --git a/tests/api/test_api_unit.py b/tests/api/test_api_unit.py new file mode 100644 index 0000000..6fb0e7a --- /dev/null +++ b/tests/api/test_api_unit.py @@ -0,0 +1,469 @@ +import os +import json + +from unittest import TestCase, TestSuite, TestLoader +from unittest.mock import Mock, patch + +from boagent.api.api import ( + build_hardware_data, + read_hardware_data, + get_hardware_data, + # query_machine_impact_data, + format_usage_request, + compute_average_consumption, + get_power_data, + get_metrics, +) +from boagent.api.utils import format_prometheus_output +from tests.mocks.mocks import ( + MockLshw, + hardware_data, + mock_power_data, + mock_hardware_data, + mock_boaviztapi_response_not_verbose, + mock_boaviztapi_response_verbose, + mock_formatted_scaphandre, + mock_get_metrics_verbose, + mock_get_metrics_not_verbose, +) + +mocked_lshw = Mock() +mocked_lshw.return_value = MockLshw() + + +@patch("boagent.api.api.HARDWARE_FILE_PATH", hardware_data) +@patch("boagent.api.api.Lshw", mocked_lshw) +class ReadHardwareDataTest(TestCase): + def test_build_hardware_data(self): + + build_hardware_data() + assert os.path.exists(hardware_data) is True + + def test_read_hardware_data(self): + + build_hardware_data() + data = read_hardware_data() + assert type(data["cpus"]) is dict + assert type(data["rams"]) is dict + assert type(data["disks"]) is dict + + @patch("boagent.api.api.build_hardware_data") + def test_get_hardware_data_with_fetch_hardware_false(self, mocked_build_hardware): + + # Test case where hardware_data.json is already present on the + # filesystem through previous call to build_hardware_data + + build_hardware_data() + data = get_hardware_data(fetch_hardware=False) + assert type(data) is dict + mocked_build_hardware.assert_not_called() + + def test_get_hardware_data_with_fetch_hardware_true(self): + + data = get_hardware_data(fetch_hardware=True) + assert type(data) is dict + + def tearDown(self) -> None: + os.remove(hardware_data) + + +class FormatUsageRequestTest(TestCase): + def setUp(self) -> None: + self.start_time = 1710837858 + self.end_time = 1710841458 + + def test_format_usage_request_with_start_and_end_times(self): + + formatted_request = format_usage_request( + start_time=self.start_time, + end_time=self.end_time, + ) + + assert type(formatted_request) is dict + assert "hours_use_time" in formatted_request + + def test_format_usage_request_with_host_avg_consumption_and_location( + self, + ): + + location = "FRA" + avg_power = 120 + + formatted_request = format_usage_request( + start_time=self.start_time, + end_time=self.end_time, + location=location, + avg_power=avg_power, + ) + assert type(formatted_request) is dict + assert "avg_power" in formatted_request + assert "usage_location" in formatted_request + + def test_format_usage_request_with_time_workload_as_percentage(self): + + time_workload = {"time_workload": 50.0} + + formatted_request = format_usage_request( + start_time=self.start_time, + end_time=self.end_time, + time_workload=time_workload, + ) + + assert type(formatted_request) is dict + assert "time_workload" in formatted_request + + +class ComputeAvgConsumptionTest(TestCase): + def test_compute_average_consumption(self): + + with open(mock_power_data, "r") as power_data_file: + # power_data = f"[{power_data_file.read()}]" + data = json.load(power_data_file) + avg_host = compute_average_consumption(data) + + assert type(avg_host) is float + + +class FormatPrometheusOutput(TestCase): + def setUp(self): + self.get_metrics_response_not_verbose_path = mock_get_metrics_not_verbose + self.get_metrics_response_verbose_path = mock_get_metrics_verbose + self.components = [ + "assembly_1", + "cpu_1", + "ram_1", + "ssd_1", + "power_supply_1", + "case_1", + "motherboard_1", + ] + + def test_format_prometheus_output_with_get_metrics_not_verbose(self): + + with open(mock_get_metrics_not_verbose, "r") as json_response: + response_to_format = json.load(json_response) + + prometheus_output = format_prometheus_output(response_to_format, verbose=False) + + assert type(prometheus_output) is str + assert len(prometheus_output) > 1 + assert "TYPE" in prometheus_output + assert "HELP" in prometheus_output + + def test_format_prometheus_output_with_get_metrics_verbose(self): + + with open(mock_get_metrics_verbose, "r") as json_response: + response_to_format = json.load(json_response) + + prometheus_output = format_prometheus_output(response_to_format, verbose=True) + + assert type(prometheus_output) is str + assert len(prometheus_output) > 1 + assert "TYPE" in prometheus_output + assert "HELP" in prometheus_output + assert all(component in prometheus_output for component in self.components) + + +class GetPowerDataTest(TestCase): + def setUp(self) -> None: + # One-hour interval + self.start_time = 1713776733 + self.end_time = 1713780333 + # Ten minutes interval + self.short_interval_start_time = 1713776733 + self.short_interval_end_time = 1713777333 + + self.formatted_scaphandre = f"{mock_formatted_scaphandre}" + + @patch("boagent.api.api.POWER_DATA_FILE_PATH", mock_formatted_scaphandre) + def test_get_power_data(self): + + power_data = get_power_data(self.start_time, self.end_time) + + assert type(power_data) is dict + assert "raw_data" in power_data + assert "avg_power" in power_data + assert type(power_data["avg_power"]) is float + assert power_data["avg_power"] > 0 + + @patch("boagent.api.api.POWER_DATA_FILE_PATH", mock_formatted_scaphandre) + def test_get_power_data_with_short_time_interval(self): + + power_data = get_power_data( + self.short_interval_start_time, self.short_interval_end_time + ) + + assert type(power_data) is dict + assert "raw_data" in power_data + assert "avg_power" in power_data + assert "warning" in power_data + + +@patch("boagent.api.api.read_hardware_data") +@patch("boagent.api.api.query_machine_impact_data") +class GetMetricsNotVerboseNoScaphandreTest(TestCase): + def setUp(self) -> None: + self.time_workload_as_percentage = {"time_workload": 70.0} + self.time_workload_as_list_of_dicts = { + "time_workload": [ + {"time_percentage": 50, "load_percentage": 0}, + {"time_percentage": 25, "load_percentage": 60}, + {"time_percentage": 25, "load_percentage": 100}, + ] + } + self.start_time = 1710837858 + self.end_time = 1710841458 + self.verbose = False + self.location = "FRA" + self.measure_power = False + self.lifetime = 5.0 + self.fetch_hardware = False + + with open(mock_boaviztapi_response_not_verbose, "r") as file: + self.boaviztapi_data = json.load(file) + + with open(mock_hardware_data, "r") as file: + self.hardware_data = json.load(file) + + def test_get_metrics_with_time_workload_as_percentage( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_percentage, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + assert type(metrics) is dict + assert "emissions_calculation_data" in metrics + assert "embedded_emissions" in metrics + assert "embedded_abiotic_resources_depletion" in metrics + assert "embedded_primary_energy" in metrics + + def test_get_metrics_with_time_workload_as_list_of_dicts( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_list_of_dicts, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + assert type(metrics) is dict + assert "emissions_calculation_data" in metrics + assert "embedded_emissions" in metrics + assert "embedded_abiotic_resources_depletion" in metrics + assert "embedded_primary_energy" in metrics + + def test_get_metrics_with_default_location( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + "EEE", + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_list_of_dicts, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + assert type(metrics) is dict + assert "location_warning" in metrics + + def test_get_metrics_with_no_set_location( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + empty_location = "" + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + empty_location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_list_of_dicts, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + print(len(empty_location)) + assert type(metrics) is dict + assert "location_warning" in metrics + + +@patch("boagent.api.api.read_hardware_data") +@patch("boagent.api.api.query_machine_impact_data") +class GetMetricsVerboseNoScaphandreTest(TestCase): + def setUp(self) -> None: + self.time_workload_as_percentage = {"time_workload": 70.0} + self.time_workload_as_list_of_dicts = { + "time_workload": [ + {"time_percentage": 50, "load_percentage": 0}, + {"time_percentage": 25, "load_percentage": 60}, + {"time_percentage": 25, "load_percentage": 100}, + ] + } + + self.start_time = 1710837858 + self.end_time = 1710841458 + self.verbose = True + self.location = "FRA" + self.measure_power = False + self.lifetime = 5.0 + self.fetch_hardware = False + + with open(mock_boaviztapi_response_verbose, "r") as file: + self.boaviztapi_data = json.load(file) + + with open(mock_hardware_data, "r") as file: + self.hardware_data = json.load(file) + + def test_get_metrics_verbose_with_time_workload_percentage( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_percentage, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + assert type(metrics) is dict + assert "emissions_calculation_data" in metrics + assert "embedded_emissions" in metrics + assert "embedded_abiotic_resources_depletion" in metrics + assert "embedded_primary_energy" in metrics + assert "raw_data" in metrics + assert "electricity_carbon_intensity" in metrics + + def test_get_metrics_verbose_with_time_workload_as_list_of_dicts( + self, mocked_read_hardware_data, mocked_query_machine_impact_data + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + self.time_workload_as_list_of_dicts, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + + assert type(metrics) is dict + assert "emissions_calculation_data" in metrics + assert "embedded_emissions" in metrics + assert "embedded_abiotic_resources_depletion" in metrics + assert "embedded_primary_energy" in metrics + assert "raw_data" in metrics + assert "electricity_carbon_intensity" in metrics + + +class GetMetricsVerboseWithScaphandreTest(TestCase): + def setUp(self) -> None: + self.start_time = 1710837858 + self.end_time = 1710841458 + self.verbose = True + self.location = "FRA" + self.measure_power = True + self.lifetime = 5.0 + self.fetch_hardware = False + + with open(mock_boaviztapi_response_verbose, "r") as file: + self.boaviztapi_data = json.load(file) + + with open(mock_formatted_scaphandre, "r") as file: + power_data = {} + power_data["raw_data"] = file.read() + power_data["avg_power"] = 11.86 + self.power_data = power_data + + with open(mock_hardware_data, "r") as file: + self.hardware_data = json.load(file) + + @patch("boagent.api.api.query_machine_impact_data") + @patch("boagent.api.api.get_power_data") + @patch("boagent.api.api.read_hardware_data") + def test_get_metrics_verbose_with_scaphandre( + self, + mocked_read_hardware_data, + mocked_query_machine_impact_data, + mocked_power_data, + ): + + metrics = get_metrics( + self.start_time, + self.end_time, + self.verbose, + self.location, + self.measure_power, + self.lifetime, + self.fetch_hardware, + ) + + mocked_read_hardware_data.return_value = self.hardware_data + mocked_query_machine_impact_data.return_value = self.boaviztapi_data + mocked_power_data.return_value = self.power_data + + assert type(metrics) is dict + assert "total_operational_emissions" in metrics + assert "total_operational_abiotic_resources_depletion" in metrics + assert "total_operational_primary_energy_consumed" in metrics + assert "start_time" in metrics + assert "end_time" in metrics + assert "average_power_measured" in metrics + assert "raw_data" in metrics + assert "electricity_carbon_intensity" in metrics + assert "power_data" in metrics["raw_data"] + + +loader = TestLoader() +suite = TestSuite() + +suite.addTests(loader.loadTestsFromTestCase(ReadHardwareDataTest)) +suite.addTests(loader.loadTestsFromTestCase(FormatUsageRequestTest)) +suite.addTests(loader.loadTestsFromTestCase(ComputeAvgConsumptionTest)) +suite.addTests(loader.loadTestsFromTestCase(GetPowerDataTest)) +suite.addTests(loader.loadTestsFromTestCase(GetMetricsNotVerboseNoScaphandreTest)) +suite.addTests(loader.loadTestsFromTestCase(GetMetricsVerboseNoScaphandreTest)) +suite.addTests(loader.loadTestsFromTestCase(GetMetricsVerboseWithScaphandreTest)) diff --git a/tests/hardware/test_hardwarecli.py b/tests/hardware/test_hardwarecli.py new file mode 100644 index 0000000..68f1e76 --- /dev/null +++ b/tests/hardware/test_hardwarecli.py @@ -0,0 +1,59 @@ +from json import load +from unittest import TestCase +from os.path import exists +from unittest.mock import Mock, patch +from hardware_cli import main +from click.testing import CliRunner +from tests.mocks.mocks import MockLshw, mock_lshw_data + + +# Need to use a mock of `lshw` run without `sudo` to reproduce the error case +# where hardware_cli is run without `sudo`. +with open(mock_lshw_data) as lshw_json: + lshw_data = load(lshw_json) + +mocked_lshw = Mock() +mocked_lshw.return_value = MockLshw() +mocked_is_tool = Mock() +mocked_is_tool.return_value = True +mocked_serialized_lshw_output = Mock() +mocked_serialized_lshw_output.return_value = lshw_data + + +class HardwarecliTest(TestCase): + @patch("hardware_cli.Lshw", mocked_lshw) + def test_write_hardware_json_file_from_hardware_cli_with_output_file_flag_on(self): + + runner = CliRunner() + with runner.isolated_filesystem(): + result_file_path = "hardware_data.json" + + result = runner.invoke(main, ["--output-file", f"./{result_file_path}"]) + assert exists(f"./{result_file_path}") is True + + assert result.exit_code == 0 + + @patch("hardware_cli.Lshw", mocked_lshw) + def test_read_stdout_from_hardware_cli(self): + + runner = CliRunner() + + result = runner.invoke(main) + + assert result.exit_code == 0 + assert result.output.count("disk") >= 1 + assert result.output.count("ram") >= 1 + assert result.output.count("cpu") >= 1 + + @patch("boagent.hardware.lshw.is_tool", mocked_is_tool) + @patch( + "boagent.hardware.lshw.serialized_lshw_output", mocked_serialized_lshw_output + ) + def test_hardware_cli_returns_error_if_not_executed_with_sudo(self): + runner = CliRunner() + result = runner.invoke(main) + assert ( + result.output.__contains__( + "Hardware_cli was not executed with privileges, try `sudo ./hardware_cli.py`" + ) + ) is True diff --git a/tests/hardware/test_lshw.py b/tests/hardware/test_lshw.py new file mode 100644 index 0000000..5aeeb4d --- /dev/null +++ b/tests/hardware/test_lshw.py @@ -0,0 +1,221 @@ +from unittest import TestCase +from boagent.hardware.lshw import Lshw +from unittest.mock import Mock, patch +from json import load + +from tests.mocks.mocks import mock_sudo_lshw_data, mock_lshw_data_disks, mock_nvme_data + +with open(mock_sudo_lshw_data) as lshw_json: + lshw_data = load(lshw_json) +with open(mock_nvme_data) as nvme_json: + nvme_data = load(nvme_json) + +mocked_is_tool = Mock() +mocked_is_tool.return_value = True +mocked_serialized_lshw_output = Mock() +mocked_serialized_lshw_output.return_value = lshw_data +mocked_serialized_nvme_output = Mock() +mocked_serialized_nvme_output.return_value = nvme_data + + +class LshwTest(TestCase): + @patch("boagent.hardware.lshw.is_tool", mocked_is_tool) + @patch( + "boagent.hardware.lshw.serialized_lshw_output", mocked_serialized_lshw_output + ) + @patch( + "boagent.hardware.lshw.serialized_nvme_output", mocked_serialized_nvme_output + ) + def setUp(self): + self.lshw = Lshw() + self.cpu_data = self.lshw.cpus + self.storage_data = self.lshw.disks + self.ram_data = self.lshw.memories + + def test_read_get_hw_linux_cpu(self): + cpu_data = self.lshw.get_hw_linux("cpu") + + assert type(cpu_data) is list + + def test_read_get_hw_linux_storage(self): + storage_data = self.lshw.get_hw_linux("storage") + + assert type(storage_data) is list + + def test_read_get_hw_linux_memory(self): + memory_data = self.lshw.get_hw_linux("memory") + + assert type(memory_data) is list + + def test_read_cpus_vendor(self): + + for cpu in self.cpu_data: + assert "manufacturer" in cpu + assert type(cpu["manufacturer"]) is str + assert cpu["manufacturer"] == "Advanced Micro Devices [AMD]" + + def test_read_cpus_name(self): + + for cpu in self.cpu_data: + assert "name" in cpu + assert type(cpu["name"]) is str + assert cpu["name"] == "AMD Ryzen 5 5600H with Radeon Graphics" + + def test_read_cpus_core_units(self): + + for cpu in self.cpu_data: + assert "core_units" in cpu + assert type(cpu["core_units"]) is int + assert cpu["core_units"] == 6 + + def test_read_cpus_units(self): + + for cpu in self.cpu_data: + assert "units" in cpu + assert type(cpu["units"]) is int + assert cpu["units"] == 1 + + def test_read_check_disk_vendor_with_correct_model(self): + + model = "LENOVO 123456154" + result = self.lshw.check_disk_vendor(model) + + assert result == "LENOVO" + + def test_read_check_disk_vendor_with_incorrect_model(self): + + model = "12345121 LENOVO" + result = self.lshw.check_disk_vendor(model) + + assert result == "LENOVO" + + def test_read_check_disk_vendor_with_one_correct_string_in_model(self): + + model = "LENOVO" + result = self.lshw.check_disk_vendor(model) + + assert result == "LENOVO" + + def test_read_check_disk_vendor_with_one_incorrect_string_in_model(self): + + model = "12345211" + with self.assertRaises(Exception): + self.lshw.check_disk_vendor(model) + + def test_read_check_disk_vendor_with_multiple_strings_in_model(self): + + model = "LENOVO 123456 MODEL" + result = self.lshw.check_disk_vendor(model) + + assert result == "LENOVO" + + def test_read_disks_type(self): + + for disk in self.storage_data: + assert "type" in disk + assert type(disk["type"]) is str + assert disk["type"] == "ssd" + + def test_read_disk_dev_name(self): + + for disk in self.storage_data: + assert "logicalname" in disk + assert type(disk["logicalname"]) is str + assert disk["logicalname"] == "/dev/nvme0n1" + + @patch("boagent.hardware.lshw.Lshw.get_rotational_int") + def test_check_disk_type_is_ssd(self, mocked_get_rotational): + + dev_logicalname = "/dev/ssdonsata" + mocked_get_rotational.return_value = 0 + + disk_type = self.lshw.get_disk_type(dev_logicalname) + assert disk_type == "ssd" + + @patch("boagent.hardware.lshw.Lshw.get_rotational_int") + def test_check_disk_type_is_hdd(self, mocked_get_rotational): + + dev_logicalname = "/dev/sdaex" + mocked_get_rotational.return_value = 1 + + disk_type = self.lshw.get_disk_type(dev_logicalname) + assert disk_type == "hdd" + + def test_int_for_get_rotational_int_when_file_not_found(self): + + dev_erroneous_name = "/dev/thisnameleadstonorotational" + rotational_int = self.lshw.get_rotational_int(dev_erroneous_name) + + self.assertEqual(rotational_int, 2) + + def test_read_disk_type_when_dev_path_not_found(self): + + dev_erroneous_name = "/dev/thisnamedoesntexist" + disk_type = self.lshw.get_disk_type(dev_erroneous_name) + assert disk_type == "unknown" + + @patch("boagent.hardware.lshw.is_tool") + def test_check_lshw_is_installed_to_parse_hardware_data_and_raises_error_if_not( + self, mocked_is_tool + ): + mocked_is_tool.return_value = False + with self.assertRaises(Exception) as context: + self.lshw.__init__() + self.assertTrue("lshw does not seem to be installed" in str(context.exception)) + + @patch("boagent.hardware.lshw.is_tool") + def test_check_nvme_cli_is_installed_to_find_storage_and_raises_error_if_not( + self, mocked_is_tool + ): + mocked_is_tool.return_value = False + + with open(mock_lshw_data_disks, "r") as file, self.assertRaises( + Exception + ) as nvme_cli_exception: + data = load(file) + self.lshw.find_storage(data) + + caught_exception = nvme_cli_exception.exception + assert str(caught_exception) == "nvme-cli >= 1.0 does not seem to be installed" + + def test_read_disks_manufacturer(self): + + for disk in self.storage_data: + assert "manufacturer" in disk + assert type(disk["manufacturer"]) is str + assert disk["manufacturer"] == "toshiba" + + def test_read_disks_capacity(self): + + for disk in self.storage_data: + assert "capacity" in disk + assert type(disk["capacity"]) is int + assert disk["capacity"] == 238 + + def test_read_disks_units(self): + + for disk in self.storage_data: + assert "units" in disk + assert type(disk["units"]) is int + assert disk["units"] == 1 + + def test_read_ram_manufacturer(self): + + for ram in self.ram_data: + assert "manufacturer" in ram + assert type(ram["manufacturer"]) is str + assert ram["manufacturer"] == "Samsung" + + def test_read_ram_capacity(self): + + for ram in self.ram_data: + assert "capacity" in ram + assert type(ram["capacity"]) is int + assert ram["capacity"] == 8 + + def test_read_ram_units(self): + + for ram in self.ram_data: + assert "units" in ram + assert type(ram["units"]) is int + assert ram["units"] == 1 diff --git a/tests/mocks/boaviztapi_response_not_verbose.json b/tests/mocks/boaviztapi_response_not_verbose.json new file mode 100644 index 0000000..0f74f04 --- /dev/null +++ b/tests/mocks/boaviztapi_response_not_verbose.json @@ -0,0 +1,55 @@ +{ + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 1200, + "min": 759.1, + "max": 1949, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 1030, + "min": 1030, + "max": 1030 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.155, + "min": 0.1128, + "max": 0.2077, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0005107, + "min": 0.0005107, + "max": 0.0005107 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 15000, + "min": 10080, + "max": 25260, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 118700, + "min": 118700, + "max": 118700 + } + } + } +} diff --git a/tests/mocks/boaviztapi_response_verbose.json b/tests/mocks/boaviztapi_response_verbose.json new file mode 100644 index 0000000..23227d6 --- /dev/null +++ b/tests/mocks/boaviztapi_response_verbose.json @@ -0,0 +1,697 @@ +{ + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 1176, + "min": 1112, + "max": 1176, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 10000, + "min": 526.5, + "max": 34540 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.1492, + "min": 0.1492, + "max": 0.1567, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0016, + "min": 0.0003031, + "max": 0.008107 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 15680, + "min": 14700, + "max": 15680, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 300000, + "min": 297.6, + "max": 14290000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "verbose": { + "duration": { + "value": 35040, + "unit": "hours" + }, + "ASSEMBLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 6.68, + "min": 6.68, + "max": 6.68, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 1.41e-06, + "min": 1.41e-06, + "max": 1.41e-06, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 68.6, + "min": 68.6, + "max": 68.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CPU-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 250, + "min": 250, + "max": 250, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 12000, + "min": 701.8, + "max": 34530 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.04087, + "min": 0.04087, + "max": 0.04087, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.002, + "min": 0.000404, + "max": 0.008103 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 3428, + "min": 3428, + "max": 3428, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 400000, + "min": 396.7, + "max": 14280000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "units": { + "value": 2, + "status": "INPUT" + }, + "core_units": { + "value": 24, + "status": "INPUT" + }, + "die_size_per_core": { + "value": 245, + "status": "INPUT", + "unit": "mm2" + }, + "die_size": { + "value": 5880, + "status": "COMPLETED", + "unit": "mm2", + "source": "die_size_per_core*core_units", + "min": 5880, + "max": 5880 + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 435.4, + "status": "COMPLETED", + "unit": "W", + "min": 435.4, + "max": 435.4 + }, + "time_workload": { + "value": 70, + "status": "INPUT", + "unit": "%" + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 171.2, + "b": 0.0354, + "c": 36.89, + "d": -10.13 + }, + "status": "ARCHETYPE" + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-08, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-08, + "max": 2.65575e-07 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "RAM-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 534.6, + "min": 534.6, + "max": 534.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 17000, + "min": 1055, + "max": 51890 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0338, + "min": 0.0338, + "max": 0.0338, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.003, + "min": 0.0006071, + "max": 0.01218 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 6745, + "min": 6745, + "max": 6745, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 1000000, + "min": 596.1, + "max": 21470000 + } + } + }, + "units": { + "value": 12, + "status": "INPUT" + }, + "capacity": { + "value": 32, + "status": "INPUT", + "unit": "GB" + }, + "density": { + "value": 1.79, + "status": "INPUT", + "unit": "GB/cm2" + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 109.05599999999998, + "status": "COMPLETED", + "unit": "W", + "min": 109.05599999999998, + "max": 109.05599999999998 + }, + "time_workload": { + "value": 70, + "status": "INPUT", + "unit": "%" + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 9.088 + }, + "status": "COMPLETED", + "source": "(ram_electrical_factor_per_go : 0.284) * (ram_capacity: 32) " + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-08, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-08, + "max": 2.65575e-07 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "SSD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 23.73, + "min": 23.73, + "max": 23.73, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.001061, + "min": 0.001061, + "max": 0.001061, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 292.7, + "min": 292.7, + "max": 292.7, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "INPUT" + }, + "capacity": { + "value": 400, + "status": "INPUT", + "unit": "GB" + }, + "density": { + "value": 50.6, + "status": "INPUT", + "unit": "GB/cm2" + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "POWER_SUPPLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 145.3, + "min": 145.3, + "max": 145.3, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.04963, + "min": 0.04963, + "max": 0.04963, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2105, + "min": 2105, + "max": 2105, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 2, + "status": "INPUT" + }, + "unit_weight": { + "value": 2.99, + "status": "INPUT", + "unit": "kg" + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CASE-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 150, + "min": 85.9, + "max": 150, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0202, + "min": 0.0202, + "max": 0.02767, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2200, + "min": 1229, + "max": 2200, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "case_type": { + "value": "rack", + "status": "ARCHETYPE" + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "MOTHERBOARD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 66.1, + "min": 66.1, + "max": 66.1, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.00369, + "min": 0.00369, + "max": 0.00369, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 836, + "min": 836, + "max": 836, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "avg_power": { + "value": 724.1264799999999, + "status": "COMPLETED", + "unit": "W", + "min": 653.3471999999998, + "max": 871.1295999999999 + }, + "time_workload": { + "value": 70, + "status": "INPUT", + "unit": "%" + }, + "usage_location": { + "value": "FRA", + "status": "INPUT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "other_consumption_ratio": { + "value": 0.33, + "status": "ARCHETYPE", + "unit": "ratio /1", + "min": 0.2, + "max": 0.6 + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-08, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-08, + "max": 2.65575e-07 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + } + } +} diff --git a/tests/mocks/formatted_power_data_one_hour.json b/tests/mocks/formatted_power_data_one_hour.json new file mode 100644 index 0000000..bad0bee --- /dev/null +++ b/tests/mocks/formatted_power_data_one_hour.json @@ -0,0 +1 @@ +[{"host":{"consumption":22839456.0,"timestamp":1713776733.1511338,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984608768","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14541315.0,"domains":[{"name":"uncore","consumption":45094.0,"timestamp":1713776733.0607731},{"name":"core","consumption":12269990.0,"timestamp":1713776733.0605369},{"name":"dram","consumption":852068.0,"timestamp":1713776733.0603411}],"timestamp":1713776733.0592344}]},{"host":{"consumption":16981000.0,"timestamp":1713776743.218813,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983822336","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9059081.0,"domains":[{"name":"uncore","consumption":48212.0,"timestamp":1713776743.158127},{"name":"core","consumption":6869789.0,"timestamp":1713776743.1580791},{"name":"dram","consumption":739943.0,"timestamp":1713776743.1580322}],"timestamp":1713776743.1577911}]},{"host":{"consumption":16722740.0,"timestamp":1713776753.3200343,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983838720","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9070029.0,"domains":[{"name":"uncore","consumption":46079.0,"timestamp":1713776753.2260823},{"name":"core","consumption":6879086.0,"timestamp":1713776753.2260573},{"name":"dram","consumption":740840.0,"timestamp":1713776753.226029}],"timestamp":1713776753.2255995}]},{"host":{"consumption":16845328.0,"timestamp":1713776763.3460875,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983805952","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9006139.0,"domains":[{"name":"uncore","consumption":28302.0,"timestamp":1713776763.3271012},{"name":"core","consumption":6842051.0,"timestamp":1713776763.327086},{"name":"dram","consumption":721432.0,"timestamp":1713776763.3270676}],"timestamp":1713776763.3268232}]},{"host":{"consumption":20178468.0,"timestamp":1713776773.3749685,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984961024","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11565690.0,"domains":[{"name":"uncore","consumption":138203.0,"timestamp":1713776773.3530092},{"name":"core","consumption":9056146.0,"timestamp":1713776773.352927},{"name":"dram","consumption":917219.0,"timestamp":1713776773.3528495}],"timestamp":1713776773.3525944}]},{"host":{"consumption":19320856.0,"timestamp":1713776783.4413419,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985849856","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10891636.0,"domains":[{"name":"uncore","consumption":100456.0,"timestamp":1713776783.381015},{"name":"core","consumption":8502546.0,"timestamp":1713776783.3810034},{"name":"dram","consumption":890911.0,"timestamp":1713776783.380984}],"timestamp":1713776783.3807747}]},{"host":{"consumption":18664104.0,"timestamp":1713776793.527114,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985829376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10461344.0,"domains":[{"name":"uncore","consumption":163930.0,"timestamp":1713776793.448991},{"name":"core","consumption":8026378.0,"timestamp":1713776793.4489007},{"name":"dram","consumption":912285.0,"timestamp":1713776793.4488075}],"timestamp":1713776793.447805}]},{"host":{"consumption":18027132.0,"timestamp":1713776803.6265707,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985821184","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9899857.0,"domains":[{"name":"uncore","consumption":183041.0,"timestamp":1713776803.535488},{"name":"core","consumption":7494878.0,"timestamp":1713776803.5353925},{"name":"dram","consumption":884276.0,"timestamp":1713776803.535213}],"timestamp":1713776803.5343165}]},{"host":{"consumption":17484540.0,"timestamp":1713776813.6934764,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985829376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9464936.0,"domains":[{"name":"uncore","consumption":73310.0,"timestamp":1713776813.6352477},{"name":"core","consumption":7223027.0,"timestamp":1713776813.6351972},{"name":"dram","consumption":785048.0,"timestamp":1713776813.6351457}],"timestamp":1713776813.6348221}]},{"host":{"consumption":16846520.0,"timestamp":1713776823.7871494,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985829376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9133689.0,"domains":[{"name":"uncore","consumption":80251.0,"timestamp":1713776823.7018094},{"name":"core","consumption":6899394.0,"timestamp":1713776823.701636},{"name":"dram","consumption":780682.0,"timestamp":1713776823.701415}],"timestamp":1713776823.700346}]},{"host":{"consumption":19366870.0,"timestamp":1713776833.8774304,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152985022464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10976765.0,"domains":[{"name":"uncore","consumption":150406.0,"timestamp":1713776833.7932224},{"name":"core","consumption":8548469.0,"timestamp":1713776833.793142},{"name":"dram","consumption":908710.0,"timestamp":1713776833.7930572}],"timestamp":1713776833.7928212}]},{"host":{"consumption":19660644.0,"timestamp":1713776843.9498193,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984977408","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11163514.0,"domains":[{"name":"uncore","consumption":187910.0,"timestamp":1713776843.8866582},{"name":"core","consumption":8677972.0,"timestamp":1713776843.8865824},{"name":"dram","consumption":988746.0,"timestamp":1713776843.8864777}],"timestamp":1713776843.8854172}]},{"host":{"consumption":16384468.0,"timestamp":1713776854.0142157,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984907776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8733699.0,"domains":[{"name":"uncore","consumption":1097.0,"timestamp":1713776853.9547465},{"name":"core","consumption":6632548.0,"timestamp":1713776853.9547296},{"name":"dram","consumption":676655.0,"timestamp":1713776853.9547124}],"timestamp":1713776853.9544137}]},{"host":{"consumption":16174939.0,"timestamp":1713776864.10159,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984915968","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8709866.0,"domains":[{"name":"uncore","consumption":22437.0,"timestamp":1713776864.0224054},{"name":"core","consumption":6586726.0,"timestamp":1713776864.0221882},{"name":"dram","consumption":702673.0,"timestamp":1713776864.0219984}],"timestamp":1713776864.020949}]},{"host":{"consumption":16641214.0,"timestamp":1713776874.1272652,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152984899584","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8941654.0,"domains":[{"name":"uncore","consumption":30573.0,"timestamp":1713776874.1079433},{"name":"core","consumption":6783195.0,"timestamp":1713776874.1078608},{"name":"dram","consumption":713687.0,"timestamp":1713776874.1077807}],"timestamp":1713776874.1074984}]},{"host":{"consumption":17742036.0,"timestamp":1713776884.1930141,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983883776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9792363.0,"domains":[{"name":"uncore","consumption":12237.0,"timestamp":1713776884.1331985},{"name":"core","consumption":7611253.0,"timestamp":1713776884.1331136},{"name":"dram","consumption":702807.0,"timestamp":1713776884.1330287}],"timestamp":1713776884.1327791}]},{"host":{"consumption":16045425.0,"timestamp":1713776894.2987273,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983871488","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8638578.0,"domains":[{"name":"uncore","consumption":19957.0,"timestamp":1713776894.200897},{"name":"core","consumption":6520352.0,"timestamp":1713776894.2008362},{"name":"dram","consumption":699931.0,"timestamp":1713776894.2007725}],"timestamp":1713776894.1999118}]},{"host":{"consumption":16224034.0,"timestamp":1713776904.3735363,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983871488","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8631907.0,"domains":[{"name":"uncore","consumption":7713.0,"timestamp":1713776904.3059886},{"name":"core","consumption":6542680.0,"timestamp":1713776904.3059006},{"name":"dram","consumption":672715.0,"timestamp":1713776904.305835}],"timestamp":1713776904.305626}]},{"host":{"consumption":16846048.0,"timestamp":1713776914.4393625,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983826432","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9056345.0,"domains":[{"name":"uncore","consumption":6483.0,"timestamp":1713776914.37817},{"name":"core","consumption":6914729.0,"timestamp":1713776914.3780758},{"name":"dram","consumption":717895.0,"timestamp":1713776914.3779886}],"timestamp":1713776914.377803}]},{"host":{"consumption":17085022.0,"timestamp":1713776924.5196557,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152983781376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9334116.0,"domains":[{"name":"uncore","consumption":59258.0,"timestamp":1713776924.4472995},{"name":"core","consumption":7110072.0,"timestamp":1713776924.4470918},{"name":"dram","consumption":777071.0,"timestamp":1713776924.446896}],"timestamp":1713776924.4458892}]},{"host":{"consumption":18274012.0,"timestamp":1713776934.5888944,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982667264","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10051529.0,"domains":[{"name":"uncore","consumption":87871.0,"timestamp":1713776934.5258956},{"name":"core","consumption":7730027.0,"timestamp":1713776934.5258844},{"name":"dram","consumption":840146.0,"timestamp":1713776934.5258706}],"timestamp":1713776934.5256615}]},{"host":{"consumption":17763572.0,"timestamp":1713776944.6601112,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982642688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9823252.0,"domains":[{"name":"uncore","consumption":111906.0,"timestamp":1713776944.5963216},{"name":"core","consumption":7510654.0,"timestamp":1713776944.5962281},{"name":"dram","consumption":842703.0,"timestamp":1713776944.596136}],"timestamp":1713776944.5958858}]},{"host":{"consumption":18286144.0,"timestamp":1713776954.6996922,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982642688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10133228.0,"domains":[{"name":"uncore","consumption":123874.0,"timestamp":1713776954.6674545},{"name":"core","consumption":7752282.0,"timestamp":1713776954.6673684},{"name":"dram","consumption":947740.0,"timestamp":1713776954.6672251}],"timestamp":1713776954.6666923}]},{"host":{"consumption":19241480.0,"timestamp":1713776964.7721376,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982634496","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10905721.0,"domains":[{"name":"uncore","consumption":139415.0,"timestamp":1713776964.7069016},{"name":"core","consumption":8461981.0,"timestamp":1713776964.7067893},{"name":"dram","consumption":1017923.0,"timestamp":1713776964.7066824}],"timestamp":1713776964.7062266}]},{"host":{"consumption":16724868.0,"timestamp":1713776974.8404372,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982601728","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8937357.0,"domains":[{"name":"uncore","consumption":24044.0,"timestamp":1713776974.7793686},{"name":"core","consumption":6779412.0,"timestamp":1713776974.7793553},{"name":"dram","consumption":725967.0,"timestamp":1713776974.779332}],"timestamp":1713776974.7790234}]},{"host":{"consumption":16168697.0,"timestamp":1713776984.9150546,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981815296","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8730403.0,"domains":[{"name":"uncore","consumption":14129.0,"timestamp":1713776984.8483362},{"name":"core","consumption":6612168.0,"timestamp":1713776984.8482864},{"name":"dram","consumption":685285.0,"timestamp":1713776984.8482223}],"timestamp":1713776984.8473754}]},{"host":{"consumption":16972942.0,"timestamp":1713776994.9903839,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981815296","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9338204.0,"domains":[{"name":"uncore","consumption":4683.0,"timestamp":1713776994.9218297},{"name":"core","consumption":7238084.0,"timestamp":1713776994.9218106},{"name":"dram","consumption":670005.0,"timestamp":1713776994.9217336}],"timestamp":1713776994.9214137}]},{"host":{"consumption":19904440.0,"timestamp":1713777005.0633216,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981807104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11469411.0,"domains":[{"name":"uncore","consumption":14218.0,"timestamp":1713777004.996468},{"name":"core","consumption":9234698.0,"timestamp":1713777004.9964507},{"name":"dram","consumption":802499.0,"timestamp":1713777004.9964309}],"timestamp":1713777004.9962282}]},{"host":{"consumption":23821914.0,"timestamp":1713777015.1340816,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982241280","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14857354.0,"domains":[{"name":"uncore","consumption":90502.0,"timestamp":1713777015.0712984},{"name":"core","consumption":12383485.0,"timestamp":1713777015.0712466},{"name":"dram","consumption":972342.0,"timestamp":1713777015.0711875}],"timestamp":1713777015.0708177}]},{"host":{"consumption":18002080.0,"timestamp":1713777025.1986918,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982192128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9977895.0,"domains":[{"name":"uncore","consumption":85695.0,"timestamp":1713777025.1393635},{"name":"core","consumption":7701050.0,"timestamp":1713777025.139356},{"name":"dram","consumption":792326.0,"timestamp":1713777025.1393478}],"timestamp":1713777025.1391838}]},{"host":{"consumption":17680458.0,"timestamp":1713777035.27853,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981131264","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9743090.0,"domains":[{"name":"uncore","consumption":70435.0,"timestamp":1713777035.2058847},{"name":"core","consumption":7439096.0,"timestamp":1713777035.2058249},{"name":"dram","consumption":804227.0,"timestamp":1713777035.2057557}],"timestamp":1713777035.204923}]},{"host":{"consumption":18357346.0,"timestamp":1713777045.337737,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152980979712","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10192130.0,"domains":[{"name":"uncore","consumption":74988.0,"timestamp":1713777045.286384},{"name":"core","consumption":7816444.0,"timestamp":1713777045.286365},{"name":"dram","consumption":810440.0,"timestamp":1713777045.2863448}],"timestamp":1713777045.2858868}]},{"host":{"consumption":17990072.0,"timestamp":1713777055.4065242,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152980873216","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9824797.0,"domains":[{"name":"uncore","consumption":77175.0,"timestamp":1713777055.3453813},{"name":"core","consumption":7495410.0,"timestamp":1713777055.345311},{"name":"dram","consumption":805234.0,"timestamp":1713777055.3452392}],"timestamp":1713777055.344998}]},{"host":{"consumption":17519172.0,"timestamp":1713777065.503242,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152980742144","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9647848.0,"domains":[{"name":"uncore","consumption":56186.0,"timestamp":1713777065.4142375},{"name":"core","consumption":7358347.0,"timestamp":1713777065.414192},{"name":"dram","consumption":773846.0,"timestamp":1713777065.4141448}],"timestamp":1713777065.4134197}]},{"host":{"consumption":17891032.0,"timestamp":1713777075.5509567,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152982196224","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9832698.0,"domains":[{"name":"uncore","consumption":61244.0,"timestamp":1713777075.5105214},{"name":"core","consumption":7536060.0,"timestamp":1713777075.5104876},{"name":"dram","consumption":777253.0,"timestamp":1713777075.5104597}],"timestamp":1713777075.510103}]},{"host":{"consumption":17815084.0,"timestamp":1713777085.6228104,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981295104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9678532.0,"domains":[{"name":"uncore","consumption":61632.0,"timestamp":1713777085.561123},{"name":"core","consumption":7380698.0,"timestamp":1713777085.5611074},{"name":"dram","consumption":786439.0,"timestamp":1713777085.5610945}],"timestamp":1713777085.5609138}]},{"host":{"consumption":17694360.0,"timestamp":1713777095.7247462,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981151744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9802988.0,"domains":[{"name":"uncore","consumption":71710.0,"timestamp":1713777095.6316407},{"name":"core","consumption":7503412.0,"timestamp":1713777095.6314514},{"name":"dram","consumption":804160.0,"timestamp":1713777095.6312304}],"timestamp":1713777095.6302629}]},{"host":{"consumption":18129474.0,"timestamp":1713777105.790891,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981102592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9953748.0,"domains":[{"name":"uncore","consumption":72152.0,"timestamp":1713777105.7319067},{"name":"core","consumption":7662805.0,"timestamp":1713777105.731818},{"name":"dram","consumption":816287.0,"timestamp":1713777105.7317307}],"timestamp":1713777105.7314792}]},{"host":{"consumption":15953801.0,"timestamp":1713777115.8627741,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981102592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8530278.0,"domains":[{"name":"uncore","consumption":11961.0,"timestamp":1713777115.7994144},{"name":"core","consumption":6420022.0,"timestamp":1713777115.7991927},{"name":"dram","consumption":677953.0,"timestamp":1713777115.79897}],"timestamp":1713777115.7978327}]},{"host":{"consumption":16938940.0,"timestamp":1713777125.9474034,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152981114880","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9192264.0,"domains":[{"name":"uncore","consumption":54261.0,"timestamp":1713777125.8688385},{"name":"core","consumption":6987367.0,"timestamp":1713777125.8688178},{"name":"dram","consumption":759677.0,"timestamp":1713777125.8688}],"timestamp":1713777125.8685436}]},{"host":{"consumption":17084550.0,"timestamp":1713777136.0318727,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152980295680","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9322397.0,"domains":[{"name":"uncore","consumption":24124.0,"timestamp":1713777135.953332},{"name":"core","consumption":7153078.0,"timestamp":1713777135.9532452},{"name":"dram","consumption":730172.0,"timestamp":1713777135.9531567}],"timestamp":1713777135.9529128}]},{"host":{"consumption":17661328.0,"timestamp":1713777146.0986826,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152974946304","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9637077.0,"domains":[{"name":"uncore","consumption":25416.0,"timestamp":1713777146.0393763},{"name":"core","consumption":7339891.0,"timestamp":1713777146.0393615},{"name":"dram","consumption":738663.0,"timestamp":1713777146.0393455}],"timestamp":1713777146.0390542}]},{"host":{"consumption":16707994.0,"timestamp":1713777156.2043657,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152974888960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9161977.0,"domains":[{"name":"uncore","consumption":16447.0,"timestamp":1713777156.1071963},{"name":"core","consumption":7019542.0,"timestamp":1713777156.1069677},{"name":"dram","consumption":710408.0,"timestamp":1713777156.1067336}],"timestamp":1713777156.1055775}]},{"host":{"consumption":17207338.0,"timestamp":1713777166.2376916,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152974888960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9286949.0,"domains":[{"name":"uncore","consumption":76193.0,"timestamp":1713777166.2133067},{"name":"core","consumption":7053232.0,"timestamp":1713777166.2132885},{"name":"dram","consumption":782137.0,"timestamp":1713777166.213268}],"timestamp":1713777166.212981}]},{"host":{"consumption":17584212.0,"timestamp":1713777176.2885852,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152974868480","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9738880.0,"domains":[{"name":"uncore","consumption":55203.0,"timestamp":1713777176.2469187},{"name":"core","consumption":7530107.0,"timestamp":1713777176.2468045},{"name":"dram","consumption":756529.0,"timestamp":1713777176.2466614}],"timestamp":1713777176.2450926}]},{"host":{"consumption":17274468.0,"timestamp":1713777186.3227236,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973860864","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9410312.0,"domains":[{"name":"uncore","consumption":83281.0,"timestamp":1713777186.2982764},{"name":"core","consumption":7170252.0,"timestamp":1713777186.2982504},{"name":"dram","consumption":788001.0,"timestamp":1713777186.2982068}],"timestamp":1713777186.297853}]},{"host":{"consumption":16231953.0,"timestamp":1713777196.3952644,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973860864","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8575499.0,"domains":[{"name":"uncore","consumption":17611.0,"timestamp":1713777196.3278553},{"name":"core","consumption":6479625.0,"timestamp":1713777196.327841},{"name":"dram","consumption":684457.0,"timestamp":1713777196.3278232}],"timestamp":1713777196.3276503}]},{"host":{"consumption":17897220.0,"timestamp":1713777206.4610589,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973869056","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9950755.0,"domains":[{"name":"uncore","consumption":24972.0,"timestamp":1713777206.399892},{"name":"core","consumption":7791134.0,"timestamp":1713777206.3998756},{"name":"dram","consumption":764722.0,"timestamp":1713777206.399863}],"timestamp":1713777206.3996723}]},{"host":{"consumption":24343926.0,"timestamp":1713777216.5693893,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973824000","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":15427863.0,"domains":[{"name":"uncore","consumption":19596.0,"timestamp":1713777216.4696398},{"name":"core","consumption":13038636.0,"timestamp":1713777216.4694428},{"name":"dram","consumption":907260.0,"timestamp":1713777216.4692278}],"timestamp":1713777216.4682693}]},{"host":{"consumption":18454150.0,"timestamp":1713777226.634701,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973021184","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10223166.0,"domains":[{"name":"uncore","consumption":92544.0,"timestamp":1713777226.5767918},{"name":"core","consumption":7945179.0,"timestamp":1713777226.5767102},{"name":"dram","consumption":811552.0,"timestamp":1713777226.5766191}],"timestamp":1713777226.5763497}]},{"host":{"consumption":16529560.0,"timestamp":1713777236.7167804,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152973000704","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8944020.0,"domains":[{"name":"uncore","consumption":35589.0,"timestamp":1713777236.642004},{"name":"core","consumption":6789653.0,"timestamp":1713777236.6419218},{"name":"dram","consumption":717853.0,"timestamp":1713777236.6418812}],"timestamp":1713777236.6410005}]},{"host":{"consumption":16775695.0,"timestamp":1713777246.7846277,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152972972032","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8951850.0,"domains":[{"name":"uncore","consumption":26276.0,"timestamp":1713777246.7229867},{"name":"core","consumption":6796287.0,"timestamp":1713777246.7229757},{"name":"dram","consumption":704799.0,"timestamp":1713777246.7229636}],"timestamp":1713777246.7227092}]},{"host":{"consumption":15556533.0,"timestamp":1713777256.8788333,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152972976128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8236154.0,"domains":[{"name":"uncore","consumption":1030.0,"timestamp":1713777256.7930374},{"name":"core","consumption":6168328.0,"timestamp":1713777256.7928183},{"name":"dram","consumption":645843.0,"timestamp":1713777256.7925932}],"timestamp":1713777256.7914505}]},{"host":{"consumption":17937068.0,"timestamp":1713777266.9760392,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152972910592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9924039.0,"domains":[{"name":"uncore","consumption":88172.0,"timestamp":1713777266.8877187},{"name":"core","consumption":7630807.0,"timestamp":1713777266.8876908},{"name":"dram","consumption":803316.0,"timestamp":1713777266.8876681}],"timestamp":1713777266.8873644}]},{"host":{"consumption":18454380.0,"timestamp":1713777277.0442383,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152971960320","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10182132.0,"domains":[{"name":"uncore","consumption":74447.0,"timestamp":1713777276.9832406},{"name":"core","consumption":7849393.0,"timestamp":1713777276.9832327},{"name":"dram","consumption":817975.0,"timestamp":1713777276.983224}],"timestamp":1713777276.9830406}]},{"host":{"consumption":17266296.0,"timestamp":1713777287.113659,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152971816960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9419215.0,"domains":[{"name":"uncore","consumption":49091.0,"timestamp":1713777287.0527253},{"name":"core","consumption":7157526.0,"timestamp":1713777287.052653},{"name":"dram","consumption":756459.0,"timestamp":1713777287.0525587}],"timestamp":1713777287.0514598}]},{"host":{"consumption":17562162.0,"timestamp":1713777297.214952,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152971739136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9647698.0,"domains":[{"name":"uncore","consumption":65355.0,"timestamp":1713777297.1191518},{"name":"core","consumption":7371870.0,"timestamp":1713777297.1191337},{"name":"dram","consumption":790216.0,"timestamp":1713777297.1191046}],"timestamp":1713777297.1187286}]},{"host":{"consumption":20346536.0,"timestamp":1713777307.293429,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152971628544","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11724314.0,"domains":[{"name":"uncore","consumption":163220.0,"timestamp":1713777307.2234144},{"name":"core","consumption":9303487.0,"timestamp":1713777307.2233179},{"name":"dram","consumption":975655.0,"timestamp":1713777307.2232158}],"timestamp":1713777307.222858}]},{"host":{"consumption":19801178.0,"timestamp":1713777317.359613,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152971571200","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11231485.0,"domains":[{"name":"uncore","consumption":198577.0,"timestamp":1713777317.2983823},{"name":"core","consumption":8713569.0,"timestamp":1713777317.298366},{"name":"dram","consumption":991540.0,"timestamp":1713777317.298354}],"timestamp":1713777317.2981806}]},{"host":{"consumption":17649494.0,"timestamp":1713777327.449634,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152970821632","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9688075.0,"domains":[{"name":"uncore","consumption":110425.0,"timestamp":1713777327.3674223},{"name":"core","consumption":7351944.0,"timestamp":1713777327.367366},{"name":"dram","consumption":839885.0,"timestamp":1713777327.3672998}],"timestamp":1713777327.3664134}]},{"host":{"consumption":18980238.0,"timestamp":1713777337.5194466,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152970706944","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10592785.0,"domains":[{"name":"uncore","consumption":83956.0,"timestamp":1713777337.4586651},{"name":"core","consumption":8247316.0,"timestamp":1713777337.4586465},{"name":"dram","consumption":857625.0,"timestamp":1713777337.4586263}],"timestamp":1713777337.4583135}]},{"host":{"consumption":21691694.0,"timestamp":1713777347.583959,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152969510912","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12880346.0,"domains":[{"name":"uncore","consumption":131259.0,"timestamp":1713777347.524417},{"name":"core","consumption":10396386.0,"timestamp":1713777347.5243325},{"name":"dram","consumption":957926.0,"timestamp":1713777347.5242443}],"timestamp":1713777347.523989}]},{"host":{"consumption":18650282.0,"timestamp":1713777357.6647134,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152969199616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10580498.0,"domains":[{"name":"uncore","consumption":89075.0,"timestamp":1713777357.5921497},{"name":"core","consumption":8275383.0,"timestamp":1713777357.5919557},{"name":"dram","consumption":853215.0,"timestamp":1713777357.5917592}],"timestamp":1713777357.5907595}]},{"host":{"consumption":18892164.0,"timestamp":1713777367.7330296,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152969150464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10560693.0,"domains":[{"name":"uncore","consumption":104854.0,"timestamp":1713777367.6705291},{"name":"core","consumption":8228723.0,"timestamp":1713777367.6705165},{"name":"dram","consumption":873054.0,"timestamp":1713777367.670503}],"timestamp":1713777367.670317}]},{"host":{"consumption":18655484.0,"timestamp":1713777377.8278155,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152968314880","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10547207.0,"domains":[{"name":"uncore","consumption":119447.0,"timestamp":1713777377.7424407},{"name":"core","consumption":8202705.0,"timestamp":1713777377.742352},{"name":"dram","consumption":864928.0,"timestamp":1713777377.7422514}],"timestamp":1713777377.7406278}]},{"host":{"consumption":19839508.0,"timestamp":1713777387.8977547,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152967557120","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11226931.0,"domains":[{"name":"uncore","consumption":147733.0,"timestamp":1713777387.8355281},{"name":"core","consumption":8815164.0,"timestamp":1713777387.8355043},{"name":"dram","consumption":930749.0,"timestamp":1713777387.8354752}],"timestamp":1713777387.8351617}]},{"host":{"consumption":19093878.0,"timestamp":1713777397.972775,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152967593984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10841222.0,"domains":[{"name":"uncore","consumption":125816.0,"timestamp":1713777397.9035504},{"name":"core","consumption":8468717.0,"timestamp":1713777397.9035375},{"name":"dram","consumption":904159.0,"timestamp":1713777397.9035237}],"timestamp":1713777397.9033375}]},{"host":{"consumption":17952432.0,"timestamp":1713777408.0408626,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152967356416","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9946246.0,"domains":[{"name":"uncore","consumption":78989.0,"timestamp":1713777407.9787939},{"name":"core","consumption":7660487.0,"timestamp":1713777407.9787714},{"name":"dram","consumption":821510.0,"timestamp":1713777407.978734}],"timestamp":1713777407.9782877}]},{"host":{"consumption":17320856.0,"timestamp":1713777418.1319575,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152967344128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9461335.0,"domains":[{"name":"uncore","consumption":69949.0,"timestamp":1713777418.0463884},{"name":"core","consumption":7215506.0,"timestamp":1713777418.0463102},{"name":"dram","consumption":788687.0,"timestamp":1713777418.046224}],"timestamp":1713777418.0459182}]},{"host":{"consumption":17474848.0,"timestamp":1713777428.2004583,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966549504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9409248.0,"domains":[{"name":"uncore","consumption":95253.0,"timestamp":1713777428.1390185},{"name":"core","consumption":7122726.0,"timestamp":1713777428.1390052},{"name":"dram","consumption":809644.0,"timestamp":1713777428.1389885}],"timestamp":1713777428.1387415}]},{"host":{"consumption":16820736.0,"timestamp":1713777438.3035433,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966549504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9165546.0,"domains":[{"name":"uncore","consumption":108143.0,"timestamp":1713777438.2093804},{"name":"core","consumption":6890045.0,"timestamp":1713777438.209173},{"name":"dram","consumption":796038.0,"timestamp":1713777438.2089665}],"timestamp":1713777438.2079842}]},{"host":{"consumption":16727609.0,"timestamp":1713777448.3768816,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966549504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8939919.0,"domains":[{"name":"uncore","consumption":71607.0,"timestamp":1713777448.3114433},{"name":"core","consumption":6727186.0,"timestamp":1713777448.3114324},{"name":"dram","consumption":750922.0,"timestamp":1713777448.3114202}],"timestamp":1713777448.3112388}]},{"host":{"consumption":16308847.0,"timestamp":1713777458.4427474,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966553600","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8585879.0,"domains":[{"name":"uncore","consumption":47079.0,"timestamp":1713777458.3821568},{"name":"core","consumption":6422585.0,"timestamp":1713777458.3821454},{"name":"dram","consumption":715525.0,"timestamp":1713777458.382133}],"timestamp":1713777458.3819559}]},{"host":{"consumption":17582196.0,"timestamp":1713777468.5505536,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966561792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9790577.0,"domains":[{"name":"uncore","consumption":115877.0,"timestamp":1713777468.449387},{"name":"core","consumption":7484325.0,"timestamp":1713777468.4491963},{"name":"dram","consumption":842199.0,"timestamp":1713777468.448999}],"timestamp":1713777468.4479294}]},{"host":{"consumption":21082234.0,"timestamp":1713777478.6427877,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965779456","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12303180.0,"domains":[{"name":"uncore","consumption":201535.0,"timestamp":1713777478.5594313},{"name":"core","consumption":9761258.0,"timestamp":1713777478.5593724},{"name":"dram","consumption":1047614.0,"timestamp":1713777478.559312}],"timestamp":1713777478.5590181}]},{"host":{"consumption":18089648.0,"timestamp":1713777488.7118351,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965562368","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9918908.0,"domains":[{"name":"uncore","consumption":117238.0,"timestamp":1713777488.6492963},{"name":"core","consumption":7574489.0,"timestamp":1713777488.6491983},{"name":"dram","consumption":894123.0,"timestamp":1713777488.6491091}],"timestamp":1713777488.6487775}]},{"host":{"consumption":16313611.0,"timestamp":1713777498.7860672,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965505024","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8774291.0,"domains":[{"name":"uncore","consumption":28373.0,"timestamp":1713777498.7166615},{"name":"core","consumption":6648229.0,"timestamp":1713777498.7166505},{"name":"dram","consumption":703226.0,"timestamp":1713777498.716639}],"timestamp":1713777498.7164707}]},{"host":{"consumption":15908766.0,"timestamp":1713777508.8507597,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965505024","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8388403.0,"domains":[{"name":"uncore","consumption":2084.0,"timestamp":1713777508.7911139},{"name":"core","consumption":6325376.0,"timestamp":1713777508.791101},{"name":"dram","consumption":653991.0,"timestamp":1713777508.7910852}],"timestamp":1713777508.790909}]},{"host":{"consumption":15899949.0,"timestamp":1713777518.9272132,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965505024","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8448667.0,"domains":[{"name":"uncore","consumption":7016.0,"timestamp":1713777518.8562863},{"name":"core","consumption":6357922.0,"timestamp":1713777518.8561907},{"name":"dram","consumption":679596.0,"timestamp":1713777518.8560758}],"timestamp":1713777518.8557153}]},{"host":{"consumption":16183745.0,"timestamp":1713777529.0078616,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152964710400","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8689172.0,"domains":[{"name":"uncore","consumption":5571.0,"timestamp":1713777528.935464},{"name":"core","consumption":6591279.0,"timestamp":1713777528.935428},{"name":"dram","consumption":676487.0,"timestamp":1713777528.9353883}],"timestamp":1713777528.9345155}]},{"host":{"consumption":15916104.0,"timestamp":1713777539.0753608,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152964685824","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8294892.0,"domains":[{"name":"uncore","consumption":14249.0,"timestamp":1713777539.0141416},{"name":"core","consumption":6169550.0,"timestamp":1713777539.0141294},{"name":"dram","consumption":674498.0,"timestamp":1713777539.01411}],"timestamp":1713777539.0138464}]},{"host":{"consumption":16209632.0,"timestamp":1713777549.1478362,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152964677632","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8713013.0,"domains":[{"name":"uncore","consumption":21256.0,"timestamp":1713777549.0809667},{"name":"core","consumption":6591171.0,"timestamp":1713777549.080948},{"name":"dram","consumption":686833.0,"timestamp":1713777549.080928}],"timestamp":1713777549.0806618}]},{"host":{"consumption":16297672.0,"timestamp":1713777559.2131064,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966852608","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8636431.0,"domains":[{"name":"uncore","consumption":17554.0,"timestamp":1713777559.1536322},{"name":"core","consumption":6528329.0,"timestamp":1713777559.153618},{"name":"dram","consumption":687476.0,"timestamp":1713777559.1536024}],"timestamp":1713777559.1534212}]},{"host":{"consumption":16613624.0,"timestamp":1713777569.2817764,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966840320","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8982682.0,"domains":[{"name":"uncore","consumption":14080.0,"timestamp":1713777569.2191489},{"name":"core","consumption":6835346.0,"timestamp":1713777569.219115},{"name":"dram","consumption":686288.0,"timestamp":1713777569.2190804}],"timestamp":1713777569.2186477}]},{"host":{"consumption":15928445.0,"timestamp":1713777579.3524537,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966041600","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8482414.0,"domains":[{"name":"uncore","consumption":8813.0,"timestamp":1713777579.2880456},{"name":"core","consumption":6404099.0,"timestamp":1713777579.287951},{"name":"dram","consumption":667569.0,"timestamp":1713777579.287852}],"timestamp":1713777579.2874703}]},{"host":{"consumption":15866381.0,"timestamp":1713777589.4253757,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966049792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8423159.0,"domains":[{"name":"uncore","consumption":496.0,"timestamp":1713777589.357418},{"name":"core","consumption":6360998.0,"timestamp":1713777589.3573365},{"name":"dram","consumption":654786.0,"timestamp":1713777589.3572474}],"timestamp":1713777589.3570118}]},{"host":{"consumption":15883202.0,"timestamp":1713777599.500007,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966049792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8349347.0,"domains":[{"name":"uncore","consumption":1114.0,"timestamp":1713777599.431466},{"name":"core","consumption":6300350.0,"timestamp":1713777599.4314551},{"name":"dram","consumption":651057.0,"timestamp":1713777599.4314435}],"timestamp":1713777599.4312637}]},{"host":{"consumption":16583735.0,"timestamp":1713777609.577641,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152966057984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8933031.0,"domains":[{"name":"uncore","consumption":16167.0,"timestamp":1713777609.5073316},{"name":"core","consumption":6814868.0,"timestamp":1713777609.5073144},{"name":"dram","consumption":724313.0,"timestamp":1713777609.5072951}],"timestamp":1713777609.5069907}]},{"host":{"consumption":16225616.0,"timestamp":1713777619.6726906,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965238784","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8753202.0,"domains":[{"name":"uncore","consumption":5866.0,"timestamp":1713777619.5885262},{"name":"core","consumption":6647838.0,"timestamp":1713777619.588443},{"name":"dram","consumption":698294.0,"timestamp":1713777619.5883377}],"timestamp":1713777619.587323}]},{"host":{"consumption":16452231.0,"timestamp":1713777629.7383971,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965230592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8740273.0,"domains":[{"name":"uncore","consumption":7131.0,"timestamp":1713777629.6791177},{"name":"core","consumption":6637624.0,"timestamp":1713777629.6791074},{"name":"dram","consumption":683510.0,"timestamp":1713777629.6790953}],"timestamp":1713777629.678914}]},{"host":{"consumption":15823927.0,"timestamp":1713777639.7776556,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152965206016","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8402048.0,"domains":[{"name":"uncore","consumption":0.0,"timestamp":1713777639.7470057},{"name":"core","consumption":6336968.0,"timestamp":1713777639.746783},{"name":"dram","consumption":651596.0,"timestamp":1713777639.7465599}],"timestamp":1713777639.7453885}]},{"host":{"consumption":20210992.0,"timestamp":1713777649.8567626,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152964087808","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11645443.0,"domains":[{"name":"uncore","consumption":166251.0,"timestamp":1713777649.7856688},{"name":"core","consumption":9154307.0,"timestamp":1713777649.7855568},{"name":"dram","consumption":959337.0,"timestamp":1713777649.7854187}],"timestamp":1713777649.7847738}]},{"host":{"consumption":18315888.0,"timestamp":1713777659.9245737,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152964091904","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10023681.0,"domains":[{"name":"uncore","consumption":101881.0,"timestamp":1713777659.862742},{"name":"core","consumption":7680835.0,"timestamp":1713777659.8626509},{"name":"dram","consumption":855120.0,"timestamp":1713777659.8625586}],"timestamp":1713777659.8622923}]},{"host":{"consumption":18779222.0,"timestamp":1713777669.9968607,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152963125248","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10526377.0,"domains":[{"name":"uncore","consumption":169323.0,"timestamp":1713777669.934799},{"name":"core","consumption":8078254.0,"timestamp":1713777669.9346042},{"name":"dram","consumption":936328.0,"timestamp":1713777669.9344296}],"timestamp":1713777669.9331813}]},{"host":{"consumption":19123404.0,"timestamp":1713777680.0693,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152963768320","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10781109.0,"domains":[{"name":"uncore","consumption":113506.0,"timestamp":1713777680.0042026},{"name":"core","consumption":8356430.0,"timestamp":1713777680.0040424},{"name":"dram","consumption":875108.0,"timestamp":1713777680.0038862}],"timestamp":1713777680.0032423}]},{"host":{"consumption":16658693.0,"timestamp":1713777690.1361642,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152963764224","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8869032.0,"domains":[{"name":"uncore","consumption":40817.0,"timestamp":1713777690.0751405},{"name":"core","consumption":6706145.0,"timestamp":1713777690.0750535},{"name":"dram","consumption":736214.0,"timestamp":1713777690.0749643}],"timestamp":1713777690.0747101}]},{"host":{"consumption":15931695.0,"timestamp":1713777700.2205713,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152963739648","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8498349.0,"domains":[{"name":"uncore","consumption":37672.0,"timestamp":1713777700.1458943},{"name":"core","consumption":6345941.0,"timestamp":1713777700.1457095},{"name":"dram","consumption":712412.0,"timestamp":1713777700.1454847}],"timestamp":1713777700.1442876}]},{"host":{"consumption":15856558.0,"timestamp":1713777710.3048334,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152963735552","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8405044.0,"domains":[{"name":"uncore","consumption":1059.0,"timestamp":1713777710.228694},{"name":"core","consumption":6337611.0,"timestamp":1713777710.2286005},{"name":"dram","consumption":654882.0,"timestamp":1713777710.2285113}],"timestamp":1713777710.228153}]},{"host":{"consumption":15731130.0,"timestamp":1713777720.3704264,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152962949120","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8187628.0,"domains":[{"name":"uncore","consumption":16242.0,"timestamp":1713777720.3109682},{"name":"core","consumption":6095751.0,"timestamp":1713777720.3108895},{"name":"dram","consumption":679307.0,"timestamp":1713777720.3108082}],"timestamp":1713777720.3105443}]},{"host":{"consumption":16210695.0,"timestamp":1713777730.4636085,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152962957312","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8795062.0,"domains":[{"name":"uncore","consumption":16315.0,"timestamp":1713777730.3778632},{"name":"core","consumption":6706404.0,"timestamp":1713777730.3778448},{"name":"dram","consumption":685067.0,"timestamp":1713777730.3778222}],"timestamp":1713777730.377493}]},{"host":{"consumption":16040021.0,"timestamp":1713777740.5394042,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152962924544","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8431943.0,"domains":[{"name":"uncore","consumption":9415.0,"timestamp":1713777740.4708369},{"name":"core","consumption":6360303.0,"timestamp":1713777740.4708252},{"name":"dram","consumption":672710.0,"timestamp":1713777740.4708118}],"timestamp":1713777740.4706376}]},{"host":{"consumption":17075332.0,"timestamp":1713777750.6046717,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152962924544","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9383489.0,"domains":[{"name":"uncore","consumption":19158.0,"timestamp":1713777750.5443146},{"name":"core","consumption":7245646.0,"timestamp":1713777750.544299},{"name":"dram","consumption":694105.0,"timestamp":1713777750.5442803}],"timestamp":1713777750.544087}]},{"host":{"consumption":16038221.0,"timestamp":1713777760.7143607,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152962920448","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8620729.0,"domains":[{"name":"uncore","consumption":34230.0,"timestamp":1713777760.6133876},{"name":"core","consumption":6495974.0,"timestamp":1713777760.6132631},{"name":"dram","consumption":708761.0,"timestamp":1713777760.6130996}],"timestamp":1713777760.611765}]},{"host":{"consumption":18562744.0,"timestamp":1713777770.7854593,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152961789952","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10167510.0,"domains":[{"name":"uncore","consumption":85764.0,"timestamp":1713777770.7238543},{"name":"core","consumption":7782228.0,"timestamp":1713777770.7238424},{"name":"dram","consumption":824070.0,"timestamp":1713777770.7238216}],"timestamp":1713777770.723569}]},{"host":{"consumption":17822256.0,"timestamp":1713777780.8563392,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152961662976","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9776705.0,"domains":[{"name":"uncore","consumption":65075.0,"timestamp":1713777780.79145},{"name":"core","consumption":7445099.0,"timestamp":1713777780.791433},{"name":"dram","consumption":800301.0,"timestamp":1713777780.791413}],"timestamp":1713777780.7911453}]},{"host":{"consumption":17887402.0,"timestamp":1713777790.9230866,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152961298432","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9885649.0,"domains":[{"name":"uncore","consumption":43824.0,"timestamp":1713777790.863574},{"name":"core","consumption":7646417.0,"timestamp":1713777790.8635585},{"name":"dram","consumption":772986.0,"timestamp":1713777790.8635464}],"timestamp":1713777790.863358}]},{"host":{"consumption":16965574.0,"timestamp":1713777800.9973304,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152961216512","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9200041.0,"domains":[{"name":"uncore","consumption":56064.0,"timestamp":1713777800.933654},{"name":"core","consumption":6970620.0,"timestamp":1713777800.933577},{"name":"dram","consumption":772481.0,"timestamp":1713777800.933496}],"timestamp":1713777800.9316926}]},{"host":{"consumption":17400900.0,"timestamp":1713777811.0945747,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152961224704","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9707364.0,"domains":[{"name":"uncore","consumption":22511.0,"timestamp":1713777811.0058458},{"name":"core","consumption":7574528.0,"timestamp":1713777811.005728},{"name":"dram","consumption":694298.0,"timestamp":1713777811.005565}],"timestamp":1713777811.0046043}]},{"host":{"consumption":22693084.0,"timestamp":1713777821.1748168,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152960417792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14066250.0,"domains":[{"name":"uncore","consumption":20233.0,"timestamp":1713777821.1053782},{"name":"core","consumption":11756106.0,"timestamp":1713777821.1052055},{"name":"dram","consumption":747530.0,"timestamp":1713777821.1050317}],"timestamp":1713777821.1041722}]},{"host":{"consumption":17230540.0,"timestamp":1713777831.2208235,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152960409600","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9318668.0,"domains":[{"name":"uncore","consumption":73312.0,"timestamp":1713777831.1806302},{"name":"core","consumption":7098818.0,"timestamp":1713777831.180615},{"name":"dram","consumption":790496.0,"timestamp":1713777831.180598}],"timestamp":1713777831.1804144}]},{"host":{"consumption":17543072.0,"timestamp":1713777841.323959,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152960290816","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9691442.0,"domains":[{"name":"uncore","consumption":65266.0,"timestamp":1713777841.2299023},{"name":"core","consumption":7379468.0,"timestamp":1713777841.2298503},{"name":"dram","consumption":771439.0,"timestamp":1713777841.229734}],"timestamp":1713777841.2287185}]},{"host":{"consumption":18375540.0,"timestamp":1713777851.393677,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152960143360","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10071285.0,"domains":[{"name":"uncore","consumption":95768.0,"timestamp":1713777851.332009},{"name":"core","consumption":7713945.0,"timestamp":1713777851.3319974},{"name":"dram","consumption":835902.0,"timestamp":1713777851.3319821}],"timestamp":1713777851.3318}]},{"host":{"consumption":17726560.0,"timestamp":1713777861.4610617,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152960004096","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9741501.0,"domains":[{"name":"uncore","consumption":67079.0,"timestamp":1713777861.4008732},{"name":"core","consumption":7442516.0,"timestamp":1713777861.4008353},{"name":"dram","consumption":793650.0,"timestamp":1713777861.4008021}],"timestamp":1713777861.4003146}]},{"host":{"consumption":17449610.0,"timestamp":1713777871.5619464,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152959102976","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9601990.0,"domains":[{"name":"uncore","consumption":60339.0,"timestamp":1713777871.4696467},{"name":"core","consumption":7300906.0,"timestamp":1713777871.4694824},{"name":"dram","consumption":769847.0,"timestamp":1713777871.4692864}],"timestamp":1713777871.4681816}]},{"host":{"consumption":18067604.0,"timestamp":1713777881.5899308,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958939136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9903128.0,"domains":[{"name":"uncore","consumption":86261.0,"timestamp":1713777881.5700386},{"name":"core","consumption":7576518.0,"timestamp":1713777881.570027},{"name":"dram","consumption":818160.0,"timestamp":1713777881.570015}],"timestamp":1713777881.5698082}]},{"host":{"consumption":18114310.0,"timestamp":1713777891.6597648,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958910464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10051117.0,"domains":[{"name":"uncore","consumption":119266.0,"timestamp":1713777891.595267},{"name":"core","consumption":7688228.0,"timestamp":1713777891.5952513},{"name":"dram","consumption":875669.0,"timestamp":1713777891.5952399}],"timestamp":1713777891.5950556}]},{"host":{"consumption":17982304.0,"timestamp":1713777901.7224674,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958914560","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9921893.0,"domains":[{"name":"uncore","consumption":105382.0,"timestamp":1713777901.6688368},{"name":"core","consumption":7614912.0,"timestamp":1713777901.6687794},{"name":"dram","consumption":821355.0,"timestamp":1713777901.6687136}],"timestamp":1713777901.6678514}]},{"host":{"consumption":16229753.0,"timestamp":1713777911.8222022,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958902272","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8694883.0,"domains":[{"name":"uncore","consumption":13136.0,"timestamp":1713777911.7282002},{"name":"core","consumption":6587707.0,"timestamp":1713777911.7281888},{"name":"dram","consumption":687165.0,"timestamp":1713777911.7281759}],"timestamp":1713777911.7280076}]},{"host":{"consumption":16616626.0,"timestamp":1713777921.8897438,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958091264","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8844863.0,"domains":[{"name":"uncore","consumption":6247.0,"timestamp":1713777921.8297477},{"name":"core","consumption":6710053.0,"timestamp":1713777921.829701},{"name":"dram","consumption":696847.0,"timestamp":1713777921.8296196}],"timestamp":1713777921.8293762}]},{"host":{"consumption":24247360.0,"timestamp":1713777931.9538066,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958078976","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":15254459.0,"domains":[{"name":"uncore","consumption":35481.0,"timestamp":1713777931.8947358},{"name":"core","consumption":12941539.0,"timestamp":1713777931.894722},{"name":"dram","consumption":962834.0,"timestamp":1713777931.8947082}],"timestamp":1713777931.8945222}]},{"host":{"consumption":20532328.0,"timestamp":1713777942.0455108,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958062592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12224716.0,"domains":[{"name":"uncore","consumption":99571.0,"timestamp":1713777941.9616747},{"name":"core","consumption":9892754.0,"timestamp":1713777941.9615881},{"name":"dram","consumption":849291.0,"timestamp":1713777941.9614494}],"timestamp":1713777941.9605832}]},{"host":{"consumption":16474318.0,"timestamp":1713777952.0709994,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958062592","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8771281.0,"domains":[{"name":"uncore","consumption":30979.0,"timestamp":1713777952.052795},{"name":"core","consumption":6620660.0,"timestamp":1713777952.0527837},{"name":"dram","consumption":715171.0,"timestamp":1713777952.0527718}],"timestamp":1713777952.0525928}]},{"host":{"consumption":17493240.0,"timestamp":1713777962.1385055,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152958066688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9531806.0,"domains":[{"name":"uncore","consumption":131463.0,"timestamp":1713777962.0778706},{"name":"core","consumption":7202853.0,"timestamp":1713777962.0778282},{"name":"dram","consumption":833088.0,"timestamp":1713777962.0777817}],"timestamp":1713777962.0771358}]},{"host":{"consumption":17458548.0,"timestamp":1713777972.24492,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152957239296","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9531299.0,"domains":[{"name":"uncore","consumption":127349.0,"timestamp":1713777972.1469042},{"name":"core","consumption":7191604.0,"timestamp":1713777972.1468406},{"name":"dram","consumption":825182.0,"timestamp":1713777972.1467702}],"timestamp":1713777972.1457498}]},{"host":{"consumption":17862440.0,"timestamp":1713777982.3326883,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152957214720","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9769459.0,"domains":[{"name":"uncore","consumption":179092.0,"timestamp":1713777982.252346},{"name":"core","consumption":7372610.0,"timestamp":1713777982.252256},{"name":"dram","consumption":884528.0,"timestamp":1713777982.2521672}],"timestamp":1713777982.251912}]},{"host":{"consumption":18233520.0,"timestamp":1713777992.4027348,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152957206528","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10080855.0,"domains":[{"name":"uncore","consumption":104562.0,"timestamp":1713777992.3419394},{"name":"core","consumption":7790676.0,"timestamp":1713777992.3419151},{"name":"dram","consumption":820201.0,"timestamp":1713777992.341895}],"timestamp":1713777992.3415523}]},{"host":{"consumption":19109640.0,"timestamp":1713778002.4701629,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152956878848","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10871542.0,"domains":[{"name":"uncore","consumption":115419.0,"timestamp":1713778002.4089096},{"name":"core","consumption":8515008.0,"timestamp":1713778002.4088027},{"name":"dram","consumption":916167.0,"timestamp":1713778002.4086978}],"timestamp":1713778002.4082537}]},{"host":{"consumption":18408262.0,"timestamp":1713778012.5528898,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152956362752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10342927.0,"domains":[{"name":"uncore","consumption":82893.0,"timestamp":1713778012.4801257},{"name":"core","consumption":8061710.0,"timestamp":1713778012.4799323},{"name":"dram","consumption":842357.0,"timestamp":1713778012.479757}],"timestamp":1713778012.4787397}]},{"host":{"consumption":19840854.0,"timestamp":1713778022.6270146,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152956350464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11335704.0,"domains":[{"name":"uncore","consumption":163135.0,"timestamp":1713778022.55935},{"name":"core","consumption":8897139.0,"timestamp":1713778022.5593307},{"name":"dram","consumption":981078.0,"timestamp":1713778022.5593092}],"timestamp":1713778022.5589626}]},{"host":{"consumption":17312974.0,"timestamp":1713778032.7117648,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152956309504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9499735.0,"domains":[{"name":"uncore","consumption":87710.0,"timestamp":1713778032.6362305},{"name":"core","consumption":7215070.0,"timestamp":1713778032.6359973},{"name":"dram","consumption":811384.0,"timestamp":1713778032.6357644}],"timestamp":1713778032.6345541}]},{"host":{"consumption":18126974.0,"timestamp":1713778042.7790456,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152956256256","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10049458.0,"domains":[{"name":"uncore","consumption":100679.0,"timestamp":1713778042.7184296},{"name":"core","consumption":7772194.0,"timestamp":1713778042.718339},{"name":"dram","consumption":809173.0,"timestamp":1713778042.7182584}],"timestamp":1713778042.7180066}]},{"host":{"consumption":17990110.0,"timestamp":1713778052.845718,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955977728","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9860508.0,"domains":[{"name":"uncore","consumption":132729.0,"timestamp":1713778052.7844014},{"name":"core","consumption":7515147.0,"timestamp":1713778052.7843919},{"name":"dram","consumption":877302.0,"timestamp":1713778052.784381}],"timestamp":1713778052.7841396}]},{"host":{"consumption":19102024.0,"timestamp":1713778062.9095144,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955179008","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10795199.0,"domains":[{"name":"uncore","consumption":191009.0,"timestamp":1713778062.855294},{"name":"core","consumption":8332341.0,"timestamp":1713778062.8551056},{"name":"dram","consumption":993144.0,"timestamp":1713778062.8549147}],"timestamp":1713778062.853756}]},{"host":{"consumption":17932420.0,"timestamp":1713778072.9832215,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955179008","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9801198.0,"domains":[{"name":"uncore","consumption":119654.0,"timestamp":1713778072.9159064},{"name":"core","consumption":7465131.0,"timestamp":1713778072.915892},{"name":"dram","consumption":868349.0,"timestamp":1713778072.9158764}],"timestamp":1713778072.9157023}]},{"host":{"consumption":15665550.0,"timestamp":1713778083.0535884,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954957824","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8236872.0,"domains":[{"name":"uncore","consumption":1435.0,"timestamp":1713778082.9920995},{"name":"core","consumption":6126665.0,"timestamp":1713778082.9918785},{"name":"dram","consumption":660562.0,"timestamp":1713778082.991654}],"timestamp":1713778082.9904716}]},{"host":{"consumption":16120235.0,"timestamp":1713778093.1263516,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954728448","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8520780.0,"domains":[{"name":"uncore","consumption":21778.0,"timestamp":1713778093.058785},{"name":"core","consumption":6411878.0,"timestamp":1713778093.0587704},{"name":"dram","consumption":687990.0,"timestamp":1713778093.058755}],"timestamp":1713778093.0585763}]},{"host":{"consumption":16046596.0,"timestamp":1713778103.2007499,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954716160","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8483392.0,"domains":[{"name":"uncore","consumption":24553.0,"timestamp":1713778103.1311922},{"name":"core","consumption":6374043.0,"timestamp":1713778103.131181},{"name":"dram","consumption":697553.0,"timestamp":1713778103.1311667}],"timestamp":1713778103.1309865}]},{"host":{"consumption":15957042.0,"timestamp":1713778113.261549,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953991168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8526762.0,"domains":[{"name":"uncore","consumption":9305.0,"timestamp":1713778113.2123566},{"name":"core","consumption":6414746.0,"timestamp":1713778113.2122111},{"name":"dram","consumption":668618.0,"timestamp":1713778113.2119734}],"timestamp":1713778113.2108254}]},{"host":{"consumption":15601428.0,"timestamp":1713778123.3766108,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953991168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8257602.0,"domains":[{"name":"uncore","consumption":1073.0,"timestamp":1713778123.2738173},{"name":"core","consumption":6212498.0,"timestamp":1713778123.273661},{"name":"dram","consumption":645039.0,"timestamp":1713778123.2734315}],"timestamp":1713778123.2723062}]},{"host":{"consumption":19030572.0,"timestamp":1713778133.4485748,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955719680","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10675758.0,"domains":[{"name":"uncore","consumption":111651.0,"timestamp":1713778133.3864427},{"name":"core","consumption":8321683.0,"timestamp":1713778133.386427},{"name":"dram","consumption":880649.0,"timestamp":1713778133.3864074}],"timestamp":1713778133.3861651}]},{"host":{"consumption":18044690.0,"timestamp":1713778143.5153856,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955723776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9966501.0,"domains":[{"name":"uncore","consumption":99055.0,"timestamp":1713778143.4558403},{"name":"core","consumption":7658628.0,"timestamp":1713778143.4558094},{"name":"dram","consumption":839877.0,"timestamp":1713778143.4557405}],"timestamp":1713778143.4554782}]},{"host":{"consumption":16208644.0,"timestamp":1713778153.6035,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152955723776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8720445.0,"domains":[{"name":"uncore","consumption":28104.0,"timestamp":1713778153.5237722},{"name":"core","consumption":6585610.0,"timestamp":1713778153.5237236},{"name":"dram","consumption":708395.0,"timestamp":1713778153.5236516}],"timestamp":1713778153.522603}]},{"host":{"consumption":16021691.0,"timestamp":1713778163.6856952,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954953728","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8491445.0,"domains":[{"name":"uncore","consumption":12070.0,"timestamp":1713778163.6114707},{"name":"core","consumption":6391293.0,"timestamp":1713778163.611446},{"name":"dram","consumption":680306.0,"timestamp":1713778163.6114204}],"timestamp":1713778163.6108978}]},{"host":{"consumption":16108650.0,"timestamp":1713778173.75182,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954937344","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8471021.0,"domains":[{"name":"uncore","consumption":13198.0,"timestamp":1713778173.6924863},{"name":"core","consumption":6370185.0,"timestamp":1713778173.692438},{"name":"dram","consumption":680392.0,"timestamp":1713778173.6923525}],"timestamp":1713778173.6921015}]},{"host":{"consumption":16630331.0,"timestamp":1713778183.8555284,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954843136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9040092.0,"domains":[{"name":"uncore","consumption":11112.0,"timestamp":1713778183.7604535},{"name":"core","consumption":6876670.0,"timestamp":1713778183.760376},{"name":"dram","consumption":709599.0,"timestamp":1713778183.7602925}],"timestamp":1713778183.759236}]},{"host":{"consumption":20623596.0,"timestamp":1713778193.9633613,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954834944","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12148391.0,"domains":[{"name":"uncore","consumption":75015.0,"timestamp":1713778193.8707},{"name":"core","consumption":9812882.0,"timestamp":1713778193.8706245},{"name":"dram","consumption":899764.0,"timestamp":1713778193.870541}],"timestamp":1713778193.8694522}]},{"host":{"consumption":17016802.0,"timestamp":1713778204.034221,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954843136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9095368.0,"domains":[{"name":"uncore","consumption":66745.0,"timestamp":1713778203.9716375},{"name":"core","consumption":6873280.0,"timestamp":1713778203.9716249},{"name":"dram","consumption":784929.0,"timestamp":1713778203.97161}],"timestamp":1713778203.971305}]},{"host":{"consumption":17112820.0,"timestamp":1713778214.1344874,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152954105856","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9360768.0,"domains":[{"name":"uncore","consumption":60661.0,"timestamp":1713778214.0423117},{"name":"core","consumption":7127434.0,"timestamp":1713778214.0422997},{"name":"dram","consumption":773353.0,"timestamp":1713778214.0422854}],"timestamp":1713778214.0420032}]},{"host":{"consumption":18903108.0,"timestamp":1713778224.2335865,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953991168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10563515.0,"domains":[{"name":"uncore","consumption":114829.0,"timestamp":1713778224.1482656},{"name":"core","consumption":8165978.0,"timestamp":1713778224.1480432},{"name":"dram","consumption":893129.0,"timestamp":1713778224.147817}],"timestamp":1713778224.1467283}]},{"host":{"consumption":16815078.0,"timestamp":1713778234.3094904,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953987072","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9073328.0,"domains":[{"name":"uncore","consumption":33808.0,"timestamp":1713778234.2399542},{"name":"core","consumption":6896834.0,"timestamp":1713778234.2399182},{"name":"dram","consumption":742332.0,"timestamp":1713778234.2398176}],"timestamp":1713778234.239405}]},{"host":{"consumption":16468905.0,"timestamp":1713778244.334961,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953974784","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8726411.0,"domains":[{"name":"uncore","consumption":51516.0,"timestamp":1713778244.31644},{"name":"core","consumption":6539256.0,"timestamp":1713778244.3163552},{"name":"dram","consumption":757700.0,"timestamp":1713778244.3162642}],"timestamp":1713778244.316021}]},{"host":{"consumption":16805254.0,"timestamp":1713778254.4097855,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953974784","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9099256.0,"domains":[{"name":"uncore","consumption":44680.0,"timestamp":1713778254.340396},{"name":"core","consumption":6936122.0,"timestamp":1713778254.3403227},{"name":"dram","consumption":744308.0,"timestamp":1713778254.3402247}],"timestamp":1713778254.3399541}]},{"host":{"consumption":16182486.0,"timestamp":1713778264.4898,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953188352","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8616916.0,"domains":[{"name":"uncore","consumption":22437.0,"timestamp":1713778264.4189432},{"name":"core","consumption":6478810.0,"timestamp":1713778264.4188635},{"name":"dram","consumption":722628.0,"timestamp":1713778264.4188013}],"timestamp":1713778264.4178174}]},{"host":{"consumption":17305524.0,"timestamp":1713778274.592418,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953188352","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9435582.0,"domains":[{"name":"uncore","consumption":76477.0,"timestamp":1713778274.4962804},{"name":"core","consumption":7187148.0,"timestamp":1713778274.4961896},{"name":"dram","consumption":795758.0,"timestamp":1713778274.4960816}],"timestamp":1713778274.4958107}]},{"host":{"consumption":18785188.0,"timestamp":1713778284.6705709,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953167872","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10446739.0,"domains":[{"name":"uncore","consumption":125444.0,"timestamp":1713778284.6004436},{"name":"core","consumption":8087918.0,"timestamp":1713778284.6003916},{"name":"dram","consumption":890058.0,"timestamp":1713778284.6003404}],"timestamp":1713778284.6000745}]},{"host":{"consumption":16213882.0,"timestamp":1713778294.7732277,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953221120","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8737510.0,"domains":[{"name":"uncore","consumption":16673.0,"timestamp":1713778294.6817791},{"name":"core","consumption":6622020.0,"timestamp":1713778294.6817255},{"name":"dram","consumption":691778.0,"timestamp":1713778294.6816595}],"timestamp":1713778294.6806479}]},{"host":{"consumption":16841598.0,"timestamp":1713778304.8395026,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152953221120","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8990070.0,"domains":[{"name":"uncore","consumption":67261.0,"timestamp":1713778304.7806199},{"name":"core","consumption":6786066.0,"timestamp":1713778304.780608},{"name":"dram","consumption":772277.0,"timestamp":1713778304.7805893}],"timestamp":1713778304.7802932}]},{"host":{"consumption":15886529.0,"timestamp":1713778314.9193351,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152952422400","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8469075.0,"domains":[{"name":"uncore","consumption":13107.0,"timestamp":1713778314.8479078},{"name":"core","consumption":6378442.0,"timestamp":1713778314.8478038},{"name":"dram","consumption":681078.0,"timestamp":1713778314.847698}],"timestamp":1713778314.8471231}]},{"host":{"consumption":16300617.0,"timestamp":1713778324.9993405,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152952422400","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8713816.0,"domains":[{"name":"uncore","consumption":22667.0,"timestamp":1713778324.9289382},{"name":"core","consumption":6595842.0,"timestamp":1713778324.9288406},{"name":"dram","consumption":698723.0,"timestamp":1713778324.9287448}],"timestamp":1713778324.9282732}]},{"host":{"consumption":16274175.0,"timestamp":1713778335.0838835,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152952406016","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8685893.0,"domains":[{"name":"uncore","consumption":1072.0,"timestamp":1713778335.0060637},{"name":"core","consumption":6599734.0,"timestamp":1713778335.006051},{"name":"dram","consumption":684139.0,"timestamp":1713778335.0060375}],"timestamp":1713778335.0058546}]},{"host":{"consumption":15490132.0,"timestamp":1713778345.1519918,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152952406016","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8027108.0,"domains":[{"name":"uncore","consumption":1077.0,"timestamp":1713778345.0918274},{"name":"core","consumption":5970722.0,"timestamp":1713778345.091758},{"name":"dram","consumption":649692.0,"timestamp":1713778345.0917196}],"timestamp":1713778345.090986}]},{"host":{"consumption":15852559.0,"timestamp":1713778355.2326415,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152952401920","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8466667.0,"domains":[{"name":"uncore","consumption":1024.0,"timestamp":1713778355.1580641},{"name":"core","consumption":6413722.0,"timestamp":1713778355.1580014},{"name":"dram","consumption":649999.0,"timestamp":1713778355.157901}],"timestamp":1713778355.157543}]},{"host":{"consumption":16240695.0,"timestamp":1713778365.3005126,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152951627776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8585786.0,"domains":[{"name":"uncore","consumption":4891.0,"timestamp":1713778365.2409782},{"name":"core","consumption":6503272.0,"timestamp":1713778365.240959},{"name":"dram","consumption":685492.0,"timestamp":1713778365.2409384}],"timestamp":1713778365.2406104}]},{"host":{"consumption":16741456.0,"timestamp":1713778375.3824499,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152951611392","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9067325.0,"domains":[{"name":"uncore","consumption":28774.0,"timestamp":1713778375.3098996},{"name":"core","consumption":6902248.0,"timestamp":1713778375.3098242},{"name":"dram","consumption":751734.0,"timestamp":1713778375.309668}],"timestamp":1713778375.3084521}]},{"host":{"consumption":16094570.0,"timestamp":1713778385.4497921,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152951390208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8522783.0,"domains":[{"name":"uncore","consumption":3094.0,"timestamp":1713778385.3902752},{"name":"core","consumption":6430091.0,"timestamp":1713778385.3902605},{"name":"dram","consumption":675185.0,"timestamp":1713778385.3902447}],"timestamp":1713778385.3900678}]},{"host":{"consumption":15702383.0,"timestamp":1713778395.5490887,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152951390208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8299491.0,"domains":[{"name":"uncore","consumption":1303.0,"timestamp":1713778395.4573636},{"name":"core","consumption":6229972.0,"timestamp":1713778395.4572694},{"name":"dram","consumption":672905.0,"timestamp":1713778395.4571745}],"timestamp":1713778395.4568045}]},{"host":{"consumption":15926298.0,"timestamp":1713778405.6472604,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152950620160","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8407060.0,"domains":[{"name":"uncore","consumption":2913.0,"timestamp":1713778405.5561535},{"name":"core","consumption":6320935.0,"timestamp":1713778405.5561402},{"name":"dram","consumption":664250.0,"timestamp":1713778405.5561228}],"timestamp":1713778405.5559301}]},{"host":{"consumption":17106012.0,"timestamp":1713778415.7178535,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152950579200","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9104477.0,"domains":[{"name":"uncore","consumption":86591.0,"timestamp":1713778415.6561277},{"name":"core","consumption":6853135.0,"timestamp":1713778415.656116},{"name":"dram","consumption":814963.0,"timestamp":1713778415.6561036}],"timestamp":1713778415.655915}]},{"host":{"consumption":20155688.0,"timestamp":1713778425.8072379,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152950501376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11732790.0,"domains":[{"name":"uncore","consumption":153072.0,"timestamp":1713778425.72294},{"name":"core","consumption":9271947.0,"timestamp":1713778425.7229323},{"name":"dram","consumption":959340.0,"timestamp":1713778425.722924}],"timestamp":1713778425.7227395}]},{"host":{"consumption":18600844.0,"timestamp":1713778435.892952,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152950497280","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10397299.0,"domains":[{"name":"uncore","consumption":127204.0,"timestamp":1713778435.8201876},{"name":"core","consumption":8062494.0,"timestamp":1713778435.8201532},{"name":"dram","consumption":901573.0,"timestamp":1713778435.8201234}],"timestamp":1713778435.8196468}]},{"host":{"consumption":18800292.0,"timestamp":1713778445.989877,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152950484992","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10658923.0,"domains":[{"name":"uncore","consumption":87654.0,"timestamp":1713778445.899361},{"name":"core","consumption":8358092.0,"timestamp":1713778445.899273},{"name":"dram","consumption":863223.0,"timestamp":1713778445.8991795}],"timestamp":1713778445.8988254}]},{"host":{"consumption":16503893.0,"timestamp":1713778456.0580692,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152949698560","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8760128.0,"domains":[{"name":"uncore","consumption":24881.0,"timestamp":1713778455.9982858},{"name":"core","consumption":6619273.0,"timestamp":1713778455.998271},{"name":"dram","consumption":722279.0,"timestamp":1713778455.9982567}],"timestamp":1713778455.9980743}]},{"host":{"consumption":16004728.0,"timestamp":1713778466.1401925,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152949706752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8535786.0,"domains":[{"name":"uncore","consumption":21513.0,"timestamp":1713778466.0670831},{"name":"core","consumption":6396448.0,"timestamp":1713778466.0669842},{"name":"dram","consumption":709696.0,"timestamp":1713778466.0668886}],"timestamp":1713778466.065791}]},{"host":{"consumption":15714509.0,"timestamp":1713778476.2077904,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152949694464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8224187.0,"domains":[{"name":"uncore","consumption":593.0,"timestamp":1713778476.1474054},{"name":"core","consumption":6164270.0,"timestamp":1713778476.147317},{"name":"dram","consumption":658405.0,"timestamp":1713778476.1472273}],"timestamp":1713778476.1469781}]},{"host":{"consumption":15509596.0,"timestamp":1713778486.2828846,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152949694464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8095696.0,"domains":[{"name":"uncore","consumption":1121.0,"timestamp":1713778486.2131784},{"name":"core","consumption":6029805.0,"timestamp":1713778486.2131019},{"name":"dram","consumption":658380.0,"timestamp":1713778486.2130163}],"timestamp":1713778486.2127774}]},{"host":{"consumption":15917170.0,"timestamp":1713778496.3726666,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152949686272","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8507946.0,"domains":[{"name":"uncore","consumption":508.0,"timestamp":1713778496.293669},{"name":"core","consumption":6425052.0,"timestamp":1713778496.2935703},{"name":"dram","consumption":674278.0,"timestamp":1713778496.293475}],"timestamp":1713778496.293092}]},{"host":{"consumption":17460936.0,"timestamp":1713778506.4403293,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152948645888","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9438790.0,"domains":[{"name":"uncore","consumption":63186.0,"timestamp":1713778506.3801222},{"name":"core","consumption":7188739.0,"timestamp":1713778506.3801115},{"name":"dram","consumption":801605.0,"timestamp":1713778506.3800988}],"timestamp":1713778506.37992}]},{"host":{"consumption":17647596.0,"timestamp":1713778516.467086,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152948502528","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9673203.0,"domains":[{"name":"uncore","consumption":63288.0,"timestamp":1713778516.4464781},{"name":"core","consumption":7367384.0,"timestamp":1713778516.4464595},{"name":"dram","consumption":781762.0,"timestamp":1713778516.4464357}],"timestamp":1713778516.4461293}]},{"host":{"consumption":17998264.0,"timestamp":1713778526.5498712,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152948396032","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9922432.0,"domains":[{"name":"uncore","consumption":93941.0,"timestamp":1713778526.4760978},{"name":"core","consumption":7568352.0,"timestamp":1713778526.47608},{"name":"dram","consumption":827088.0,"timestamp":1713778526.4760604}],"timestamp":1713778526.475664}]},{"host":{"consumption":17919348.0,"timestamp":1713778536.6171196,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152948281344","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9716069.0,"domains":[{"name":"uncore","consumption":91981.0,"timestamp":1713778536.55687},{"name":"core","consumption":7362954.0,"timestamp":1713778536.5568569},{"name":"dram","consumption":822564.0,"timestamp":1713778536.5568407}],"timestamp":1713778536.5566506}]},{"host":{"consumption":17562222.0,"timestamp":1713778546.7132726,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152948137984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9642658.0,"domains":[{"name":"uncore","consumption":83211.0,"timestamp":1713778546.6262805},{"name":"core","consumption":7284240.0,"timestamp":1713778546.6260839},{"name":"dram","consumption":808179.0,"timestamp":1713778546.6259797}],"timestamp":1713778546.624852}]},{"host":{"consumption":17814228.0,"timestamp":1713778556.7811947,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152947236864","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9663190.0,"domains":[{"name":"uncore","consumption":63607.0,"timestamp":1713778556.720838},{"name":"core","consumption":7354302.0,"timestamp":1713778556.720753},{"name":"dram","consumption":790565.0,"timestamp":1713778556.7206686}],"timestamp":1713778556.7204156}]},{"host":{"consumption":17404296.0,"timestamp":1713778566.870133,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152947122176","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9502488.0,"domains":[{"name":"uncore","consumption":50750.0,"timestamp":1713778566.7870471},{"name":"core","consumption":7210500.0,"timestamp":1713778566.78702},{"name":"dram","consumption":761710.0,"timestamp":1713778566.7869334}],"timestamp":1713778566.78662}]},{"host":{"consumption":16562229.0,"timestamp":1713778576.9380562,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152947113984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8787423.0,"domains":[{"name":"uncore","consumption":33913.0,"timestamp":1713778576.8780177},{"name":"core","consumption":6621239.0,"timestamp":1713778576.8779504},{"name":"dram","consumption":738578.0,"timestamp":1713778576.877923}],"timestamp":1713778576.8776152}]},{"host":{"consumption":16660833.0,"timestamp":1713778587.025769,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152947113984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9023139.0,"domains":[{"name":"uncore","consumption":36360.0,"timestamp":1713778586.9464016},{"name":"core","consumption":6847376.0,"timestamp":1713778586.9463885},{"name":"dram","consumption":750955.0,"timestamp":1713778586.9463744}],"timestamp":1713778586.9455016}]},{"host":{"consumption":27157940.0,"timestamp":1713778597.0935817,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152947126272","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":17499112.0,"domains":[{"name":"uncore","consumption":35800.0,"timestamp":1713778597.0323348},{"name":"core","consumption":15083170.0,"timestamp":1713778597.0323172},{"name":"dram","consumption":1039158.0,"timestamp":1713778597.0322983}],"timestamp":1713778597.032109}]},{"host":{"consumption":28478488.0,"timestamp":1713778607.1648693,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152946339840","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":18714750.0,"domains":[{"name":"uncore","consumption":44761.0,"timestamp":1713778607.1008992},{"name":"core","consumption":16264204.0,"timestamp":1713778607.1008866},{"name":"dram","consumption":1128004.0,"timestamp":1713778607.1008732}],"timestamp":1713778607.1006866}]},{"host":{"consumption":18499788.0,"timestamp":1713778617.2449539,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152946348032","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10543282.0,"domains":[{"name":"uncore","consumption":35862.0,"timestamp":1713778617.1762187},{"name":"core","consumption":8301560.0,"timestamp":1713778617.1761572},{"name":"dram","consumption":822909.0,"timestamp":1713778617.176089}],"timestamp":1713778617.175215}]},{"host":{"consumption":23262280.0,"timestamp":1713778627.2894037,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152946331648","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14149683.0,"domains":[{"name":"uncore","consumption":42079.0,"timestamp":1713778627.251147},{"name":"core","consumption":11705086.0,"timestamp":1713778627.2510552},{"name":"dram","consumption":1064990.0,"timestamp":1713778627.2509615}],"timestamp":1713778627.2506926}]},{"host":{"consumption":21524196.0,"timestamp":1713778637.3684716,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152946331648","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":13009110.0,"domains":[{"name":"uncore","consumption":28453.0,"timestamp":1713778637.2985888},{"name":"core","consumption":10682544.0,"timestamp":1713778637.2984},{"name":"dram","consumption":871337.0,"timestamp":1713778637.298218}],"timestamp":1713778637.297285}]},{"host":{"consumption":18142652.0,"timestamp":1713778647.434562,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152946593792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10150490.0,"domains":[{"name":"uncore","consumption":4452.0,"timestamp":1713778647.3748107},{"name":"core","consumption":7951602.0,"timestamp":1713778647.3747218},{"name":"dram","consumption":701909.0,"timestamp":1713778647.3746347}],"timestamp":1713778647.3743806}]},{"host":{"consumption":17666958.0,"timestamp":1713778657.503115,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152945795072","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9798788.0,"domains":[{"name":"uncore","consumption":50984.0,"timestamp":1713778657.440225},{"name":"core","consumption":7597266.0,"timestamp":1713778657.4401462},{"name":"dram","consumption":746821.0,"timestamp":1713778657.440057}],"timestamp":1713778657.4398046}]},{"host":{"consumption":19220484.0,"timestamp":1713778667.5885675,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152945782784","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11069197.0,"domains":[{"name":"uncore","consumption":77207.0,"timestamp":1713778667.5139923},{"name":"core","consumption":8749279.0,"timestamp":1713778667.5138848},{"name":"dram","consumption":857648.0,"timestamp":1713778667.5138164}],"timestamp":1713778667.5128698}]},{"host":{"consumption":20951024.0,"timestamp":1713778677.6627448,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152945745920","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12430102.0,"domains":[{"name":"uncore","consumption":69874.0,"timestamp":1713778677.599442},{"name":"core","consumption":10106482.0,"timestamp":1713778677.5993917},{"name":"dram","consumption":841225.0,"timestamp":1713778677.5993023}],"timestamp":1713778677.5990338}]},{"host":{"consumption":16926342.0,"timestamp":1713778687.7279685,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152945446912","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9035822.0,"domains":[{"name":"uncore","consumption":56728.0,"timestamp":1713778687.6679056},{"name":"core","consumption":6790726.0,"timestamp":1713778687.6678214},{"name":"dram","consumption":761855.0,"timestamp":1713778687.667737}],"timestamp":1713778687.66746}]},{"host":{"consumption":19875748.0,"timestamp":1713778697.7560825,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152945446912","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11318247.0,"domains":[{"name":"uncore","consumption":157622.0,"timestamp":1713778697.733742},{"name":"core","consumption":8787961.0,"timestamp":1713778697.733689},{"name":"dram","consumption":926546.0,"timestamp":1713778697.7336307}],"timestamp":1713778697.7332962}]},{"host":{"consumption":17565808.0,"timestamp":1713778707.8432217,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152944713728","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9708976.0,"domains":[{"name":"uncore","consumption":68045.0,"timestamp":1713778707.7646315},{"name":"core","consumption":7454607.0,"timestamp":1713778707.7645397},{"name":"dram","consumption":792112.0,"timestamp":1713778707.7644496}],"timestamp":1713778707.7642076}]},{"host":{"consumption":16271821.0,"timestamp":1713778717.9177754,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152944709632","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8585741.0,"domains":[{"name":"uncore","consumption":16722.0,"timestamp":1713778717.8493693},{"name":"core","consumption":6444695.0,"timestamp":1713778717.8493614},{"name":"dram","consumption":704756.0,"timestamp":1713778717.8493526}],"timestamp":1713778717.849184}]},{"host":{"consumption":16705390.0,"timestamp":1713778728.0240765,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152944709632","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9099752.0,"domains":[{"name":"uncore","consumption":64872.0,"timestamp":1713778727.9277136},{"name":"core","consumption":6869289.0,"timestamp":1713778727.9276729},{"name":"dram","consumption":778874.0,"timestamp":1713778727.9276247}],"timestamp":1713778727.9262896}]},{"host":{"consumption":17832512.0,"timestamp":1713778738.0924132,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152944668672","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9709509.0,"domains":[{"name":"uncore","consumption":75912.0,"timestamp":1713778738.0317535},{"name":"core","consumption":7418628.0,"timestamp":1713778738.031738},{"name":"dram","consumption":823897.0,"timestamp":1713778738.031726}],"timestamp":1713778738.0315561}]},{"host":{"consumption":20198180.0,"timestamp":1713778748.160627,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152944652288","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11694763.0,"domains":[{"name":"uncore","consumption":142257.0,"timestamp":1713778748.09847},{"name":"core","consumption":9226643.0,"timestamp":1713778748.0983844},{"name":"dram","consumption":969974.0,"timestamp":1713778748.0982988}],"timestamp":1713778748.0980463}]},{"host":{"consumption":15958849.0,"timestamp":1713778758.2308273,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943874048","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8529656.0,"domains":[{"name":"uncore","consumption":11485.0,"timestamp":1713778758.1690784},{"name":"core","consumption":6410123.0,"timestamp":1713778758.1689932},{"name":"dram","consumption":681797.0,"timestamp":1713778758.1689286}],"timestamp":1713778758.16806}]},{"host":{"consumption":24738866.0,"timestamp":1713778768.262927,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943882240","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":15562587.0,"domains":[{"name":"uncore","consumption":81832.0,"timestamp":1713778768.2387984},{"name":"core","consumption":13186542.0,"timestamp":1713778768.2387848},{"name":"dram","consumption":1013336.0,"timestamp":1713778768.2387707}],"timestamp":1713778768.2385335}]},{"host":{"consumption":19744614.0,"timestamp":1713778778.331345,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943849472","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11519386.0,"domains":[{"name":"uncore","consumption":22756.0,"timestamp":1713778778.2697496},{"name":"core","consumption":9316394.0,"timestamp":1713778778.2697268},{"name":"dram","consumption":812384.0,"timestamp":1713778778.2696981}],"timestamp":1713778778.269317}]},{"host":{"consumption":19459386.0,"timestamp":1713778788.4409165,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943845376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11461473.0,"domains":[{"name":"uncore","consumption":31296.0,"timestamp":1713778788.3407662},{"name":"core","consumption":9237161.0,"timestamp":1713778788.340537},{"name":"dram","consumption":827642.0,"timestamp":1713778788.3403227}],"timestamp":1713778788.33934}]},{"host":{"consumption":18436102.0,"timestamp":1713778798.5504792,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943853568","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10466570.0,"domains":[{"name":"uncore","consumption":29233.0,"timestamp":1713778798.45015},{"name":"core","consumption":8261108.0,"timestamp":1713778798.4501016},{"name":"dram","consumption":796075.0,"timestamp":1713778798.4500134}],"timestamp":1713778798.4496686}]},{"host":{"consumption":20001496.0,"timestamp":1713778808.640647,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943067136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11704517.0,"domains":[{"name":"uncore","consumption":54240.0,"timestamp":1713778808.5617294},{"name":"core","consumption":9452224.0,"timestamp":1713778808.5616283},{"name":"dram","consumption":781040.0,"timestamp":1713778808.5615287}],"timestamp":1713778808.5606935}]},{"host":{"consumption":18077090.0,"timestamp":1713778818.710855,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943054848","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9995364.0,"domains":[{"name":"uncore","consumption":92504.0,"timestamp":1713778818.6501791},{"name":"core","consumption":7699817.0,"timestamp":1713778818.6500888},{"name":"dram","consumption":822687.0,"timestamp":1713778818.6499984}],"timestamp":1713778818.6497564}]},{"host":{"consumption":16362333.0,"timestamp":1713778828.80112,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943038464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8835574.0,"domains":[{"name":"uncore","consumption":27299.0,"timestamp":1713778828.7198443},{"name":"core","consumption":6682977.0,"timestamp":1713778828.719802},{"name":"dram","consumption":712363.0,"timestamp":1713778828.7197506}],"timestamp":1713778828.7187848}]},{"host":{"consumption":16467553.0,"timestamp":1713778838.877483,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152943026176","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8775517.0,"domains":[{"name":"uncore","consumption":29910.0,"timestamp":1713778838.8084548},{"name":"core","consumption":6634164.0,"timestamp":1713778838.808442},{"name":"dram","consumption":710494.0,"timestamp":1713778838.8084257}],"timestamp":1713778838.8082528}]},{"host":{"consumption":16077070.0,"timestamp":1713778848.9446871,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152942239744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8514501.0,"domains":[{"name":"uncore","consumption":20074.0,"timestamp":1713778848.8842096},{"name":"core","consumption":6378392.0,"timestamp":1713778848.884195},{"name":"dram","consumption":687720.0,"timestamp":1713778848.884182}],"timestamp":1713778848.8840048}]},{"host":{"consumption":16118377.0,"timestamp":1713778859.024553,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152942026752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8688166.0,"domains":[{"name":"uncore","consumption":1685.0,"timestamp":1713778858.9515653},{"name":"core","consumption":6589562.0,"timestamp":1713778858.9514425},{"name":"dram","consumption":662978.0,"timestamp":1713778858.9513195}],"timestamp":1713778858.95085}]},{"host":{"consumption":15860850.0,"timestamp":1713778869.0948727,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152942051328","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8282485.0,"domains":[{"name":"uncore","consumption":7841.0,"timestamp":1713778869.0309985},{"name":"core","consumption":6195926.0,"timestamp":1713778869.0309856},{"name":"dram","consumption":662119.0,"timestamp":1713778869.0309694}],"timestamp":1713778869.0307913}]},{"host":{"consumption":15820916.0,"timestamp":1713778879.1628766,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152942051328","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8353632.0,"domains":[{"name":"uncore","consumption":2339.0,"timestamp":1713778879.103162},{"name":"core","consumption":6269642.0,"timestamp":1713778879.1031518},{"name":"dram","consumption":669379.0,"timestamp":1713778879.1031404}],"timestamp":1713778879.1029003}]},{"host":{"consumption":28507276.0,"timestamp":1713778889.2309678,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152942063616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":18768124.0,"domains":[{"name":"uncore","consumption":41915.0,"timestamp":1713778889.1694262},{"name":"core","consumption":16377608.0,"timestamp":1713778889.1694157},{"name":"dram","consumption":1118404.0,"timestamp":1713778889.1694038}],"timestamp":1713778889.1691332}]},{"host":{"consumption":20713548.0,"timestamp":1713778899.3085809,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152941256704","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":12419683.0,"domains":[{"name":"uncore","consumption":15095.0,"timestamp":1713778899.2372148},{"name":"core","consumption":10194320.0,"timestamp":1713778899.2372034},{"name":"dram","consumption":838509.0,"timestamp":1713778899.2371914}],"timestamp":1713778899.2369263}]},{"host":{"consumption":19035308.0,"timestamp":1713778909.378997,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152941264896","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10928281.0,"domains":[{"name":"uncore","consumption":3688.0,"timestamp":1713778909.3157477},{"name":"core","consumption":8781333.0,"timestamp":1713778909.315735},{"name":"dram","consumption":726519.0,"timestamp":1713778909.3157215}],"timestamp":1713778909.3154285}]},{"host":{"consumption":16065870.0,"timestamp":1713778919.4597495,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152941244416","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8535028.0,"domains":[{"name":"uncore","consumption":1672.0,"timestamp":1713778919.387487},{"name":"core","consumption":6419199.0,"timestamp":1713778919.387414},{"name":"dram","consumption":689804.0,"timestamp":1713778919.3873172}],"timestamp":1713778919.3863416}]},{"host":{"consumption":17734752.0,"timestamp":1713778929.5379992,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152941248512","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9834249.0,"domains":[{"name":"uncore","consumption":23697.0,"timestamp":1713778929.465888},{"name":"core","consumption":7633540.0,"timestamp":1713778929.465871},{"name":"dram","consumption":764096.0,"timestamp":1713778929.4658518}],"timestamp":1713778929.4655876}]},{"host":{"consumption":15843842.0,"timestamp":1713778939.6145253,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152941248512","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8270132.0,"domains":[{"name":"uncore","consumption":3185.0,"timestamp":1713778939.5446556},{"name":"core","consumption":6191850.0,"timestamp":1713778939.5445673},{"name":"dram","consumption":666510.0,"timestamp":1713778939.5444832}],"timestamp":1713778939.544224}]},{"host":{"consumption":16050476.0,"timestamp":1713778949.7187426,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152940462080","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8640127.0,"domains":[{"name":"uncore","consumption":6901.0,"timestamp":1713778949.627088},{"name":"core","consumption":6530049.0,"timestamp":1713778949.6270237},{"name":"dram","consumption":681281.0,"timestamp":1713778949.6269534}],"timestamp":1713778949.6258066}]},{"host":{"consumption":15882139.0,"timestamp":1713778959.7902706,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152940457984","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8307277.0,"domains":[{"name":"uncore","consumption":567.0,"timestamp":1713778959.72786},{"name":"core","consumption":6233139.0,"timestamp":1713778959.7278116},{"name":"dram","consumption":662680.0,"timestamp":1713778959.72772}],"timestamp":1713778959.7274637}]},{"host":{"consumption":15869498.0,"timestamp":1713778969.8930824,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152940437504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8485106.0,"domains":[{"name":"uncore","consumption":2520.0,"timestamp":1713778969.8003242},{"name":"core","consumption":6393264.0,"timestamp":1713778969.8000796},{"name":"dram","consumption":688495.0,"timestamp":1713778969.799851}],"timestamp":1713778969.7987456}]},{"host":{"consumption":19005580.0,"timestamp":1713778979.9788907,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152940474368","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10917105.0,"domains":[{"name":"uncore","consumption":4318.0,"timestamp":1713778979.9062507},{"name":"core","consumption":8738286.0,"timestamp":1713778979.9061534},{"name":"dram","consumption":712746.0,"timestamp":1713778979.9060626}],"timestamp":1713778979.9056907}]},{"host":{"consumption":15889825.0,"timestamp":1713778990.047049,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152940253184","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8307917.0,"domains":[{"name":"uncore","consumption":1852.0,"timestamp":1713778989.9862208},{"name":"core","consumption":6211961.0,"timestamp":1713778989.9862065},{"name":"dram","consumption":670371.0,"timestamp":1713778989.9861887}],"timestamp":1713778989.9860132}]},{"host":{"consumption":17511788.0,"timestamp":1713779000.15303,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152939466752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9808308.0,"domains":[{"name":"uncore","consumption":11485.0,"timestamp":1713779000.0560756},{"name":"core","consumption":7665499.0,"timestamp":1713779000.0558634},{"name":"dram","consumption":749424.0,"timestamp":1713779000.0556576}],"timestamp":1713779000.0546665}]},{"host":{"consumption":16421535.0,"timestamp":1713779010.2346416,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152939483136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8743779.0,"domains":[{"name":"uncore","consumption":4874.0,"timestamp":1713779010.1610498},{"name":"core","consumption":6634943.0,"timestamp":1713779010.160999},{"name":"dram","consumption":690548.0,"timestamp":1713779010.1609514}],"timestamp":1713779010.1607027}]},{"host":{"consumption":15680743.0,"timestamp":1713779020.3049817,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152939470848","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8219063.0,"domains":[{"name":"uncore","consumption":1095.0,"timestamp":1713779020.2429798},{"name":"core","consumption":6138614.0,"timestamp":1713779020.2429557},{"name":"dram","consumption":657723.0,"timestamp":1713779020.2429168}],"timestamp":1713779020.2425015}]},{"host":{"consumption":16498719.0,"timestamp":1713779030.3953385,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152939462656","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8948646.0,"domains":[{"name":"uncore","consumption":14617.0,"timestamp":1713779030.314326},{"name":"core","consumption":6824823.0,"timestamp":1713779030.3142323},{"name":"dram","consumption":712441.0,"timestamp":1713779030.314138}],"timestamp":1713779030.3135788}]},{"host":{"consumption":16712082.0,"timestamp":1713779040.472605,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152939425792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9076443.0,"domains":[{"name":"uncore","consumption":10636.0,"timestamp":1713779040.4022105},{"name":"core","consumption":6951836.0,"timestamp":1713779040.4021976},{"name":"dram","consumption":707277.0,"timestamp":1713779040.4021845}],"timestamp":1713779040.4019973}]},{"host":{"consumption":15970347.0,"timestamp":1713779050.498144,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152938647552","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8387851.0,"domains":[{"name":"uncore","consumption":6850.0,"timestamp":1713779050.4789965},{"name":"core","consumption":6279063.0,"timestamp":1713779050.478985},{"name":"dram","consumption":687153.0,"timestamp":1713779050.4789732}],"timestamp":1713779050.4788008}]},{"host":{"consumption":16211361.0,"timestamp":1713779060.545239,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152938647552","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8728988.0,"domains":[{"name":"uncore","consumption":7444.0,"timestamp":1713779060.5056376},{"name":"core","consumption":6644282.0,"timestamp":1713779060.505486},{"name":"dram","consumption":679755.0,"timestamp":1713779060.5053368}],"timestamp":1713779060.5046291}]},{"host":{"consumption":16573144.0,"timestamp":1713779070.6172113,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152938655744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8859013.0,"domains":[{"name":"uncore","consumption":18508.0,"timestamp":1713779070.55355},{"name":"core","consumption":6728934.0,"timestamp":1713779070.5535376},{"name":"dram","consumption":724941.0,"timestamp":1713779070.553524}],"timestamp":1713779070.553239}]},{"host":{"consumption":15968675.0,"timestamp":1713779080.7122705,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152938643456","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8540724.0,"domains":[{"name":"uncore","consumption":12393.0,"timestamp":1713779080.6296477},{"name":"core","consumption":6447208.0,"timestamp":1713779080.6296098},{"name":"dram","consumption":685847.0,"timestamp":1713779080.6295674}],"timestamp":1713779080.6282272}]},{"host":{"consumption":17910684.0,"timestamp":1713779090.8161547,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152938643456","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9905110.0,"domains":[{"name":"uncore","consumption":130444.0,"timestamp":1713779090.7213576},{"name":"core","consumption":7581105.0,"timestamp":1713779090.7212732},{"name":"dram","consumption":862300.0,"timestamp":1713779090.7211812}],"timestamp":1713779090.7209313}]},{"host":{"consumption":16826596.0,"timestamp":1713779100.904564,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937914368","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9055155.0,"domains":[{"name":"uncore","consumption":77555.0,"timestamp":1713779100.8293986},{"name":"core","consumption":6808553.0,"timestamp":1713779100.8292298},{"name":"dram","consumption":782856.0,"timestamp":1713779100.8290398}],"timestamp":1713779100.827891}]},{"host":{"consumption":17954162.0,"timestamp":1713779110.9817984,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937918464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9903029.0,"domains":[{"name":"uncore","consumption":82085.0,"timestamp":1713779110.9119844},{"name":"core","consumption":7665349.0,"timestamp":1713779110.9119031},{"name":"dram","consumption":799713.0,"timestamp":1713779110.9118137}],"timestamp":1713779110.9115727}]},{"host":{"consumption":17036168.0,"timestamp":1713779121.0684495,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937918464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9400484.0,"domains":[{"name":"uncore","consumption":52179.0,"timestamp":1713779120.9925644},{"name":"core","consumption":7211028.0,"timestamp":1713779120.9924488},{"name":"dram","consumption":757602.0,"timestamp":1713779120.992229}],"timestamp":1713779120.9910352}]},{"host":{"consumption":17159628.0,"timestamp":1713779131.1472354,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937926656","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9362443.0,"domains":[{"name":"uncore","consumption":82304.0,"timestamp":1713779131.0772424},{"name":"core","consumption":7122046.0,"timestamp":1713779131.0770326},{"name":"dram","consumption":784989.0,"timestamp":1713779131.076822}],"timestamp":1713779131.0757334}]},{"host":{"consumption":16968178.0,"timestamp":1713779141.2149475,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937914368","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9074315.0,"domains":[{"name":"uncore","consumption":90800.0,"timestamp":1713779141.1547177},{"name":"core","consumption":6826845.0,"timestamp":1713779141.1547048},{"name":"dram","consumption":796747.0,"timestamp":1713779141.1546912}],"timestamp":1713779141.154506}]},{"host":{"consumption":16517341.0,"timestamp":1713779151.3134944,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937127936","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8965330.0,"domains":[{"name":"uncore","consumption":70466.0,"timestamp":1713779151.2246838},{"name":"core","consumption":6762027.0,"timestamp":1713779151.2246084},{"name":"dram","consumption":755470.0,"timestamp":1713779151.2245271}],"timestamp":1713779151.2234595}]},{"host":{"consumption":17307484.0,"timestamp":1713779161.3909304,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937103360","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9325712.0,"domains":[{"name":"uncore","consumption":49885.0,"timestamp":1713779161.3223126},{"name":"core","consumption":7122705.0,"timestamp":1713779161.3223045},{"name":"dram","consumption":760077.0,"timestamp":1713779161.3222961}],"timestamp":1713779161.322125}]},{"host":{"consumption":18305468.0,"timestamp":1713779171.482923,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937058304","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10355362.0,"domains":[{"name":"uncore","consumption":79782.0,"timestamp":1713779171.4014454},{"name":"core","consumption":8073556.0,"timestamp":1713779171.4013734},{"name":"dram","consumption":816200.0,"timestamp":1713779171.4012926}],"timestamp":1713779171.4002924}]},{"host":{"consumption":18505456.0,"timestamp":1713779181.588552,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937054208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10421209.0,"domains":[{"name":"uncore","consumption":88634.0,"timestamp":1713779181.4965603},{"name":"core","consumption":8119319.0,"timestamp":1713779181.4964838},{"name":"dram","consumption":826216.0,"timestamp":1713779181.4963953}],"timestamp":1713779181.495405}]},{"host":{"consumption":17429780.0,"timestamp":1713779191.6565719,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152937046016","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9426209.0,"domains":[{"name":"uncore","consumption":90578.0,"timestamp":1713779191.5973954},{"name":"core","consumption":7164819.0,"timestamp":1713779191.5973878},{"name":"dram","consumption":804677.0,"timestamp":1713779191.5973792}],"timestamp":1713779191.5971985}]},{"host":{"consumption":18172088.0,"timestamp":1713779201.753284,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152936247296","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10160605.0,"domains":[{"name":"uncore","consumption":134823.0,"timestamp":1713779201.665971},{"name":"core","consumption":7781540.0,"timestamp":1713779201.6658947},{"name":"dram","consumption":883729.0,"timestamp":1713779201.6658468}],"timestamp":1713779201.6647305}]},{"host":{"consumption":17235452.0,"timestamp":1713779211.821759,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152936243200","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9298197.0,"domains":[{"name":"uncore","consumption":81811.0,"timestamp":1713779211.762119},{"name":"core","consumption":7048108.0,"timestamp":1713779211.7620697},{"name":"dram","consumption":800792.0,"timestamp":1713779211.762021}],"timestamp":1713779211.761791}]},{"host":{"consumption":17938002.0,"timestamp":1713779221.8977249,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152936206336","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9881089.0,"domains":[{"name":"uncore","consumption":119330.0,"timestamp":1713779221.8290174},{"name":"core","consumption":7557321.0,"timestamp":1713779221.828911},{"name":"dram","consumption":874837.0,"timestamp":1713779221.828804}],"timestamp":1713779221.8283737}]},{"host":{"consumption":16798002.0,"timestamp":1713779232.00544,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152936210432","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9176629.0,"domains":[{"name":"uncore","consumption":35129.0,"timestamp":1713779231.9062169},{"name":"core","consumption":6978706.0,"timestamp":1713779231.9061532},{"name":"dram","consumption":754076.0,"timestamp":1713779231.9060853}],"timestamp":1713779231.9051952}]},{"host":{"consumption":16507695.0,"timestamp":1713779242.0815477,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152935424000","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8775265.0,"domains":[{"name":"uncore","consumption":9758.0,"timestamp":1713779242.0135086},{"name":"core","consumption":6661140.0,"timestamp":1713779242.0134947},{"name":"dram","consumption":708098.0,"timestamp":1713779242.0134768}],"timestamp":1713779242.0132875}]},{"host":{"consumption":15866538.0,"timestamp":1713779252.147115,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152935424000","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8410933.0,"domains":[{"name":"uncore","consumption":1029.0,"timestamp":1713779252.0875256},{"name":"core","consumption":6316372.0,"timestamp":1713779252.0875032},{"name":"dram","consumption":678091.0,"timestamp":1713779252.0874794}],"timestamp":1713779252.0871027}]},{"host":{"consumption":15743678.0,"timestamp":1713779262.2271323,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152935444480","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8370854.0,"domains":[{"name":"uncore","consumption":497.0,"timestamp":1713779262.156445},{"name":"core","consumption":6289246.0,"timestamp":1713779262.1562335},{"name":"dram","consumption":666783.0,"timestamp":1713779262.1560237}],"timestamp":1713779262.1549752}]},{"host":{"consumption":17338976.0,"timestamp":1713779272.3032286,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152935452672","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9470847.0,"domains":[{"name":"uncore","consumption":27913.0,"timestamp":1713779272.234251},{"name":"core","consumption":7303088.0,"timestamp":1713779272.2342405},{"name":"dram","consumption":765635.0,"timestamp":1713779272.2342286}],"timestamp":1713779272.2340517}]},{"host":{"consumption":17239816.0,"timestamp":1713779282.369817,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152935456768","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9466944.0,"domains":[{"name":"uncore","consumption":23438.0,"timestamp":1713779282.309299},{"name":"core","consumption":7275337.0,"timestamp":1713779282.3092208},{"name":"dram","consumption":776075.0,"timestamp":1713779282.3091397}],"timestamp":1713779282.308864}]},{"host":{"consumption":16693718.0,"timestamp":1713779292.4723623,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152934440960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9121357.0,"domains":[{"name":"uncore","consumption":10145.0,"timestamp":1713779292.3796878},{"name":"core","consumption":6958026.0,"timestamp":1713779292.3794663},{"name":"dram","consumption":719963.0,"timestamp":1713779292.379243}],"timestamp":1713779292.3780332}]},{"host":{"consumption":15957342.0,"timestamp":1713779302.5373788,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152934440960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8397257.0,"domains":[{"name":"uncore","consumption":1063.0,"timestamp":1713779302.4803655},{"name":"core","consumption":6318118.0,"timestamp":1713779302.480347},{"name":"dram","consumption":670688.0,"timestamp":1713779302.4802632}],"timestamp":1713779302.4800878}]},{"host":{"consumption":16024489.0,"timestamp":1713779312.619052,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152934440960","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8559341.0,"domains":[{"name":"uncore","consumption":6954.0,"timestamp":1713779312.5470173},{"name":"core","consumption":6448383.0,"timestamp":1713779312.5469255},{"name":"dram","consumption":694130.0,"timestamp":1713779312.5468543}],"timestamp":1713779312.5457187}]},{"host":{"consumption":23071216.0,"timestamp":1713779322.6947696,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152934428672","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14056033.0,"domains":[{"name":"uncore","consumption":36874.0,"timestamp":1713779322.6256273},{"name":"core","consumption":11559774.0,"timestamp":1713779322.625553},{"name":"dram","consumption":1058001.0,"timestamp":1713779322.6254654}],"timestamp":1713779322.625211}]},{"host":{"consumption":18695448.0,"timestamp":1713779332.7679017,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152934428672","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10441833.0,"domains":[{"name":"uncore","consumption":24983.0,"timestamp":1713779332.703242},{"name":"core","consumption":8137776.0,"timestamp":1713779332.703227},{"name":"dram","consumption":912053.0,"timestamp":1713779332.7032094}],"timestamp":1713779332.702921}]},{"host":{"consumption":17137862.0,"timestamp":1713779342.871163,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152933646336","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9457530.0,"domains":[{"name":"uncore","consumption":16191.0,"timestamp":1713779342.77958},{"name":"core","consumption":7307213.0,"timestamp":1713779342.779362},{"name":"dram","consumption":738719.0,"timestamp":1713779342.7791367}],"timestamp":1713779342.777919}]},{"host":{"consumption":22560276.0,"timestamp":1713779352.9509864,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152933654528","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":14061832.0,"domains":[{"name":"uncore","consumption":11974.0,"timestamp":1713779352.881851},{"name":"core","consumption":11861738.0,"timestamp":1713779352.8817463},{"name":"dram","consumption":751037.0,"timestamp":1713779352.8815885}],"timestamp":1713779352.8806472}]},{"host":{"consumption":16085242.0,"timestamp":1713779363.019219,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152933662720","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8500506.0,"domains":[{"name":"uncore","consumption":1059.0,"timestamp":1713779362.9609694},{"name":"core","consumption":6413019.0,"timestamp":1713779362.960914},{"name":"dram","consumption":659915.0,"timestamp":1713779362.9608593}],"timestamp":1713779362.9605148}]},{"host":{"consumption":17489166.0,"timestamp":1713779373.0832603,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152933662720","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9708083.0,"domains":[{"name":"uncore","consumption":9800.0,"timestamp":1713779373.0251677},{"name":"core","consumption":7572027.0,"timestamp":1713779373.0251226},{"name":"dram","consumption":729759.0,"timestamp":1713779373.025079}],"timestamp":1713779373.0248156}]},{"host":{"consumption":16340626.0,"timestamp":1713779383.1590207,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152933662720","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8835945.0,"domains":[{"name":"uncore","consumption":4219.0,"timestamp":1713779383.092381},{"name":"core","consumption":6711124.0,"timestamp":1713779383.0921726},{"name":"dram","consumption":680159.0,"timestamp":1713779383.0919669}],"timestamp":1713779383.0910106}]},{"host":{"consumption":15704310.0,"timestamp":1713779393.2263083,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152932876288","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8199319.0,"domains":[{"name":"uncore","consumption":539.0,"timestamp":1713779393.1667635},{"name":"core","consumption":6129468.0,"timestamp":1713779393.1666791},{"name":"dram","consumption":660347.0,"timestamp":1713779393.166594}],"timestamp":1713779393.1663363}]},{"host":{"consumption":18256352.0,"timestamp":1713779403.321224,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152932839424","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10266820.0,"domains":[{"name":"uncore","consumption":133123.0,"timestamp":1713779403.2360106},{"name":"core","consumption":7905070.0,"timestamp":1713779403.2358053},{"name":"dram","consumption":915300.0,"timestamp":1713779403.2355986}],"timestamp":1713779403.2345705}]},{"host":{"consumption":16047888.0,"timestamp":1713779413.392738,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152932851712","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8439595.0,"domains":[{"name":"uncore","consumption":2823.0,"timestamp":1713779413.3298821},{"name":"core","consumption":6358749.0,"timestamp":1713779413.3298697},{"name":"dram","consumption":659196.0,"timestamp":1713779413.3298564}],"timestamp":1713779413.3295565}]},{"host":{"consumption":19185602.0,"timestamp":1713779423.4688756,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152932851712","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11159247.0,"domains":[{"name":"uncore","consumption":1666.0,"timestamp":1713779423.401538},{"name":"core","consumption":9036575.0,"timestamp":1713779423.4015303},{"name":"dram","consumption":748903.0,"timestamp":1713779423.401522}],"timestamp":1713779423.401344}]},{"host":{"consumption":19166384.0,"timestamp":1713779433.5555425,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152932839424","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10921425.0,"domains":[{"name":"uncore","consumption":136626.0,"timestamp":1713779433.475286},{"name":"core","consumption":8491875.0,"timestamp":1713779433.4752202},{"name":"dram","consumption":912724.0,"timestamp":1713779433.4751387}],"timestamp":1713779433.4742918}]},{"host":{"consumption":18883858.0,"timestamp":1713779443.6229477,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931336192","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10554818.0,"domains":[{"name":"uncore","consumption":105938.0,"timestamp":1713779443.5628278},{"name":"core","consumption":8209524.0,"timestamp":1713779443.5627787},{"name":"dram","consumption":865554.0,"timestamp":1713779443.5627296}],"timestamp":1713779443.5625181}]},{"host":{"consumption":16295558.0,"timestamp":1713779453.6936886,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931295232","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8739073.0,"domains":[{"name":"uncore","consumption":35852.0,"timestamp":1713779453.6323974},{"name":"core","consumption":6579468.0,"timestamp":1713779453.6323264},{"name":"dram","consumption":720932.0,"timestamp":1713779453.6322405}],"timestamp":1713779453.6312318}]},{"host":{"consumption":16279916.0,"timestamp":1713779463.7741277,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931291136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8762914.0,"domains":[{"name":"uncore","consumption":1521.0,"timestamp":1713779463.703506},{"name":"core","consumption":6655746.0,"timestamp":1713779463.7034302},{"name":"dram","consumption":675341.0,"timestamp":1713779463.7033434}],"timestamp":1713779463.7022796}]},{"host":{"consumption":16727345.0,"timestamp":1713779473.840159,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931274752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8895950.0,"domains":[{"name":"uncore","consumption":77330.0,"timestamp":1713779473.7809298},{"name":"core","consumption":6671507.0,"timestamp":1713779473.7809134},{"name":"dram","consumption":764552.0,"timestamp":1713779473.7808952}],"timestamp":1713779473.7806025}]},{"host":{"consumption":16210897.0,"timestamp":1713779483.9411294,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931274752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8743175.0,"domains":[{"name":"uncore","consumption":16663.0,"timestamp":1713779483.8499062},{"name":"core","consumption":6617284.0,"timestamp":1713779483.8498166},{"name":"dram","consumption":704106.0,"timestamp":1713779483.8496253}],"timestamp":1713779483.8484247}]},{"host":{"consumption":17165846.0,"timestamp":1713779494.0383985,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931274752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9361603.0,"domains":[{"name":"uncore","consumption":70871.0,"timestamp":1713779493.953605},{"name":"core","consumption":7143054.0,"timestamp":1713779493.9535053},{"name":"dram","consumption":776454.0,"timestamp":1713779493.9534185}],"timestamp":1713779493.9521666}]},{"host":{"consumption":17840616.0,"timestamp":1713779504.1096883,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931291136","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9835030.0,"domains":[{"name":"uncore","consumption":90175.0,"timestamp":1713779504.04743},{"name":"core","consumption":7569733.0,"timestamp":1713779504.0473733},{"name":"dram","consumption":813438.0,"timestamp":1713779504.0472813}],"timestamp":1713779504.0470135}]},{"host":{"consumption":17128914.0,"timestamp":1713779514.1791308,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931287040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9267812.0,"domains":[{"name":"uncore","consumption":56707.0,"timestamp":1713779514.1174216},{"name":"core","consumption":7047781.0,"timestamp":1713779514.1173346},{"name":"dram","consumption":773637.0,"timestamp":1713779514.1172478}],"timestamp":1713779514.1169913}]},{"host":{"consumption":16322564.0,"timestamp":1713779524.2873058,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931729408","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8849237.0,"domains":[{"name":"uncore","consumption":2096.0,"timestamp":1713779524.1913843},{"name":"core","consumption":6739081.0,"timestamp":1713779524.1913111},{"name":"dram","consumption":683400.0,"timestamp":1713779524.19123}],"timestamp":1713779524.1902199}]},{"host":{"consumption":17575214.0,"timestamp":1713779534.4071152,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931737600","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9709254.0,"domains":[{"name":"uncore","consumption":60471.0,"timestamp":1713779534.2996848},{"name":"core","consumption":7499002.0,"timestamp":1713779534.2994568},{"name":"dram","consumption":780756.0,"timestamp":1713779534.2992313}],"timestamp":1713779534.298122}]},{"host":{"consumption":17105016.0,"timestamp":1713779544.4904342,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931262464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9221976.0,"domains":[{"name":"uncore","consumption":94565.0,"timestamp":1713779544.4205854},{"name":"core","consumption":6956324.0,"timestamp":1713779544.4205108},{"name":"dram","consumption":806910.0,"timestamp":1713779544.4204462}],"timestamp":1713779544.4196}]},{"host":{"consumption":18227336.0,"timestamp":1713779554.5570948,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931233792","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10082923.0,"domains":[{"name":"uncore","consumption":106558.0,"timestamp":1713779554.4975998},{"name":"core","consumption":7786575.0,"timestamp":1713779554.4975178},{"name":"dram","consumption":851111.0,"timestamp":1713779554.4974356}],"timestamp":1713779554.4971888}]},{"host":{"consumption":16703315.0,"timestamp":1713779564.6220083,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931188736","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8981811.0,"domains":[{"name":"uncore","consumption":63781.0,"timestamp":1713779564.5626395},{"name":"core","consumption":6776199.0,"timestamp":1713779564.5626285},{"name":"dram","consumption":763114.0,"timestamp":1713779564.5626168}],"timestamp":1713779564.5624464}]},{"host":{"consumption":15787917.0,"timestamp":1713779574.7045534,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929509376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8419545.0,"domains":[{"name":"uncore","consumption":8504.0,"timestamp":1713779574.6319294},{"name":"core","consumption":6326119.0,"timestamp":1713779574.6318338},{"name":"dram","consumption":672605.0,"timestamp":1713779574.6316755}],"timestamp":1713779574.6305897}]},{"host":{"consumption":16278666.0,"timestamp":1713779584.7917998,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929501184","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8720046.0,"domains":[{"name":"uncore","consumption":3087.0,"timestamp":1713779584.7122662},{"name":"core","consumption":6616021.0,"timestamp":1713779584.712216},{"name":"dram","consumption":679044.0,"timestamp":1713779584.7121239}],"timestamp":1713779584.7118733}]},{"host":{"consumption":16192413.0,"timestamp":1713779594.8682997,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929288192","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8538587.0,"domains":[{"name":"uncore","consumption":18110.0,"timestamp":1713779594.7989516},{"name":"core","consumption":6430985.0,"timestamp":1713779594.7989392},{"name":"dram","consumption":696370.0,"timestamp":1713779594.7989254}],"timestamp":1713779594.7987468}]},{"host":{"consumption":17835850.0,"timestamp":1713779604.970204,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929529856","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9970056.0,"domains":[{"name":"uncore","consumption":101592.0,"timestamp":1713779604.8777127},{"name":"core","consumption":7675927.0,"timestamp":1713779604.8776011},{"name":"dram","consumption":838750.0,"timestamp":1713779604.8774297}],"timestamp":1713779604.8764682}]},{"host":{"consumption":17223184.0,"timestamp":1713779615.0406623,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929525760","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9258594.0,"domains":[{"name":"uncore","consumption":68223.0,"timestamp":1713779614.9790304},{"name":"core","consumption":7045907.0,"timestamp":1713779614.9790175},{"name":"dram","consumption":780498.0,"timestamp":1713779614.9790006}],"timestamp":1713779614.9788198}]},{"host":{"consumption":17991076.0,"timestamp":1713779625.1449158,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929284096","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10078704.0,"domains":[{"name":"uncore","consumption":118137.0,"timestamp":1713779625.0504525},{"name":"core","consumption":7757337.0,"timestamp":1713779625.0503535},{"name":"dram","consumption":873133.0,"timestamp":1713779625.0502598}],"timestamp":1713779625.0497875}]},{"host":{"consumption":17513584.0,"timestamp":1713779635.2274506,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930615296","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9576783.0,"domains":[{"name":"uncore","consumption":60600.0,"timestamp":1713779635.1544077},{"name":"core","consumption":7359064.0,"timestamp":1713779635.1543975},{"name":"dram","consumption":791838.0,"timestamp":1713779635.1543856}],"timestamp":1713779635.1542053}]},{"host":{"consumption":16749170.0,"timestamp":1713779645.2966073,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930570240","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8959166.0,"domains":[{"name":"uncore","consumption":60839.0,"timestamp":1713779645.2337449},{"name":"core","consumption":6742250.0,"timestamp":1713779645.2336698},{"name":"dram","consumption":773558.0,"timestamp":1713779645.2335942}],"timestamp":1713779645.2333434}]},{"host":{"consumption":16989764.0,"timestamp":1713779655.3732345,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930533376","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9272675.0,"domains":[{"name":"uncore","consumption":59885.0,"timestamp":1713779655.3095753},{"name":"core","consumption":7063394.0,"timestamp":1713779655.3094814},{"name":"dram","consumption":771307.0,"timestamp":1713779655.309377}],"timestamp":1713779655.307801}]},{"host":{"consumption":17140116.0,"timestamp":1713779665.4477272,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930557952","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9234038.0,"domains":[{"name":"uncore","consumption":103236.0,"timestamp":1713779665.3803775},{"name":"core","consumption":6960670.0,"timestamp":1713779665.3803644},{"name":"dram","consumption":814238.0,"timestamp":1713779665.3803484}],"timestamp":1713779665.3801663}]},{"host":{"consumption":16794568.0,"timestamp":1713779675.5222828,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929787904","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9103476.0,"domains":[{"name":"uncore","consumption":64554.0,"timestamp":1713779675.4545233},{"name":"core","consumption":6867707.0,"timestamp":1713779675.4544919},{"name":"dram","consumption":777281.0,"timestamp":1713779675.4544601}],"timestamp":1713779675.4539814}]},{"host":{"consumption":17113470.0,"timestamp":1713779685.595081,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929775616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9328894.0,"domains":[{"name":"uncore","consumption":19067.0,"timestamp":1713779685.5279496},{"name":"core","consumption":7172658.0,"timestamp":1713779685.5278647},{"name":"dram","consumption":742037.0,"timestamp":1713779685.5277736}],"timestamp":1713779685.5275266}]},{"host":{"consumption":15704562.0,"timestamp":1713779695.6625886,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929775616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8233994.0,"domains":[{"name":"uncore","consumption":1102.0,"timestamp":1713779695.6025162},{"name":"core","consumption":6144603.0,"timestamp":1713779695.6024885},{"name":"dram","consumption":668788.0,"timestamp":1713779695.6024578}],"timestamp":1713779695.6018517}]},{"host":{"consumption":15882993.0,"timestamp":1713779705.735946,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929751040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8425521.0,"domains":[{"name":"uncore","consumption":1454.0,"timestamp":1713779705.6728644},{"name":"core","consumption":6340254.0,"timestamp":1713779705.6726387},{"name":"dram","consumption":670527.0,"timestamp":1713779705.6724086}],"timestamp":1713779705.6713085}]},{"host":{"consumption":16453722.0,"timestamp":1713779715.8038971,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929751040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8795717.0,"domains":[{"name":"uncore","consumption":6570.0,"timestamp":1713779715.7429388},{"name":"core","consumption":6682553.0,"timestamp":1713779715.7428896},{"name":"dram","consumption":710866.0,"timestamp":1713779715.7428415}],"timestamp":1713779715.7425947}]},{"host":{"consumption":16692743.0,"timestamp":1713779725.8769696,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928927744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8983429.0,"domains":[{"name":"uncore","consumption":6177.0,"timestamp":1713779725.8109748},{"name":"core","consumption":6859291.0,"timestamp":1713779725.8109496},{"name":"dram","consumption":718471.0,"timestamp":1713779725.81092}],"timestamp":1713779725.8105166}]},{"host":{"consumption":19840064.0,"timestamp":1713779735.9461024,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928927744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11393125.0,"domains":[{"name":"uncore","consumption":141691.0,"timestamp":1713779735.8855553},{"name":"core","consumption":8977156.0,"timestamp":1713779735.885465},{"name":"dram","consumption":961187.0,"timestamp":1713779735.8853762}],"timestamp":1713779735.8851018}]},{"host":{"consumption":19636826.0,"timestamp":1713779746.0269625,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931147776","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11356918.0,"domains":[{"name":"uncore","consumption":126888.0,"timestamp":1713779745.9565356},{"name":"core","consumption":8981053.0,"timestamp":1713779745.9562955},{"name":"dram","consumption":941938.0,"timestamp":1713779745.9560916}],"timestamp":1713779745.9550948}]},{"host":{"consumption":16313537.0,"timestamp":1713779756.1058164,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931155968","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8716770.0,"domains":[{"name":"uncore","consumption":20905.0,"timestamp":1713779756.038003},{"name":"core","consumption":6596741.0,"timestamp":1713779756.0379858},{"name":"dram","consumption":707044.0,"timestamp":1713779756.0379667}],"timestamp":1713779756.0376678}]},{"host":{"consumption":16918090.0,"timestamp":1713779766.183226,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152931123200","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9170174.0,"domains":[{"name":"uncore","consumption":41748.0,"timestamp":1713779766.113902},{"name":"core","consumption":7009524.0,"timestamp":1713779766.1138592},{"name":"dram","consumption":757000.0,"timestamp":1713779766.113809}],"timestamp":1713779766.1130364}]},{"host":{"consumption":17507772.0,"timestamp":1713779776.2492278,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930312192","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9599310.0,"domains":[{"name":"uncore","consumption":65255.0,"timestamp":1713779776.1901767},{"name":"core","consumption":7377123.0,"timestamp":1713779776.190158},{"name":"dram","consumption":795967.0,"timestamp":1713779776.1901379}],"timestamp":1713779776.1897933}]},{"host":{"consumption":17944728.0,"timestamp":1713779786.2990508,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930299904","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9929130.0,"domains":[{"name":"uncore","consumption":121277.0,"timestamp":1713779786.2559953},{"name":"core","consumption":7611465.0,"timestamp":1713779786.2559388},{"name":"dram","consumption":869828.0,"timestamp":1713779786.2558804}],"timestamp":1713779786.255555}]},{"host":{"consumption":15806296.0,"timestamp":1713779796.38416,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930299904","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8431951.0,"domains":[{"name":"uncore","consumption":8579.0,"timestamp":1713779796.3085017},{"name":"core","consumption":6340704.0,"timestamp":1713779796.30846},{"name":"dram","consumption":678331.0,"timestamp":1713779796.3084118}],"timestamp":1713779796.3074012}]},{"host":{"consumption":16830278.0,"timestamp":1713779806.4130023,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930287616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9066258.0,"domains":[{"name":"uncore","consumption":33532.0,"timestamp":1713779806.392121},{"name":"core","consumption":6909860.0,"timestamp":1713779806.3921049},{"name":"dram","consumption":747745.0,"timestamp":1713779806.3920863}],"timestamp":1713779806.391791}]},{"host":{"consumption":16742350.0,"timestamp":1713779816.496752,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152930295808","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9069925.0,"domains":[{"name":"uncore","consumption":35908.0,"timestamp":1713779816.4222665},{"name":"core","consumption":6917287.0,"timestamp":1713779816.422244},{"name":"dram","consumption":753696.0,"timestamp":1713779816.4222198}],"timestamp":1713779816.4217944}]},{"host":{"consumption":18598028.0,"timestamp":1713779826.5682933,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929415168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10414533.0,"domains":[{"name":"uncore","consumption":62253.0,"timestamp":1713779826.5079713},{"name":"core","consumption":8149784.0,"timestamp":1713779826.507956},{"name":"dram","consumption":864867.0,"timestamp":1713779826.507944}],"timestamp":1713779826.507766}]},{"host":{"consumption":17745816.0,"timestamp":1713779836.6354957,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929415168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9828312.0,"domains":[{"name":"uncore","consumption":67946.0,"timestamp":1713779836.5758927},{"name":"core","consumption":7583864.0,"timestamp":1713779836.5757802},{"name":"dram","consumption":811525.0,"timestamp":1713779836.575659}],"timestamp":1713779836.575159}]},{"host":{"consumption":16928730.0,"timestamp":1713779846.7255683,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929406976","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9291236.0,"domains":[{"name":"uncore","consumption":46567.0,"timestamp":1713779846.6457388},{"name":"core","consumption":7111748.0,"timestamp":1713779846.645555},{"name":"dram","consumption":758997.0,"timestamp":1713779846.6453373}],"timestamp":1713779846.6443307}]},{"host":{"consumption":17730196.0,"timestamp":1713779856.7933705,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929394688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9746702.0,"domains":[{"name":"uncore","consumption":66806.0,"timestamp":1713779856.7338064},{"name":"core","consumption":7516328.0,"timestamp":1713779856.733795},{"name":"dram","consumption":802890.0,"timestamp":1713779856.7337487}],"timestamp":1713779856.7335174}]},{"host":{"consumption":16701234.0,"timestamp":1713779866.8598125,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152929382400","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8984439.0,"domains":[{"name":"uncore","consumption":38110.0,"timestamp":1713779866.7994835},{"name":"core","consumption":6837004.0,"timestamp":1713779866.7994657},{"name":"dram","consumption":738887.0,"timestamp":1713779866.7994468}],"timestamp":1713779866.7991397}]},{"host":{"consumption":16168718.0,"timestamp":1713779876.9407325,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928595968","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8716505.0,"domains":[{"name":"uncore","consumption":22019.0,"timestamp":1713779876.8670633},{"name":"core","consumption":6591846.0,"timestamp":1713779876.8669202},{"name":"dram","consumption":697212.0,"timestamp":1713779876.8668}],"timestamp":1713779876.8663688}]},{"host":{"consumption":17151124.0,"timestamp":1713779887.0094666,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928354304","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9330917.0,"domains":[{"name":"uncore","consumption":39096.0,"timestamp":1713779886.9488132},{"name":"core","consumption":7153853.0,"timestamp":1713779886.9487278},{"name":"dram","consumption":752029.0,"timestamp":1713779886.948708}],"timestamp":1713779886.9484768}]},{"host":{"consumption":16187297.0,"timestamp":1713779897.083744,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928354304","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8583965.0,"domains":[{"name":"uncore","consumption":33198.0,"timestamp":1713779897.0164032},{"name":"core","consumption":6455976.0,"timestamp":1713779897.016392},{"name":"dram","consumption":713098.0,"timestamp":1713779897.0163796}],"timestamp":1713779897.0161853}]},{"host":{"consumption":16529308.0,"timestamp":1713779907.1551769,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152928362496","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8980054.0,"domains":[{"name":"uncore","consumption":28349.0,"timestamp":1713779907.0899081},{"name":"core","consumption":6838676.0,"timestamp":1713779907.0898926},{"name":"dram","consumption":714382.0,"timestamp":1713779907.0898738}],"timestamp":1713779907.08959}]},{"host":{"consumption":19958728.0,"timestamp":1713779917.2240403,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152927580160","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11518857.0,"domains":[{"name":"uncore","consumption":92943.0,"timestamp":1713779917.164845},{"name":"core","consumption":9192476.0,"timestamp":1713779917.1647935},{"name":"dram","consumption":899580.0,"timestamp":1713779917.1647367}],"timestamp":1713779917.1644056}]},{"host":{"consumption":16834104.0,"timestamp":1713779927.2870233,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152926814208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9113495.0,"domains":[{"name":"uncore","consumption":83857.0,"timestamp":1713779927.233798},{"name":"core","consumption":6861679.0,"timestamp":1713779927.2336633},{"name":"dram","consumption":807548.0,"timestamp":1713779927.2335906}],"timestamp":1713779927.2326035}]},{"host":{"consumption":17433660.0,"timestamp":1713779937.3800478,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152926793728","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9562419.0,"domains":[{"name":"uncore","consumption":64596.0,"timestamp":1713779937.3012738},{"name":"core","consumption":7329209.0,"timestamp":1713779937.3011935},{"name":"dram","consumption":802988.0,"timestamp":1713779937.301089}],"timestamp":1713779937.3000836}]},{"host":{"consumption":18690064.0,"timestamp":1713779947.4075766,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152926441472","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10432291.0,"domains":[{"name":"uncore","consumption":125485.0,"timestamp":1713779947.3894734},{"name":"core","consumption":8074743.0,"timestamp":1713779947.3894615},{"name":"dram","consumption":893591.0,"timestamp":1713779947.389448}],"timestamp":1713779947.3892703}]},{"host":{"consumption":18660300.0,"timestamp":1713779957.4732935,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152926326784","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10490960.0,"domains":[{"name":"uncore","consumption":83533.0,"timestamp":1713779957.4134717},{"name":"core","consumption":8215404.0,"timestamp":1713779957.4134555},{"name":"dram","consumption":849327.0,"timestamp":1713779957.4134383}],"timestamp":1713779957.4132495}]},{"host":{"consumption":16391969.0,"timestamp":1713779967.5598154,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152926339072","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8839163.0,"domains":[{"name":"uncore","consumption":53621.0,"timestamp":1713779967.4802961},{"name":"core","consumption":6659806.0,"timestamp":1713779967.4801967},{"name":"dram","consumption":742988.0,"timestamp":1713779967.4801002}],"timestamp":1713779967.479557}]},{"host":{"consumption":21951676.0,"timestamp":1713779977.6288893,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152925077504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":13009377.0,"domains":[{"name":"uncore","consumption":171418.0,"timestamp":1713779977.5699525},{"name":"core","consumption":10494274.0,"timestamp":1713779977.5699186},{"name":"dram","consumption":1054027.0,"timestamp":1713779977.5698972}],"timestamp":1713779977.5695384}]},{"host":{"consumption":17424444.0,"timestamp":1713779987.7199197,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152925093888","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9580639.0,"domains":[{"name":"uncore","consumption":97375.0,"timestamp":1713779987.6388948},{"name":"core","consumption":7296496.0,"timestamp":1713779987.6386695},{"name":"dram","consumption":834796.0,"timestamp":1713779987.6384435}],"timestamp":1713779987.6372776}]},{"host":{"consumption":17152044.0,"timestamp":1713779997.7997684,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152925081600","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9324043.0,"domains":[{"name":"uncore","consumption":89158.0,"timestamp":1713779997.7300823},{"name":"core","consumption":7070095.0,"timestamp":1713779997.7300525},{"name":"dram","consumption":806334.0,"timestamp":1713779997.730023}],"timestamp":1713779997.72966}]},{"host":{"consumption":18110728.0,"timestamp":1713780007.8673046,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152924930048","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9974532.0,"domains":[{"name":"uncore","consumption":91229.0,"timestamp":1713780007.8069208},{"name":"core","consumption":7691338.0,"timestamp":1713780007.8069074},{"name":"dram","consumption":854391.0,"timestamp":1713780007.8068929}],"timestamp":1713780007.8066962}]},{"host":{"consumption":19110642.0,"timestamp":1713780017.9584239,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923848704","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10975758.0,"domains":[{"name":"uncore","consumption":125408.0,"timestamp":1713780017.8775215},{"name":"core","consumption":8623004.0,"timestamp":1713780017.877302},{"name":"dram","consumption":911132.0,"timestamp":1713780017.8770778}],"timestamp":1713780017.8759685}]},{"host":{"consumption":16496685.0,"timestamp":1713780028.0290504,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923607040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8802841.0,"domains":[{"name":"uncore","consumption":8221.0,"timestamp":1713780027.9665906},{"name":"core","consumption":6666437.0,"timestamp":1713780027.966497},{"name":"dram","consumption":706934.0,"timestamp":1713780027.966405}],"timestamp":1713780027.9661515}]},{"host":{"consumption":17864828.0,"timestamp":1713780038.0963285,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923607040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9806996.0,"domains":[{"name":"uncore","consumption":94211.0,"timestamp":1713780038.0367672},{"name":"core","consumption":7523153.0,"timestamp":1713780038.0366607},{"name":"dram","consumption":839409.0,"timestamp":1713780038.0365567}],"timestamp":1713780038.036152}]},{"host":{"consumption":16822748.0,"timestamp":1713780048.197644,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923602944","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9169791.0,"domains":[{"name":"uncore","consumption":39916.0,"timestamp":1713780048.1041873},{"name":"core","consumption":6993388.0,"timestamp":1713780048.1041183},{"name":"dram","consumption":750313.0,"timestamp":1713780048.1040213}],"timestamp":1713780048.1032753}]},{"host":{"consumption":18678872.0,"timestamp":1713780058.2663543,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923582464","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10343402.0,"domains":[{"name":"uncore","consumption":148131.0,"timestamp":1713780058.2072103},{"name":"core","consumption":7957067.0,"timestamp":1713780058.2071245},{"name":"dram","consumption":922585.0,"timestamp":1713780058.2070394}],"timestamp":1713780058.206762}]},{"host":{"consumption":20213284.0,"timestamp":1713780068.3346663,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922902528","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11773470.0,"domains":[{"name":"uncore","consumption":165267.0,"timestamp":1713780068.2724028},{"name":"core","consumption":9340006.0,"timestamp":1713780068.2723184},{"name":"dram","consumption":969113.0,"timestamp":1713780068.2722268}],"timestamp":1713780068.2719815}]},{"host":{"consumption":16366371.0,"timestamp":1713780078.4416406,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922886144","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8721166.0,"domains":[{"name":"uncore","consumption":64272.0,"timestamp":1713780078.3451676},{"name":"core","consumption":6512325.0,"timestamp":1713780078.345093},{"name":"dram","consumption":748456.0,"timestamp":1713780078.3450117}],"timestamp":1713780078.344027}]},{"host":{"consumption":17225028.0,"timestamp":1713780088.5131757,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922845184","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9339501.0,"domains":[{"name":"uncore","consumption":74996.0,"timestamp":1713780088.4505699},{"name":"core","consumption":7102138.0,"timestamp":1713780088.4504852},{"name":"dram","consumption":788502.0,"timestamp":1713780088.4503999}],"timestamp":1713780088.4501588}]},{"host":{"consumption":18659424.0,"timestamp":1713780098.5881214,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922779648","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10346767.0,"domains":[{"name":"uncore","consumption":130193.0,"timestamp":1713780098.5232346},{"name":"core","consumption":7939921.0,"timestamp":1713780098.5231893},{"name":"dram","consumption":895682.0,"timestamp":1713780098.5231113}],"timestamp":1713780098.5224936}]},{"host":{"consumption":16444576.0,"timestamp":1713780108.6186478,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922787840","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8880198.0,"domains":[{"name":"uncore","consumption":43704.0,"timestamp":1713780108.5964928},{"name":"core","consumption":6716779.0,"timestamp":1713780108.5964847},{"name":"dram","consumption":724613.0,"timestamp":1713780108.596476}],"timestamp":1713780108.5963082}]},{"host":{"consumption":15987688.0,"timestamp":1713780118.7135324,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921993216","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8475071.0,"domains":[{"name":"uncore","consumption":58115.0,"timestamp":1713780118.6261668},{"name":"core","consumption":6280401.0,"timestamp":1713780118.6257596},{"name":"dram","consumption":728529.0,"timestamp":1713780118.6256688}],"timestamp":1713780118.6246014}]},{"host":{"consumption":17768580.0,"timestamp":1713780128.7914293,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922071040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9732725.0,"domains":[{"name":"uncore","consumption":84270.0,"timestamp":1713780128.7218733},{"name":"core","consumption":7458569.0,"timestamp":1713780128.7218614},{"name":"dram","consumption":820409.0,"timestamp":1713780128.7218442}],"timestamp":1713780128.7216413}]},{"host":{"consumption":25197488.0,"timestamp":1713780138.8595648,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923095040","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":15648575.0,"domains":[{"name":"uncore","consumption":186569.0,"timestamp":1713780138.7978957},{"name":"core","consumption":12988297.0,"timestamp":1713780138.7978852},{"name":"dram","consumption":1180341.0,"timestamp":1713780138.7978737}],"timestamp":1713780138.7977054}]},{"host":{"consumption":18156734.0,"timestamp":1713780148.946424,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923054080","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10132623.0,"domains":[{"name":"uncore","consumption":103642.0,"timestamp":1713780148.869245},{"name":"core","consumption":7766535.0,"timestamp":1713780148.8690507},{"name":"dram","consumption":868303.0,"timestamp":1713780148.868856}],"timestamp":1713780148.8679154}]},{"host":{"consumption":17462388.0,"timestamp":1713780159.0245426,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152923058176","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9400848.0,"domains":[{"name":"uncore","consumption":130208.0,"timestamp":1713780158.9548566},{"name":"core","consumption":7058526.0,"timestamp":1713780158.9548037},{"name":"dram","consumption":837893.0,"timestamp":1713780158.9547517}],"timestamp":1713780158.954415}]},{"host":{"consumption":16515084.0,"timestamp":1713780169.1027718,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922292224","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8912045.0,"domains":[{"name":"uncore","consumption":56275.0,"timestamp":1713780169.0370355},{"name":"core","consumption":6696455.0,"timestamp":1713780169.036843},{"name":"dram","consumption":748289.0,"timestamp":1713780169.03664}],"timestamp":1713780169.035624}]},{"host":{"consumption":17234128.0,"timestamp":1713780179.181692,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922488832","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9349248.0,"domains":[{"name":"uncore","consumption":75361.0,"timestamp":1713780179.1137233},{"name":"core","consumption":7092576.0,"timestamp":1713780179.113675},{"name":"dram","consumption":784711.0,"timestamp":1713780179.1136}],"timestamp":1713780179.1133642}]},{"host":{"consumption":16280267.0,"timestamp":1713780189.2492008,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922189824","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8636319.0,"domains":[{"name":"uncore","consumption":1847.0,"timestamp":1713780189.1884017},{"name":"core","consumption":6489329.0,"timestamp":1713780189.1883214},{"name":"dram","consumption":683677.0,"timestamp":1713780189.1882293}],"timestamp":1713780189.187972}]},{"host":{"consumption":16865012.0,"timestamp":1713780199.346347,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922247168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9183841.0,"domains":[{"name":"uncore","consumption":80046.0,"timestamp":1713780199.2556705},{"name":"core","consumption":6932730.0,"timestamp":1713780199.2556493},{"name":"dram","consumption":785220.0,"timestamp":1713780199.2556274}],"timestamp":1713780199.255173}]},{"host":{"consumption":17039250.0,"timestamp":1713780209.3751934,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152922247168","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9130632.0,"domains":[{"name":"uncore","consumption":91907.0,"timestamp":1713780209.3558648},{"name":"core","consumption":6860084.0,"timestamp":1713780209.3558471},{"name":"dram","consumption":792901.0,"timestamp":1713780209.3558266}],"timestamp":1713780209.355492}]},{"host":{"consumption":16751239.0,"timestamp":1713780219.4551482,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921473024","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9034674.0,"domains":[{"name":"uncore","consumption":75270.0,"timestamp":1713780219.3855226},{"name":"core","consumption":6813405.0,"timestamp":1713780219.3853257},{"name":"dram","consumption":772855.0,"timestamp":1713780219.385124}],"timestamp":1713780219.3841703}]},{"host":{"consumption":17774460.0,"timestamp":1713780229.524461,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921468928","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9840644.0,"domains":[{"name":"uncore","consumption":41698.0,"timestamp":1713780229.4617844},{"name":"core","consumption":7597916.0,"timestamp":1713780229.461746},{"name":"dram","consumption":789141.0,"timestamp":1713780229.4616764}],"timestamp":1713780229.4615052}]},{"host":{"consumption":16548044.0,"timestamp":1713780239.6041903,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921468928","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8901559.0,"domains":[{"name":"uncore","consumption":81662.0,"timestamp":1713780239.5345984},{"name":"core","consumption":6664048.0,"timestamp":1713780239.5345175},{"name":"dram","consumption":761862.0,"timestamp":1713780239.5344326}],"timestamp":1713780239.5334642}]},{"host":{"consumption":15918624.0,"timestamp":1713780249.7040665,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921460736","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8471790.0,"domains":[{"name":"uncore","consumption":4954.0,"timestamp":1713780249.611915},{"name":"core","consumption":6378865.0,"timestamp":1713780249.6118298},{"name":"dram","consumption":667809.0,"timestamp":1713780249.6117435}],"timestamp":1713780249.61147}]},{"host":{"consumption":16587016.0,"timestamp":1713780259.7829344,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152921489408","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8847106.0,"domains":[{"name":"uncore","consumption":22364.0,"timestamp":1713780259.715153},{"name":"core","consumption":6713265.0,"timestamp":1713780259.715137},{"name":"dram","consumption":701335.0,"timestamp":1713780259.715121}],"timestamp":1713780259.7149491}]},{"host":{"consumption":16002779.0,"timestamp":1713780269.8546379,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920682496","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":8504106.0,"domains":[{"name":"uncore","consumption":28378.0,"timestamp":1713780269.7915666},{"name":"core","consumption":6376540.0,"timestamp":1713780269.7915485},{"name":"dram","consumption":700026.0,"timestamp":1713780269.791525}],"timestamp":1713780269.7912748}]},{"host":{"consumption":17727366.0,"timestamp":1713780279.9278245,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920690688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9801078.0,"domains":[{"name":"uncore","consumption":125739.0,"timestamp":1713780279.8642557},{"name":"core","consumption":7464919.0,"timestamp":1713780279.864206},{"name":"dram","consumption":857356.0,"timestamp":1713780279.8641577}],"timestamp":1713780279.8639498}]},{"host":{"consumption":17199318.0,"timestamp":1713780289.996472,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920678400","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9267992.0,"domains":[{"name":"uncore","consumption":93219.0,"timestamp":1713780289.9375477},{"name":"core","consumption":6993732.0,"timestamp":1713780289.937444},{"name":"dram","consumption":813090.0,"timestamp":1713780289.9373355}],"timestamp":1713780289.9369261}]},{"host":{"consumption":17862228.0,"timestamp":1713780300.0952427,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920653824","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9920753.0,"domains":[{"name":"uncore","consumption":138991.0,"timestamp":1713780300.0027535},{"name":"core","consumption":7562676.0,"timestamp":1713780300.0027092},{"name":"dram","consumption":868330.0,"timestamp":1713780300.0026588}],"timestamp":1713780300.0024266}]},{"host":{"consumption":17535352.0,"timestamp":1713780310.173602,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920670208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9444071.0,"domains":[{"name":"uncore","consumption":122325.0,"timestamp":1713780310.1045885},{"name":"core","consumption":7123599.0,"timestamp":1713780310.1045775},{"name":"dram","consumption":843803.0,"timestamp":1713780310.1045659}],"timestamp":1713780310.1043274}]},{"host":{"consumption":19852638.0,"timestamp":1713780320.253043,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152919711744","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11449541.0,"domains":[{"name":"uncore","consumption":161591.0,"timestamp":1713780320.1800232},{"name":"core","consumption":9014875.0,"timestamp":1713780320.17994},{"name":"dram","consumption":977822.0,"timestamp":1713780320.1798527}],"timestamp":1713780320.1796048}]},{"host":{"consumption":19595548.0,"timestamp":1713780330.3317156,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920006656","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":11149755.0,"domains":[{"name":"uncore","consumption":135976.0,"timestamp":1713780330.261975},{"name":"core","consumption":8766062.0,"timestamp":1713780330.2619638},{"name":"dram","consumption":953243.0,"timestamp":1713780330.2619512}],"timestamp":1713780330.2616751}]},{"host":{"consumption":17652408.0,"timestamp":1713780340.4371243,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152919994368","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9835959.0,"domains":[{"name":"uncore","consumption":108571.0,"timestamp":1713780340.3444133},{"name":"core","consumption":7522078.0,"timestamp":1713780340.3443506},{"name":"dram","consumption":838063.0,"timestamp":1713780340.3442688}],"timestamp":1713780340.343363}]},{"host":{"consumption":17882748.0,"timestamp":1713780350.5371673,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920002560","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9902772.0,"domains":[{"name":"uncore","consumption":106477.0,"timestamp":1713780350.4496903},{"name":"core","consumption":7599399.0,"timestamp":1713780350.4495337},{"name":"dram","consumption":843081.0,"timestamp":1713780350.4493275}],"timestamp":1713780350.4482377}]},{"host":{"consumption":17670250.0,"timestamp":1713780360.6051776,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152920010752","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":9645585.0,"domains":[{"name":"uncore","consumption":79829.0,"timestamp":1713780360.5458229},{"name":"core","consumption":7390739.0,"timestamp":1713780360.54581},{"name":"dram","consumption":826090.0,"timestamp":1713780360.5457416}],"timestamp":1713780360.5455098}]},{"host":{"consumption":18866160.0,"timestamp":1713780370.6962965,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"152919023616","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[],"sockets":[{"id":0,"consumption":10737069.0,"domains":[{"name":"uncore","consumption":119230.0,"timestamp":1713780370.6140137},{"name":"core","consumption":8387813.0,"timestamp":1713780370.613971},{"name":"dram","consumption":894936.0,"timestamp":1713780370.6138923}],"timestamp":1713780370.6130822}]} diff --git a/tests/mocks/formatted_scaphandre.json b/tests/mocks/formatted_scaphandre.json new file mode 100644 index 0000000..92732e6 --- /dev/null +++ b/tests/mocks/formatted_scaphandre.json @@ -0,0 +1 @@ +[{"host":{"consumption":0.0,"timestamp":1716977472.5421858,"components":{"disks":[]}},"consumers":[],"sockets":[]},{"host":{"consumption":15386704.0,"timestamp":1716977482.607643,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165635444736","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"5.1964197","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":799557.75,"timestamp":1716977482.607422,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.2058678","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":185543.3,"timestamp":1716977482.6074991,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.7707608","cpu_usage_unit":"%","memory_usage":"215318528","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":118594.68,"timestamp":1716977482.6074584,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.22376928","cpu_usage_unit":"%","memory_usage":"258383872","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34430.715,"timestamp":1716977482.6074295,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.198906","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":30605.078,"timestamp":1716977482.607402,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.13674788","cpu_usage_unit":"%","memory_usage":"288235520","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21040.992,"timestamp":1716977482.6074216,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02486325","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3825.6348,"timestamp":1716977482.6074057,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074088,"container":null},{"exe":"/tmp/.mount_ObsidihwGEey/obsidian","cmdline":"/tmp/.mount_ObsidihwGEey/obsidian --type=renderer --enable-crash-reporter=c9273532-4664-4ff7-859b-c37799f8e52d,no_channel --user-data-dir=/home/repair/.config/obsidian --standard-schemes=app --secure-schemes=app --fetch-schemes=app --streaming-schemes=app --code-cache-schemes=app --app-path=/tmp/.mount_ObsidihwGEey/resources/app.asar --no-sandbox --no-zygote --node-integration-in-worker --first-renderer-process --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1716969768092038 --launch-time-ticks=6878864841 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,14914031741360491065,9255948320221533930,262144 --enable-features=SharedArrayBuffer,kWebSQLAccess --disable-features=SpareRendererForSitePerProcess --variations-seed-version","pid":54624,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074152,"container":null},{"exe":"/usr/libexec/gsd-sharing","cmdline":"/usr/libexec/gsd-sharing","pid":2632,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074233,"container":null}],"sockets":[{"id":0,"consumption":8874299.0,"domains":[{"name":"uncore","consumption":4017.0,"timestamp":1716977482.5461433},{"name":"core","consumption":6878609.0,"timestamp":1716977482.5461092},{"name":"dram","consumption":442539.0,"timestamp":1716977482.5460715}],"timestamp":1716977482.5452397}]},{"host":{"consumption":8702530.0,"timestamp":1716977492.6876924,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165635706880","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.8009849","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":330781.84,"timestamp":1716977492.6876094,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5405985","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":134071.05,"timestamp":1716977492.6876025,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.2501578","cpu_usage_unit":"%","memory_usage":"288235520","memory_usage_unit":"Bytes","memory_virtual_usage":"5690961920","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":108795.36,"timestamp":1716977492.6875494,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.39146358","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34067.234,"timestamp":1716977492.6875472,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23992927","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20879.918,"timestamp":1716977492.6875415,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.12627858","cpu_usage_unit":"%","memory_usage":"158113792","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":10989.432,"timestamp":1716977492.687542,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID146-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{e5c359a8-f5b6-4b93-97e0-033ca794b075}8698truetab","pid":47939,"resources_usage":{"cpu_usage":"0.06313929","cpu_usage_unit":"%","memory_usage":"145711104","memory_usage_unit":"Bytes","memory_virtual_usage":"2638364672","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":5494.716,"timestamp":1716977492.687546,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037883572","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3296.8293,"timestamp":1716977492.6875496,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025255714","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2197.886,"timestamp":1716977492.687543,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.025255714","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2197.886,"timestamp":1716977492.6875465,"container":null}],"sockets":[{"id":0,"consumption":3163654.0,"domains":[{"name":"uncore","consumption":61688.0,"timestamp":1716977492.617329},{"name":"core","consumption":1271764.0,"timestamp":1716977492.6172578},{"name":"dram","consumption":490931.0,"timestamp":1716977492.6171243}],"timestamp":1716977492.6166718}]},{"host":{"consumption":10301441.0,"timestamp":1716977502.7875,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165634351104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"5.200856","cpu_usage_unit":"%","memory_usage":"587853824","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":535763.1,"timestamp":1716977502.7874088,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"1.8889308","cpu_usage_unit":"%","memory_usage":"178700288","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":194587.1,"timestamp":1716977502.7874117,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.5615162","cpu_usage_unit":"%","memory_usage":"288210944","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":160858.67,"timestamp":1716977502.7873178,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4104017","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":145291.7,"timestamp":1716977502.7873988,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.8185367","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":84321.08,"timestamp":1716977502.7873533,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.35260043","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":36322.926,"timestamp":1716977502.7873154,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.17630021","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18161.463,"timestamp":1716977502.787301,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.12592873","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":12972.474,"timestamp":1716977502.7873018,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025185745","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2594.4946,"timestamp":1716977502.7873032,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.025185745","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2594.4946,"timestamp":1716977502.7873144,"container":null}],"sockets":[{"id":0,"consumption":4301037.0,"domains":[{"name":"uncore","consumption":135187.0,"timestamp":1716977502.6985276},{"name":"core","consumption":2216672.0,"timestamp":1716977502.6984708},{"name":"dram","consumption":628749.0,"timestamp":1716977502.6984143}],"timestamp":1716977502.697563}]},{"host":{"consumption":7995616.0,"timestamp":1716977512.8923075,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165634002944","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6235793","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":129815.164,"timestamp":1716977512.8920734,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.6619208","cpu_usage_unit":"%","memory_usage":"288210944","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":52924.645,"timestamp":1716977512.8918762,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.3996503","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":31954.504,"timestamp":1716977512.8918695,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23729238","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18972.988,"timestamp":1716977512.8918462,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21231423","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":16975.83,"timestamp":1716977512.8918936,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.11240165","cpu_usage_unit":"%","memory_usage":"148160512","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":8987.204,"timestamp":1716977512.8918471,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.04995629","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3994.313,"timestamp":1716977512.8918774,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024978144","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1997.1565,"timestamp":1716977512.8918502,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012489072","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":998.57825,"timestamp":1716977512.8918536,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012489072","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":998.57825,"timestamp":1716977512.8918567,"container":null}],"sockets":[{"id":0,"consumption":2627446.0,"domains":[{"name":"uncore","consumption":27832.0,"timestamp":1716977512.8012142},{"name":"core","consumption":825012.0,"timestamp":1716977512.8011284},{"name":"dram","consumption":423426.0,"timestamp":1716977512.8009913}],"timestamp":1716977512.79996}]},{"host":{"consumption":10608977.0,"timestamp":1716977522.9950569,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633617920","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.9655175","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":526790.6,"timestamp":1716977522.994941,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.893417","cpu_usage_unit":"%","memory_usage":"289783808","memory_usage_unit":"Bytes","memory_virtual_usage":"5693411328","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":200872.17,"timestamp":1716977522.9948015,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.3918495","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":147661.0,"timestamp":1716977522.9949272,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"1.2539184","cpu_usage_unit":"%","memory_usage":"240635904","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133027.92,"timestamp":1716977522.9949443,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9404388","cpu_usage_unit":"%","memory_usage":"217534464","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":99770.94,"timestamp":1716977522.994869,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.36363637","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":38578.098,"timestamp":1716977522.9947972,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2507837","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":26605.586,"timestamp":1716977522.99477,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05015674","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":5321.1167,"timestamp":1716977522.9948022,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02507837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2660.5583,"timestamp":1716977522.994776,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.02507837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2660.5583,"timestamp":1716977522.9947782,"container":null}],"sockets":[{"id":0,"consumption":4585682.0,"domains":[{"name":"uncore","consumption":130765.0,"timestamp":1716977522.9082603},{"name":"core","consumption":2513956.0,"timestamp":1716977522.9080117},{"name":"dram","consumption":625456.0,"timestamp":1716977522.9079459}],"timestamp":1716977522.9069028}]},{"host":{"consumption":9096160.0,"timestamp":1716977533.0356677,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633359872","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"5.0913672","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":463118.9,"timestamp":1716977533.0355194,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"2.621298","cpu_usage_unit":"%","memory_usage":"213168128","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":238437.47,"timestamp":1716977533.0355217,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.7013233","cpu_usage_unit":"%","memory_usage":"288268288","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":154755.1,"timestamp":1716977533.0354176,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5122874","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":137560.08,"timestamp":1716977533.035509,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9073724","cpu_usage_unit":"%","memory_usage":"218583040","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":82536.05,"timestamp":1716977533.0354633,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37807184","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"29954048","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34390.02,"timestamp":1716977533.035414,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.2268431","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20634.012,"timestamp":1716977533.035426,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2142407","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19487.678,"timestamp":1716977533.035395,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.07561436","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":6878.0034,"timestamp":1716977533.0354347,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05040958","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4585.3364,"timestamp":1716977533.035418,"container":null}],"sockets":[{"id":0,"consumption":3378626.0,"domains":[{"name":"uncore","consumption":120543.0,"timestamp":1716977533.0090463},{"name":"core","consumption":1409306.0,"timestamp":1716977533.0089488},{"name":"dram","consumption":545487.0,"timestamp":1716977533.0087752}],"timestamp":1716977533.007695}]},{"host":{"consumption":8192978.0,"timestamp":1716977543.1406338,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633028096","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.6913054","cpu_usage_unit":"%","memory_usage":"572862464","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":138568.28,"timestamp":1716977543.1404707,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.528439","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":125224.67,"timestamp":1716977543.1404517,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.4134302","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33872.246,"timestamp":1716977543.1402981,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37584567","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":30792.953,"timestamp":1716977543.1402924,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.23803557","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19502.203,"timestamp":1716977543.140315,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.15033826","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":12317.181,"timestamp":1716977543.140263,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.037584566","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"8994816","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3079.2952,"timestamp":1716977543.1403224,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025056379","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2052.8635,"timestamp":1716977543.140276,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.025056379","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2052.8635,"timestamp":1716977543.140299,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012528189","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1026.4318,"timestamp":1716977543.1402783,"container":null}],"sockets":[{"id":0,"consumption":2908598.0,"domains":[{"name":"uncore","consumption":36072.0,"timestamp":1716977543.0476134},{"name":"core","consumption":1116375.0,"timestamp":1716977543.0474162},{"name":"dram","consumption":420343.0,"timestamp":1716977543.0472183}],"timestamp":1716977543.0461595}]},{"host":{"consumption":8751096.0,"timestamp":1716977553.2451942,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165632688128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.0692453","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":268592.6,"timestamp":1716977553.2449682,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4472864","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":126653.42,"timestamp":1716977553.2449527,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.0106051","cpu_usage_unit":"%","memory_usage":"215711744","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":88439.02,"timestamp":1716977553.2448888,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.7735496","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":67694.07,"timestamp":1716977553.244832,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.3867748","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33847.035,"timestamp":1716977553.2448263,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.29943857","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":26204.156,"timestamp":1716977553.2448025,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.23705553","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20744.957,"timestamp":1716977553.244844,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.11228946","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":9826.559,"timestamp":1716977553.2448049,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.04990643","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4367.3594,"timestamp":1716977553.2448325,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024953214","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2183.6797,"timestamp":1716977553.2448082,"container":null}],"sockets":[{"id":0,"consumption":3198244.0,"domains":[{"name":"uncore","consumption":59549.0,"timestamp":1716977553.1556501},{"name":"core","consumption":1330320.0,"timestamp":1716977553.155449},{"name":"dram","consumption":483875.0,"timestamp":1716977553.1552622}],"timestamp":1716977553.1543906}]},{"host":{"consumption":15109567.0,"timestamp":1716977563.327964,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165632421888","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"8.837093","cpu_usage_unit":"%","memory_usage":"579706880","memory_usage_unit":"Bytes","memory_virtual_usage":"13076848640","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1335246.5,"timestamp":1716977563.3278809,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID1-isForBrowser-prefsLen36211-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7c2e7722-9971-4f16-b931-3487c81b519f}8698truetab","pid":9002,"resources_usage":{"cpu_usage":"1.7449832","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":263659.4,"timestamp":1716977563.3278723,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.5704848","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":237293.45,"timestamp":1716977563.3277879,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID190-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{9ebf4a49-d4bc-4e57-bcc3-7a6e303217e6}8698truetab","pid":70773,"resources_usage":{"cpu_usage":"1.4832357","cpu_usage_unit":"%","memory_usage":"212213760","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":224110.5,"timestamp":1716977563.3278968,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.1093107","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":167612.05,"timestamp":1716977563.3278716,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.6107441","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":92280.79,"timestamp":1716977563.3278267,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.27421165","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":41432.19,"timestamp":1716977563.327783,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.22435498","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33899.066,"timestamp":1716977563.327796,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.16203415","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":24482.658,"timestamp":1716977563.3277645,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.09971332","cpu_usage_unit":"%","memory_usage":"148008960","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15066.251,"timestamp":1716977563.3277717,"container":null}],"sockets":[{"id":0,"consumption":8017529.0,"domains":[{"name":"uncore","consumption":176220.0,"timestamp":1716977563.2595258},{"name":"core","consumption":5658539.0,"timestamp":1716977563.2594674},{"name":"dram","consumption":916792.0,"timestamp":1716977563.2594018}],"timestamp":1716977563.2584677}]},{"host":{"consumption":10006593.0,"timestamp":1716977573.4419546,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631950848","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.8938828","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":489710.94,"timestamp":1716977573.4418433,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.4606742","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691256832","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":146163.72,"timestamp":1716977573.4417174,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.3857677","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":138668.14,"timestamp":1716977573.4418309,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.1485642","cpu_usage_unit":"%","memory_usage":"209027072","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":114932.15,"timestamp":1716977573.4417703,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID191-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{54e59378-706f-4028-af5a-d058f1d750fd}8698truetab","pid":71149,"resources_usage":{"cpu_usage":"0.9238452","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":92445.43,"timestamp":1716977573.4417727,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37453184","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":37477.875,"timestamp":1716977573.441708,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.27465668","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":27483.777,"timestamp":1716977573.4416912,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4416962,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4416995,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4417179,"container":null}],"sockets":[{"id":0,"consumption":4110466.0,"domains":[{"name":"uncore","consumption":118189.0,"timestamp":1716977573.3409705},{"name":"core","consumption":2058111.0,"timestamp":1716977573.3409371},{"name":"dram","consumption":633985.0,"timestamp":1716977573.3408978}],"timestamp":1716977573.339861}]},{"host":{"consumption":9042197.0,"timestamp":1716977583.5255575,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631664128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.637826","cpu_usage_unit":"%","memory_usage":"595918848","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":419361.38,"timestamp":1716977583.5254307,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4711382","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133023.22,"timestamp":1716977583.5254192,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID196-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7f03b169-af17-446a-b4ea-fa74cfe97f73}8698truetab","pid":71954,"resources_usage":{"cpu_usage":"1.4711382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133023.22,"timestamp":1716977583.5253685,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.2965964","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691183104","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":117240.805,"timestamp":1716977583.5253036,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.0597183","cpu_usage_unit":"%","memory_usage":"205684736","memory_usage_unit":"Bytes","memory_virtual_usage":"2714714112","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":95821.81,"timestamp":1716977583.5253606,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.39895275","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":36074.094,"timestamp":1716977583.525293,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.21194364","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19164.361,"timestamp":1716977583.525274,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.049869094","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4509.2617,"timestamp":1716977583.525304,"container":null},{"exe":"/usr/sbin/irqbalance","cmdline":"/usr/sbin/irqbalance--foreground","pid":577,"resources_usage":{"cpu_usage":"0.0124672735","cpu_usage_unit":"%","memory_usage":"4063232","memory_usage_unit":"Bytes","memory_virtual_usage":"84791296","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1127.3154,"timestamp":1716977583.5252724,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.0124672735","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"1695281152","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1127.3154,"timestamp":1716977583.52528,"container":null}],"sockets":[{"id":0,"consumption":3358757.0,"domains":[{"name":"uncore","consumption":96416.0,"timestamp":1716977583.4555578},{"name":"core","consumption":1402343.0,"timestamp":1716977583.4554253},{"name":"dram","consumption":538797.0,"timestamp":1716977583.4552252}],"timestamp":1716977583.454266}]},{"host":{"consumption":8680831.0,"timestamp":1716977593.6256437,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631238144","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.14216","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":359573.9,"timestamp":1716977593.6254854,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5392317","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133618.1,"timestamp":1716977593.6254647,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.126267","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":97769.33,"timestamp":1716977593.6253445,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID196-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7f03b169-af17-446a-b4ea-fa74cfe97f73}8698truetab","pid":71954,"resources_usage":{"cpu_usage":"1.0762107","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":93424.04,"timestamp":1716977593.6254094,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9260418","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":80388.125,"timestamp":1716977593.6254005,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4004505","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"29954048","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34762.43,"timestamp":1716977593.6253297,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23776749","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20640.193,"timestamp":1716977593.6253123,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.050056312","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4345.3037,"timestamp":1716977593.6253457,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025028156","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2172.6519,"timestamp":1716977593.6253176,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012514078","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1086.3259,"timestamp":1716977593.6253195,"container":null}],"sockets":[{"id":0,"consumption":3094350.0,"domains":[{"name":"uncore","consumption":99460.0,"timestamp":1716977593.538002},{"name":"core","consumption":1140188.0,"timestamp":1716977593.5378692},{"name":"dram","consumption":528624.0,"timestamp":1716977593.5377688}],"timestamp":1716977593.536801}]},{"host":{"consumption":7735458.0,"timestamp":1716977603.7409463,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630869504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.8759379","cpu_usage_unit":"%","memory_usage":"575188992","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":145112.39,"timestamp":1716977603.7408333,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6633317","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":128666.33,"timestamp":1716977603.7408211,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.75037515","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":58044.953,"timestamp":1716977603.7406163,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4252126","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":32892.14,"timestamp":1716977603.7406054,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.25012508","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19348.32,"timestamp":1716977603.7405868,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037518762","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2902.248,"timestamp":1716977603.7406173,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025012508","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1934.832,"timestamp":1716977603.7405918,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.740594,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.7405956,"container":null},{"exe":"","cmdline":"","pid":15,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.7405977,"container":null}],"sockets":[{"id":0,"consumption":2476821.0,"domains":[{"name":"uncore","consumption":36145.0,"timestamp":1716977603.6393006},{"name":"core","consumption":697203.0,"timestamp":1716977603.6392395},{"name":"dram","consumption":410732.0,"timestamp":1716977603.6391714}],"timestamp":1716977603.6382167}]},{"host":{"consumption":8125451.0,"timestamp":1716977613.846466,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630558208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"2.0171833","cpu_usage_unit":"%","memory_usage":"576417792","memory_usage_unit":"Bytes","memory_virtual_usage":"4490244096","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":163905.23,"timestamp":1716977613.8463292,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6062757","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":130517.14,"timestamp":1716977613.8463147,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.5727805","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":46540.996,"timestamp":1716977613.8461592,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.41090772","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33388.105,"timestamp":1716977613.8461483,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.26148674","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21246.977,"timestamp":1716977613.8461282,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.26148674","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21246.977,"timestamp":1716977613.8461723,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037355248","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3035.2825,"timestamp":1716977613.84616,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.037355248","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"8994816","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3035.2825,"timestamp":1716977613.8461783,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.012451749","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1011.7608,"timestamp":1716977613.846134,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012451749","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1011.7608,"timestamp":1716977613.846136,"container":null}],"sockets":[{"id":0,"consumption":2766066.0,"domains":[{"name":"uncore","consumption":46117.0,"timestamp":1716977613.7545826},{"name":"core","consumption":945383.0,"timestamp":1716977613.7544835},{"name":"dram","consumption":440501.0,"timestamp":1716977613.754324}],"timestamp":1716977613.7533238}]},{"host":{"consumption":8471964.0,"timestamp":1716977623.946951,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630218240","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.4279995","cpu_usage_unit":"%","memory_usage":"578453504","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":290418.88,"timestamp":1716977623.9467158,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5638683","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":132490.36,"timestamp":1716977623.9466991,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9633429","cpu_usage_unit":"%","memory_usage":"210722816","memory_usage_unit":"Bytes","memory_virtual_usage":"2714697728","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":81614.06,"timestamp":1716977623.9466288,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.8632554","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":73134.69,"timestamp":1716977623.9465652,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.41286126","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34977.457,"timestamp":1716977623.9465582,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.237708","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20138.537,"timestamp":1716977623.9465327,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21268609","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18018.69,"timestamp":1716977623.946579,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.050043788","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4239.692,"timestamp":1716977623.946535,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.03753284","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3179.7688,"timestamp":1716977623.9465384,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.03753284","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3179.7688,"timestamp":1716977623.9465659,"container":null}],"sockets":[{"id":0,"consumption":2983013.0,"domains":[{"name":"uncore","consumption":68528.0,"timestamp":1716977623.8590598},{"name":"core","consumption":1123070.0,"timestamp":1716977623.8590298},{"name":"dram","consumption":486919.0,"timestamp":1716977623.8589842}],"timestamp":1716977623.8584068}]},{"host":{"consumption":7894296.0,"timestamp":1716977634.0263162,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629890560","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.8252281","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":144088.9,"timestamp":1716977634.0262015,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6127017","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":127311.445,"timestamp":1716977634.0261931,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.51256406","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":40463.324,"timestamp":1716977634.026117,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.42505312","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33554.953,"timestamp":1716977634.0261097,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2375297","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18751.297,"timestamp":1716977634.0260992,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21252656","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":16777.477,"timestamp":1716977634.0261252,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037504688","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2960.731,"timestamp":1716977634.0261176,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025003124","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1973.8207,"timestamp":1716977634.0261025,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.025003124","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1973.8207,"timestamp":1716977634.0261297,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012501562","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":986.91034,"timestamp":1716977634.0261035,"container":null}],"sockets":[{"id":0,"consumption":2620553.0,"domains":[{"name":"uncore","consumption":25527.0,"timestamp":1716977633.96097},{"name":"core","consumption":852530.0,"timestamp":1716977633.9609094},{"name":"dram","consumption":399688.0,"timestamp":1716977633.9608097}],"timestamp":1716977633.9597557}]},{"host":{"consumption":7423857.0,"timestamp":1716977644.123363,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629554688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4493821","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33361.484,"timestamp":1716977644.1230636,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.28710523","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21314.281,"timestamp":1716977644.1230478,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21220821","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15754.034,"timestamp":1716977644.123086,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.049931347","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3706.8318,"timestamp":1716977644.1230745,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024965674","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1853.4159,"timestamp":1716977644.1230526,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID4-isForBrowser-prefsLen31781-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{d212b5eb-2e47-442c-9b4e-49abb9ff925d}8698truetab","pid":9280,"resources_usage":{"cpu_usage":"0.024965674","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1853.4159,"timestamp":1716977644.1230917,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.1230552,"container":null},{"exe":"/tmp/.mount_ObsidihwGEey/obsidian","cmdline":"/tmp/.mount_ObsidihwGEey/obsidian --type=renderer --enable-crash-reporter=c9273532-4664-4ff7-859b-c37799f8e52d,no_channel --user-data-dir=/home/repair/.config/obsidian --standard-schemes=app --secure-schemes=app --fetch-schemes=app --streaming-schemes=app --code-cache-schemes=app --app-path=/tmp/.mount_ObsidihwGEey/resources/app.asar --no-sandbox --no-zygote --node-integration-in-worker --first-renderer-process --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1716969768092038 --launch-time-ticks=6878864841 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,14914031741360491065,9255948320221533930,262144 --enable-features=SharedArrayBuffer,kWebSQLAccess --disable-features=SpareRendererForSitePerProcess --variations-seed-version","pid":54624,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"272146432","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.123058,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.123062,"container":null},{"exe":"","cmdline":"","pid":35,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.1230881,"container":null}],"sockets":[{"id":0,"consumption":2372901.0,"domains":[{"name":"uncore","consumption":399.0,"timestamp":1716977644.0373497},{"name":"core","consumption":698223.0,"timestamp":1716977644.037283},{"name":"dram","consumption":347577.0,"timestamp":1716977644.0371664}],"timestamp":1716977644.0360177}]},{"host":{"consumption":7907386.0,"timestamp":1716977654.2156131,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629231104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"2.101576","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":166179.73,"timestamp":1716977654.2154784,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6762571","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":132548.12,"timestamp":1716977654.2154403,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.6504879","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691183104","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":51436.59,"timestamp":1716977654.2153401,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.45033777","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":35609.945,"timestamp":1716977654.2153306,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.262697","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20772.467,"timestamp":1716977654.2153149,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.20015012","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15826.643,"timestamp":1716977654.215351,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05003753","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3956.6606,"timestamp":1716977654.2153409,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025018765","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1978.3303,"timestamp":1716977654.2153192,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012509382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":989.16516,"timestamp":1716977654.2153223,"container":null},{"exe":"","cmdline":"","pid":15,"resources_usage":{"cpu_usage":"0.012509382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":989.16516,"timestamp":1716977654.2153242,"container":null}],"sockets":[{"id":0,"consumption":2587950.0,"domains":[{"name":"uncore","consumption":70320.0,"timestamp":1716977654.136874},{"name":"core","consumption":761085.0,"timestamp":1716977654.1366742},{"name":"dram","consumption":460356.0,"timestamp":1716977654.1364748}],"timestamp":1716977654.1353571}]} diff --git a/tests/mocks/get_metrics_not_verbose.json b/tests/mocks/get_metrics_not_verbose.json new file mode 100644 index 0000000..6119b3e --- /dev/null +++ b/tests/mocks/get_metrics_not_verbose.json @@ -0,0 +1 @@ +{"emissions_calculation_data": {"energy_consumption_warning": "The time window is lower than one hour, but the energy consumption estimate is in Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be careful with this data. "}, "location_warning": {"warning_message": "Location is either set as default, or has not been set, and is therefore set to the default BoaviztAPI location. Be aware that the presented results can be drastically different due to location. It is recommended that you set the asset location with the corresponding country code, see: https://doc.api.boavizta.org/Explanations/usage/countries/"}, "total_operational_emissions": {"value": {"value": 40.72, "min": 40.72, "max": 40.72}, "description": "GHG emissions related to usage, from start_time to end_time.", "type": "gauge", "unit": "kg CO2eq", "long_unit": "kilograms CO2 equivalent"}, "total_operational_abiotic_resources_depletion": {"value": {"value": 6.883e-06, "min": 6.883e-06, "max": 6.883e-06}, "description": "Abiotic Resources Depletion (minerals & metals, ADPe) due to the usage phase.", "type": "gauge", "unit": "kgSbeq", "long_unit": "kilograms Antimony equivalent"}, "total_operational_primary_energy_consumed": {"value": {"value": 1379.0, "min": 1379.0, "max": 1379.0}, "description": "Primary Energy consumed due to the usage phase.", "type": "gauge", "unit": "MJ", "long_unit": "Mega Joules"}, "start_time": {"value": 1714047030.8907304, "description": "Start time for the evaluation, in timestamp format (seconds since 1970)", "type": "counter", "unit": "s", "long_unit": "seconds"}, "end_time": {"value": 1714050630.8907304, "description": "End time for the evaluation, in timestamp format (seconds since 1970)", "type": "counter", "unit": "s", "long_unit": "seconds"}, "average_power_measured": {"value": 3.0582353333333336, "description": "Average power measured from start_time to end_time", "type": "gauge", "unit": "W", "long_unit": "Watts"}, "embedded_emissions": {"value": 900.0, "description": "Embedded carbon emissions (manufacturing phase)", "type": "gauge", "unit": "kg CO2eq", "long_unit": "kilograms CO2 equivalent"}, "embedded_abiotic_resources_depletion": {"value": 0.14, "description": "Embedded abiotic ressources consumed (manufacturing phase)", "type": "gauge", "unit": "kg Sbeq", "long_unit": "kilograms ADP equivalent"}, "embedded_primary_energy": {"value": 13000.0, "description": "Embedded primary energy consumed (manufacturing phase)", "type": "gauge", "unit": "MJ", "long_unit": "Mega Joules"}} \ No newline at end of file diff --git a/tests/mocks/get_metrics_verbose.json b/tests/mocks/get_metrics_verbose.json new file mode 100644 index 0000000..98104c9 --- /dev/null +++ b/tests/mocks/get_metrics_verbose.json @@ -0,0 +1,1644 @@ +{ + "emissions_calculation_data": { + "energy_consumption_warning": "The time window is lower than one hour, but the energy consumption estimate is in Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be careful with this data. " + }, + "location_warning": { + "warning_message": "Location is either set as default, or has not been set, and is therefore set to the default BoaviztAPI location. Be aware that the presented results can be drastically different due to location. It is recommended that you set the asset location with the corresponding country code, see: https://doc.api.boavizta.org/Explanations/usage/countries/" + }, + "total_operational_emissions": { + "value": { + "value": 138.6, + "min": 138.6, + "max": 138.6 + }, + "description": "GHG emissions related to usage, from start_time to end_time.", + "type": "gauge", + "unit": "kg CO2eq", + "long_unit": "kilograms CO2 equivalent" + }, + "total_operational_abiotic_resources_depletion": { + "value": { + "value": 0.00002342, + "min": 0.00002342, + "max": 0.00002342 + }, + "description": "Abiotic Resources Depletion (minerals & metals, ADPe) due to the usage phase.", + "type": "gauge", + "unit": "kgSbeq", + "long_unit": "kilograms Antimony equivalent" + }, + "total_operational_primary_energy_consumed": { + "value": { + "value": 4694, + "min": 4694, + "max": 4694 + }, + "description": "Primary Energy consumed due to the usage phase.", + "type": "gauge", + "unit": "MJ", + "long_unit": "Mega Joules" + }, + "start_time": { + "value": 1717500637.2979465, + "description": "Start time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds" + }, + "end_time": { + "value": 1717504237.2979465, + "description": "End time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds" + }, + "average_power_measured": { + "value": 10.4062055, + "description": "Average power measured from start_time to end_time", + "type": "gauge", + "unit": "W", + "long_unit": "Watts" + }, + "embedded_emissions": { + "value": 900, + "description": "Embedded carbon emissions (manufacturing phase)", + "type": "gauge", + "unit": "kg CO2eq", + "long_unit": "kilograms CO2 equivalent" + }, + "embedded_abiotic_resources_depletion": { + "value": 0.14, + "description": "Embedded abiotic ressources consumed (manufacturing phase)", + "type": "gauge", + "unit": "kg Sbeq", + "long_unit": "kilograms ADP equivalent" + }, + "embedded_primary_energy": { + "value": 13000, + "description": "Embedded primary energy consumed (manufacturing phase)", + "type": "gauge", + "unit": "MJ", + "long_unit": "Mega Joules" + }, + "raw_data": { + "hardware_data": { + "disks": [ + { + "units": 1, + "logicalname": "/dev/nvme0n1", + "manufacturer": "toshiba", + "type": "ssd", + "capacity": 238 + } + ], + "cpus": [ + { + "units": 1, + "name": "Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz", + "vendor": "Intel Corp.", + "core_units": "4" + } + ], + "rams": [ + { + "units": 1, + "manufacturer": "Micron", + "capacity": 4 + }, + { + "units": 1, + "manufacturer": "Micron", + "capacity": 4 + } + ] + }, + "resources_data": "not implemented yet", + "boaviztapi_data": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 900, + "min": 461.8, + "max": 2089, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 138.6, + "min": 138.6, + "max": 138.6 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.14, + "min": 0.09758, + "max": 0.2132, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.00002342, + "min": 0.00002342, + "max": 0.00002342 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 13000, + "min": 6138, + "max": 27090, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 4694, + "min": 4694, + "max": 4694 + } + } + }, + "verbose": { + "duration": { + "value": 35040, + "unit": "hours" + }, + "ASSEMBLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 6.68, + "min": 6.68, + "max": 6.68, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.00000141, + "min": 0.00000141, + "max": 0.00000141, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 68.6, + "min": 68.6, + "max": 68.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CPU-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 40, + "min": 21.84, + "max": 163.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 10000, + "min": 587.5, + "max": 28900 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.04081, + "min": 0.0408, + "max": 0.04084, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0016, + "min": 0.0003382, + "max": 0.006783 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 600, + "min": 359.9, + "max": 2267, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 300000, + "min": 332, + "max": 11960000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "units": { + "value": 2, + "status": "ARCHETYPE", + "min": 2, + "max": 2 + }, + "die_size": { + "value": 521, + "status": "COMPLETED", + "unit": "mm2", + "source": "Average value for all families", + "min": 41.2, + "max": 3640 + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 364.46, + "status": "COMPLETED", + "unit": "W", + "min": 364.46, + "max": 364.46 + }, + "time_workload": { + "value": 50, + "status": "ARCHETYPE", + "unit": "%", + "min": 0, + "max": 100 + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 171.2, + "b": 0.0354, + "c": 36.89, + "d": -10.13 + }, + "status": "ARCHETYPE" + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-8, + "max": 2.65575e-7 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "RAM-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 490, + "min": 209.2, + "max": 1179, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 8000, + "min": 263.7, + "max": 36040 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.026, + "min": 0.01523, + "max": 0.04916, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0013, + "min": 0.0001518, + "max": 0.008457 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 6000, + "min": 2651, + "max": 14720, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 300000, + "min": 149, + "max": 14910000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "units": { + "value": 8, + "status": "ARCHETYPE", + "min": 6, + "max": 10 + }, + "capacity": { + "value": 32, + "status": "ARCHETYPE", + "unit": "GB", + "min": 32, + "max": 32 + }, + "density": { + "value": 1.2443636363636363, + "status": "COMPLETED", + "unit": "GB/cm2", + "source": "Average of 11 rows", + "min": 0.625, + "max": 2.375 + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 72.704, + "status": "COMPLETED", + "unit": "W", + "min": 54.52799999999999, + "max": 90.88 + }, + "time_workload": { + "value": 50, + "status": "ARCHETYPE", + "unit": "%", + "min": 0, + "max": 100 + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 9.088 + }, + "status": "COMPLETED", + "source": "(ram_electrical_factor_per_go : 0.284) * (ram_capacity: 32.0) " + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-8, + "max": 2.65575e-7 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "SSD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 50, + "min": 23.53, + "max": 281, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0017, + "min": 0.001055, + "max": 0.008809, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 600, + "min": 290.2, + "max": 3483, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 2 + }, + "capacity": { + "value": 1000, + "status": "ARCHETYPE", + "unit": "GB", + "min": 1000, + "max": 1000 + }, + "density": { + "value": 54.8842105263158, + "status": "COMPLETED", + "unit": "GB/cm2", + "source": "Average of 19 rows", + "min": 16.4, + "max": 128 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "HDD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 50, + "min": 23.53, + "max": 281, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0017, + "min": 0.001055, + "max": 0.008809, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 600, + "min": 290.2, + "max": 3483, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 2 + }, + "capacity": { + "value": 1000, + "status": "ARCHETYPE", + "unit": "GB", + "min": 1000, + "max": 1000 + }, + "density": { + "value": 54.8842105263158, + "status": "COMPLETED", + "unit": "GB/cm2", + "source": "Average of 19 rows", + "min": 16.4, + "max": 128 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "POWER_SUPPLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 150, + "min": 48.6, + "max": 243, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.05, + "min": 0.0166, + "max": 0.083, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2100, + "min": 704, + "max": 3520, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 2, + "status": "ARCHETYPE", + "min": 2, + "max": 2 + }, + "unit_weight": { + "value": 2.99, + "status": "ARCHETYPE", + "unit": "kg", + "min": 1, + "max": 5 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CASE-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 150, + "min": 85.9, + "max": 150, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0202, + "min": 0.0202, + "max": 0.02767, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2200, + "min": 1229, + "max": 2200, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "case_type": { + "value": "rack", + "status": "ARCHETYPE" + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "MOTHERBOARD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 66.1, + "min": 66.1, + "max": 66.1, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.00369, + "min": 0.00369, + "max": 0.00369, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 836, + "min": 836, + "max": 836, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "avg_power": { + "value": 10.4062055, + "status": "INPUT", + "unit": "W" + }, + "usage_location": { + "value": "EEE", + "status": "INPUT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "gwp_factor": { + "value": 0.38, + "status": "COMPLETED", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.38, + "max": 0.38 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "COMPLETED", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 6.42317e-8, + "max": 6.42317e-8 + }, + "pe_factor": { + "value": 12.873, + "status": "COMPLETED", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 12.873, + "max": 12.873 + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + } + } + }, + "start_time": 1717500637.2979465, + "end_time": 1717504237.2979465, + "power_data": { + "raw_data": [ + { + "host": { + "consumption": 0, + "timestamp": 1717504204.5280154, + "components": { + "disks": [] + } + }, + "consumers": [], + "sockets": [] + }, + { + "host": { + "consumption": 20309356, + "timestamp": 1717504214.5485115, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655085056", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "5.9772415", + "cpu_usage_unit": "%", + "memory_usage": "508436480", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 1213939.2, + "timestamp": 1717504214.5484614, + "container": null + }, + { + "exe": "/usr/bin/python3.9", + "cmdline": "/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000", + "pid": 176778, + "resources_usage": { + "cpu_usage": "5.3645115", + "cpu_usage_unit": "%", + "memory_usage": "131502080", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "751403008", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 1089497.6, + "timestamp": 1717504214.54841, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "2.813555", + "cpu_usage_unit": "%", + "memory_usage": "262508544", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 571414.9, + "timestamp": 1717504214.5484433, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "1.9507315", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 396181, + "timestamp": 1717504214.5483658, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.887833", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 180313.16, + "timestamp": 1717504214.548356, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "0.52519697", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 106664.12, + "timestamp": 1717504214.5483842, + "container": null + }, + { + "exe": "/", + "cmdline": "runcinit", + "pid": 176900, + "resources_usage": { + "cpu_usage": "0.46267352", + "cpu_usage_unit": "%", + "memory_usage": "24141824", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 93966.01, + "timestamp": 1717504214.5483909, + "container": null + }, + { + "exe": "/usr/libexec/gnome-terminal-server", + "cmdline": "/usr/libexec/gnome-terminal-server", + "pid": 4836, + "resources_usage": { + "cpu_usage": "0.28760785", + "cpu_usage_unit": "%", + "memory_usage": "76136448", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 58411.3, + "timestamp": 1717504214.54837, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.21257971", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 43173.57, + "timestamp": 1717504214.548365, + "container": null + }, + { + "exe": "/usr/bin/ibus-daemon", + "cmdline": "/usr/bin/ibus-daemon--paneldisable", + "pid": 2598, + "resources_usage": { + "cpu_usage": "0.112542205", + "cpu_usage_unit": "%", + "memory_usage": "12480512", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22856.596, + "timestamp": 1717504214.5483723, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 11652205, + "domains": [ + { + "name": "uncore", + "consumption": 180098, + "timestamp": 1717504214.530277 + }, + { + "name": "core", + "consumption": 8775168, + "timestamp": 1717504214.530263 + }, + { + "name": "dram", + "consumption": 1111438, + "timestamp": 1717504214.5302465 + } + ], + "timestamp": 1717504214.5299857 + } + ] + }, + { + "host": { + "consumption": 11439694, + "timestamp": 1717504224.6661015, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655097344", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "5.2776732", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 603749.7, + "timestamp": 1717504224.6659212, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "3.1340103", + "cpu_usage_unit": "%", + "memory_usage": "174120960", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 358521.2, + "timestamp": 1717504224.6657825, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "2.5322802", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 289685.1, + "timestamp": 1717504224.665756, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "1.6547574", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 189299.19, + "timestamp": 1717504224.6658857, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.23818476", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 27247.607, + "timestamp": 1717504224.6657548, + "container": null + }, + { + "exe": "/usr/local/bin/scaphandre", + "cmdline": "/usr/local/bin/scaphandre--no-headerjson-s10--resources-f/app/data/power_data.json", + "pid": 176771, + "resources_usage": { + "cpu_usage": "0.1504325", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 17209.018, + "timestamp": 1717504224.6657345, + "container": null + }, + { + "exe": "/usr/libexec/gsd-media-keys", + "cmdline": "/usr/libexec/gsd-media-keys", + "pid": 2610, + "resources_usage": { + "cpu_usage": "0.06268021", + "cpu_usage_unit": "%", + "memory_usage": "27652096", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "887459840", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 7170.424, + "timestamp": 1717504224.665734, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.050144166", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 5736.3394, + "timestamp": 1717504224.6657436, + "container": null + }, + { + "exe": "/usr/libexec/gnome-terminal-server", + "cmdline": "/usr/libexec/gnome-terminal-server", + "pid": 4836, + "resources_usage": { + "cpu_usage": "0.050144166", + "cpu_usage_unit": "%", + "memory_usage": "76136448", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "638849024", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 5736.3394, + "timestamp": 1717504224.6657631, + "container": null + }, + { + "exe": "/usr/bin/containerd", + "cmdline": "/usr/bin/containerd", + "pid": 699, + "resources_usage": { + "cpu_usage": "0.025072083", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 2868.1697, + "timestamp": 1717504224.6657722, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 4396806, + "domains": [ + { + "name": "uncore", + "consumption": 133312, + "timestamp": 1717504224.5596187 + }, + { + "name": "core", + "consumption": 1916276, + "timestamp": 1717504224.5595467 + }, + { + "name": "dram", + "consumption": 895722, + "timestamp": 1717504224.5594404 + } + ], + "timestamp": 1717504224.5583096 + } + ] + }, + { + "host": { + "consumption": 9875772, + "timestamp": 1717504234.7663224, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655089152", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "2.9987452", + "cpu_usage_unit": "%", + "memory_usage": "508329984", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 296149.25, + "timestamp": 1717504234.76627, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "2.158093", + "cpu_usage_unit": "%", + "memory_usage": "308137984", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 213128.34, + "timestamp": 1717504234.7661667, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "1.7565873", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 173476.55, + "timestamp": 1717504234.7662466, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "1.4303639", + "cpu_usage_unit": "%", + "memory_usage": "164651008", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "2636976128", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 141259.48, + "timestamp": 1717504234.7661831, + "container": null + }, + { + "exe": "/usr/local/bin/scaphandre", + "cmdline": "/usr/local/bin/scaphandre--no-headerjson-s10--resources-f/app/data/power_data.json", + "pid": 176771, + "resources_usage": { + "cpu_usage": "0.22584693", + "cpu_usage_unit": "%", + "memory_usage": "33337344", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22304.129, + "timestamp": 1717504234.766153, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.22584693", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22304.129, + "timestamp": 1717504234.766166, + "container": null + }, + { + "exe": "/usr/libexec/gsd-media-keys", + "cmdline": "/usr/libexec/gsd-media-keys", + "pid": 2610, + "resources_usage": { + "cpu_usage": "0.06273526", + "cpu_usage_unit": "%", + "memory_usage": "27652096", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "887459840", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 6195.5913, + "timestamp": 1717504234.7661529, + "container": null + }, + { + "exe": "/usr/lib/systemd/systemd-oomd", + "cmdline": "/lib/systemd/systemd-oomd", + "pid": 460, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "6680576", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661595, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661598, + "container": null + }, + { + "exe": "/usr/bin/containerd", + "cmdline": "/usr/bin/containerd", + "pid": 699, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661762, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 3165101, + "domains": [ + { + "name": "uncore", + "consumption": 48247, + "timestamp": 1717504234.6836913 + }, + { + "name": "core", + "consumption": 878365, + "timestamp": 1717504234.6834612 + }, + { + "name": "dram", + "consumption": 776832, + "timestamp": 1717504234.6832268 + } + ], + "timestamp": 1717504234.6821008 + } + ] + } + ], + "avg_power": 10.4062055, + "warning": "The time window is lower than one hour, but the energy consumption estimate is in Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be careful with this data. " + } + }, + "electricity_carbon_intensity": { + "value": 0.38, + "description": "Carbon intensity of the electricity mix. Mix considered : EEE", + "type": "gauge", + "unit": "kg CO2eq / kWh", + "long_unit": "Kilograms CO2 equivalent per KiloWattHour" + } +} diff --git a/tests/mocks/get_metrics_verbose_no_hdd.json b/tests/mocks/get_metrics_verbose_no_hdd.json new file mode 100644 index 0000000..7306f6c --- /dev/null +++ b/tests/mocks/get_metrics_verbose_no_hdd.json @@ -0,0 +1,1576 @@ +{ + "emissions_calculation_data": { + "energy_consumption_warning": "The time window is lower than one hour, but the energy consumption estimate is in Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be careful with this data. " + }, + "location_warning": { + "warning_message": "Location is either set as default, or has not been set, and is therefore set to the default BoaviztAPI location. Be aware that the presented results can be drastically different due to location. It is recommended that you set the asset location with the corresponding country code, see: https://doc.api.boavizta.org/Explanations/usage/countries/" + }, + "total_operational_emissions": { + "value": { + "value": 138.6, + "min": 138.6, + "max": 138.6 + }, + "description": "GHG emissions related to usage, from start_time to end_time.", + "type": "gauge", + "unit": "kg CO2eq", + "long_unit": "kilograms CO2 equivalent" + }, + "total_operational_abiotic_resources_depletion": { + "value": { + "value": 0.00002342, + "min": 0.00002342, + "max": 0.00002342 + }, + "description": "Abiotic Resources Depletion (minerals & metals, ADPe) due to the usage phase.", + "type": "gauge", + "unit": "kgSbeq", + "long_unit": "kilograms Antimony equivalent" + }, + "total_operational_primary_energy_consumed": { + "value": { + "value": 4694, + "min": 4694, + "max": 4694 + }, + "description": "Primary Energy consumed due to the usage phase.", + "type": "gauge", + "unit": "MJ", + "long_unit": "Mega Joules" + }, + "start_time": { + "value": 1717500637.2979465, + "description": "Start time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds" + }, + "end_time": { + "value": 1717504237.2979465, + "description": "End time for the evaluation, in timestamp format (seconds since 1970)", + "type": "counter", + "unit": "s", + "long_unit": "seconds" + }, + "average_power_measured": { + "value": 10.4062055, + "description": "Average power measured from start_time to end_time", + "type": "gauge", + "unit": "W", + "long_unit": "Watts" + }, + "embedded_emissions": { + "value": 900, + "description": "Embedded carbon emissions (manufacturing phase)", + "type": "gauge", + "unit": "kg CO2eq", + "long_unit": "kilograms CO2 equivalent" + }, + "embedded_abiotic_resources_depletion": { + "value": 0.14, + "description": "Embedded abiotic ressources consumed (manufacturing phase)", + "type": "gauge", + "unit": "kg Sbeq", + "long_unit": "kilograms ADP equivalent" + }, + "embedded_primary_energy": { + "value": 13000, + "description": "Embedded primary energy consumed (manufacturing phase)", + "type": "gauge", + "unit": "MJ", + "long_unit": "Mega Joules" + }, + "raw_data": { + "hardware_data": { + "disks": [ + { + "units": 1, + "logicalname": "/dev/nvme0n1", + "manufacturer": "toshiba", + "type": "ssd", + "capacity": 238 + } + ], + "cpus": [ + { + "units": 1, + "name": "Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz", + "vendor": "Intel Corp.", + "core_units": "4" + } + ], + "rams": [ + { + "units": 1, + "manufacturer": "Micron", + "capacity": 4 + }, + { + "units": 1, + "manufacturer": "Micron", + "capacity": 4 + } + ] + }, + "resources_data": "not implemented yet", + "boaviztapi_data": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 900, + "min": 461.8, + "max": 2089, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 138.6, + "min": 138.6, + "max": 138.6 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.14, + "min": 0.09758, + "max": 0.2132, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.00002342, + "min": 0.00002342, + "max": 0.00002342 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 13000, + "min": 6138, + "max": 27090, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 4694, + "min": 4694, + "max": 4694 + } + } + }, + "verbose": { + "duration": { + "value": 35040, + "unit": "hours" + }, + "ASSEMBLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 6.68, + "min": 6.68, + "max": 6.68, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.00000141, + "min": 0.00000141, + "max": 0.00000141, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 68.6, + "min": 68.6, + "max": 68.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CPU-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 40, + "min": 21.84, + "max": 163.6, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 10000, + "min": 587.5, + "max": 28900 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.04081, + "min": 0.0408, + "max": 0.04084, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0016, + "min": 0.0003382, + "max": 0.006783 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 600, + "min": 359.9, + "max": 2267, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 300000, + "min": 332, + "max": 11960000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "units": { + "value": 2, + "status": "ARCHETYPE", + "min": 2, + "max": 2 + }, + "die_size": { + "value": 521, + "status": "COMPLETED", + "unit": "mm2", + "source": "Average value for all families", + "min": 41.2, + "max": 3640 + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 364.46, + "status": "COMPLETED", + "unit": "W", + "min": 364.46, + "max": 364.46 + }, + "time_workload": { + "value": 50, + "status": "ARCHETYPE", + "unit": "%", + "min": 0, + "max": 100 + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 171.2, + "b": 0.0354, + "c": 36.89, + "d": -10.13 + }, + "status": "ARCHETYPE" + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-8, + "max": 2.65575e-7 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "RAM-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 490, + "min": 209.2, + "max": 1179, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 8000, + "min": 263.7, + "max": 36040 + } + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.026, + "min": 0.01523, + "max": 0.04916, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 0.0013, + "min": 0.0001518, + "max": 0.008457 + } + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 6000, + "min": 2651, + "max": 14720, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": { + "value": 300000, + "min": 149, + "max": 14910000, + "warnings": [ + "Uncertainty from technical characteristics is very important. Results should be interpreted with caution (see min and max values)" + ] + } + } + }, + "units": { + "value": 8, + "status": "ARCHETYPE", + "min": 6, + "max": 10 + }, + "capacity": { + "value": 32, + "status": "ARCHETYPE", + "unit": "GB", + "min": 32, + "max": 32 + }, + "density": { + "value": 1.2443636363636363, + "status": "COMPLETED", + "unit": "GB/cm2", + "source": "Average of 11 rows", + "min": 0.625, + "max": 2.375 + }, + "duration": { + "value": 35040, + "unit": "hours" + }, + "avg_power": { + "value": 72.704, + "status": "COMPLETED", + "unit": "W", + "min": 54.52799999999999, + "max": 90.88 + }, + "time_workload": { + "value": 50, + "status": "ARCHETYPE", + "unit": "%", + "min": 0, + "max": 100 + }, + "usage_location": { + "value": "EEE", + "status": "DEFAULT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "params": { + "value": { + "a": 9.088 + }, + "status": "COMPLETED", + "source": "(ram_electrical_factor_per_go : 0.284) * (ram_capacity: 32.0) " + }, + "gwp_factor": { + "value": 0.38, + "status": "DEFAULT", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.023, + "max": 1.13161 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "DEFAULT", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 1.324e-8, + "max": 2.65575e-7 + }, + "pe_factor": { + "value": 12.873, + "status": "DEFAULT", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 0.013, + "max": 468.15 + } + }, + "SSD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 50, + "min": 23.53, + "max": 281, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0017, + "min": 0.001055, + "max": 0.008809, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 600, + "min": 290.2, + "max": 3483, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 2 + }, + "capacity": { + "value": 1000, + "status": "ARCHETYPE", + "unit": "GB", + "min": 1000, + "max": 1000 + }, + "density": { + "value": 54.8842105263158, + "status": "COMPLETED", + "unit": "GB/cm2", + "source": "Average of 19 rows", + "min": 16.4, + "max": 128 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "POWER_SUPPLY-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 150, + "min": 48.6, + "max": 243, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.05, + "min": 0.0166, + "max": 0.083, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2100, + "min": 704, + "max": 3520, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 2, + "status": "ARCHETYPE", + "min": 2, + "max": 2 + }, + "unit_weight": { + "value": 2.99, + "status": "ARCHETYPE", + "unit": "kg", + "min": 1, + "max": 5 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "CASE-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 150, + "min": 85.9, + "max": 150, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.0202, + "min": 0.0202, + "max": 0.02767, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 2200, + "min": 1229, + "max": 2200, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "case_type": { + "value": "rack", + "status": "ARCHETYPE" + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "MOTHERBOARD-1": { + "impacts": { + "gwp": { + "unit": "kgCO2eq", + "description": "Total climate change", + "embedded": { + "value": 66.1, + "min": 66.1, + "max": 66.1, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "adp": { + "unit": "kgSbeq", + "description": "Use of minerals and fossil ressources", + "embedded": { + "value": 0.00369, + "min": 0.00369, + "max": 0.00369, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + }, + "pe": { + "unit": "MJ", + "description": "Consumption of primary energy", + "embedded": { + "value": 836, + "min": 836, + "max": 836, + "warnings": [ + "End of life is not included in the calculation" + ] + }, + "use": "not implemented" + } + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + }, + "duration": { + "value": 35040, + "unit": "hours" + } + }, + "avg_power": { + "value": 10.4062055, + "status": "INPUT", + "unit": "W" + }, + "usage_location": { + "value": "EEE", + "status": "INPUT", + "unit": "CodSP3 - NCS Country Codes - NATO" + }, + "use_time_ratio": { + "value": 1, + "status": "ARCHETYPE", + "unit": "/1", + "min": 1, + "max": 1 + }, + "hours_life_time": { + "value": 35040, + "status": "COMPLETED", + "unit": "hours", + "source": "from device", + "min": 35040, + "max": 35040 + }, + "gwp_factor": { + "value": 0.38, + "status": "COMPLETED", + "unit": "kg CO2eq/kWh", + "source": "https://www.sciencedirect.com/science/article/pii/S0306261921012149", + "min": 0.38, + "max": 0.38 + }, + "adp_factor": { + "value": 6.42317e-8, + "status": "COMPLETED", + "unit": "kg Sbeq/kWh", + "source": "ADEME Base IMPACTS ®", + "min": 6.42317e-8, + "max": 6.42317e-8 + }, + "pe_factor": { + "value": 12.873, + "status": "COMPLETED", + "unit": "MJ/kWh", + "source": "ADPf / (1-%renewable_energy)", + "min": 12.873, + "max": 12.873 + }, + "units": { + "value": 1, + "status": "ARCHETYPE", + "min": 1, + "max": 1 + } + } + }, + "start_time": 1717500637.2979465, + "end_time": 1717504237.2979465, + "power_data": { + "raw_data": [ + { + "host": { + "consumption": 0, + "timestamp": 1717504204.5280154, + "components": { + "disks": [] + } + }, + "consumers": [], + "sockets": [] + }, + { + "host": { + "consumption": 20309356, + "timestamp": 1717504214.5485115, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655085056", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "5.9772415", + "cpu_usage_unit": "%", + "memory_usage": "508436480", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 1213939.2, + "timestamp": 1717504214.5484614, + "container": null + }, + { + "exe": "/usr/bin/python3.9", + "cmdline": "/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000", + "pid": 176778, + "resources_usage": { + "cpu_usage": "5.3645115", + "cpu_usage_unit": "%", + "memory_usage": "131502080", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "751403008", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 1089497.6, + "timestamp": 1717504214.54841, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "2.813555", + "cpu_usage_unit": "%", + "memory_usage": "262508544", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 571414.9, + "timestamp": 1717504214.5484433, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "1.9507315", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 396181, + "timestamp": 1717504214.5483658, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.887833", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 180313.16, + "timestamp": 1717504214.548356, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "0.52519697", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 106664.12, + "timestamp": 1717504214.5483842, + "container": null + }, + { + "exe": "/", + "cmdline": "runcinit", + "pid": 176900, + "resources_usage": { + "cpu_usage": "0.46267352", + "cpu_usage_unit": "%", + "memory_usage": "24141824", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 93966.01, + "timestamp": 1717504214.5483909, + "container": null + }, + { + "exe": "/usr/libexec/gnome-terminal-server", + "cmdline": "/usr/libexec/gnome-terminal-server", + "pid": 4836, + "resources_usage": { + "cpu_usage": "0.28760785", + "cpu_usage_unit": "%", + "memory_usage": "76136448", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 58411.3, + "timestamp": 1717504214.54837, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.21257971", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 43173.57, + "timestamp": 1717504214.548365, + "container": null + }, + { + "exe": "/usr/bin/ibus-daemon", + "cmdline": "/usr/bin/ibus-daemon--paneldisable", + "pid": 2598, + "resources_usage": { + "cpu_usage": "0.112542205", + "cpu_usage_unit": "%", + "memory_usage": "12480512", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22856.596, + "timestamp": 1717504214.5483723, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 11652205, + "domains": [ + { + "name": "uncore", + "consumption": 180098, + "timestamp": 1717504214.530277 + }, + { + "name": "core", + "consumption": 8775168, + "timestamp": 1717504214.530263 + }, + { + "name": "dram", + "consumption": 1111438, + "timestamp": 1717504214.5302465 + } + ], + "timestamp": 1717504214.5299857 + } + ] + }, + { + "host": { + "consumption": 11439694, + "timestamp": 1717504224.6661015, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655097344", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "5.2776732", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 603749.7, + "timestamp": 1717504224.6659212, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "3.1340103", + "cpu_usage_unit": "%", + "memory_usage": "174120960", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 358521.2, + "timestamp": 1717504224.6657825, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "2.5322802", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 289685.1, + "timestamp": 1717504224.665756, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "1.6547574", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 189299.19, + "timestamp": 1717504224.6658857, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.23818476", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 27247.607, + "timestamp": 1717504224.6657548, + "container": null + }, + { + "exe": "/usr/local/bin/scaphandre", + "cmdline": "/usr/local/bin/scaphandre--no-headerjson-s10--resources-f/app/data/power_data.json", + "pid": 176771, + "resources_usage": { + "cpu_usage": "0.1504325", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 17209.018, + "timestamp": 1717504224.6657345, + "container": null + }, + { + "exe": "/usr/libexec/gsd-media-keys", + "cmdline": "/usr/libexec/gsd-media-keys", + "pid": 2610, + "resources_usage": { + "cpu_usage": "0.06268021", + "cpu_usage_unit": "%", + "memory_usage": "27652096", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "887459840", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 7170.424, + "timestamp": 1717504224.665734, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.050144166", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 5736.3394, + "timestamp": 1717504224.6657436, + "container": null + }, + { + "exe": "/usr/libexec/gnome-terminal-server", + "cmdline": "/usr/libexec/gnome-terminal-server", + "pid": 4836, + "resources_usage": { + "cpu_usage": "0.050144166", + "cpu_usage_unit": "%", + "memory_usage": "76136448", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "638849024", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 5736.3394, + "timestamp": 1717504224.6657631, + "container": null + }, + { + "exe": "/usr/bin/containerd", + "cmdline": "/usr/bin/containerd", + "pid": 699, + "resources_usage": { + "cpu_usage": "0.025072083", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 2868.1697, + "timestamp": 1717504224.6657722, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 4396806, + "domains": [ + { + "name": "uncore", + "consumption": 133312, + "timestamp": 1717504224.5596187 + }, + { + "name": "core", + "consumption": 1916276, + "timestamp": 1717504224.5595467 + }, + { + "name": "dram", + "consumption": 895722, + "timestamp": 1717504224.5594404 + } + ], + "timestamp": 1717504224.5583096 + } + ] + }, + { + "host": { + "consumption": 9875772, + "timestamp": 1717504234.7663224, + "components": { + "disks": [ + { + "disk_type": "SSD", + "disk_mount_point": "/etc/hosts", + "disk_is_removable": false, + "disk_file_system": "ext4", + "disk_total_bytes": "250375106560", + "disk_available_bytes": "165655089152", + "disk_name": "/dev/nvme0n1p2" + } + ] + } + }, + "consumers": [ + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox", + "pid": 3099, + "resources_usage": { + "cpu_usage": "2.9987452", + "cpu_usage_unit": "%", + "memory_usage": "508329984", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 296149.25, + "timestamp": 1717504234.76627, + "container": null + }, + { + "exe": "/usr/bin/gnome-shell", + "cmdline": "/usr/bin/gnome-shell", + "pid": 2063, + "resources_usage": { + "cpu_usage": "2.158093", + "cpu_usage_unit": "%", + "memory_usage": "308137984", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 213128.34, + "timestamp": 1717504234.7661667, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID58-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{1e76e076-a55a-41cf-bf27-94855c01b247}3099truetab", + "pid": 101097, + "resources_usage": { + "cpu_usage": "1.7565873", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 173476.55, + "timestamp": 1717504234.7662466, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID152-isForBrowser-prefsLen32076-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{c4b6e702-62e0-4c2c-b312-b639f3da3c1c}3099truetab", + "pid": 173787, + "resources_usage": { + "cpu_usage": "1.4303639", + "cpu_usage_unit": "%", + "memory_usage": "164651008", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "2636976128", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 141259.48, + "timestamp": 1717504234.7661831, + "container": null + }, + { + "exe": "/usr/local/bin/scaphandre", + "cmdline": "/usr/local/bin/scaphandre--no-headerjson-s10--resources-f/app/data/power_data.json", + "pid": 176771, + "resources_usage": { + "cpu_usage": "0.22584693", + "cpu_usage_unit": "%", + "memory_usage": "33337344", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22304.129, + "timestamp": 1717504234.766153, + "container": null + }, + { + "exe": "/squashfs-root/usr/bin/nvim", + "cmdline": "/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.", + "pid": 96283, + "resources_usage": { + "cpu_usage": "0.22584693", + "cpu_usage_unit": "%", + "memory_usage": "227631104", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 22304.129, + "timestamp": 1717504234.766166, + "container": null + }, + { + "exe": "/usr/libexec/gsd-media-keys", + "cmdline": "/usr/libexec/gsd-media-keys", + "pid": 2610, + "resources_usage": { + "cpu_usage": "0.06273526", + "cpu_usage_unit": "%", + "memory_usage": "27652096", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "887459840", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 6195.5913, + "timestamp": 1717504234.7661529, + "container": null + }, + { + "exe": "/usr/lib/systemd/systemd-oomd", + "cmdline": "/lib/systemd/systemd-oomd", + "pid": 460, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "6680576", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661595, + "container": null + }, + { + "exe": "/snap/firefox/4336/usr/lib/firefox/firefox", + "cmdline": "/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen41490-prefMapSize244787-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{87653da9-ac6d-4c8e-bd74-4723d5684bc9}3099truetab", + "pid": 3811, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661598, + "container": null + }, + { + "exe": "/usr/bin/containerd", + "cmdline": "/usr/bin/containerd", + "pid": 699, + "resources_usage": { + "cpu_usage": "0.037641153", + "cpu_usage_unit": "%", + "memory_usage": "0", + "memory_usage_unit": "Bytes", + "memory_virtual_usage": "0", + "memory_virtual_usage_unit": "Bytes", + "disk_usage_write": "0", + "disk_usage_write_unit": "Bytes", + "disk_usage_read": "0", + "disk_usage_read_unit": "Bytes" + }, + "consumption": 3717.3545, + "timestamp": 1717504234.7661762, + "container": null + } + ], + "sockets": [ + { + "id": 0, + "consumption": 3165101, + "domains": [ + { + "name": "uncore", + "consumption": 48247, + "timestamp": 1717504234.6836913 + }, + { + "name": "core", + "consumption": 878365, + "timestamp": 1717504234.6834612 + }, + { + "name": "dram", + "consumption": 776832, + "timestamp": 1717504234.6832268 + } + ], + "timestamp": 1717504234.6821008 + } + ] + } + ], + "avg_power": 10.4062055, + "warning": "The time window is lower than one hour, but the energy consumption estimate is in Watt.Hour. So this is an extrapolation of the power usage profile on one hour. Be careful with this data. " + } + }, + "electricity_carbon_intensity": { + "value": 0.38, + "description": "Carbon intensity of the electricity mix. Mix considered : EEE", + "type": "gauge", + "unit": "kg CO2eq / kWh", + "long_unit": "Kilograms CO2 equivalent per KiloWattHour" + } +} diff --git a/tests/mocks/hardware_data.json b/tests/mocks/hardware_data.json new file mode 100644 index 0000000..de474fd --- /dev/null +++ b/tests/mocks/hardware_data.json @@ -0,0 +1,219 @@ +{ + "disks": [ + { + "capacity": 476, + "manufacturer": "samsung", + "type": "ssd" + } + ], + "cpus": [ + { + "vendor": "AuthenticAMD", + "name": "AMD Ryzen 5 5600H with Radeon Graphics \u0000", + "microarch": [ + "x86_64", + "" + ], + "vector_instructions": { + "sse": "Yes", + "sse2": "Yes", + "sse3": "Yes", + "ssse3": "Yes", + "sse4.1": "Yes", + "sse4.2": "Yes", + "sse4a": "Yes", + "avx": "Yes", + "avx2": "--", + "bmi1": "--", + "bmi2": "--" + }, + "cpu_info": { + "python_version": "3.10.12.final.0 (64 bit)", + "cpuinfo_version": [ + 9, + 0, + 0 + ], + "cpuinfo_version_string": "9.0.0", + "arch": "X86_64", + "bits": 64, + "count": 12, + "arch_string_raw": "x86_64", + "vendor_id_raw": "AuthenticAMD", + "brand_raw": "AMD Ryzen 5 5600H with Radeon Graphics", + "hz_advertised_friendly": "4.2383 GHz", + "hz_actual_friendly": "4.2383 GHz", + "hz_advertised": [ + 4238303000, + 0 + ], + "hz_actual": [ + 4238303000, + 0 + ], + "model": 80, + "family": 25, + "flags": [ + "3dnowprefetch", + "abm", + "adx", + "aes", + "aperfmperf", + "apic", + "arat", + "avic", + "avx", + "avx2", + "bmi1", + "bmi2", + "bpext", + "cat_l3", + "cdp_l3", + "clflush", + "clflushopt", + "clwb", + "clzero", + "cmov", + "cmp_legacy", + "constant_tsc", + "cpb", + "cppc", + "cpuid", + "cqm", + "cqm_llc", + "cqm_mbm_local", + "cqm_mbm_total", + "cqm_occup_llc", + "cr8_legacy", + "cx16", + "cx8", + "dbx", + "de", + "decodeassists", + "erms", + "extapic", + "extd_apicid", + "f16c", + "flushbyasid", + "fma", + "fpu", + "fsgsbase", + "fsrm", + "fxsr", + "fxsr_opt", + "ht", + "hw_pstate", + "ibpb", + "ibrs", + "ibs", + "invpcid", + "irperf", + "lahf_lm", + "lbrv", + "lm", + "mba", + "mca", + "mce", + "misalignsse", + "mmx", + "mmxext", + "monitor", + "movbe", + "msr", + "mtrr", + "mwaitx", + "nonstop_tsc", + "nopl", + "npt", + "nrip_save", + "nx", + "ospke", + "osvw", + "osxsave", + "overflow_recov", + "pae", + "pat", + "pausefilter", + "pci_l2i", + "pclmulqdq", + "pdpe1gb", + "perfctr_core", + "perfctr_llc", + "perfctr_nb", + "pfthreshold", + "pge", + "pku", + "pni", + "popcnt", + "pqe", + "pqm", + "pse", + "pse36", + "rapl", + "rdpid", + "rdpru", + "rdrand", + "rdrnd", + "rdseed", + "rdt_a", + "rdtscp", + "rep_good", + "sep", + "sha", + "sha_ni", + "skinit", + "smap", + "smca", + "smep", + "ssbd", + "sse", + "sse2", + "sse4_1", + "sse4_2", + "sse4a", + "ssse3", + "stibp", + "succor", + "svm", + "svm_lock", + "syscall", + "tce", + "topoext", + "tsc", + "tsc_scale", + "umip", + "v_spec_ctrl", + "v_vmsave_vmload", + "vaes", + "vgif", + "vmcb_clean", + "vme", + "vmmcall", + "vpclmulqdq", + "wbnoinvd", + "wdt", + "xgetbv1", + "xsave", + "xsavec", + "xsaveerptr", + "xsaveopt", + "xsaves" + ], + "l3_cache_size": 524288, + "l2_cache_size": 3145728, + "l1_data_cache_size": 196608, + "l1_instruction_cache_size": 196608, + "l2_cache_line_size": 512, + "l2_cache_associativity": 6 + }, + "core_units": 12, + "family": "X86_64" + } + ], + "rams": [ + { + "capacity": 5 + } + ], + "mother_board": {} +} diff --git a/tests/mocks/hubblo-ci-01_lshw.json b/tests/mocks/hubblo-ci-01_lshw.json new file mode 100644 index 0000000..d2974e8 --- /dev/null +++ b/tests/mocks/hubblo-ci-01_lshw.json @@ -0,0 +1,2577 @@ +[ +{ + "id" : "hubblo-ci-01", + "class" : "system", + "claimed" : true, + "handle" : "DMI:0001", + "description" : "Computer", + "product" : "SYS-5038MD-H24TRF-OS012 (To be filled by O.E.M.)", + "vendor" : "Supermicro", + "version" : "0123456789", + "serial" : "E229246X7800249", + "width" : 64, + "configuration" : { + "boot" : "normal", + "family" : "To be filled by O.E.M.", + "sku" : "To be filled by O.E.M.", + "uuid" : "00000000-0000-0000-0000-AC1F6B2152A2" + }, + "capabilities" : { + "smbios-2.8" : "SMBIOS version 2.8", + "dmi-2.8" : "DMI version 2.8", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + } { + "id" : "core", + "class" : "bus", + "claimed" : true, + "handle" : "DMI:0002", + "description" : "Motherboard", + "product" : "X10SDE-DF", + "vendor" : "Supermicro", + "physid" : "0", + "version" : "1.01", + "serial" : "VM174S002908", + "slot" : "To be filled by O.E.M." { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "American Megatrends Inc.", + "physid" : "0", + "version" : "2.0", + "date" : "06/13/2018", + "units" : "bytes", + "size" : 65536, + "capacity" : 16777216, + "capabilities" : { + "pci" : "PCI bus", + "upgrade" : "BIOS EEPROM can be upgraded", + "shadowing" : "BIOS shadowing", + "cdboot" : "Booting from CD-ROM/DVD", + "bootselect" : "Selectable boot path", + "socketedrom" : "BIOS ROM is socketed", + "edd" : "Enhanced Disk Drive extensions", + "int13floppy1200" : "5.25\" 1.2MB floppy", + "int13floppy720" : "3.5\" 720KB floppy", + "int13floppy2880" : "3.5\" 2.88MB floppy", + "int5printscreen" : "Print Screen key", + "int9keyboard" : "i8042 keyboard controller", + "int14serial" : "INT14 serial line control", + "int17printer" : "INT17 printer control", + "acpi" : "ACPI", + "usb" : "USB legacy emulation", + "biosbootspecification" : "BIOS boot specification", + "uefi" : "UEFI specification is supported" + } + }, + { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0011", + "description" : "System Memory", + "physid" : "11", + "slot" : "System board or motherboard", + "units" : "bytes", + "size" : 34359738368, + "configuration" : { + "errordetection" : "multi-bit-ecc" + }, + "capabilities" : { + "ecc" : "Multi-bit error-correcting code (ECC)" + } { + "id" : "bank:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0013", + "description" : "DIMM DDR4 Synchronous 2400 MHz (0.4 ns)", + "product" : "18ADF2G72AZ-2G3B1", + "vendor" : "Micron", + "physid" : "0", + "serial" : "1743274D", + "slot" : "P2-DIMMA1", + "units" : "bytes", + "size" : 17179869184, + "width" : 64, + "clock" : 2400000000 + }, + { + "id" : "bank:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0015", + "description" : "DIMM DDR4 Synchronous [empty]", + "product" : "NO DIMM", + "vendor" : "NO DIMM", + "physid" : "1", + "serial" : "NO DIMM", + "slot" : "P2-DIMMA2" + }, + { + "id" : "bank:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0016", + "description" : "DIMM DDR4 Synchronous 2400 MHz (0.4 ns)", + "product" : "18ADF2G72AZ-2G3B1", + "vendor" : "Micron", + "physid" : "2", + "serial" : "174329B5", + "slot" : "P2-DIMMB1", + "units" : "bytes", + "size" : 17179869184, + "width" : 64, + "clock" : 2400000000 + }, + { + "id" : "bank:3", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0018", + "description" : "DIMM DDR4 Synchronous [empty]", + "product" : "NO DIMM", + "vendor" : "NO DIMM", + "physid" : "3", + "serial" : "NO DIMM", + "slot" : "P2-DIMMB2" + }, + + }, + { + "id" : "cache:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:001A", + "description" : "L2 cache", + "physid" : "1a", + "slot" : "L1 Cache", + "units" : "bytes", + "size" : 393216, + "capacity" : 393216, + "configuration" : { + "level" : "2" + }, + "capabilities" : { + "internal" : "Internal", + "write-back" : "Write-back" + } + }, + { + "id" : "cache:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:001B", + "description" : "L3 cache", + "physid" : "1b", + "slot" : "L2 Cache", + "units" : "bytes", + "size" : 1572864, + "capacity" : 1572864, + "configuration" : { + "level" : "3" + }, + "capabilities" : { + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:001C", + "description" : "L4 cache", + "physid" : "1c", + "slot" : "L3 Cache", + "units" : "bytes", + "size" : 9437184, + "capacity" : 9437184, + "configuration" : { + "level" : "4" + }, + "capabilities" : { + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:001D", + "description" : "CPU", + "product" : "Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz", + "vendor" : "Intel Corp.", + "physid" : "1d", + "businfo" : "cpu@0", + "version" : "Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz", + "slot" : "CPU1", + "units" : "Hz", + "size" : 2312462000, + "capacity" : 4000000000, + "width" : 64, + "clock" : 100000000, + "configuration" : { + "cores" : "6", + "enabledcores" : "6", + "threads" : "12" + }, + "capabilities" : { + "lm" : "64bits extensions (x86-64)", + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "dts" : "debug trace and EMON store MSRs", + "acpi" : "thermal control (ACPI)", + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ss" : "self-snoop", + "ht" : "HyperThreading", + "tm" : "thermal interrupt and status", + "pbe" : "pending break event", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "arch_perfmon" : true, + "pebs" : true, + "bts" : true, + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "aperfmperf" : true, + "pni" : true, + "pclmulqdq" : true, + "dtes64" : true, + "monitor" : true, + "ds_cpl" : true, + "vmx" : true, + "smx" : true, + "est" : true, + "tm2" : true, + "ssse3" : true, + "sdbg" : true, + "fma" : true, + "cx16" : true, + "xtpr" : true, + "pdcm" : true, + "pcid" : true, + "dca" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "lahf_lm" : true, + "abm" : true, + "3dnowprefetch" : true, + "cpuid_fault" : true, + "epb" : true, + "cat_l3" : true, + "cdp_l3" : true, + "invpcid_single" : true, + "pti" : true, + "intel_ppin" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "tpr_shadow" : true, + "vnmi" : true, + "flexpriority" : true, + "ept" : true, + "vpid" : true, + "ept_ad" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "bmi1" : true, + "hle" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "rtm" : true, + "cqm" : true, + "rdt_a" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "intel_pt" : true, + "xsaveopt" : true, + "cqm_llc" : true, + "cqm_occup_llc" : true, + "cqm_mbm_total" : true, + "cqm_mbm_local" : true, + "dtherm" : true, + "ida" : true, + "arat" : true, + "pln" : true, + "pts" : true, + "hwp" : true, + "flush_l1d" : true, + "cpufreq" : "CPU Frequency scaling" + } + }, + { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2", + "vendor" : "Intel Corporation", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "03", + "width" : 32, + "clock" : 33000000 { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2", + "vendor" : "Intel Corporation", + "physid" : "2", + "businfo" : "pci@0000:00:02.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "generic:0", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "System peripheral", + "product" : "Xeon Processor D Family QuickData Technology Register DMA Channel 0", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "ioatdma", + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:01:00.1", + "description" : "System peripheral", + "product" : "Xeon Processor D Family QuickData Technology Register DMA Channel 1", + "vendor" : "Intel Corporation", + "physid" : "0.1", + "businfo" : "pci@0000:01:00.1", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "ioatdma", + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:01:00.2", + "description" : "System peripheral", + "product" : "Xeon Processor D Family QuickData Technology Register DMA Channel 2", + "vendor" : "Intel Corporation", + "physid" : "0.2", + "businfo" : "pci@0000:01:00.2", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "ioatdma", + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:3", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:01:00.3", + "description" : "System peripheral", + "product" : "Xeon Processor D Family QuickData Technology Register DMA Channel 3", + "vendor" : "Intel Corporation", + "physid" : "0.3", + "businfo" : "pci@0000:01:00.3", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "ioatdma", + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2", + "vendor" : "Intel Corporation", + "physid" : "2.2", + "businfo" : "pci@0000:00:02.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 3", + "vendor" : "Intel Corporation", + "physid" : "3", + "businfo" : "pci@0000:00:03.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:0", + "class" : "generic", + "handle" : "PCI:0000:00:05.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Map/VTd_Misc/System Management", + "vendor" : "Intel Corporation", + "physid" : "5", + "businfo" : "pci@0000:00:05.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "handle" : "PCI:0000:00:05.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO Hot Plug", + "vendor" : "Intel Corporation", + "physid" : "5.1", + "businfo" : "pci@0000:00:05.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "handle" : "PCI:0000:00:05.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO RAS/Control Status/Global Errors", + "vendor" : "Intel Corporation", + "physid" : "5.2", + "businfo" : "pci@0000:00:05.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "communication:0", + "class" : "communication", + "handle" : "PCI:0000:00:16.0", + "description" : "Communication controller", + "product" : "8 Series/C220 Series Chipset Family MEI Controller #1", + "vendor" : "Intel Corporation", + "physid" : "16", + "businfo" : "pci@0000:00:16.0", + "version" : "04", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "communication:1", + "class" : "communication", + "handle" : "PCI:0000:00:16.1", + "description" : "Communication controller", + "product" : "8 Series/C220 Series Chipset Family MEI Controller #2", + "vendor" : "Intel Corporation", + "physid" : "16.1", + "businfo" : "pci@0000:00:16.1", + "version" : "04", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb:0", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1a.0", + "description" : "USB controller", + "product" : "8 Series/C220 Series Chipset Family USB EHCI #2", + "vendor" : "Intel Corporation", + "physid" : "1a", + "businfo" : "pci@0000:00:1a.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ehci-pci", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "debug" : "Debug port", + "ehci" : "Enhanced Host Controller Interface (USB2)", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "usbhost", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "EHCI Host Controller", + "vendor" : "Linux 5.10.0-19-amd64 ehci_hcd", + "physid" : "1", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "5.10", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:2", + "description" : "USB hub", + "product" : "Integrated Rate Matching Hub", + "vendor" : "Intel Corp.", + "physid" : "1", + "businfo" : "usb@1:1", + "version" : "0.05", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }, + + }, + + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "8 Series/C220 Series Chipset Family PCI Express Root Port #1", + "vendor" : "Intel Corporation", + "physid" : "1c", + "businfo" : "pci@0000:00:1c.0", + "version" : "d5", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "network:0", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "Ethernet interface", + "product" : "I350 Gigabit Network Connection", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "logicalname" : "eno1", + "version" : "01", + "serial" : "ac:1f:6b:21:52:a2", + "units" : "bit/s", + "size" : 1000000000, + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "igb", + "driverversion" : "5.10.0-19-amd64", + "duplex" : "full", + "firmware" : "1.63, 0x800009fa", + "ip" : "51.15.191.107", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "1Gbit/s" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }, + { + "id" : "network:1", + "class" : "network", + "disabled" : true, + "claimed" : true, + "handle" : "PCI:0000:04:00.1", + "description" : "Ethernet interface", + "product" : "I350 Gigabit Network Connection", + "vendor" : "Intel Corporation", + "physid" : "0.1", + "businfo" : "pci@0000:04:00.1", + "logicalname" : "eno2", + "version" : "01", + "serial" : "ac:1f:6b:21:52:a3", + "units" : "bit/s", + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "igb", + "driverversion" : "5.10.0-19-amd64", + "firmware" : "1.63, 0x800009fa", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }, + + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "8 Series/C220 Series Chipset Family PCI Express Root Port #5", + "vendor" : "Intel Corporation", + "physid" : "1c.4", + "businfo" : "pci@0000:00:1c.4", + "version" : "d5", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:06", + "description" : "PCI bridge", + "product" : "AST1150 PCI-to-PCI Bridge", + "vendor" : "ASPEED Technology, Inc.", + "physid" : "0", + "businfo" : "pci@0000:05:00.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:06:00.0", + "description" : "VGA compatible controller", + "product" : "ASPEED Graphics Family", + "vendor" : "ASPEED Technology, Inc.", + "physid" : "0", + "businfo" : "pci@0000:06:00.0", + "version" : "30", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ast", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM" + } + }, + + }, + + }, + { + "id" : "usb:1", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1d.0", + "description" : "USB controller", + "product" : "8 Series/C220 Series Chipset Family USB EHCI #1", + "vendor" : "Intel Corporation", + "physid" : "1d", + "businfo" : "pci@0000:00:1d.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ehci-pci", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "debug" : "Debug port", + "ehci" : "Enhanced Host Controller Interface (USB2)", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } { + "id" : "usbhost", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:1", + "product" : "EHCI Host Controller", + "vendor" : "Linux 5.10.0-19-amd64 ehci_hcd", + "physid" : "1", + "businfo" : "usb@2", + "logicalname" : "usb2", + "version" : "5.10", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:2", + "description" : "USB hub", + "product" : "Integrated Rate Matching Hub", + "vendor" : "Intel Corp.", + "physid" : "1", + "businfo" : "usb@2:1", + "version" : "0.05", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:3", + "description" : "USB hub", + "product" : "Hub", + "vendor" : "ATEN International Co., Ltd", + "physid" : "4", + "businfo" : "usb@2:1.4", + "version" : "0.00", + "configuration" : { + "driver" : "hub", + "maxpower" : "100mA", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } { + "id" : "usb", + "class" : "input", + "claimed" : true, + "handle" : "USB:2:4", + "description" : "Keyboard", + "product" : "Virtual mouse/keyboard device", + "vendor" : "ATEN International Co., Ltd", + "physid" : "1", + "businfo" : "usb@2:1.4.1", + "version" : "1.00", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "160mA", + "speed" : "2Mbit/s" + }, + "capabilities" : { + "usb-1.10" : "USB 1.1" + } + }, + + }, + + }, + + }, + + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:1f.0", + "description" : "ISA bridge", + "product" : "C224 Series Chipset Family Server Standard SKU LPC Controller", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:00:1f.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "lpc_ich", + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "sata", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:00:1f.2", + "description" : "SATA controller", + "product" : "8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]", + "vendor" : "Intel Corporation", + "physid" : "1f.2", + "businfo" : "pci@0000:00:1f.2", + "logicalname" : ["scsi0", "scsi1"], + "version" : "05", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "driver" : "ahci", + "latency" : "0" + }, + "capabilities" : { + "sata" : true, + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "ahci_1.0" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "emulated" : "Emulated device" + } { + "id" : "disk:0", + "class" : "disk", + "claimed" : true, + "handle" : "SCSI:00:00:00:00", + "description" : "ATA Disk", + "product" : "Micron_1100_MTFD", + "physid" : "0", + "businfo" : "scsi@0:0.0.0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "version" : "U031", + "serial" : "17041581D187", + "units" : "bytes", + "size" : 256060514304, + "configuration" : { + "ansiversion" : "5", + "logicalsectorsize" : "512", + "sectorsize" : "512", + "signature" : "633f0e79" + }, + "capabilities" : { + "partitioned" : "Partitioned disk", + "partitioned:dos" : "MS-DOS partition table" + } { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "description" : "Linux raid autodetect partition", + "physid" : "1", + "businfo" : "scsi@0:0.0.0,1", + "logicalname" : "/dev/sda1", + "dev" : "8:1", + "capacity" : 313524224, + "capabilities" : { + "primary" : "Primary partition", + "bootable" : "Bootable partition (active)", + "multi" : "Multi-volumes" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "description" : "Linux swap volume", + "physid" : "2", + "businfo" : "scsi@0:0.0.0,2", + "logicalname" : "/dev/sda2", + "dev" : "8:2", + "version" : "1", + "serial" : "88061d91-e6c0-4a87-b02a-db5893d4c5e7", + "size" : 2198863872, + "capacity" : 2198863872, + "configuration" : { + "filesystem" : "swap", + "pagesize" : "4096" + }, + "capabilities" : { + "primary" : "Primary partition", + "nofs" : "No filesystem", + "swap" : "Linux swap", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "description" : "Linux raid autodetect partition", + "physid" : "3", + "businfo" : "scsi@0:0.0.0,3", + "logicalname" : "/dev/sda3", + "dev" : "8:3", + "capacity" : 253546725376, + "capabilities" : { + "primary" : "Primary partition", + "multi" : "Multi-volumes" + } + }, + + }, + { + "id" : "disk:1", + "class" : "disk", + "claimed" : true, + "handle" : "SCSI:01:00:00:00", + "description" : "ATA Disk", + "product" : "Micron_1100_MTFD", + "physid" : "1", + "businfo" : "scsi@1:0.0.0", + "logicalname" : "/dev/sdb", + "dev" : "8:16", + "version" : "U031", + "serial" : "17151756B586", + "units" : "bytes", + "size" : 256060514304, + "configuration" : { + "ansiversion" : "5", + "logicalsectorsize" : "512", + "sectorsize" : "512", + "signature" : "c10c2149" + }, + "capabilities" : { + "partitioned" : "Partitioned disk", + "partitioned:dos" : "MS-DOS partition table" + } { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "description" : "Linux raid autodetect partition", + "physid" : "1", + "businfo" : "scsi@1:0.0.0,1", + "logicalname" : "/dev/sdb1", + "dev" : "8:17", + "capacity" : 313524224, + "capabilities" : { + "primary" : "Primary partition", + "bootable" : "Bootable partition (active)", + "multi" : "Multi-volumes" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "description" : "Linux swap volume", + "physid" : "2", + "businfo" : "scsi@1:0.0.0,2", + "logicalname" : "/dev/sdb2", + "dev" : "8:18", + "version" : "1", + "serial" : "b03411fa-20c6-4c54-befc-e84b2e2f6f61", + "size" : 2198863872, + "capacity" : 2198863872, + "configuration" : { + "filesystem" : "swap", + "pagesize" : "4096" + }, + "capabilities" : { + "primary" : "Primary partition", + "nofs" : "No filesystem", + "swap" : "Linux swap", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "description" : "Linux raid autodetect partition", + "physid" : "3", + "businfo" : "scsi@1:0.0.0,3", + "logicalname" : "/dev/sdb3", + "dev" : "8:19", + "capacity" : 253546725376, + "capabilities" : { + "primary" : "Primary partition", + "multi" : "Multi-volumes" + } + }, + + }, + + }, + { + "id" : "serial", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.3", + "description" : "SMBus", + "product" : "8 Series/C220 Series Chipset Family SMBus Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.3", + "businfo" : "pci@0000:00:1f.3", + "version" : "05", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "i801_smbus", + "latency" : "0" + } + }, + { + "id" : "generic:3", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:00:1f.6", + "description" : "Signal processing controller", + "product" : "8 Series Chipset Family Thermal Management Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.6", + "businfo" : "pci@0000:00:1f.6", + "version" : "05", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "intel_pch_thermal", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + + }, + { + "id" : "generic:0", + "class" : "generic", + "handle" : "PCI:0000:ff:0b.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R3 QPI Link 0/1", + "vendor" : "Intel Corporation", + "physid" : "b", + "businfo" : "pci@0000:ff:0b.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:0b.1", + "description" : "Performance counters", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R3 QPI Link 0/1", + "vendor" : "Intel Corporation", + "physid" : "b.1", + "businfo" : "pci@0000:ff:0b.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:0b.2", + "description" : "Performance counters", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R3 QPI Link 0/1", + "vendor" : "Intel Corporation", + "physid" : "b.2", + "businfo" : "pci@0000:ff:0b.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + } + }, + { + "id" : "generic:3", + "class" : "generic", + "handle" : "PCI:0000:ff:0b.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R3 QPI Link Debug", + "vendor" : "Intel Corporation", + "physid" : "b.3", + "businfo" : "pci@0000:ff:0b.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:4", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c", + "businfo" : "pci@0000:ff:0c.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:5", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c.1", + "businfo" : "pci@0000:ff:0c.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:6", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c.2", + "businfo" : "pci@0000:ff:0c.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:7", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c.3", + "businfo" : "pci@0000:ff:0c.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:8", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.4", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c.4", + "businfo" : "pci@0000:ff:0c.4", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:9", + "class" : "generic", + "handle" : "PCI:0000:ff:0c.5", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "c.5", + "businfo" : "pci@0000:ff:0c.5", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:10", + "class" : "generic", + "handle" : "PCI:0000:ff:0f.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "f", + "businfo" : "pci@0000:ff:0f.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:11", + "class" : "generic", + "handle" : "PCI:0000:ff:0f.4", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "f.4", + "businfo" : "pci@0000:ff:0f.4", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:12", + "class" : "generic", + "handle" : "PCI:0000:ff:0f.5", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "f.5", + "businfo" : "pci@0000:ff:0f.5", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:13", + "class" : "generic", + "handle" : "PCI:0000:ff:0f.6", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Caching Agent", + "vendor" : "Intel Corporation", + "physid" : "f.6", + "businfo" : "pci@0000:ff:0f.6", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:14", + "class" : "generic", + "handle" : "PCI:0000:ff:10.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R2PCIe Agent", + "vendor" : "Intel Corporation", + "physid" : "10", + "businfo" : "pci@0000:ff:10.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:15", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:10.1", + "description" : "Performance counters", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D R2PCIe Agent", + "vendor" : "Intel Corporation", + "physid" : "10.1", + "businfo" : "pci@0000:ff:10.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + } + }, + { + "id" : "generic:16", + "class" : "generic", + "handle" : "PCI:0000:ff:10.5", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Ubox", + "vendor" : "Intel Corporation", + "physid" : "10.5", + "businfo" : "pci@0000:ff:10.5", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:17", + "class" : "generic", + "handle" : "PCI:0000:ff:10.6", + "description" : "Performance counters", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Ubox", + "vendor" : "Intel Corporation", + "physid" : "10.6", + "businfo" : "pci@0000:ff:10.6", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:18", + "class" : "generic", + "handle" : "PCI:0000:ff:10.7", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Ubox", + "vendor" : "Intel Corporation", + "physid" : "10.7", + "businfo" : "pci@0000:ff:10.7", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:19", + "class" : "generic", + "handle" : "PCI:0000:ff:12.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Home Agent 0", + "vendor" : "Intel Corporation", + "physid" : "12", + "businfo" : "pci@0000:ff:12.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:20", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:12.1", + "description" : "Performance counters", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Home Agent 0", + "vendor" : "Intel Corporation", + "physid" : "12.1", + "businfo" : "pci@0000:ff:12.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + } + }, + { + "id" : "generic:21", + "class" : "generic", + "handle" : "PCI:0000:ff:13.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Target Address/Thermal/RAS", + "vendor" : "Intel Corporation", + "physid" : "13", + "businfo" : "pci@0000:ff:13.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:22", + "class" : "generic", + "handle" : "PCI:0000:ff:13.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Target Address/Thermal/RAS", + "vendor" : "Intel Corporation", + "physid" : "13.1", + "businfo" : "pci@0000:ff:13.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:23", + "class" : "generic", + "handle" : "PCI:0000:ff:13.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel Target Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "13.2", + "businfo" : "pci@0000:ff:13.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:24", + "class" : "generic", + "handle" : "PCI:0000:ff:13.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel Target Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "13.3", + "businfo" : "pci@0000:ff:13.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:25", + "class" : "generic", + "handle" : "PCI:0000:ff:13.4", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel Target Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "13.4", + "businfo" : "pci@0000:ff:13.4", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:26", + "class" : "generic", + "handle" : "PCI:0000:ff:13.5", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel Target Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "13.5", + "businfo" : "pci@0000:ff:13.5", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:27", + "class" : "generic", + "handle" : "PCI:0000:ff:13.6", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Channel 0/1 Broadcast", + "vendor" : "Intel Corporation", + "physid" : "13.6", + "businfo" : "pci@0000:ff:13.6", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:28", + "class" : "generic", + "handle" : "PCI:0000:ff:13.7", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Global Broadcast", + "vendor" : "Intel Corporation", + "physid" : "13.7", + "businfo" : "pci@0000:ff:13.7", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:29", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:14.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 0 Thermal Control", + "vendor" : "Intel Corporation", + "physid" : "14", + "businfo" : "pci@0000:ff:14.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:30", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:14.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 1 Thermal Control", + "vendor" : "Intel Corporation", + "physid" : "14.1", + "businfo" : "pci@0000:ff:14.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:31", + "class" : "generic", + "handle" : "PCI:0000:ff:14.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 0 Error", + "vendor" : "Intel Corporation", + "physid" : "14.2", + "businfo" : "pci@0000:ff:14.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:32", + "class" : "generic", + "handle" : "PCI:0000:ff:14.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 1 Error", + "vendor" : "Intel Corporation", + "physid" : "14.3", + "businfo" : "pci@0000:ff:14.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:33", + "class" : "generic", + "handle" : "PCI:0000:ff:14.4", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Channel 0/1 Interface", + "vendor" : "Intel Corporation", + "physid" : "14.4", + "businfo" : "pci@0000:ff:14.4", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:34", + "class" : "generic", + "handle" : "PCI:0000:ff:14.5", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Channel 0/1 Interface", + "vendor" : "Intel Corporation", + "physid" : "14.5", + "businfo" : "pci@0000:ff:14.5", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:35", + "class" : "generic", + "handle" : "PCI:0000:ff:14.6", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Channel 0/1 Interface", + "vendor" : "Intel Corporation", + "physid" : "14.6", + "businfo" : "pci@0000:ff:14.6", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:36", + "class" : "generic", + "handle" : "PCI:0000:ff:14.7", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DDRIO Channel 0/1 Interface", + "vendor" : "Intel Corporation", + "physid" : "14.7", + "businfo" : "pci@0000:ff:14.7", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:37", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:15.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 2 Thermal Control", + "vendor" : "Intel Corporation", + "physid" : "15", + "businfo" : "pci@0000:ff:15.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:38", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:ff:15.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 3 Thermal Control", + "vendor" : "Intel Corporation", + "physid" : "15.1", + "businfo" : "pci@0000:ff:15.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "bdx_uncore", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:39", + "class" : "generic", + "handle" : "PCI:0000:ff:15.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 2 Error", + "vendor" : "Intel Corporation", + "physid" : "15.2", + "businfo" : "pci@0000:ff:15.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:40", + "class" : "generic", + "handle" : "PCI:0000:ff:15.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Memory Controller 0 - Channel 3 Error", + "vendor" : "Intel Corporation", + "physid" : "15.3", + "businfo" : "pci@0000:ff:15.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:41", + "class" : "generic", + "handle" : "PCI:0000:ff:1e.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1e", + "businfo" : "pci@0000:ff:1e.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:42", + "class" : "generic", + "handle" : "PCI:0000:ff:1e.1", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1e.1", + "businfo" : "pci@0000:ff:1e.1", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:43", + "class" : "generic", + "handle" : "PCI:0000:ff:1e.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1e.2", + "businfo" : "pci@0000:ff:1e.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:44", + "class" : "generic", + "handle" : "PCI:0000:ff:1e.3", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1e.3", + "businfo" : "pci@0000:ff:1e.3", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:45", + "class" : "generic", + "handle" : "PCI:0000:ff:1e.4", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1e.4", + "businfo" : "pci@0000:ff:1e.4", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:46", + "class" : "generic", + "handle" : "PCI:0000:ff:1f.0", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:ff:1f.0", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:47", + "class" : "generic", + "handle" : "PCI:0000:ff:1f.2", + "description" : "System peripheral", + "product" : "Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Power Control Unit", + "vendor" : "Intel Corporation", + "physid" : "1f.2", + "businfo" : "pci@0000:ff:1f.2", + "version" : "03", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "1", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "2", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "3", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "communication", + "claimed" : true, + "product" : "PnP device PNP0501", + "physid" : "4", + "configuration" : { + "driver" : "serial" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "communication", + "claimed" : true, + "product" : "PnP device PNP0501", + "physid" : "5", + "configuration" : { + "driver" : "serial" + }, + "capabilities" : { + "pnp" : true + } + }, + + }, + { + "id" : "power:0", + "class" : "power", + "description" : "To Be Filled By O.E.M.", + "product" : "To Be Filled By O.E.M.", + "vendor" : "To Be Filled By O.E.M.", + "physid" : "1", + "version" : "To Be Filled By O.E.M.", + "serial" : "To Be Filled By O.E.M.", + "units" : "mWh", + "capacity" : 32768 + }, + { + "id" : "power:1", + "class" : "power", + "description" : "To Be Filled By O.E.M.", + "product" : "To Be Filled By O.E.M.", + "vendor" : "To Be Filled By O.E.M.", + "physid" : "2", + "version" : "To Be Filled By O.E.M.", + "serial" : "To Be Filled By O.E.M.", + "units" : "mWh", + "capacity" : 32768 + }, + { + "id" : "network:0", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "3", + "logicalname" : "br-b4ed0eff4946", + "serial" : "02:42:ba:43:dc:56", + "units" : "bit/s", + "size" : 10000000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "bridge", + "driverversion" : "2.3", + "firmware" : "N/A", + "ip" : "172.18.0.1", + "link" : "yes", + "multicast" : "yes", + "speed" : "10Gbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:1", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "4", + "logicalname" : "docker0", + "serial" : "02:42:9e:5a:4a:d7", + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "bridge", + "driverversion" : "2.3", + "firmware" : "N/A", + "ip" : "172.17.0.1", + "link" : "no", + "multicast" : "yes" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:2", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "5", + "logicalname" : "veth69dd41b", + "serial" : "96:62:b6:c7:89:89", + "units" : "bit/s", + "size" : 10000000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "veth", + "driverversion" : "1.0", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Gbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:3", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "6", + "logicalname" : "vethf6ac699", + "serial" : "96:32:df:bd:5a:7b", + "units" : "bit/s", + "size" : 10000000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "veth", + "driverversion" : "1.0", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Gbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:4", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "7", + "logicalname" : "veth5a80601", + "serial" : "e6:04:ca:05:5f:fb", + "units" : "bit/s", + "size" : 10000000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "veth", + "driverversion" : "1.0", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Gbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:5", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "8", + "logicalname" : "veth3b6a41f", + "serial" : "3e:b8:6c:df:65:33", + "units" : "bit/s", + "size" : 10000000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "veth", + "driverversion" : "1.0", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Gbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:6", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "9", + "logicalname" : "br-one-1", + "serial" : "5e:e0:d9:a6:e7:85", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "bridge", + "driverversion" : "2.3", + "firmware" : "N/A", + "link" : "yes", + "multicast" : "yes", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:7", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "a", + "logicalname" : "one-74-0", + "serial" : "fe:00:0a:65:01:03", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:8", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "b", + "logicalname" : "br-pub-1", + "serial" : "1a:e8:8b:f3:46:43", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "bridge", + "driverversion" : "2.3", + "firmware" : "N/A", + "ip" : "10.101.1.254", + "link" : "yes", + "multicast" : "yes", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:9", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "c", + "logicalname" : "one-49-0", + "serial" : "fe:00:0a:65:01:02", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:10", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "d", + "logicalname" : "one-49-1", + "serial" : "fe:00:0a:65:00:fe", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:11", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "e", + "logicalname" : "one-55-0", + "serial" : "fe:00:0a:65:00:01", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:12", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "f", + "logicalname" : "one-45-0", + "serial" : "fe:00:0a:65:00:02", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:13", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "10", + "logicalname" : "one-75-0", + "serial" : "fe:00:0a:65:00:06", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + { + "id" : "network:14", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "11", + "logicalname" : "one-64-0", + "serial" : "fe:00:0a:65:00:03", + "units" : "bit/s", + "size" : 10000000, + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "tun", + "driverversion" : "1.6", + "duplex" : "full", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "10Mbit/s" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }, + +] diff --git a/tests/mocks/lshw_data.json b/tests/mocks/lshw_data.json new file mode 100644 index 0000000..257e2ea --- /dev/null +++ b/tests/mocks/lshw_data.json @@ -0,0 +1,1137 @@ +{ + "id" : "repair-thinkpad-t490s", + "class" : "system", + "claimed" : true, + "description" : "Computer", + "width" : 64, + "capabilities" : { + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "description" : "Motherboard", + "physid" : "0", + "children" : [ { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "description" : "System memory", + "physid" : "0", + "units" : "bytes", + "size" : 8589934592 + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "product" : "Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz", + "vendor" : "Intel Corp.", + "physid" : "1", + "businfo" : "cpu@0", + "version" : "6.142.12", + "units" : "Hz", + "size" : 2173979000, + "capacity" : 4600000000, + "width" : 64, + "configuration" : { + "microcode" : "248" + }, + "capabilities" : { + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "dts" : "debug trace and EMON store MSRs", + "acpi" : "thermal control (ACPI)", + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ss" : "self-snoop", + "ht" : "HyperThreading", + "tm" : "thermal interrupt and status", + "pbe" : "pending break event", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "art" : true, + "arch_perfmon" : true, + "pebs" : true, + "bts" : true, + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "aperfmperf" : true, + "pni" : true, + "pclmulqdq" : true, + "dtes64" : true, + "monitor" : true, + "ds_cpl" : true, + "vmx" : true, + "est" : true, + "tm2" : true, + "ssse3" : true, + "sdbg" : true, + "fma" : true, + "cx16" : true, + "xtpr" : true, + "pdcm" : true, + "pcid" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "lahf_lm" : true, + "abm" : true, + "3dnowprefetch" : true, + "cpuid_fault" : true, + "epb" : true, + "invpcid_single" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "ibrs_enhanced" : true, + "tpr_shadow" : true, + "flexpriority" : true, + "ept" : true, + "vpid" : true, + "ept_ad" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "sgx" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "mpx" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "intel_pt" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "dtherm" : true, + "ida" : true, + "arat" : true, + "pln" : true, + "pts" : true, + "hwp" : true, + "hwp_notify" : true, + "hwp_act_window" : true, + "hwp_epp" : true, + "vnmi" : true, + "md_clear" : true, + "flush_l1d" : true, + "arch_capabilities" : true, + "cpufreq" : "CPU Frequency scaling" + } + }, + { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Coffee Lake HOST and DRAM Controller", + "vendor" : "Intel Corporation", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "0c", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "skl_uncore" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:00:02.0", + "description" : "VGA compatible controller", + "product" : "WhiskeyLake-U GT2 [UHD Graphics 620]", + "vendor" : "Intel Corporation", + "physid" : "2", + "businfo" : "pci@0000:00:02.0", + "logicalname" : "/dev/fb0", + "version" : "02", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "depth" : "32", + "driver" : "i915", + "latency" : "0", + "resolution" : "1920,1080" + }, + "capabilities" : { + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM", + "fb" : "framebuffer" + } + }, + { + "id" : "generic:0", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:00:04.0", + "description" : "Signal processing controller", + "product" : "Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem", + "vendor" : "Intel Corporation", + "physid" : "4", + "businfo" : "pci@0000:00:04.0", + "version" : "0c", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "proc_thermal", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "handle" : "PCI:0000:00:08.0", + "description" : "System peripheral", + "product" : "Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model", + "vendor" : "Intel Corporation", + "physid" : "8", + "businfo" : "pci@0000:00:08.0", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:00:12.0", + "description" : "Signal processing controller", + "product" : "Cannon Point-LP Thermal Controller", + "vendor" : "Intel Corporation", + "physid" : "12", + "businfo" : "pci@0000:00:12.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "intel_pch_thermal", + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:14.0", + "description" : "USB controller", + "product" : "Cannon Point-LP USB 3.1 xHCI Controller", + "vendor" : "Intel Corporation", + "physid" : "14", + "businfo" : "pci@0000:00:14.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "memory", + "class" : "memory", + "handle" : "PCI:0000:00:14.2", + "description" : "RAM memory", + "product" : "Cannon Point-LP Shared SRAM", + "vendor" : "Intel Corporation", + "physid" : "14.2", + "businfo" : "pci@0000:00:14.2", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "network:0", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:00:14.3", + "description" : "Wireless interface", + "product" : "Cannon Point-LP CNVi [Wireless-AC]", + "vendor" : "Intel Corporation", + "physid" : "14.3", + "businfo" : "pci@0000:00:14.3", + "logicalname" : "wlp0s20f3", + "version" : "30", + "serial" : "38:00:25:8e:bf:a2", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "broadcast" : "yes", + "driver" : "iwlwifi", + "driverversion" : "6.5.0-21-generic", + "firmware" : "46.fae53a8b.0 9000-pu-b0-jf-b0-", + "ip" : "192.168.10.82", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "wireless" : "IEEE 802.11" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "wireless" : "Wireless-LAN" + } + }, + { + "id" : "communication", + "class" : "communication", + "claimed" : true, + "handle" : "PCI:0000:00:16.0", + "description" : "Communication controller", + "product" : "Cannon Point-LP MEI Controller #1", + "vendor" : "Intel Corporation", + "physid" : "16", + "businfo" : "pci@0000:00:16.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "mei_me", + "latency" : "0" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #1", + "vendor" : "Intel Corporation", + "physid" : "1c", + "businfo" : "pci@0000:00:1c.0", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "MMC Host", + "product" : "GL9750 SD Host Controller", + "vendor" : "Genesys Logic, Inc", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "logicalname" : "mmc0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "sdhci-pci", + "latency" : "0" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #5", + "vendor" : "Intel Corporation", + "physid" : "1c.4", + "businfo" : "pci@0000:00:1c.4", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:02:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:03:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "System peripheral", + "product" : "JHL6240 Thunderbolt 3 NHI (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "thunderbolt", + "latency" : "0" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "1", + "businfo" : "pci@0000:03:01.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3a", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "2", + "businfo" : "pci@0000:03:02.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:3a:00.0", + "description" : "USB controller", + "product" : "JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:3a:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }] + }] + }] + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3c", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #9", + "vendor" : "Intel Corporation", + "physid" : "1d", + "businfo" : "pci@0000:00:1d.0", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3d", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #13", + "vendor" : "Intel Corporation", + "physid" : "1d.4", + "businfo" : "pci@0000:00:1d.4", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "nvme", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:3d:00.0", + "description" : "NVMe device", + "product" : "KXG6AZNV256G TOSHIBA", + "vendor" : "Toshiba Corporation", + "physid" : "0", + "businfo" : "pci@0000:3d:00.0", + "logicalname" : "/dev/nvme0", + "version" : "5108AGLA", + "serial" : "39NS11RYTMCQ", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "nvme", + "latency" : "0", + "nqn" : "nqn.2017-03.jp.co.toshiba:KXG6AZNV256G TOSHIBA:39NS11RYTMCQ", + "state" : "live" + }, + "capabilities" : { + "nvme" : true, + "nvm_express" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "namespace:0", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "0", + "logicalname" : "hwmon3" + }, + { + "id" : "namespace:1", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "2", + "logicalname" : "/dev/ng0n1" + }, + { + "id" : "namespace:2", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "1", + "businfo" : "nvme@0:1", + "logicalname" : "/dev/nvme0n1", + "configuration" : { + "wwid" : "eui.8ce38e020004f28f" + } + }] + }] + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:1f.0", + "description" : "ISA bridge", + "product" : "Cannon Point-LP LPC Controller", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:00:1f.0", + "version" : "30", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering" + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "0", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "1", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "2", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "3", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "4", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:05", + "class" : "generic", + "claimed" : true, + "product" : "PnP device INT3f0d", + "physid" : "5", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:06", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0071", + "physid" : "6", + "configuration" : { + "driver" : "i8042 kbd" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:07", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0401", + "physid" : "7", + "configuration" : { + "driver" : "i8042 aux" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:08", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "8", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:09", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "9", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:0a", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "a", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:0b", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "b", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }] + }, + { + "id" : "multimedia", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:00:1f.3", + "description" : "Audio device", + "product" : "Cannon Point-LP High Definition Audio Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.3", + "businfo" : "pci@0000:00:1f.3", + "logicalname" : ["card0", "/dev/snd/controlC0", "/dev/snd/hwC0D0", "/dev/snd/hwC0D2", "/dev/snd/pcmC0D0c", "/dev/snd/pcmC0D0p", "/dev/snd/pcmC0D3p", "/dev/snd/pcmC0D7p", "/dev/snd/pcmC0D8p"], + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "64" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH Mic", + "physid" : "0", + "logicalname" : ["input20", "/dev/input/event8"] + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH Headphone", + "physid" : "1", + "logicalname" : ["input21", "/dev/input/event9"] + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=3", + "physid" : "2", + "logicalname" : ["input22", "/dev/input/event10"] + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=7", + "physid" : "3", + "logicalname" : ["input23", "/dev/input/event11"] + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=8", + "physid" : "4", + "logicalname" : ["input24", "/dev/input/event12"] + }] + }, + { + "id" : "serial:0", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.4", + "description" : "SMBus", + "product" : "Cannon Point-LP SMBus Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.4", + "businfo" : "pci@0000:00:1f.4", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "i801_smbus", + "latency" : "0" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Elan Touchpad", + "physid" : "0", + "logicalname" : ["input16", "/dev/input/event4", "/dev/input/mouse0"], + "capabilities" : { + "i2c" : "I²C bus" + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Elan TrackPoint", + "physid" : "1", + "logicalname" : ["input17", "/dev/input/event5", "/dev/input/mouse1"], + "capabilities" : { + "i2c" : "I²C bus" + } + }] + }, + { + "id" : "serial:1", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.5", + "description" : "Serial bus controller", + "product" : "Cannon Point-LP SPI Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.5", + "businfo" : "pci@0000:00:1f.5", + "version" : "30", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "intel-spi", + "latency" : "0" + } + }, + { + "id" : "network:1", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:00:1f.6", + "description" : "Ethernet interface", + "product" : "Ethernet Connection (6) I219-V", + "vendor" : "Intel Corporation", + "physid" : "1f.6", + "businfo" : "pci@0000:00:1f.6", + "logicalname" : "enp0s31f6", + "version" : "30", + "serial" : "98:fa:9b:1f:f1:fb", + "units" : "bit/s", + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "e1000e", + "driverversion" : "6.5.0-21-generic", + "firmware" : "0.5-3", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }] + }] + }, + { + "id" : "scsi", + "class" : "storage", + "claimed" : true, + "handle" : "SCSI:00", + "physid" : "1", + "businfo" : "scsi@0", + "logicalname" : "scsi0", + "configuration" : { + "driver" : "usb-storage" + }, + "capabilities" : { + "scsi-host" : "SCSI host adapter" + } + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Sleep Button", + "physid" : "2", + "logicalname" : ["input0", "/dev/input/event0"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Lid Switch", + "physid" : "3", + "logicalname" : ["input1", "/dev/input/event1"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "ThinkPad Extra Buttons", + "physid" : "4", + "logicalname" : ["input18", "/dev/input/event7"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "Video Bus", + "physid" : "5", + "logicalname" : ["input19", "/dev/input/event6"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "6", + "logicalname" : ["input2", "/dev/input/event2"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:5", + "class" : "input", + "claimed" : true, + "product" : "Logitech Wireless Mouse M560", + "physid" : "7", + "logicalname" : ["input25", "/dev/input/event13", "/dev/input/mouse2"], + "capabilities" : { + "usb" : "USB" + } + }, + { + "id" : "input:6", + "class" : "input", + "claimed" : true, + "product" : "AT Translated Set 2 keyboard", + "physid" : "8", + "logicalname" : ["input3", "/dev/input/event3", "input3::capslock", "input3::numlock", "input3::scrolllock"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "network", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "9", + "businfo" : "usb@4:1", + "logicalname" : "enxf8e43bcd2594", + "serial" : "f8:e4:3b:cd:25:94", + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "cdc_ncm", + "driverversion" : "6.5.0-21-generic", + "duplex" : "half", + "firmware" : "CDC NCM (NO ZLP)", + "ip" : "192.168.10.50", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }] +} diff --git a/tests/mocks/lshw_data_sudo.json b/tests/mocks/lshw_data_sudo.json new file mode 100644 index 0000000..966114e --- /dev/null +++ b/tests/mocks/lshw_data_sudo.json @@ -0,0 +1,1752 @@ +{ + "id" : "repair-thinkpad-t490s", + "class" : "system", + "claimed" : true, + "handle" : "DMI:0012", + "description" : "Notebook", + "product" : "20NX000JFR (LENOVO_MT_20NX_BU_Think_FM_ThinkPad T490s)", + "vendor" : "LENOVO", + "version" : "ThinkPad T490s", + "serial" : "PC17GAZT", + "width" : 64, + "configuration" : { + "administrator_password" : "disabled", + "chassis" : "notebook", + "family" : "ThinkPad T490s", + "power-on_password" : "disabled", + "sku" : "LENOVO_MT_20NX_BU_Think_FM_ThinkPad T490s", + "uuid" : "f576c24c-2772-11b2-a85c-d5ec7831f0a9" + }, + "capabilities" : { + "smbios-3.1.1" : "SMBIOS version 3.1.1", + "dmi-3.1.1" : "DMI version 3.1.1", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "handle" : "DMI:0013", + "description" : "Motherboard", + "product" : "20NX000JFR", + "vendor" : "LENOVO", + "physid" : "0", + "version" : "SDK0J40697 WIN", + "serial" : "L1HF95W030D", + "slot" : "Not Available", + "children" : [ { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0002", + "description" : "System Memory", + "physid" : "2", + "slot" : "System board or motherboard", + "units" : "bytes", + "size" : 8589934592, + "children" : [ { + "id" : "bank:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0003", + "description" : "SODIMM DDR4 Synchronous 2667 MHz (0,4 ns)", + "product" : "4ATF51264HZ-2G6E1", + "vendor" : "Micron", + "physid" : "0", + "serial" : "00000000", + "slot" : "ChannelA-DIMM0", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 2667000000 + }, + { + "id" : "bank:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0004", + "description" : "SODIMM DDR4 Synchronous 2667 MHz (0,4 ns)", + "product" : "4ATF51264HZ-2G6E1", + "vendor" : "Micron", + "physid" : "1", + "serial" : "00000000", + "slot" : "ChannelB-DIMM0", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 2667000000 + }] + }, + { + "id" : "cache:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:000C", + "description" : "L1 cache", + "physid" : "c", + "slot" : "L1 Cache", + "units" : "bytes", + "size" : 262144, + "capacity" : 262144, + "configuration" : { + "level" : "1" + }, + "capabilities" : { + "synchronous" : "Synchronous", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:000D", + "description" : "L2 cache", + "physid" : "d", + "slot" : "L2 Cache", + "units" : "bytes", + "size" : 1048576, + "capacity" : 1048576, + "configuration" : { + "level" : "2" + }, + "capabilities" : { + "synchronous" : "Synchronous", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:000E", + "description" : "L3 cache", + "physid" : "e", + "slot" : "L3 Cache", + "units" : "bytes", + "size" : 8388608, + "capacity" : 8388608, + "configuration" : { + "level" : "3" + }, + "capabilities" : { + "synchronous" : "Synchronous", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:000F", + "description" : "CPU", + "product" : "Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz", + "vendor" : "Intel Corp.", + "physid" : "f", + "businfo" : "cpu@0", + "version" : "6.142.12", + "serial" : "None", + "slot" : "U3E1", + "units" : "Hz", + "size" : 4099356000, + "capacity" : 4600000000, + "width" : 64, + "clock" : 100000000, + "configuration" : { + "cores" : "4", + "enabledcores" : "4", + "microcode" : "248", + "threads" : "8" + }, + "capabilities" : { + "lm" : "64bits extensions (x86-64)", + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "dts" : "debug trace and EMON store MSRs", + "acpi" : "thermal control (ACPI)", + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ss" : "self-snoop", + "ht" : "HyperThreading", + "tm" : "thermal interrupt and status", + "pbe" : "pending break event", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "art" : true, + "arch_perfmon" : true, + "pebs" : true, + "bts" : true, + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "aperfmperf" : true, + "pni" : true, + "pclmulqdq" : true, + "dtes64" : true, + "monitor" : true, + "ds_cpl" : true, + "vmx" : true, + "est" : true, + "tm2" : true, + "ssse3" : true, + "sdbg" : true, + "fma" : true, + "cx16" : true, + "xtpr" : true, + "pdcm" : true, + "pcid" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "lahf_lm" : true, + "abm" : true, + "3dnowprefetch" : true, + "cpuid_fault" : true, + "epb" : true, + "invpcid_single" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "ibrs_enhanced" : true, + "tpr_shadow" : true, + "flexpriority" : true, + "ept" : true, + "vpid" : true, + "ept_ad" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "sgx" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "mpx" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "intel_pt" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "dtherm" : true, + "ida" : true, + "arat" : true, + "pln" : true, + "pts" : true, + "hwp" : true, + "hwp_notify" : true, + "hwp_act_window" : true, + "hwp_epp" : true, + "vnmi" : true, + "md_clear" : true, + "flush_l1d" : true, + "arch_capabilities" : true, + "cpufreq" : "CPU Frequency scaling" + } + }, + { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "LENOVO", + "physid" : "11", + "version" : "N2JET89W (1.67 )", + "date" : "06/04/2020", + "units" : "bytes", + "size" : 131072, + "capacity" : 33554432, + "capabilities" : { + "pci" : "PCI bus", + "pnp" : "Plug-and-Play", + "upgrade" : "BIOS EEPROM can be upgraded", + "shadowing" : "BIOS shadowing", + "cdboot" : "Booting from CD-ROM/DVD", + "bootselect" : "Selectable boot path", + "edd" : "Enhanced Disk Drive extensions", + "int13floppy720" : "3.5\" 720KB floppy", + "int5printscreen" : "Print Screen key", + "int9keyboard" : "i8042 keyboard controller", + "int14serial" : "INT14 serial line control", + "int17printer" : "INT17 printer control", + "int10video" : "INT10 CGA/Mono video", + "acpi" : "ACPI", + "usb" : "USB legacy emulation", + "biosbootspecification" : "BIOS boot specification", + "uefi" : "UEFI specification is supported" + } + }, + { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Coffee Lake HOST and DRAM Controller", + "vendor" : "Intel Corporation", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "0c", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "skl_uncore" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:00:02.0", + "description" : "VGA compatible controller", + "product" : "WhiskeyLake-U GT2 [UHD Graphics 620]", + "vendor" : "Intel Corporation", + "physid" : "2", + "businfo" : "pci@0000:00:02.0", + "logicalname" : "/dev/fb0", + "version" : "02", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "depth" : "32", + "driver" : "i915", + "latency" : "0", + "resolution" : "1920,1080" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM", + "fb" : "framebuffer" + } + }, + { + "id" : "generic:0", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:00:04.0", + "description" : "Signal processing controller", + "product" : "Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem", + "vendor" : "Intel Corporation", + "physid" : "4", + "businfo" : "pci@0000:00:04.0", + "version" : "0c", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "proc_thermal", + "latency" : "0" + }, + "capabilities" : { + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "handle" : "PCI:0000:00:08.0", + "description" : "System peripheral", + "product" : "Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model", + "vendor" : "Intel Corporation", + "physid" : "8", + "businfo" : "pci@0000:00:08.0", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:00:12.0", + "description" : "Signal processing controller", + "product" : "Cannon Point-LP Thermal Controller", + "vendor" : "Intel Corporation", + "physid" : "12", + "businfo" : "pci@0000:00:12.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "intel_pch_thermal", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:14.0", + "description" : "USB controller", + "product" : "Cannon Point-LP USB 3.1 xHCI Controller", + "vendor" : "Intel Corporation", + "physid" : "14", + "businfo" : "pci@0000:00:14.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-21-generic xhci-hcd", + "physid" : "0", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "12", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb:0", + "class" : "generic", + "handle" : "USB:1:2", + "description" : "Smart card reader", + "product" : "EMV Smartcard Reader", + "vendor" : "Generic", + "physid" : "1", + "businfo" : "usb@1:1", + "version" : "1.20", + "configuration" : { + "maxpower" : "50mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true + } + }, + { + "id" : "usb:1", + "class" : "input", + "claimed" : true, + "handle" : "USB:1:3", + "description" : "Keyboard", + "product" : "USB Receiver", + "vendor" : "Logitech", + "physid" : "4", + "businfo" : "usb@1:4", + "version" : "12.11", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "98mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "input", + "class" : "input", + "claimed" : true, + "product" : "Logitech Wireless Mouse M560", + "physid" : "0", + "logicalname" : ["input25", "/dev/input/event13", "/dev/input/mouse2"], + "capabilities" : { + "usb" : "USB" + } + }] + }, + { + "id" : "usb:2", + "class" : "multimedia", + "claimed" : true, + "handle" : "USB:1:4", + "description" : "Video", + "product" : "Integrated Camera", + "vendor" : "Azurewave", + "physid" : "8", + "businfo" : "usb@1:8", + "version" : "17.11", + "serial" : "0001", + "configuration" : { + "driver" : "uvcvideo", + "maxpower" : "500mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true + } + }, + { + "id" : "usb:3", + "class" : "generic", + "handle" : "USB:1:5", + "description" : "Generic USB device", + "product" : "Prometheus MIS Touch Fingerprint Reader", + "vendor" : "Synaptics, Inc.", + "physid" : "9", + "businfo" : "usb@1:9", + "version" : "0.00", + "serial" : "97f185e21325", + "configuration" : { + "maxpower" : "100mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }, + { + "id" : "usb:4", + "class" : "communication", + "claimed" : true, + "handle" : "USB:1:6", + "description" : "Bluetooth wireless interface", + "product" : "Bluetooth 9460/9560 Jefferson Peak (JfP)", + "vendor" : "Intel Corp.", + "physid" : "a", + "businfo" : "usb@1:a", + "version" : "0.02", + "configuration" : { + "driver" : "btusb", + "maxpower" : "100mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "bluetooth" : "Bluetooth wireless radio", + "usb-2.00" : "USB 2.0" + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-21-generic xhci-hcd", + "physid" : "1", + "businfo" : "usb@2", + "logicalname" : "usb2", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "6", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + }, + "children" : [ { + "id" : "usb", + "class" : "storage", + "claimed" : true, + "handle" : "SCSI:00", + "description" : "Mass storage device", + "product" : "STORE N GO", + "vendor" : "Verbatim", + "physid" : "3", + "businfo" : "usb@2:3", + "logicalname" : "scsi0", + "version" : "0.02", + "serial" : "22113084010903", + "configuration" : { + "driver" : "usb-storage", + "maxpower" : "800mA", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.20" : true, + "scsi" : "SCSI", + "emulated" : "Emulated device", + "scsi-host" : "SCSI host adapter" + }, + "children" : [ { + "id" : "disk", + "class" : "disk", + "claimed" : true, + "handle" : "SCSI:00:00:00:00", + "description" : "SCSI Disk", + "product" : "STORE N GO", + "vendor" : "Verbatim", + "physid" : "0.0.0", + "businfo" : "scsi@0:0.0.0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "version" : "8.01", + "units" : "bytes", + "size" : 62495129600, + "configuration" : { + "ansiversion" : "6", + "logicalsectorsize" : "512", + "sectorsize" : "512" + }, + "capabilities" : { + "removable" : "support is removable" + }, + "children" : [ { + "id" : "medium", + "class" : "disk", + "claimed" : true, + "physid" : "0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "units" : "bytes", + "size" : 62495129600, + "configuration" : { + "signature" : "5cfcc5eb" + }, + "capabilities" : { + "partitioned" : "Partitioned disk", + "partitioned:dos" : "MS-DOS partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "description" : "Linux filesystem partition", + "physid" : "1", + "logicalname" : "/dev/sda1", + "dev" : "8:1", + "serial" : "7bd79485-e171-4527-a9d1-43da13de02c9", + "size" : 29497491456, + "capacity" : 29497491456, + "width" : 297265464, + "configuration" : { + "bits" : "13182167352", + "filesystem" : "luks", + "hash" : "sha256", + "version" : "2" + }, + "capabilities" : { + "primary" : "Primary partition", + "encrypted" : "Encrypted volume", + "luks" : "Linux Unified Key Setup", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "description" : "Windows NTFS volume", + "physid" : "2", + "logicalname" : ["/dev/sda2", "/media/repair/USB-NT"], + "dev" : "8:2", + "version" : "3.1", + "serial" : "777b-c522", + "size" : 32992394752, + "capacity" : 32996589568, + "configuration" : { + "clustersize" : "4096", + "created" : "2023-12-06 08:39:55", + "filesystem" : "ntfs", + "label" : "USB-NT", + "mount.fstype" : "ntfs3", + "mount.options" : "rw,nosuid,nodev,relatime,uid=1000,gid=1000,windows_names,iocharset=utf8", + "state" : "mounted" + }, + "capabilities" : { + "primary" : "Primary partition", + "ntfs" : "Windows NTFS", + "initialized" : "initialized volume" + } + }] + }] + }] + }] + }] + }, + { + "id" : "memory", + "class" : "memory", + "handle" : "PCI:0000:00:14.2", + "description" : "RAM memory", + "product" : "Cannon Point-LP Shared SRAM", + "vendor" : "Intel Corporation", + "physid" : "14.2", + "businfo" : "pci@0000:00:14.2", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "network:0", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:00:14.3", + "description" : "Wireless interface", + "product" : "Cannon Point-LP CNVi [Wireless-AC]", + "vendor" : "Intel Corporation", + "physid" : "14.3", + "businfo" : "pci@0000:00:14.3", + "logicalname" : "wlp0s20f3", + "version" : "30", + "serial" : "38:00:25:8e:bf:a2", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "broadcast" : "yes", + "driver" : "iwlwifi", + "driverversion" : "6.5.0-21-generic", + "firmware" : "46.fae53a8b.0 9000-pu-b0-jf-b0-", + "ip" : "192.168.10.82", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "wireless" : "IEEE 802.11" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "wireless" : "Wireless-LAN" + } + }, + { + "id" : "communication", + "class" : "communication", + "claimed" : true, + "handle" : "PCI:0000:00:16.0", + "description" : "Communication controller", + "product" : "Cannon Point-LP MEI Controller #1", + "vendor" : "Intel Corporation", + "physid" : "16", + "businfo" : "pci@0000:00:16.0", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "mei_me", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #1", + "vendor" : "Intel Corporation", + "physid" : "1c", + "businfo" : "pci@0000:00:1c.0", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "MMC Host", + "product" : "GL9750 SD Host Controller", + "vendor" : "Genesys Logic, Inc", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "logicalname" : "mmc0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "sdhci-pci", + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #5", + "vendor" : "Intel Corporation", + "physid" : "1c.4", + "businfo" : "pci@0000:00:1c.4", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:02:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:03:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "System peripheral", + "product" : "JHL6240 Thunderbolt 3 NHI (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "thunderbolt", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "1", + "businfo" : "pci@0000:03:01.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3a", + "description" : "PCI bridge", + "product" : "JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "2", + "businfo" : "pci@0000:03:02.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:3a:00.0", + "description" : "USB controller", + "product" : "JHL6240 Thunderbolt 3 USB 3.1 Controller (Low Power) [Alpine Ridge LP 2016]", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:3a:00.0", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:3:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-21-generic xhci-hcd", + "physid" : "0", + "businfo" : "usb@3", + "logicalname" : "usb3", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:4:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-21-generic xhci-hcd", + "physid" : "1", + "businfo" : "usb@4", + "logicalname" : "usb4", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + }, + "children" : [ { + "id" : "usb", + "class" : "communication", + "claimed" : true, + "handle" : "USB:4:2", + "description" : "Communication device", + "product" : "AX88179A", + "vendor" : "ASIX", + "physid" : "1", + "businfo" : "usb@4:1", + "version" : "2.00", + "serial" : "00CD2594", + "configuration" : { + "driver" : "cdc_ncm", + "maxpower" : "184mA", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.20" : true + } + }] + }] + }] + }] + }] + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3c", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #9", + "vendor" : "Intel Corporation", + "physid" : "1d", + "businfo" : "pci@0000:00:1d.0", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:3d", + "description" : "PCI bridge", + "product" : "Cannon Point-LP PCI Express Root Port #13", + "vendor" : "Intel Corporation", + "physid" : "1d.4", + "businfo" : "pci@0000:00:1d.4", + "version" : "f0", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "nvme", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:3d:00.0", + "description" : "NVMe device", + "product" : "KXG6AZNV256G TOSHIBA", + "vendor" : "Toshiba Corporation", + "physid" : "0", + "businfo" : "pci@0000:3d:00.0", + "logicalname" : "/dev/nvme0", + "version" : "5108AGLA", + "serial" : "39NS11RYTMCQ", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "nvme", + "latency" : "0", + "nqn" : "nqn.2017-03.jp.co.toshiba:KXG6AZNV256G TOSHIBA:39NS11RYTMCQ", + "state" : "live" + }, + "capabilities" : { + "nvme" : true, + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "nvm_express" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "namespace:0", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "0", + "logicalname" : "hwmon3" + }, + { + "id" : "namespace:1", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "2", + "logicalname" : "/dev/ng0n1" + }, + { + "id" : "namespace:2", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:a6682d7a-eb54-43e7-84a4-44a4beaaa49a", + "description" : "NVMe disk", + "physid" : "1", + "businfo" : "nvme@0:1", + "logicalname" : "/dev/nvme0n1", + "units" : "bytes", + "size" : 256060514304, + "configuration" : { + "guid" : "a6682d7a-eb54-43e7-84a4-44a4beaaa49a", + "logicalsectorsize" : "512", + "sectorsize" : "512", + "wwid" : "eui.8ce38e020004f28f" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:87a3ecda-69a5-4064-8f11-448e1d289ca0", + "description" : "Windows FAT volume", + "vendor" : "mkfs.fat", + "physid" : "1", + "businfo" : "nvme@0:1,1", + "logicalname" : ["/dev/nvme0n1p1", "/boot/efi"], + "dev" : "259:1", + "version" : "FAT32", + "serial" : "d9b6-7308", + "size" : 535805952, + "capacity" : 536870400, + "configuration" : { + "FATs" : "2", + "filesystem" : "fat", + "mount.fstype" : "vfat", + "mount.options" : "rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro", + "name" : "EFI System Partition", + "state" : "mounted" + }, + "capabilities" : { + "boot" : "Contains boot code", + "fat" : "Windows FAT", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:9437edbd-ad72-4a85-9b4c-e2b3f0fc9643", + "description" : "EXT4 volume", + "vendor" : "Linux", + "physid" : "2", + "businfo" : "nvme@0:1,2", + "logicalname" : ["/dev/nvme0n1p2", "/", "/var/snap/firefox/common/host-hunspell"], + "dev" : "259:2", + "version" : "1.0", + "serial" : "9fb75059-3d5f-4fc4-a136-2517b3bd5a1c", + "size" : 255522242560, + "configuration" : { + "created" : "2023-12-15 11:42:35", + "filesystem" : "ext4", + "lastmountpoint" : "/", + "modified" : "2024-03-11 09:39:31", + "mount.fstype" : "ext4", + "mount.options" : "ro,noexec,noatime,errors=remount-ro", + "mounted" : "2024-03-11 09:39:32", + "state" : "mounted" + }, + "capabilities" : { + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "large_files" : "4GB+ files", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "recover" : "needs recovery", + "64bit" : "64bit filesystem", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:1f.0", + "description" : "ISA bridge", + "product" : "Cannon Point-LP LPC Controller", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:00:1f.0", + "version" : "30", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering" + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "0", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "1", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "2", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "3", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "4", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:05", + "class" : "generic", + "claimed" : true, + "product" : "PnP device INT3f0d", + "physid" : "5", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:06", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0071", + "physid" : "6", + "configuration" : { + "driver" : "i8042 kbd" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:07", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0401", + "physid" : "7", + "configuration" : { + "driver" : "i8042 aux" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:08", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "8", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:09", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "9", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:0a", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "a", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:0b", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "b", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }] + }, + { + "id" : "multimedia", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:00:1f.3", + "description" : "Audio device", + "product" : "Cannon Point-LP High Definition Audio Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.3", + "businfo" : "pci@0000:00:1f.3", + "logicalname" : ["card0", "/dev/snd/controlC0", "/dev/snd/hwC0D0", "/dev/snd/hwC0D2", "/dev/snd/pcmC0D0c", "/dev/snd/pcmC0D0p", "/dev/snd/pcmC0D3p", "/dev/snd/pcmC0D7p", "/dev/snd/pcmC0D8p"], + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "64" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH Mic", + "physid" : "0", + "logicalname" : ["input20", "/dev/input/event8"] + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH Headphone", + "physid" : "1", + "logicalname" : ["input21", "/dev/input/event9"] + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=3", + "physid" : "2", + "logicalname" : ["input22", "/dev/input/event10"] + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=7", + "physid" : "3", + "logicalname" : ["input23", "/dev/input/event11"] + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "HDA Intel PCH HDMI/DP,pcm=8", + "physid" : "4", + "logicalname" : ["input24", "/dev/input/event12"] + }] + }, + { + "id" : "serial:0", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.4", + "description" : "SMBus", + "product" : "Cannon Point-LP SMBus Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.4", + "businfo" : "pci@0000:00:1f.4", + "version" : "30", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "i801_smbus", + "latency" : "0" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Elan Touchpad", + "physid" : "0", + "logicalname" : ["input16", "/dev/input/event4", "/dev/input/mouse0"], + "capabilities" : { + "i2c" : "I²C bus" + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Elan TrackPoint", + "physid" : "1", + "logicalname" : ["input17", "/dev/input/event5", "/dev/input/mouse1"], + "capabilities" : { + "i2c" : "I²C bus" + } + }] + }, + { + "id" : "serial:1", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.5", + "description" : "Serial bus controller", + "product" : "Cannon Point-LP SPI Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.5", + "businfo" : "pci@0000:00:1f.5", + "version" : "30", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "intel-spi", + "latency" : "0" + } + }, + { + "id" : "network:1", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:00:1f.6", + "description" : "Ethernet interface", + "product" : "Ethernet Connection (6) I219-V", + "vendor" : "Intel Corporation", + "physid" : "1f.6", + "businfo" : "pci@0000:00:1f.6", + "logicalname" : "enp0s31f6", + "version" : "30", + "serial" : "98:fa:9b:1f:f1:fb", + "units" : "bit/s", + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "e1000e", + "driverversion" : "6.5.0-21-generic", + "firmware" : "0.5-3", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }] + }] + }, + { + "id" : "battery", + "class" : "power", + "claimed" : true, + "handle" : "DMI:002C", + "product" : "5B10W13909", + "vendor" : "LGC", + "physid" : "1", + "slot" : "Front", + "units" : "mWh", + "capacity" : 57000, + "configuration" : { + "voltage" : "11,6V" + } + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Sleep Button", + "physid" : "2", + "logicalname" : ["input0", "/dev/input/event0"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Lid Switch", + "physid" : "3", + "logicalname" : ["input1", "/dev/input/event1"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "ThinkPad Extra Buttons", + "physid" : "4", + "logicalname" : ["input18", "/dev/input/event7"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "Video Bus", + "physid" : "5", + "logicalname" : ["input19", "/dev/input/event6"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "6", + "logicalname" : ["input2", "/dev/input/event2"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:5", + "class" : "input", + "claimed" : true, + "product" : "AT Translated Set 2 keyboard", + "physid" : "7", + "logicalname" : ["input3", "/dev/input/event3", "input3::capslock", "input3::numlock", "input3::scrolllock"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "network", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "8", + "businfo" : "usb@4:1", + "logicalname" : "enxf8e43bcd2594", + "serial" : "f8:e4:3b:cd:25:94", + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "cdc_ncm", + "driverversion" : "6.5.0-21-generic", + "duplex" : "half", + "firmware" : "CDC NCM (NO ZLP)", + "ip" : "192.168.10.50", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }] +} diff --git a/tests/mocks/mocks.py b/tests/mocks/mocks.py new file mode 100644 index 0000000..8830525 --- /dev/null +++ b/tests/mocks/mocks.py @@ -0,0 +1,65 @@ +import os + +current_dir = os.path.dirname(__file__) +mock_power_data = os.path.join(f"{current_dir}", "../mocks/power_data.json") +mock_hardware_data = os.path.join(f"{current_dir}", "../mocks/hardware_data.json") +mock_boaviztapi_response_not_verbose = os.path.join( + f"{current_dir}", "../mocks/boaviztapi_response_not_verbose.json" +) +mock_boaviztapi_response_verbose = os.path.join( + f"{current_dir}", "../mocks/boaviztapi_response_verbose.json" +) +mock_formatted_scaphandre = os.path.join( + f"{current_dir}", "../mocks/formatted_power_data_one_hour.json" +) +mock_formatted_scaphandre_with_processes = os.path.join( + f"{current_dir}", "../mocks/formatted_scaphandre.json" +) +mock_get_metrics_not_verbose = os.path.join( + f"{current_dir}", "../mocks/get_metrics_not_verbose.json" +) +mock_get_metrics_verbose = os.path.join( + f"{current_dir}", "../mocks/get_metrics_verbose.json" +) +mock_get_metrics_verbose_no_hdd = os.path.join( + f"{current_dir}", "../mocks/get_metrics_verbose_no_hdd.json" +) +mock_lshw_data = os.path.join(f"{current_dir}", "../mocks/lshw_data.json") +mock_lshw_data_disks = os.path.join( + f"{current_dir}", "../mocks/sudo_lshw_data_disks.json" +) +mock_sudo_lshw_data = os.path.join(f"{current_dir}", "../mocks/sudo_lshw_data.json") +mock_nvme_data = os.path.join(f"{current_dir}", "../mocks/nvme_data_sudo.json") +hardware_cli = os.path.join(f"{current_dir}", "../../boagent/hardware/hardware_cli.py") +hardware_data = os.path.join(f"{current_dir}", "../../boagent/api/hardware_data.json") + + +class MockLshw: + def __init__(self): + self.cpus = { + "cpus": [ + { + "units": 1, + "name": "AMD Ryzen 5 5600H with Radeon Graphics", + "manufacturer": "Advanced Micro Devices [AMD]", + "core_units": 6, + } + ] + } + self.memories = { + "rams": [ + {"units": 1, "manufacturer": "Samsung", "capacity": 8}, + {"units": 1, "manufacturer": "Kingston", "capacity": 16}, + ] + } + self.disks = { + "disks": [ + { + "units": 1, + "logicalname": "/dev/nvme0n1", + "manufacturer": "samsung", + "type": "ssd", + "capacity": 476, + } + ], + } diff --git a/tests/mocks/nvme_data.json b/tests/mocks/nvme_data.json new file mode 100644 index 0000000..1f5c7e9 --- /dev/null +++ b/tests/mocks/nvme_data.json @@ -0,0 +1,17 @@ +{ + "Devices" : [ + { + "NameSpace" : 1, + "DevicePath" : "/dev/nvme0n1", + "Firmware" : " ", + "Index" : 0, + "ModelNumber" : " ", + "ProductName" : "Non-Volatile memory controller: Toshiba Corporation XG6 NVMe SSD Controller Satellite Pro", + "SerialNumber" : " ", + "UsedBytes" : 0, + "MaximumLBA" : 0, + "PhysicalSize" : 0, + "SectorSize" : 1 + } + ] +} diff --git a/tests/mocks/nvme_data_sudo.json b/tests/mocks/nvme_data_sudo.json new file mode 100644 index 0000000..320de8e --- /dev/null +++ b/tests/mocks/nvme_data_sudo.json @@ -0,0 +1,17 @@ +{ + "Devices" : [ + { + "NameSpace" : 1, + "DevicePath" : "/dev/nvme0n1", + "Firmware" : "5108AGLA", + "Index" : 0, + "ModelNumber" : "KXG6AZNV256G TOSHIBA", + "ProductName" : "Non-Volatile memory controller: Toshiba Corporation XG6 NVMe SSD Controller Satellite Pro", + "SerialNumber" : "39NS11RYTMCQ", + "UsedBytes" : 256060514304, + "MaximumLBA" : 500118192, + "PhysicalSize" : 256060514304, + "SectorSize" : 512 + } + ] +} diff --git a/tests/mocks/power_data.json b/tests/mocks/power_data.json new file mode 100644 index 0000000..031dfa7 --- /dev/null +++ b/tests/mocks/power_data.json @@ -0,0 +1 @@ +[{"host":{"consumption":0.0,"timestamp":1716977472.5421858,"components":{"disks":[]}},"consumers":[],"sockets":[]},{"host":{"consumption":15386704.0,"timestamp":1716977482.607643,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165635444736","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"5.1964197","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":799557.75,"timestamp":1716977482.607422,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.2058678","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":185543.3,"timestamp":1716977482.6074991,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.7707608","cpu_usage_unit":"%","memory_usage":"215318528","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":118594.68,"timestamp":1716977482.6074584,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.22376928","cpu_usage_unit":"%","memory_usage":"258383872","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34430.715,"timestamp":1716977482.6074295,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.198906","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":30605.078,"timestamp":1716977482.607402,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.13674788","cpu_usage_unit":"%","memory_usage":"288235520","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21040.992,"timestamp":1716977482.6074216,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02486325","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3825.6348,"timestamp":1716977482.6074057,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074088,"container":null},{"exe":"/tmp/.mount_ObsidihwGEey/obsidian","cmdline":"/tmp/.mount_ObsidihwGEey/obsidian --type=renderer --enable-crash-reporter=c9273532-4664-4ff7-859b-c37799f8e52d,no_channel --user-data-dir=/home/repair/.config/obsidian --standard-schemes=app --secure-schemes=app --fetch-schemes=app --streaming-schemes=app --code-cache-schemes=app --app-path=/tmp/.mount_ObsidihwGEey/resources/app.asar --no-sandbox --no-zygote --node-integration-in-worker --first-renderer-process --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1716969768092038 --launch-time-ticks=6878864841 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,14914031741360491065,9255948320221533930,262144 --enable-features=SharedArrayBuffer,kWebSQLAccess --disable-features=SpareRendererForSitePerProcess --variations-seed-version","pid":54624,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074152,"container":null},{"exe":"/usr/libexec/gsd-sharing","cmdline":"/usr/libexec/gsd-sharing","pid":2632,"resources_usage":{"cpu_usage":"0.012431625","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1912.8174,"timestamp":1716977482.6074233,"container":null}],"sockets":[{"id":0,"consumption":8874299.0,"domains":[{"name":"uncore","consumption":4017.0,"timestamp":1716977482.5461433},{"name":"core","consumption":6878609.0,"timestamp":1716977482.5461092},{"name":"dram","consumption":442539.0,"timestamp":1716977482.5460715}],"timestamp":1716977482.5452397}]},{"host":{"consumption":8702530.0,"timestamp":1716977492.6876924,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165635706880","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.8009849","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":330781.84,"timestamp":1716977492.6876094,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5405985","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":134071.05,"timestamp":1716977492.6876025,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.2501578","cpu_usage_unit":"%","memory_usage":"288235520","memory_usage_unit":"Bytes","memory_virtual_usage":"5690961920","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":108795.36,"timestamp":1716977492.6875494,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.39146358","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34067.234,"timestamp":1716977492.6875472,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23992927","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20879.918,"timestamp":1716977492.6875415,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.12627858","cpu_usage_unit":"%","memory_usage":"158113792","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":10989.432,"timestamp":1716977492.687542,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID146-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{e5c359a8-f5b6-4b93-97e0-033ca794b075}8698truetab","pid":47939,"resources_usage":{"cpu_usage":"0.06313929","cpu_usage_unit":"%","memory_usage":"145711104","memory_usage_unit":"Bytes","memory_virtual_usage":"2638364672","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":5494.716,"timestamp":1716977492.687546,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037883572","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3296.8293,"timestamp":1716977492.6875496,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025255714","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2197.886,"timestamp":1716977492.687543,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.025255714","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2197.886,"timestamp":1716977492.6875465,"container":null}],"sockets":[{"id":0,"consumption":3163654.0,"domains":[{"name":"uncore","consumption":61688.0,"timestamp":1716977492.617329},{"name":"core","consumption":1271764.0,"timestamp":1716977492.6172578},{"name":"dram","consumption":490931.0,"timestamp":1716977492.6171243}],"timestamp":1716977492.6166718}]},{"host":{"consumption":10301441.0,"timestamp":1716977502.7875,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165634351104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"5.200856","cpu_usage_unit":"%","memory_usage":"587853824","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":535763.1,"timestamp":1716977502.7874088,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"1.8889308","cpu_usage_unit":"%","memory_usage":"178700288","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":194587.1,"timestamp":1716977502.7874117,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.5615162","cpu_usage_unit":"%","memory_usage":"288210944","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":160858.67,"timestamp":1716977502.7873178,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4104017","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":145291.7,"timestamp":1716977502.7873988,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.8185367","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":84321.08,"timestamp":1716977502.7873533,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.35260043","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":36322.926,"timestamp":1716977502.7873154,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.17630021","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18161.463,"timestamp":1716977502.787301,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.12592873","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":12972.474,"timestamp":1716977502.7873018,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025185745","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2594.4946,"timestamp":1716977502.7873032,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.025185745","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2594.4946,"timestamp":1716977502.7873144,"container":null}],"sockets":[{"id":0,"consumption":4301037.0,"domains":[{"name":"uncore","consumption":135187.0,"timestamp":1716977502.6985276},{"name":"core","consumption":2216672.0,"timestamp":1716977502.6984708},{"name":"dram","consumption":628749.0,"timestamp":1716977502.6984143}],"timestamp":1716977502.697563}]},{"host":{"consumption":7995616.0,"timestamp":1716977512.8923075,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165634002944","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6235793","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":129815.164,"timestamp":1716977512.8920734,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.6619208","cpu_usage_unit":"%","memory_usage":"288210944","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":52924.645,"timestamp":1716977512.8918762,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.3996503","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":31954.504,"timestamp":1716977512.8918695,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23729238","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18972.988,"timestamp":1716977512.8918462,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21231423","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":16975.83,"timestamp":1716977512.8918936,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.11240165","cpu_usage_unit":"%","memory_usage":"148160512","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":8987.204,"timestamp":1716977512.8918471,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.04995629","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3994.313,"timestamp":1716977512.8918774,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024978144","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1997.1565,"timestamp":1716977512.8918502,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012489072","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":998.57825,"timestamp":1716977512.8918536,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012489072","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":998.57825,"timestamp":1716977512.8918567,"container":null}],"sockets":[{"id":0,"consumption":2627446.0,"domains":[{"name":"uncore","consumption":27832.0,"timestamp":1716977512.8012142},{"name":"core","consumption":825012.0,"timestamp":1716977512.8011284},{"name":"dram","consumption":423426.0,"timestamp":1716977512.8009913}],"timestamp":1716977512.79996}]},{"host":{"consumption":10608977.0,"timestamp":1716977522.9950569,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633617920","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.9655175","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":526790.6,"timestamp":1716977522.994941,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.893417","cpu_usage_unit":"%","memory_usage":"289783808","memory_usage_unit":"Bytes","memory_virtual_usage":"5693411328","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":200872.17,"timestamp":1716977522.9948015,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.3918495","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":147661.0,"timestamp":1716977522.9949272,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"1.2539184","cpu_usage_unit":"%","memory_usage":"240635904","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133027.92,"timestamp":1716977522.9949443,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9404388","cpu_usage_unit":"%","memory_usage":"217534464","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":99770.94,"timestamp":1716977522.994869,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.36363637","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":38578.098,"timestamp":1716977522.9947972,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2507837","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"358510592","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":26605.586,"timestamp":1716977522.99477,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05015674","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":5321.1167,"timestamp":1716977522.9948022,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02507837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2660.5583,"timestamp":1716977522.994776,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.02507837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2660.5583,"timestamp":1716977522.9947782,"container":null}],"sockets":[{"id":0,"consumption":4585682.0,"domains":[{"name":"uncore","consumption":130765.0,"timestamp":1716977522.9082603},{"name":"core","consumption":2513956.0,"timestamp":1716977522.9080117},{"name":"dram","consumption":625456.0,"timestamp":1716977522.9079459}],"timestamp":1716977522.9069028}]},{"host":{"consumption":9096160.0,"timestamp":1716977533.0356677,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633359872","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"5.0913672","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":463118.9,"timestamp":1716977533.0355194,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID187-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7db398fb-2d54-4175-bad8-828ae0a7c1fa}8698truetab","pid":67704,"resources_usage":{"cpu_usage":"2.621298","cpu_usage_unit":"%","memory_usage":"213168128","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":238437.47,"timestamp":1716977533.0355217,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.7013233","cpu_usage_unit":"%","memory_usage":"288268288","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":154755.1,"timestamp":1716977533.0354176,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5122874","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":137560.08,"timestamp":1716977533.035509,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9073724","cpu_usage_unit":"%","memory_usage":"218583040","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":82536.05,"timestamp":1716977533.0354633,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37807184","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"29954048","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34390.02,"timestamp":1716977533.035414,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.2268431","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20634.012,"timestamp":1716977533.035426,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2142407","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19487.678,"timestamp":1716977533.035395,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.07561436","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":6878.0034,"timestamp":1716977533.0354347,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05040958","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4585.3364,"timestamp":1716977533.035418,"container":null}],"sockets":[{"id":0,"consumption":3378626.0,"domains":[{"name":"uncore","consumption":120543.0,"timestamp":1716977533.0090463},{"name":"core","consumption":1409306.0,"timestamp":1716977533.0089488},{"name":"dram","consumption":545487.0,"timestamp":1716977533.0087752}],"timestamp":1716977533.007695}]},{"host":{"consumption":8192978.0,"timestamp":1716977543.1406338,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165633028096","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.6913054","cpu_usage_unit":"%","memory_usage":"572862464","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":138568.28,"timestamp":1716977543.1404707,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.528439","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":125224.67,"timestamp":1716977543.1404517,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.4134302","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33872.246,"timestamp":1716977543.1402981,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37584567","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":30792.953,"timestamp":1716977543.1402924,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.23803557","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19502.203,"timestamp":1716977543.140315,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.15033826","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":12317.181,"timestamp":1716977543.140263,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.037584566","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"8994816","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3079.2952,"timestamp":1716977543.1403224,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025056379","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2052.8635,"timestamp":1716977543.140276,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.025056379","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2052.8635,"timestamp":1716977543.140299,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012528189","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1026.4318,"timestamp":1716977543.1402783,"container":null}],"sockets":[{"id":0,"consumption":2908598.0,"domains":[{"name":"uncore","consumption":36072.0,"timestamp":1716977543.0476134},{"name":"core","consumption":1116375.0,"timestamp":1716977543.0474162},{"name":"dram","consumption":420343.0,"timestamp":1716977543.0472183}],"timestamp":1716977543.0461595}]},{"host":{"consumption":8751096.0,"timestamp":1716977553.2451942,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165632688128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.0692453","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":268592.6,"timestamp":1716977553.2449682,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4472864","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":126653.42,"timestamp":1716977553.2449527,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.0106051","cpu_usage_unit":"%","memory_usage":"215711744","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":88439.02,"timestamp":1716977553.2448888,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.7735496","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":67694.07,"timestamp":1716977553.244832,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.3867748","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33847.035,"timestamp":1716977553.2448263,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.29943857","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":26204.156,"timestamp":1716977553.2448025,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.23705553","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20744.957,"timestamp":1716977553.244844,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.11228946","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":9826.559,"timestamp":1716977553.2448049,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.04990643","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4367.3594,"timestamp":1716977553.2448325,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024953214","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2183.6797,"timestamp":1716977553.2448082,"container":null}],"sockets":[{"id":0,"consumption":3198244.0,"domains":[{"name":"uncore","consumption":59549.0,"timestamp":1716977553.1556501},{"name":"core","consumption":1330320.0,"timestamp":1716977553.155449},{"name":"dram","consumption":483875.0,"timestamp":1716977553.1552622}],"timestamp":1716977553.1543906}]},{"host":{"consumption":15109567.0,"timestamp":1716977563.327964,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165632421888","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"8.837093","cpu_usage_unit":"%","memory_usage":"579706880","memory_usage_unit":"Bytes","memory_virtual_usage":"13076848640","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1335246.5,"timestamp":1716977563.3278809,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID1-isForBrowser-prefsLen36211-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7c2e7722-9971-4f16-b931-3487c81b519f}8698truetab","pid":9002,"resources_usage":{"cpu_usage":"1.7449832","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":263659.4,"timestamp":1716977563.3278723,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.5704848","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":237293.45,"timestamp":1716977563.3277879,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID190-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{9ebf4a49-d4bc-4e57-bcc3-7a6e303217e6}8698truetab","pid":70773,"resources_usage":{"cpu_usage":"1.4832357","cpu_usage_unit":"%","memory_usage":"212213760","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":224110.5,"timestamp":1716977563.3278968,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.1093107","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":167612.05,"timestamp":1716977563.3278716,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.6107441","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":92280.79,"timestamp":1716977563.3278267,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.27421165","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":41432.19,"timestamp":1716977563.327783,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.22435498","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33899.066,"timestamp":1716977563.327796,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.16203415","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":24482.658,"timestamp":1716977563.3277645,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.09971332","cpu_usage_unit":"%","memory_usage":"148008960","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15066.251,"timestamp":1716977563.3277717,"container":null}],"sockets":[{"id":0,"consumption":8017529.0,"domains":[{"name":"uncore","consumption":176220.0,"timestamp":1716977563.2595258},{"name":"core","consumption":5658539.0,"timestamp":1716977563.2594674},{"name":"dram","consumption":916792.0,"timestamp":1716977563.2594018}],"timestamp":1716977563.2584677}]},{"host":{"consumption":10006593.0,"timestamp":1716977573.4419546,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631950848","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.8938828","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":489710.94,"timestamp":1716977573.4418433,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.4606742","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691256832","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":146163.72,"timestamp":1716977573.4417174,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.3857677","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":138668.14,"timestamp":1716977573.4418309,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.1485642","cpu_usage_unit":"%","memory_usage":"209027072","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":114932.15,"timestamp":1716977573.4417703,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID191-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{54e59378-706f-4028-af5a-d058f1d750fd}8698truetab","pid":71149,"resources_usage":{"cpu_usage":"0.9238452","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":92445.43,"timestamp":1716977573.4417727,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.37453184","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":37477.875,"timestamp":1716977573.441708,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.27465668","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":27483.777,"timestamp":1716977573.4416912,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4416962,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4416995,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.02496879","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2498.5251,"timestamp":1716977573.4417179,"container":null}],"sockets":[{"id":0,"consumption":4110466.0,"domains":[{"name":"uncore","consumption":118189.0,"timestamp":1716977573.3409705},{"name":"core","consumption":2058111.0,"timestamp":1716977573.3409371},{"name":"dram","consumption":633985.0,"timestamp":1716977573.3408978}],"timestamp":1716977573.339861}]},{"host":{"consumption":9042197.0,"timestamp":1716977583.5255575,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631664128","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.637826","cpu_usage_unit":"%","memory_usage":"595918848","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":419361.38,"timestamp":1716977583.5254307,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.4711382","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133023.22,"timestamp":1716977583.5254192,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID196-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7f03b169-af17-446a-b4ea-fa74cfe97f73}8698truetab","pid":71954,"resources_usage":{"cpu_usage":"1.4711382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133023.22,"timestamp":1716977583.5253685,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.2965964","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691183104","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":117240.805,"timestamp":1716977583.5253036,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"1.0597183","cpu_usage_unit":"%","memory_usage":"205684736","memory_usage_unit":"Bytes","memory_virtual_usage":"2714714112","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":95821.81,"timestamp":1716977583.5253606,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.39895275","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":36074.094,"timestamp":1716977583.525293,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.21194364","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19164.361,"timestamp":1716977583.525274,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.049869094","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4509.2617,"timestamp":1716977583.525304,"container":null},{"exe":"/usr/sbin/irqbalance","cmdline":"/usr/sbin/irqbalance--foreground","pid":577,"resources_usage":{"cpu_usage":"0.0124672735","cpu_usage_unit":"%","memory_usage":"4063232","memory_usage_unit":"Bytes","memory_virtual_usage":"84791296","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1127.3154,"timestamp":1716977583.5252724,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.0124672735","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"1695281152","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1127.3154,"timestamp":1716977583.52528,"container":null}],"sockets":[{"id":0,"consumption":3358757.0,"domains":[{"name":"uncore","consumption":96416.0,"timestamp":1716977583.4555578},{"name":"core","consumption":1402343.0,"timestamp":1716977583.4554253},{"name":"dram","consumption":538797.0,"timestamp":1716977583.4552252}],"timestamp":1716977583.454266}]},{"host":{"consumption":8680831.0,"timestamp":1716977593.6256437,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165631238144","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"4.14216","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":359573.9,"timestamp":1716977593.6254854,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5392317","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":133618.1,"timestamp":1716977593.6254647,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"1.126267","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":97769.33,"timestamp":1716977593.6253445,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID196-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{7f03b169-af17-446a-b4ea-fa74cfe97f73}8698truetab","pid":71954,"resources_usage":{"cpu_usage":"1.0762107","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":93424.04,"timestamp":1716977593.6254094,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9260418","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":80388.125,"timestamp":1716977593.6254005,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4004505","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"29954048","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34762.43,"timestamp":1716977593.6253297,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.23776749","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20640.193,"timestamp":1716977593.6253123,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.050056312","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4345.3037,"timestamp":1716977593.6253457,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025028156","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2172.6519,"timestamp":1716977593.6253176,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012514078","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1086.3259,"timestamp":1716977593.6253195,"container":null}],"sockets":[{"id":0,"consumption":3094350.0,"domains":[{"name":"uncore","consumption":99460.0,"timestamp":1716977593.538002},{"name":"core","consumption":1140188.0,"timestamp":1716977593.5378692},{"name":"dram","consumption":528624.0,"timestamp":1716977593.5377688}],"timestamp":1716977593.536801}]},{"host":{"consumption":7735458.0,"timestamp":1716977603.7409463,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630869504","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.8759379","cpu_usage_unit":"%","memory_usage":"575188992","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":145112.39,"timestamp":1716977603.7408333,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6633317","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":128666.33,"timestamp":1716977603.7408211,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.75037515","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":58044.953,"timestamp":1716977603.7406163,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4252126","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":32892.14,"timestamp":1716977603.7406054,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.25012508","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":19348.32,"timestamp":1716977603.7405868,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037518762","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2902.248,"timestamp":1716977603.7406173,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025012508","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1934.832,"timestamp":1716977603.7405918,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.740594,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.7405956,"container":null},{"exe":"","cmdline":"","pid":15,"resources_usage":{"cpu_usage":"0.012506254","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":967.416,"timestamp":1716977603.7405977,"container":null}],"sockets":[{"id":0,"consumption":2476821.0,"domains":[{"name":"uncore","consumption":36145.0,"timestamp":1716977603.6393006},{"name":"core","consumption":697203.0,"timestamp":1716977603.6392395},{"name":"dram","consumption":410732.0,"timestamp":1716977603.6391714}],"timestamp":1716977603.6382167}]},{"host":{"consumption":8125451.0,"timestamp":1716977613.846466,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630558208","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"2.0171833","cpu_usage_unit":"%","memory_usage":"576417792","memory_usage_unit":"Bytes","memory_virtual_usage":"4490244096","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":163905.23,"timestamp":1716977613.8463292,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6062757","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":130517.14,"timestamp":1716977613.8463147,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.5727805","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":46540.996,"timestamp":1716977613.8461592,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.41090772","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33388.105,"timestamp":1716977613.8461483,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.26148674","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21246.977,"timestamp":1716977613.8461282,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.26148674","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"276779008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21246.977,"timestamp":1716977613.8461723,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037355248","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3035.2825,"timestamp":1716977613.84616,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.037355248","cpu_usage_unit":"%","memory_usage":"4849664","memory_usage_unit":"Bytes","memory_virtual_usage":"8994816","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3035.2825,"timestamp":1716977613.8461783,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.012451749","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1011.7608,"timestamp":1716977613.846134,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012451749","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1011.7608,"timestamp":1716977613.846136,"container":null}],"sockets":[{"id":0,"consumption":2766066.0,"domains":[{"name":"uncore","consumption":46117.0,"timestamp":1716977613.7545826},{"name":"core","consumption":945383.0,"timestamp":1716977613.7544835},{"name":"dram","consumption":440501.0,"timestamp":1716977613.754324}],"timestamp":1716977613.7533238}]},{"host":{"consumption":8471964.0,"timestamp":1716977623.946951,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165630218240","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"3.4279995","cpu_usage_unit":"%","memory_usage":"578453504","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":290418.88,"timestamp":1716977623.9467158,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.5638683","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":132490.36,"timestamp":1716977623.9466991,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID63-isForBrowser-prefsLen31922-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{448a0c38-1716-4c53-874b-5e32791e3a99}8698truetab","pid":13088,"resources_usage":{"cpu_usage":"0.9633429","cpu_usage_unit":"%","memory_usage":"210722816","memory_usage_unit":"Bytes","memory_virtual_usage":"2714697728","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":81614.06,"timestamp":1716977623.9466288,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.8632554","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":73134.69,"timestamp":1716977623.9465652,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.41286126","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":34977.457,"timestamp":1716977623.9465582,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.237708","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20138.537,"timestamp":1716977623.9465327,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21268609","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18018.69,"timestamp":1716977623.946579,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID2-isForBrowser-prefsLen37171-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{92f93107-a391-41a2-9f5a-2c652820dffa}8698truetab","pid":9026,"resources_usage":{"cpu_usage":"0.050043788","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":4239.692,"timestamp":1716977623.946535,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.03753284","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3179.7688,"timestamp":1716977623.9465384,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.03753284","cpu_usage_unit":"%","memory_usage":"130531328","memory_usage_unit":"Bytes","memory_virtual_usage":"751403008","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3179.7688,"timestamp":1716977623.9465659,"container":null}],"sockets":[{"id":0,"consumption":2983013.0,"domains":[{"name":"uncore","consumption":68528.0,"timestamp":1716977623.8590598},{"name":"core","consumption":1123070.0,"timestamp":1716977623.8590298},{"name":"dram","consumption":486919.0,"timestamp":1716977623.8589842}],"timestamp":1716977623.8584068}]},{"host":{"consumption":7894296.0,"timestamp":1716977634.0263162,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629890560","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"1.8252281","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":144088.9,"timestamp":1716977634.0262015,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6127017","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"2343305216","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":127311.445,"timestamp":1716977634.0261931,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.51256406","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":40463.324,"timestamp":1716977634.026117,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.42505312","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33554.953,"timestamp":1716977634.0261097,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.2375297","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":18751.297,"timestamp":1716977634.0260992,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21252656","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":16777.477,"timestamp":1716977634.0261252,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.037504688","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":2960.731,"timestamp":1716977634.0261176,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025003124","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1973.8207,"timestamp":1716977634.0261025,"container":null},{"exe":"/usr/sbin/avahi-daemon","cmdline":"avahi-daemon: running [repair-ThinkPad-T490s.local]","pid":563,"resources_usage":{"cpu_usage":"0.025003124","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1973.8207,"timestamp":1716977634.0261297,"container":null},{"exe":"","cmdline":"","pid":69985,"resources_usage":{"cpu_usage":"0.012501562","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":986.91034,"timestamp":1716977634.0261035,"container":null}],"sockets":[{"id":0,"consumption":2620553.0,"domains":[{"name":"uncore","consumption":25527.0,"timestamp":1716977633.96097},{"name":"core","consumption":852530.0,"timestamp":1716977633.9609094},{"name":"dram","consumption":399688.0,"timestamp":1716977633.9608097}],"timestamp":1716977633.9597557}]},{"host":{"consumption":7423857.0,"timestamp":1716977644.123363,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629554688","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.4493821","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":33361.484,"timestamp":1716977644.1230636,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.28710523","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":21314.281,"timestamp":1716977644.1230478,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.21220821","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15754.034,"timestamp":1716977644.123086,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.049931347","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3706.8318,"timestamp":1716977644.1230745,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.024965674","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1853.4159,"timestamp":1716977644.1230526,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-childID4-isForBrowser-prefsLen31781-prefMapSize244788-jsInitLen231800-parentBuildID20240527194810-greomni/snap/firefox/4336/usr/lib/firefox/omni.ja-appomni/snap/firefox/4336/usr/lib/firefox/browser/omni.ja-appDir/snap/firefox/4336/usr/lib/firefox/browser{d212b5eb-2e47-442c-9b4e-49abb9ff925d}8698truetab","pid":9280,"resources_usage":{"cpu_usage":"0.024965674","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1853.4159,"timestamp":1716977644.1230917,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.1230552,"container":null},{"exe":"/tmp/.mount_ObsidihwGEey/obsidian","cmdline":"/tmp/.mount_ObsidihwGEey/obsidian --type=renderer --enable-crash-reporter=c9273532-4664-4ff7-859b-c37799f8e52d,no_channel --user-data-dir=/home/repair/.config/obsidian --standard-schemes=app --secure-schemes=app --fetch-schemes=app --streaming-schemes=app --code-cache-schemes=app --app-path=/tmp/.mount_ObsidihwGEey/resources/app.asar --no-sandbox --no-zygote --node-integration-in-worker --first-renderer-process --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=4 --time-ticks-at-unix-epoch=-1716969768092038 --launch-time-ticks=6878864841 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,14914031741360491065,9255948320221533930,262144 --enable-features=SharedArrayBuffer,kWebSQLAccess --disable-features=SpareRendererForSitePerProcess --variations-seed-version","pid":54624,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"272146432","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.123058,"container":null},{"exe":"","cmdline":"","pid":66646,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.123062,"container":null},{"exe":"","cmdline":"","pid":35,"resources_usage":{"cpu_usage":"0.012482837","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":926.70795,"timestamp":1716977644.1230881,"container":null}],"sockets":[{"id":0,"consumption":2372901.0,"domains":[{"name":"uncore","consumption":399.0,"timestamp":1716977644.0373497},{"name":"core","consumption":698223.0,"timestamp":1716977644.037283},{"name":"dram","consumption":347577.0,"timestamp":1716977644.0371664}],"timestamp":1716977644.0360177}]},{"host":{"consumption":7907386.0,"timestamp":1716977654.2156131,"components":{"disks":[{"disk_type":"SSD","disk_mount_point":"/etc/hosts","disk_is_removable":false,"disk_file_system":"ext4","disk_total_bytes":"250375106560","disk_available_bytes":"165629231104","disk_name":"/dev/nvme0n1p2"}]}},"consumers":[{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox","pid":8698,"resources_usage":{"cpu_usage":"2.101576","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":166179.73,"timestamp":1716977654.2154784,"container":null},{"exe":"/usr/bin/pulseaudio","cmdline":"/usr/bin/pulseaudio--daemonize=no--log-target=journal","pid":2284,"resources_usage":{"cpu_usage":"1.6762571","cpu_usage_unit":"%","memory_usage":"30019584","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":132548.12,"timestamp":1716977654.2154403,"container":null},{"exe":"/usr/bin/gnome-shell","cmdline":"/usr/bin/gnome-shell","pid":2450,"resources_usage":{"cpu_usage":"0.6504879","cpu_usage_unit":"%","memory_usage":"288522240","memory_usage_unit":"Bytes","memory_virtual_usage":"5691183104","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":51436.59,"timestamp":1716977654.2153401,"container":null},{"exe":"/","cmdline":"runcinit","pid":70335,"resources_usage":{"cpu_usage":"0.45033777","cpu_usage_unit":"%","memory_usage":"24055808","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":35609.945,"timestamp":1716977654.2153306,"container":null},{"exe":"/snap/firefox/4336/usr/lib/firefox/firefox","cmdline":"/snap/firefox/4336/usr/lib/firefox/firefox-contentproc-parentBuildID20240527194810-sandboxingKind0-prefsLen41574-prefMapSize244788-appDir/snap/firefox/4336/usr/lib/firefox/browser{2ec18f8a-0e50-44e0-8fab-17a8ec9b94b1}8698trueutility","pid":9270,"resources_usage":{"cpu_usage":"0.262697","cpu_usage_unit":"%","memory_usage":"64557056","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":20772.467,"timestamp":1716977654.2153149,"container":null},{"exe":"/squashfs-root/usr/bin/nvim","cmdline":"/squashfs-root/usr/bin/nvim--embed-u/home/repair/.local/share/lunarvim/lvim/init.lua.","pid":15945,"resources_usage":{"cpu_usage":"0.20015012","cpu_usage_unit":"%","memory_usage":"257024000","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":15826.643,"timestamp":1716977654.215351,"container":null},{"exe":"/usr/bin/python3.9","cmdline":"/usr/bin/python3.9./uvicornboaviztapi.main:app--host0.0.0.0--port5000","pid":70211,"resources_usage":{"cpu_usage":"0.05003753","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":3956.6606,"timestamp":1716977654.2153409,"container":null},{"exe":"/usr/bin/containerd","cmdline":"/usr/bin/containerd","pid":685,"resources_usage":{"cpu_usage":"0.025018765","cpu_usage_unit":"%","memory_usage":"51855360","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":1978.3303,"timestamp":1716977654.2153192,"container":null},{"exe":"","cmdline":"","pid":16,"resources_usage":{"cpu_usage":"0.012509382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":989.16516,"timestamp":1716977654.2153223,"container":null},{"exe":"","cmdline":"","pid":15,"resources_usage":{"cpu_usage":"0.012509382","cpu_usage_unit":"%","memory_usage":"0","memory_usage_unit":"Bytes","memory_virtual_usage":"0","memory_virtual_usage_unit":"Bytes","disk_usage_write":"0","disk_usage_write_unit":"Bytes","disk_usage_read":"0","disk_usage_read_unit":"Bytes"},"consumption":989.16516,"timestamp":1716977654.2153242,"container":null}],"sockets":[{"id":0,"consumption":2587950.0,"domains":[{"name":"uncore","consumption":70320.0,"timestamp":1716977654.136874},{"name":"core","consumption":761085.0,"timestamp":1716977654.1366742},{"name":"dram","consumption":460356.0,"timestamp":1716977654.1364748}],"timestamp":1716977654.1353571}]}] diff --git a/tests/mocks/sudo_lshw_data.json b/tests/mocks/sudo_lshw_data.json new file mode 100644 index 0000000..1804eaa --- /dev/null +++ b/tests/mocks/sudo_lshw_data.json @@ -0,0 +1,1711 @@ +{ + "id" : "virgilisdead-pc", + "class" : "system", + "claimed" : true, + "handle" : "DMI:0001", + "description" : "Notebook", + "product" : "82K2 (LENOVO_MT_82K2_BU_idea_FM_IdeaPad Gaming 3 15ACH6)", + "vendor" : "LENOVO", + "version" : "IdeaPad Gaming 3 15ACH6", + "serial" : "MP23P74B", + "width" : 64, + "configuration" : { + "administrator_password" : "disabled", + "boot" : "normal", + "chassis" : "notebook", + "family" : "IdeaPad Gaming 3 15ACH6", + "frontpanel_password" : "disabled", + "keyboard_password" : "disabled", + "power-on_password" : "disabled", + "sku" : "LENOVO_MT_82K2_BU_idea_FM_IdeaPad Gaming 3 15ACH6", + "uuid" : "8cb50a19-1d29-11ec-810d-7c8ae1a30239" + }, + "capabilities" : { + "smbios-3.3.0" : "SMBIOS version 3.3.0", + "dmi-3.3.0" : "DMI version 3.3.0", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "handle" : "DMI:0002", + "description" : "Motherboard", + "product" : "LNVNB161216", + "vendor" : "LENOVO", + "physid" : "0", + "version" : "SDK0J40700 WIN", + "serial" : "MP23P74B", + "slot" : "Base Board Chassis Location", + "children" : [ { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "LENOVO", + "physid" : "0", + "version" : "H3CN32WW(V2.02)", + "date" : "02/23/2022", + "units" : "bytes", + "size" : 131072, + "capacity" : 16777216, + "capabilities" : { + "pci" : "PCI bus", + "upgrade" : "BIOS EEPROM can be upgraded", + "shadowing" : "BIOS shadowing", + "cdboot" : "Booting from CD-ROM/DVD", + "bootselect" : "Selectable boot path", + "edd" : "Enhanced Disk Drive extensions", + "int13floppynec" : "NEC 9800 floppy", + "int13floppytoshiba" : "Toshiba floppy", + "int13floppy360" : "5.25\" 360KB floppy", + "int13floppy1200" : "5.25\" 1.2MB floppy", + "int13floppy720" : "3.5\" 720KB floppy", + "int13floppy2880" : "3.5\" 2.88MB floppy", + "int9keyboard" : "i8042 keyboard controller", + "int10video" : "INT10 CGA/Mono video", + "acpi" : "ACPI", + "usb" : "USB legacy emulation", + "biosbootspecification" : "BIOS boot specification", + "uefi" : "UEFI specification is supported" + } + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0004", + "description" : "CPU", + "product" : "AMD Ryzen 5 5600H with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "4", + "businfo" : "cpu@0", + "version" : "25.80.0", + "serial" : "Unknown", + "slot" : "FP6", + "units" : "Hz", + "size" : 400000000, + "capacity" : 4280000000, + "width" : 64, + "clock" : 100000000, + "configuration" : { + "cores" : "6", + "enabledcores" : "6", + "microcode" : "173015052", + "threads" : "12" + }, + "capabilities" : { + "lm" : "64bits extensions (x86-64)", + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ht" : "HyperThreading", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "rep_good" : true, + "nopl" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "extd_apicid" : true, + "aperfmperf" : true, + "rapl" : true, + "pni" : true, + "pclmulqdq" : true, + "monitor" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "movbe" : true, + "popcnt" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "extapic" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "ibs" : true, + "skinit" : true, + "wdt" : true, + "tce" : true, + "topoext" : true, + "perfctr_core" : true, + "perfctr_nb" : true, + "bpext" : true, + "perfctr_llc" : true, + "mwaitx" : true, + "cpb" : true, + "cat_l3" : true, + "cdp_l3" : true, + "hw_pstate" : true, + "ssbd" : true, + "mba" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "cqm" : true, + "rdt_a" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "cqm_llc" : true, + "cqm_occup_llc" : true, + "cqm_mbm_total" : true, + "cqm_mbm_local" : true, + "clzero" : true, + "irperf" : true, + "xsaveerptr" : true, + "rdpru" : true, + "wbnoinvd" : true, + "cppc" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "svm_lock" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "decodeassists" : true, + "pausefilter" : true, + "pfthreshold" : true, + "avic" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "v_spec_ctrl" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "smca" : true, + "fsrm" : true, + "cpufreq" : "CPU Frequency scaling" + }, + "children" : [ { + "id" : "cache:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0005", + "description" : "L1 cache", + "physid" : "5", + "slot" : "L1 - Cache", + "units" : "bytes", + "size" : 393216, + "capacity" : 393216, + "clock" : 1000000000, + "configuration" : { + "level" : "1" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0006", + "description" : "L2 cache", + "physid" : "6", + "slot" : "L2 - Cache", + "units" : "bytes", + "size" : 3145728, + "capacity" : 3145728, + "clock" : 1000000000, + "configuration" : { + "level" : "2" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0007", + "description" : "L3 cache", + "physid" : "7", + "slot" : "L3 - Cache", + "units" : "bytes", + "size" : 16777216, + "capacity" : 16777216, + "clock" : 1000000000, + "configuration" : { + "level" : "3" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }] + }, + { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0022", + "description" : "System Memory", + "physid" : "22", + "slot" : "System board or motherboard", + "units" : "bytes", + "size" : 8589934592, + "children" : [ { + "id" : "bank:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0023", + "description" : "SODIMM DDR4 Synchronous Unbuffered (Unregistered) 3200 MHz (0,3 ns)", + "product" : "M471A1G44AB0-CWE", + "vendor" : "Samsung", + "physid" : "0", + "serial" : "46F1CB37", + "slot" : "DIMM 0", + "units" : "bytes", + "size" : 8589934592, + "width" : 64, + "clock" : 3200000000 + }, + { + "id" : "bank:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0024", + "description" : "[empty]", + "product" : "Unknown", + "vendor" : "Unknown", + "physid" : "1", + "serial" : "Unknown", + "slot" : "DIMM 0" + }] + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir/Cezanne Root Complex", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "children" : [ { + "id" : "generic", + "class" : "generic", + "handle" : "PCI:0000:00:00.2", + "description" : "IOMMU", + "product" : "Renoir/Cezanne IOMMU", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.2", + "businfo" : "pci@0000:00:00.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Renoir PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "1.1", + "businfo" : "pci@0000:00:01.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "3D controller", + "product" : "TU117M [GeForce GTX 1650 Mobile / Max-Q]", + "vendor" : "NVIDIA Corporation", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "logicalname" : "/dev/fb0", + "dev" : "29:0", + "version" : "a1", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "depth" : "32", + "driver" : "nvidia", + "latency" : "0", + "mode" : "1920x1080", + "visual" : "truecolor", + "xres" : "1920", + "yres" : "1080" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM", + "fb" : true + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "1.2", + "businfo" : "pci@0000:00:01.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:02:00.0", + "description" : "Ethernet interface", + "product" : "RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0", + "businfo" : "pci@0000:02:00.0", + "logicalname" : "enp2s0", + "version" : "15", + "serial" : "7c:8a:e1:a3:02:39", + "units" : "bit/s", + "size" : 1000000000, + "capacity" : 1000000000, + "width" : 64, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "r8169", + "driverversion" : "6.5.0-25-generic", + "duplex" : "full", + "firmware" : "rtl8168h-2_0.0.2 02/26/15", + "ip" : "192.168.1.165", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "1Gbit/s" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "mii" : "Media Independent Interface", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }] + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "1.3", + "businfo" : "pci@0000:00:01.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "disabled" : true, + "claimed" : true, + "handle" : "PCI:0000:03:00.0", + "description" : "Wireless interface", + "product" : "MT7921 802.11ax PCI Express Wireless Network Adapter", + "vendor" : "MEDIATEK Corp.", + "physid" : "0", + "businfo" : "pci@0000:03:00.0", + "logicalname" : "wlo1", + "version" : "00", + "serial" : "b4:b5:b6:79:22:17", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "broadcast" : "yes", + "driver" : "mt7921e", + "driverversion" : "6.5.0-25-generic", + "firmware" : "____010000-20231109190959", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "wireless" : "IEEE 802.11" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "wireless" : "Wireless-LAN" + } + }] + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "2.2", + "businfo" : "pci@0000:00:02.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "nvme", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "NVMe device", + "product" : "SAMSUNG MZALQ512HBLU-00BL2", + "vendor" : "Samsung Electronics Co Ltd", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "logicalname" : "/dev/nvme0", + "version" : "7L2QFXM7", + "serial" : "S65DNE2R576016", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "nvme", + "latency" : "0", + "nqn" : "nqn.1994-11.com.samsung:nvme:PM991a:M.2:S65DNE2R576016", + "state" : "live" + }, + "capabilities" : { + "nvme" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "nvm_express" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "namespace:0", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "0", + "logicalname" : "hwmon3" + }, + { + "id" : "namespace:1", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "2", + "logicalname" : "/dev/ng0n1" + }, + { + "id" : "namespace:2", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:1fecaa97-f09a-488d-b516-3b68bbb28ae4", + "description" : "NVMe disk", + "physid" : "1", + "businfo" : "nvme@0:1", + "logicalname" : "/dev/nvme0n1", + "units" : "bytes", + "size" : 512110190592, + "configuration" : { + "guid" : "1fecaa97-f09a-488d-b516-3b68bbb28ae4", + "logicalsectorsize" : "512", + "sectorsize" : "512", + "wwid" : "eui.002538d511132cc1" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:917ce9be-0205-4dc9-8a19-b3c9bcbdc615", + "description" : "Windows FAT volume", + "vendor" : "MSDOS5.0", + "physid" : "1", + "businfo" : "nvme@0:1,1", + "logicalname" : ["/dev/nvme0n1p1", "/boot/efi"], + "dev" : "259:1", + "version" : "FAT32", + "serial" : "046d-f274", + "size" : 267912192, + "capacity" : 272629248, + "configuration" : { + "FATs" : "2", + "filesystem" : "fat", + "label" : "SYSTEM_DRV", + "mount.fstype" : "vfat", + "mount.options" : "rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro", + "name" : "EFI system partition", + "state" : "mounted" + }, + "capabilities" : { + "boot" : "Contains boot code", + "fat" : "Windows FAT", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:f2a882c8-e020-440e-9358-ace449ad1f40", + "description" : "EXT4 volume", + "vendor" : "Linux", + "physid" : "3", + "businfo" : "nvme@0:1,3", + "logicalname" : "/dev/nvme0n1p3", + "dev" : "259:2", + "version" : "1.0", + "serial" : "970ce5ee-c264-43f9-8f23-7fede276bab0", + "size" : 176741679104, + "configuration" : { + "created" : "2023-08-18 13:59:07", + "filesystem" : "ext4", + "lastmountpoint" : "/media/virgilisdead/970ce5ee-c264-43f9-8f23-7fede276bab0", + "modified" : "2024-02-25 22:06:18", + "mounted" : "2024-02-25 14:12:18", + "state" : "clean" + }, + "capabilities" : { + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "large_files" : "4GB+ files", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "64bit" : "64bit filesystem", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:ec13037f-c71f-459b-b81a-e569e040f3ce", + "description" : "Windows NTFS volume", + "vendor" : "Windows", + "physid" : "4", + "businfo" : "nvme@0:1,4", + "logicalname" : "/dev/nvme0n1p4", + "dev" : "259:3", + "version" : "3.1", + "serial" : "aa3d2e93-fda9-784b-8bcc-aee2e9a65a9f", + "size" : 1021312512, + "capacity" : 1048575488, + "configuration" : { + "clustersize" : "4096", + "created" : "2021-10-11 12:04:53", + "filesystem" : "ntfs", + "label" : "WINRE_DRV", + "name" : "Basic data partition", + "state" : "clean" + }, + "capabilities" : { + "boot" : "Contains boot code", + "precious" : "This partition is required for the platform to function", + "ntfs" : "Windows NTFS", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:3", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:c969a0be-bf01-4ba4-8533-3b63829a7e57", + "description" : "EXT4 volume", + "vendor" : "Linux", + "physid" : "5", + "businfo" : "nvme@0:1,5", + "logicalname" : ["/dev/nvme0n1p5", "/", "/var/snap/firefox/common/host-hunspell"], + "dev" : "259:4", + "version" : "1.0", + "serial" : "55ecc6fa-6ec8-48e8-9987-392fe7e08612", + "size" : 157286400000, + "configuration" : { + "created" : "2023-02-25 18:27:04", + "filesystem" : "ext4", + "lastmountpoint" : "/", + "modified" : "2024-03-14 12:41:36", + "mount.fstype" : "ext4", + "mount.options" : "ro,noexec,noatime,errors=remount-ro,stripe=32", + "mounted" : "2024-03-14 12:41:36", + "state" : "mounted" + }, + "capabilities" : { + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "large_files" : "4GB+ files", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "recover" : "needs recovery", + "64bit" : "64bit filesystem", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "Renoir Internal PCIe GPP Bridge to Bus", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "8.1", + "businfo" : "pci@0000:00:08.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:05:00.0", + "description" : "VGA compatible controller", + "product" : "Cezanne", + "vendor" : "Advanced Micro Devices, Inc. [AMD/ATI]", + "physid" : "0", + "businfo" : "pci@0000:05:00.0", + "logicalname" : "/dev/fb0", + "version" : "c6", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "depth" : "32", + "driver" : "amdgpu", + "latency" : "0", + "resolution" : "1920,1080" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "fb" : "framebuffer" + } + }, + { + "id" : "multimedia:0", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:05:00.1", + "description" : "Audio device", + "product" : "Renoir Radeon High Definition Audio Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD/ATI]", + "physid" : "0.1", + "businfo" : "pci@0000:05:00.1", + "logicalname" : ["card0", "/dev/snd/controlC0", "/dev/snd/hwC0D0", "/dev/snd/pcmC0D3p"], + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic HDMI/DP,pcm=3", + "physid" : "0", + "logicalname" : ["input15", "/dev/input/event11"] + }] + }, + { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:05:00.2", + "description" : "Encryption controller", + "product" : "Family 17h (Models 10h-1fh) Platform Security Processor", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.2", + "businfo" : "pci@0000:05:00.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ccp", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb:0", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:05:00.3", + "description" : "USB controller", + "product" : "Renoir/Cezanne USB 3.1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.3", + "businfo" : "pci@0000:05:00.3", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-25-generic xhci-hcd", + "physid" : "0", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb:0", + "class" : "input", + "claimed" : true, + "handle" : "USB:1:4", + "description" : "Mouse", + "product" : "Corsair CORSAIR M55 RGB PRO Gaming Mouse", + "vendor" : "Corsair", + "physid" : "2", + "businfo" : "usb@1:2", + "logicalname" : ["input20", "/dev/input/event15", "/dev/input/js0", "/dev/input/mouse2", "input21", "/dev/input/event16", "input21::capslock", "input21::numlock", "input21::scrolllock"], + "version" : "4.05", + "serial" : "17006026AF37A1085B5EC8E1F5001BC1", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "500mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0", + "usb" : "USB" + } + }, + { + "id" : "usb:1", + "class" : "multimedia", + "claimed" : true, + "handle" : "USB:1:2", + "description" : "Video", + "product" : "Integrated Camera", + "vendor" : "SunplusIT Inc", + "physid" : "3", + "businfo" : "usb@1:3", + "version" : "56.15", + "configuration" : { + "driver" : "uvcvideo", + "maxpower" : "500mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true + } + }, + { + "id" : "usb:2", + "class" : "communication", + "claimed" : true, + "handle" : "USB:1:3", + "description" : "Bluetooth wireless interface", + "product" : "Wireless_Device", + "vendor" : "MediaTek Inc.", + "physid" : "4", + "businfo" : "usb@1:4", + "version" : "1.00", + "serial" : "000000000", + "configuration" : { + "driver" : "btusb", + "maxpower" : "100mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.10" : true, + "bluetooth" : "Bluetooth wireless radio" + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-25-generic xhci-hcd", + "physid" : "1", + "businfo" : "usb@2", + "logicalname" : "usb2", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + } + }] + }, + { + "id" : "usb:1", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:05:00.4", + "description" : "USB controller", + "product" : "Renoir/Cezanne USB 3.1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.4", + "businfo" : "pci@0000:05:00.4", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:3:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-25-generic xhci-hcd", + "physid" : "0", + "businfo" : "usb@3", + "logicalname" : "usb3", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb", + "class" : "input", + "claimed" : true, + "handle" : "USB:3:2", + "description" : "Keyboard", + "product" : "ITE Tech. Inc. ITE Device(8176) Keyboard", + "vendor" : "ITE Tech. Inc.", + "physid" : "3", + "businfo" : "usb@3:3", + "logicalname" : ["input10", "/dev/input/event9", "input9", "/dev/input/event8", "input9::capslock", "input9::compose", "input9::kana", "input9::numlock", "input9::scrolllock"], + "version" : "16.00", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "100mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true, + "usb" : "USB" + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:4:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.5.0-25-generic xhci-hcd", + "physid" : "1", + "businfo" : "usb@4", + "logicalname" : "usb4", + "version" : "6.05", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + }, + "children" : [ { + "id" : "usb", + "class" : "storage", + "claimed" : true, + "handle" : "SCSI:00", + "description" : "Mass storage device", + "product" : "STORE N GO", + "vendor" : "Verbatim", + "physid" : "2", + "businfo" : "usb@4:2", + "logicalname" : "scsi0", + "version" : "0.02", + "serial" : "22113084010903", + "configuration" : { + "driver" : "usb-storage", + "maxpower" : "800mA", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.20" : true, + "scsi" : "SCSI", + "emulated" : "Emulated device", + "scsi-host" : "SCSI host adapter" + }, + "children" : [ { + "id" : "disk", + "class" : "disk", + "claimed" : true, + "handle" : "SCSI:00:00:00:00", + "description" : "SCSI Disk", + "product" : "STORE N GO", + "vendor" : "Verbatim", + "physid" : "0.0.0", + "businfo" : "scsi@0:0.0.0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "version" : "8.01", + "units" : "bytes", + "size" : 62495129600, + "configuration" : { + "ansiversion" : "6", + "logicalsectorsize" : "512", + "sectorsize" : "512" + }, + "capabilities" : { + "removable" : "support is removable" + }, + "children" : [ { + "id" : "medium", + "class" : "disk", + "claimed" : true, + "physid" : "0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "units" : "bytes", + "size" : 62495129600, + "configuration" : { + "signature" : "5cfcc5eb" + }, + "capabilities" : { + "partitioned" : "Partitioned disk", + "partitioned:dos" : "MS-DOS partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "description" : "Linux filesystem partition", + "physid" : "1", + "logicalname" : "/dev/sda1", + "dev" : "8:1", + "serial" : "7bd79485-e171-4527-a9d1-43da13de02c9", + "size" : 29497491456, + "capacity" : 29497491456, + "width" : 297265464, + "configuration" : { + "bits" : "13182167352", + "filesystem" : "luks", + "hash" : "sha256", + "version" : "2" + }, + "capabilities" : { + "primary" : "Primary partition", + "encrypted" : "Encrypted volume", + "luks" : "Linux Unified Key Setup", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "description" : "Windows NTFS volume", + "physid" : "2", + "logicalname" : ["/dev/sda2", "/media/virgilisdead/USB-NT"], + "dev" : "8:2", + "version" : "3.1", + "serial" : "777b-c522", + "size" : 32992394752, + "capacity" : 32996589568, + "configuration" : { + "clustersize" : "4096", + "created" : "2023-12-06 08:39:55", + "filesystem" : "ntfs", + "label" : "USB-NT", + "mount.fstype" : "ntfs3", + "mount.options" : "rw,nosuid,nodev,relatime,uid=1000,gid=1000,windows_names,iocharset=utf8", + "state" : "mounted" + }, + "capabilities" : { + "primary" : "Primary partition", + "ntfs" : "Windows NTFS", + "initialized" : "initialized volume" + } + }] + }] + }] + }] + }] + }, + { + "id" : "multimedia:1", + "class" : "multimedia", + "handle" : "PCI:0000:05:00.5", + "description" : "Multimedia controller", + "product" : "Raven/Raven2/FireFlight/Renoir Audio Processor", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.5", + "businfo" : "pci@0000:05:00.5", + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "multimedia:2", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:05:00.6", + "description" : "Audio device", + "product" : "Family 17h (Models 10h-1fh) HD Audio Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.6", + "businfo" : "pci@0000:05:00.6", + "logicalname" : ["card1", "/dev/snd/controlC1", "/dev/snd/hwC1D0", "/dev/snd/pcmC1D0c", "/dev/snd/pcmC1D0p"], + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic Mic", + "physid" : "0", + "logicalname" : ["input16", "/dev/input/event12"] + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic Headphone", + "physid" : "1", + "logicalname" : ["input17", "/dev/input/event13"] + }] + }] + }, + { + "id" : "serial", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:14.0", + "description" : "SMBus", + "product" : "FCH SMBus Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "14", + "businfo" : "pci@0000:00:14.0", + "version" : "51", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "driver" : "piix4_smbus", + "latency" : "0" + } + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:14.3", + "description" : "ISA bridge", + "product" : "FCH LPC Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "14.3", + "businfo" : "pci@0000:00:14.3", + "version" : "51", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering" + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "0", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "1", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "generic", + "claimed" : true, + "product" : "PnP device FUJ7401", + "physid" : "2", + "configuration" : { + "driver" : "i8042 kbd" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "3", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "4", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "input", + "class" : "input", + "claimed" : true, + "product" : "Ideapad extra buttons", + "physid" : "5", + "logicalname" : ["input11", "/dev/input/event10"], + "capabilities" : { + "platform" : true + } + }] + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "101", + "businfo" : "pci@0000:00:01.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "102", + "businfo" : "pci@0000:00:02.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "103", + "businfo" : "pci@0000:00:08.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 0", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "104", + "businfo" : "pci@0000:00:18.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:5", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "105", + "businfo" : "pci@0000:00:18.1", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:6", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 2", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "106", + "businfo" : "pci@0000:00:18.2", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:7", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 3", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "107", + "businfo" : "pci@0000:00:18.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "k10temp" + } + }, + { + "id" : "pci:8", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 4", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "108", + "businfo" : "pci@0000:00:18.4", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:9", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 5", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "109", + "businfo" : "pci@0000:00:18.5", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:10", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 6", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "10a", + "businfo" : "pci@0000:00:18.6", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:11", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 7", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "10b", + "businfo" : "pci@0000:00:18.7", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }] + }, + { + "id" : "battery", + "class" : "power", + "claimed" : true, + "handle" : "DMI:002B", + "description" : "Zinc Air Battery", + "product" : "CRB Battery 0", + "vendor" : "-Virtual Battery 0-", + "physid" : "1", + "version" : "08/08/2010", + "serial" : "Battery 0", + "slot" : "Fake" + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Lid Switch", + "physid" : "2", + "logicalname" : ["input0", "/dev/input/event0"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Sleep Button", + "physid" : "3", + "logicalname" : ["input1", "/dev/input/event1"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "MSFT0002:00 04F3:31AD Mouse", + "physid" : "4", + "logicalname" : ["input12", "/dev/input/event5", "/dev/input/mouse0"], + "capabilities" : { + "i2c" : "I²C bus" + } + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "MSFT0002:00 04F3:31AD Touchpad", + "physid" : "5", + "logicalname" : ["input14", "/dev/input/event6", "/dev/input/mouse1"], + "capabilities" : { + "i2c" : "I²C bus" + } + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "6", + "logicalname" : ["input2", "/dev/input/event2"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:5", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "7", + "logicalname" : ["input3", "/dev/input/event3"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:6", + "class" : "input", + "claimed" : true, + "product" : "AT Translated Set 2 keyboard", + "physid" : "8", + "logicalname" : ["input4", "/dev/input/event4", "input4::capslock", "input4::numlock", "input4::scrolllock"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:7", + "class" : "input", + "claimed" : true, + "product" : "Video Bus", + "physid" : "9", + "logicalname" : ["input8", "/dev/input/event7"], + "capabilities" : { + "platform" : true + } + }] +} diff --git a/tests/mocks/sudo_lshw_data_disks.json b/tests/mocks/sudo_lshw_data_disks.json new file mode 100644 index 0000000..b6ea9f3 --- /dev/null +++ b/tests/mocks/sudo_lshw_data_disks.json @@ -0,0 +1,244 @@ +{ + "id": "pci:3", + "class": "bridge", + "claimed": true, + "handle": "PCIBUS:0000:04", + "description": "PCI bridge", + "product": "Renoir/Cezanne PCIe GPP Bridge", + "vendor": "Advanced Micro Devices, Inc. [AMD]", + "physid": "2.2", + "businfo": "pci@0000:00:02.2", + "version": "00", + "width": 32, + "clock": 33000000, + "configuration": { + "driver": "nvme" + }, + "capabilities": { + "pci": true, + "pm": "Power Management", + "pciexpress": "PCI Express", + "msi": "Message Signalled Interrupts", + "ht": "HyperTransport", + "normal_decode": true, + "bus_master": "bus mastering", + "cap_list": "PCI capabilities listing" + }, + "children": [ + { + "id": "nvme", + "class": "storage", + "claimed": true, + "handle": "PCI:0000:04:00.0", + "description": "NVMe device", + "product": "SAMSUNG MZALQ512HBLU-00BL2", + "vendor": "Samsung Electronics Co Ltd", + "physid": "0", + "businfo": "pci@0000:04:00.0", + "logicalname": "/dev/nvme0", + "version": "7L2QFXM7", + "serial": "S65DNE2R576016", + "width": 64, + "clock": 33000000, + "configuration": { + "driver": "nvme", + "latency": "0", + "nqn": "nqn.1994-11.com.samsung:nvme:PM991a:M.2:S65DNE2R576016", + "state": "live" + }, + "capabilities": { + "nvme": true, + "pm": "Power Management", + "msi": "Message Signalled Interrupts", + "pciexpress": "PCI Express", + "msix": "MSI-X", + "nvm_express": true, + "bus_master": "bus mastering", + "cap_list": "PCI capabilities listing" + }, + "children": [ + { + "id": "namespace:0", + "class": "disk", + "claimed": true, + "description": "NVMe disk", + "physid": "0", + "logicalname": "hwmon3" + }, + { + "id": "namespace:1", + "class": "disk", + "claimed": true, + "description": "NVMe disk", + "physid": "2", + "logicalname": "/dev/ng0n1" + }, + { + "id": "namespace:2", + "class": "disk", + "claimed": true, + "handle": "GUID:1fecaa97-f09a-488d-b516-3b68bbb28ae4", + "description": "NVMe disk", + "physid": "1", + "businfo": "nvme@0:1", + "logicalname": "/dev/nvme0n1", + "units": "bytes", + "size": 512110190592, + "configuration": { + "guid": "1fecaa97-f09a-488d-b516-3b68bbb28ae4", + "logicalsectorsize": "512", + "sectorsize": "512", + "wwid": "eui.002538d511132cc1" + }, + "capabilities": { + "gpt-1.00": "GUID Partition Table version 1.00", + "partitioned": "Partitioned disk", + "partitioned:gpt": "GUID partition table" + }, + "children": [ + { + "id": "volume:0", + "class": "volume", + "claimed": true, + "handle": "GUID:917ce9be-0205-4dc9-8a19-b3c9bcbdc615", + "description": "Windows FAT volume", + "vendor": "MSDOS5.0", + "physid": "1", + "businfo": "nvme@0:1,1", + "logicalname": [ + "/dev/nvme0n1p1", + "/boot/efi" + ], + "dev": "259:1", + "version": "FAT32", + "serial": "046d-f274", + "size": 267912192, + "capacity": 272629248, + "configuration": { + "FATs": "2", + "filesystem": "fat", + "label": "SYSTEM_DRV", + "mount.fstype": "vfat", + "mount.options": "rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro", + "name": "EFI system partition", + "state": "mounted" + }, + "capabilities": { + "boot": "Contains boot code", + "fat": "Windows FAT", + "initialized": "initialized volume" + } + }, + { + "id": "volume:1", + "class": "volume", + "claimed": true, + "handle": "GUID:f2a882c8-e020-440e-9358-ace449ad1f40", + "description": "EXT4 volume", + "vendor": "Linux", + "physid": "3", + "businfo": "nvme@0:1,3", + "logicalname": "/dev/nvme0n1p3", + "dev": "259:2", + "version": "1.0", + "serial": "970ce5ee-c264-43f9-8f23-7fede276bab0", + "size": 176741679104, + "configuration": { + "created": "2023-08-18 13:59:07", + "filesystem": "ext4", + "lastmountpoint": "/media/virgilisdead/970ce5ee-c264-43f9-8f23-7fede276bab0", + "modified": "2024-02-25 22:06:18", + "mounted": "2024-02-25 14:12:18", + "state": "clean" + }, + "capabilities": { + "journaled": true, + "extended_attributes": "Extended Attributes", + "large_files": "4GB+ files", + "huge_files": "16TB+ files", + "dir_nlink": "directories with 65000+ subdirs", + "64bit": "64bit filesystem", + "extents": "extent-based allocation", + "ext4": true, + "ext2": "EXT2/EXT3", + "initialized": "initialized volume" + } + }, + { + "id": "volume:2", + "class": "volume", + "claimed": true, + "handle": "GUID:ec13037f-c71f-459b-b81a-e569e040f3ce", + "description": "Windows NTFS volume", + "vendor": "Windows", + "physid": "4", + "businfo": "nvme@0:1,4", + "logicalname": "/dev/nvme0n1p4", + "dev": "259:3", + "version": "3.1", + "serial": "aa3d2e93-fda9-784b-8bcc-aee2e9a65a9f", + "size": 1021312512, + "capacity": 1048575488, + "configuration": { + "clustersize": "4096", + "created": "2021-10-11 12:04:53", + "filesystem": "ntfs", + "label": "WINRE_DRV", + "name": "Basic data partition", + "state": "clean" + }, + "capabilities": { + "boot": "Contains boot code", + "precious": "This partition is required for the platform to function", + "ntfs": "Windows NTFS", + "initialized": "initialized volume" + } + }, + { + "id": "volume:3", + "class": "volume", + "claimed": true, + "handle": "GUID:c969a0be-bf01-4ba4-8533-3b63829a7e57", + "description": "EXT4 volume", + "vendor": "Linux", + "physid": "5", + "businfo": "nvme@0:1,5", + "logicalname": [ + "/dev/nvme0n1p5", + "/", + "/var/snap/firefox/common/host-hunspell" + ], + "dev": "259:4", + "version": "1.0", + "serial": "55ecc6fa-6ec8-48e8-9987-392fe7e08612", + "size": 157286400000, + "configuration": { + "created": "2023-02-25 18:27:04", + "filesystem": "ext4", + "lastmountpoint": "/", + "modified": "2024-03-14 12:41:36", + "mount.fstype": "ext4", + "mount.options": "ro,noexec,noatime,errors=remount-ro,stripe=32", + "mounted": "2024-03-14 12:41:36", + "state": "mounted" + }, + "capabilities": { + "journaled": true, + "extended_attributes": "Extended Attributes", + "large_files": "4GB+ files", + "huge_files": "16TB+ files", + "dir_nlink": "directories with 65000+ subdirs", + "recover": "needs recovery", + "64bit": "64bit filesystem", + "extents": "extent-based allocation", + "ext4": true, + "ext2": "EXT2/EXT3", + "initialized": "initialized volume" + } + } + ] + } + ] + } + ] +} diff --git a/tests/mocks/sync-ce-re_lshw.json b/tests/mocks/sync-ce-re_lshw.json new file mode 100644 index 0000000..66da3c4 --- /dev/null +++ b/tests/mocks/sync-ce-re_lshw.json @@ -0,0 +1,1395 @@ +{ + "id" : "jimbei", + "class" : "system", + "claimed" : true, + "handle" : "DMI:0001", + "description" : "Sealed-case PC", + "product" : "X8SIL (To Be Filled By O.E.M.)", + "vendor" : "Supermicro", + "version" : "0123456789", + "serial" : "0123456789", + "width" : 64, + "configuration" : { + "boot" : "normal", + "chassis" : "sealed", + "family" : "To Be Filled By O.E.M.", + "sku" : "To Be Filled By O.E.M.", + "uuid" : "49434d53-0200-900d-2500-0d902500d161" + }, + "capabilities" : { + "smbios-2.6" : "SMBIOS version 2.6", + "dmi-2.6" : "DMI version 2.6", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "handle" : "DMI:0002", + "description" : "Motherboard", + "product" : "X8SIL", + "vendor" : "Supermicro", + "physid" : "0", + "version" : "0123456789", + "serial" : "0123456789", + "slot" : "To Be Filled By O.E.M.", + "children" : [ { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "American Megatrends Inc.", + "physid" : "0", + "version" : "1.2a", + "date" : "06/27/2012", + "units" : "bytes", + "size" : 65536, + "capacity" : 4194304, + "capabilities" : { + "isa" : "ISA bus", + "pci" : "PCI bus", + "pnp" : "Plug-and-Play", + "upgrade" : "BIOS EEPROM can be upgraded", + "shadowing" : "BIOS shadowing", + "escd" : "ESCD", + "cdboot" : "Booting from CD-ROM/DVD", + "bootselect" : "Selectable boot path", + "socketedrom" : "BIOS ROM is socketed", + "edd" : "Enhanced Disk Drive extensions", + "int13floppy1200" : "5.25\" 1.2MB floppy", + "int13floppy720" : "3.5\" 720KB floppy", + "int13floppy2880" : "3.5\" 2.88MB floppy", + "int5printscreen" : "Print Screen key", + "int9keyboard" : "i8042 keyboard controller", + "int14serial" : "INT14 serial line control", + "int17printer" : "INT17 printer control", + "int10video" : "INT10 CGA/Mono video", + "acpi" : "ACPI", + "usb" : "USB legacy emulation", + "ls120boot" : "Booting from LS-120", + "zipboot" : "Booting from ATAPI ZIP", + "biosbootspecification" : "BIOS boot specification" + } + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0004", + "description" : "CPU", + "product" : "Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz", + "vendor" : "Intel Corp.", + "physid" : "4", + "businfo" : "cpu@0", + "version" : "6.30.5", + "serial" : "To Be Filled By O.E.M.", + "slot" : "CPU", + "units" : "Hz", + "size" : 1314560000, + "capacity" : 2668000000, + "width" : 64, + "clock" : 133000000, + "configuration" : { + "cores" : "4", + "enabledcores" : "4", + "microcode" : "10", + "threads" : "4" + }, + "capabilities" : { + "lm" : "64bits extensions (x86-64)", + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "dts" : "debug trace and EMON store MSRs", + "acpi" : "thermal control (ACPI)", + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ht" : "HyperThreading", + "tm" : "thermal interrupt and status", + "pbe" : "pending break event", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "arch_perfmon" : true, + "pebs" : true, + "bts" : true, + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "aperfmperf" : true, + "pni" : true, + "dtes64" : true, + "monitor" : true, + "ds_cpl" : true, + "vmx" : true, + "smx" : true, + "est" : true, + "tm2" : true, + "ssse3" : true, + "cx16" : true, + "xtpr" : true, + "pdcm" : true, + "sse4_1" : true, + "sse4_2" : true, + "popcnt" : true, + "lahf_lm" : true, + "pti" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "tpr_shadow" : true, + "vnmi" : true, + "flexpriority" : true, + "ept" : true, + "vpid" : true, + "dtherm" : true, + "ida" : true, + "flush_l1d" : true, + "cpufreq" : "CPU Frequency scaling" + }, + "children" : [ { + "id" : "cache:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0005", + "description" : "L1 cache", + "physid" : "5", + "slot" : "L1-Cache", + "units" : "bytes", + "size" : 262144, + "capacity" : 262144, + "configuration" : { + "level" : "1" + }, + "capabilities" : { + "internal" : "Internal", + "write-through" : "Write-trough", + "instruction" : "Instruction cache" + } + }, + { + "id" : "cache:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0006", + "description" : "L2 cache", + "physid" : "6", + "slot" : "L2-Cache", + "units" : "bytes", + "size" : 1048576, + "capacity" : 1048576, + "configuration" : { + "level" : "2" + }, + "capabilities" : { + "internal" : "Internal", + "write-through" : "Write-trough", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0007", + "description" : "L3 cache", + "physid" : "7", + "slot" : "L3-Cache", + "units" : "bytes", + "size" : 8388608, + "capacity" : 8388608, + "configuration" : { + "level" : "3" + }, + "capabilities" : { + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }] + }, + { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:002C", + "description" : "System Memory", + "physid" : "2c", + "slot" : "System board or motherboard", + "units" : "bytes", + "size" : 17179869184, + "children" : [ { + "id" : "bank:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:002E", + "description" : "DIMM DDR3 Synchronous 1333 MHz (0.8 ns)", + "product" : "NT4GC64B8HG0NF-CG", + "vendor" : "Nanya", + "physid" : "0", + "serial" : "1194C778", + "slot" : "DIMM1A", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 1333000000 + }, + { + "id" : "bank:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0030", + "description" : "DIMM DDR3 Synchronous 1333 MHz (0.8 ns)", + "product" : "99U5403-034.A00G", + "vendor" : "Kingston", + "physid" : "1", + "serial" : "369C3810", + "slot" : "DIMM1B", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 1333000000 + }, + { + "id" : "bank:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0032", + "description" : "DIMM DDR3 Synchronous 1333 MHz (0.8 ns)", + "product" : "NT4GC64B8HG0NF-CG", + "vendor" : "Nanya", + "physid" : "2", + "serial" : "11886939", + "slot" : "DIMM2A", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 1333000000 + }, + { + "id" : "bank:3", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0034", + "description" : "DIMM DDR3 Synchronous 1333 MHz (0.8 ns)", + "product" : "NT4GC64B8HG0NF-CG", + "vendor" : "Nanya", + "physid" : "3", + "serial" : "14945741", + "slot" : "DIMM2B", + "units" : "bytes", + "size" : 4294967296, + "width" : 64, + "clock" : 1333000000 + }] + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Core Processor DMI", + "vendor" : "Intel Corporation", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "children" : [ { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Core Processor PCI Express Root Port 1", + "vendor" : "Intel Corporation", + "physid" : "3", + "businfo" : "pci@0000:00:03.0", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Core Processor PCI Express Root Port 3", + "vendor" : "Intel Corporation", + "physid" : "5", + "businfo" : "pci@0000:00:05.0", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:0", + "class" : "generic", + "handle" : "PCI:0000:00:08.0", + "description" : "System peripheral", + "product" : "Core Processor System Management Registers", + "vendor" : "Intel Corporation", + "physid" : "8", + "businfo" : "pci@0000:00:08.0", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:1", + "class" : "generic", + "handle" : "PCI:0000:00:08.1", + "description" : "System peripheral", + "product" : "Core Processor Semaphore and Scratchpad Registers", + "vendor" : "Intel Corporation", + "physid" : "8.1", + "businfo" : "pci@0000:00:08.1", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:2", + "class" : "generic", + "handle" : "PCI:0000:00:08.2", + "description" : "System peripheral", + "product" : "Core Processor System Control and Status Registers", + "vendor" : "Intel Corporation", + "physid" : "8.2", + "businfo" : "pci@0000:00:08.2", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "generic:3", + "class" : "generic", + "handle" : "PCI:0000:00:08.3", + "description" : "System peripheral", + "product" : "Core Processor Miscellaneous Registers", + "vendor" : "Intel Corporation", + "physid" : "8.3", + "businfo" : "pci@0000:00:08.3", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:4", + "class" : "generic", + "handle" : "PCI:0000:00:10.0", + "description" : "System peripheral", + "product" : "Core Processor QPI Link", + "vendor" : "Intel Corporation", + "physid" : "10", + "businfo" : "pci@0000:00:10.0", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "generic:5", + "class" : "generic", + "handle" : "PCI:0000:00:10.1", + "description" : "System peripheral", + "product" : "Core Processor QPI Routing and Protocol Registers", + "vendor" : "Intel Corporation", + "physid" : "10.1", + "businfo" : "pci@0000:00:10.1", + "version" : "11", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + } + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "5 Series/3400 Series Chipset PCI Express Root Port 1", + "vendor" : "Intel Corporation", + "physid" : "1c", + "businfo" : "pci@0000:00:1c.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "5 Series/3400 Series Chipset PCI Express Root Port 5", + "vendor" : "Intel Corporation", + "physid" : "1c.4", + "businfo" : "pci@0000:00:1c.4", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "Ethernet interface", + "product" : "82574L Gigabit Network Connection", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "logicalname" : "enp4s0", + "version" : "00", + "serial" : "00:25:90:0d:61:d0", + "units" : "bit/s", + "size" : 100000000, + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "e1000e", + "driverversion" : "5.15.0-91-generic", + "duplex" : "full", + "firmware" : "1.9-0", + "ip" : "91.121.209.54", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "port" : "twisted pair", + "speed" : "100Mbit/s" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }] + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "5 Series/3400 Series Chipset PCI Express Root Port 6", + "vendor" : "Intel Corporation", + "physid" : "1c.5", + "businfo" : "pci@0000:00:1c.5", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "disabled" : true, + "claimed" : true, + "handle" : "PCI:0000:05:00.0", + "description" : "Ethernet interface", + "product" : "82574L Gigabit Network Connection", + "vendor" : "Intel Corporation", + "physid" : "0", + "businfo" : "pci@0000:05:00.0", + "logicalname" : "enp5s0", + "version" : "00", + "serial" : "00:25:90:0d:61:d1", + "units" : "bit/s", + "capacity" : 1000000000, + "width" : 32, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "e1000e", + "driverversion" : "5.15.0-91-generic", + "firmware" : "1.9-0", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }] + }, + { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1d.0", + "description" : "USB controller", + "product" : "5 Series/3400 Series Chipset USB2 Enhanced Host Controller", + "vendor" : "Intel Corporation", + "physid" : "1d", + "businfo" : "pci@0000:00:1d.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ehci-pci", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "debug" : "Debug port", + "ehci" : "Enhanced Host Controller Interface (USB2)", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "EHCI Host Controller", + "vendor" : "Linux 5.15.0-91-generic ehci_hcd", + "physid" : "1", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "5.15", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:2", + "description" : "USB hub", + "product" : "Integrated Rate Matching Hub", + "vendor" : "Intel Corp.", + "physid" : "1", + "businfo" : "usb@1:1", + "version" : "0.00", + "configuration" : { + "driver" : "hub", + "slots" : "8", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }] + }] + }, + { + "id" : "pci:5", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:06", + "description" : "PCI bridge", + "product" : "82801 PCI Bridge", + "vendor" : "Intel Corporation", + "physid" : "1e", + "businfo" : "pci@0000:00:1e.0", + "version" : "a5", + "width" : 32, + "clock" : 33000000, + "capabilities" : { + "pci" : true, + "subtractive_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:06:03.0", + "description" : "VGA compatible controller", + "product" : "MGA G200eW WPCM450", + "vendor" : "Matrox Electronics Systems Ltd.", + "physid" : "3", + "businfo" : "pci@0000:06:03.0", + "logicalname" : "/dev/fb0", + "version" : "0a", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "depth" : "32", + "driver" : "mgag200", + "latency" : "64", + "maxlatency" : "32", + "mingnt" : "16", + "resolution" : "1024,768" + }, + "capabilities" : { + "pm" : "Power Management", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM", + "fb" : "framebuffer" + } + }] + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:1f.0", + "description" : "ISA bridge", + "product" : "3400 Series Chipset LPC Interface Controller", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:00:1f.0", + "version" : "05", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "lpc_ich", + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "0", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "1", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "communication", + "claimed" : true, + "product" : "PnP device PNP0501", + "physid" : "2", + "configuration" : { + "driver" : "serial" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "communication", + "claimed" : true, + "product" : "PnP device PNP0501", + "physid" : "3", + "configuration" : { + "driver" : "serial" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "4", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:05", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "5", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:06", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "6", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:07", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "7", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:08", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "8", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:09", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "9", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }] + }, + { + "id" : "sata", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:00:1f.2", + "description" : "SATA controller", + "product" : "5 Series/3400 Series Chipset 4 port SATA AHCI Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.2", + "businfo" : "pci@0000:00:1f.2", + "logicalname" : "scsi0", + "version" : "05", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "driver" : "ahci", + "latency" : "0" + }, + "capabilities" : { + "sata" : true, + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "ahci_1.0" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "emulated" : "Emulated device" + }, + "children" : [ { + "id" : "disk", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:e28a896c-74dc-4063-a4d1-91681dcecf2c", + "description" : "ATA Disk", + "product" : "HGST HUS724020AL", + "physid" : "0.0.0", + "businfo" : "scsi@0:0.0.0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "version" : "ABY0", + "serial" : "PN1134P6K12EDW", + "units" : "bytes", + "size" : 2000398934016, + "configuration" : { + "ansiversion" : "5", + "guid" : "e28a896c-74dc-4063-a4d1-91681dcecf2c", + "logicalsectorsize" : "512", + "sectorsize" : "512" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:42ff3370-fd34-4b61-b1c9-52da58c0338d", + "description" : "BIOS Boot partition", + "vendor" : "EFI", + "physid" : "1", + "businfo" : "scsi@0:0.0.0,1", + "logicalname" : "/dev/sda1", + "dev" : "8:1", + "serial" : "42ff3370-fd34-4b61-b1c9-52da58c0338d", + "capacity" : 1028096, + "configuration" : { + "name" : "bios_grub-sda" + }, + "capabilities" : { + "nofs" : "No filesystem" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:d9918f23-f51e-4374-8772-3a30bfcc9948", + "description" : "EXT4 volume", + "vendor" : "Linux", + "physid" : "2", + "businfo" : "scsi@0:0.0.0,2", + "logicalname" : ["/dev/sda2", "/boot"], + "dev" : "8:2", + "version" : "1.0", + "serial" : "aa195782-db85-436f-b272-1d56e72ea0fc", + "size" : 535822336, + "configuration" : { + "created" : "2019-01-24 23:01:40", + "filesystem" : "ext4", + "label" : "/boot", + "lastmountpoint" : "/boot", + "modified" : "2024-01-04 16:31:11", + "mount.fstype" : "ext4", + "mount.options" : "rw,relatime,errors=remount-ro", + "mounted" : "2024-01-04 16:31:11", + "name" : "primary", + "state" : "mounted" + }, + "capabilities" : { + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "recover" : "needs recovery", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:140f06cf-0335-44e9-b3fd-b8190224265d", + "description" : "Linux swap volume", + "vendor" : "Linux", + "physid" : "3", + "businfo" : "scsi@0:0.0.0,3", + "logicalname" : "/dev/sda3", + "dev" : "8:3", + "version" : "1", + "serial" : "309f7768-e3ef-44f6-8bb5-d0049b6c9a07", + "size" : 535691520, + "capacity" : 535821824, + "configuration" : { + "filesystem" : "swap", + "label" : "swap-sda3", + "name" : "primary", + "pagesize" : "4095" + }, + "capabilities" : { + "nofs" : "No filesystem", + "swap" : "Linux swap", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:3", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:18023466-1b7d-439b-bdd9-3e06a8fb4f63", + "description" : "EXT4 volume", + "vendor" : "Linux", + "physid" : "4", + "businfo" : "scsi@0:0.0.0,4", + "logicalname" : ["/dev/sda4", "/"], + "dev" : "8:4", + "version" : "1.0", + "serial" : "bd7bcedf-e69b-4fcb-8679-824ce4333dba", + "size" : 1272657739776, + "configuration" : { + "created" : "2019-01-24 23:01:33", + "filesystem" : "ext4", + "label" : "/", + "lastmountpoint" : "/", + "modified" : "2024-01-04 16:30:47", + "mount.fstype" : "ext4", + "mount.options" : "rw,relatime,errors=remount-ro", + "mounted" : "2024-01-04 16:30:58", + "name" : "primary", + "state" : "mounted" + }, + "capabilities" : { + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "large_files" : "4GB+ files", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "recover" : "needs recovery", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:4", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:98851bad-b3c8-4271-a39f-4668b8e109e8", + "description" : "LVM Physical Volume", + "vendor" : "Linux", + "physid" : "5", + "businfo" : "scsi@0:0.0.0,5", + "logicalname" : "/dev/sda5", + "dev" : "8:5", + "serial" : "lXXkmE-4tYr-DLgZ-L7fp-iCOG-F8fO-kxWRZa", + "size" : 726661070848, + "configuration" : { + "name" : "logical" + }, + "capabilities" : { + "multi" : "Multi-volumes", + "lvm2" : true + } + }] + }] + }, + { + "id" : "serial", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.3", + "description" : "SMBus", + "product" : "5 Series/3400 Series Chipset SMBus Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.3", + "businfo" : "pci@0000:00:1f.3", + "version" : "05", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "i801_smbus", + "latency" : "0" + } + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor QuickPath Architecture Generic Non-Core Registers", + "vendor" : "Intel Corporation", + "physid" : "101", + "businfo" : "pci@0000:ff:00.0", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor QuickPath Architecture System Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "102", + "businfo" : "pci@0000:ff:00.1", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor QPI Link 0", + "vendor" : "Intel Corporation", + "physid" : "103", + "businfo" : "pci@0000:ff:02.0", + "version" : "04", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "i7core_edac" + } + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor QPI Physical 0", + "vendor" : "Intel Corporation", + "physid" : "104", + "businfo" : "pci@0000:ff:02.1", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:5", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller", + "vendor" : "Intel Corporation", + "physid" : "105", + "businfo" : "pci@0000:ff:03.0", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:6", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Target Address Decoder", + "vendor" : "Intel Corporation", + "physid" : "106", + "businfo" : "pci@0000:ff:03.1", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:7", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Test Registers", + "vendor" : "Intel Corporation", + "physid" : "107", + "businfo" : "pci@0000:ff:03.4", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:8", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 0 Control Registers", + "vendor" : "Intel Corporation", + "physid" : "108", + "businfo" : "pci@0000:ff:04.0", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:9", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 0 Address Registers", + "vendor" : "Intel Corporation", + "physid" : "109", + "businfo" : "pci@0000:ff:04.1", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:10", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 0 Rank Registers", + "vendor" : "Intel Corporation", + "physid" : "10a", + "businfo" : "pci@0000:ff:04.2", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:11", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 0 Thermal Control Registers", + "vendor" : "Intel Corporation", + "physid" : "10b", + "businfo" : "pci@0000:ff:04.3", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:12", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 1 Control Registers", + "vendor" : "Intel Corporation", + "physid" : "10c", + "businfo" : "pci@0000:ff:05.0", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:13", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 1 Address Registers", + "vendor" : "Intel Corporation", + "physid" : "10d", + "businfo" : "pci@0000:ff:05.1", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:14", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 1 Rank Registers", + "vendor" : "Intel Corporation", + "physid" : "10e", + "businfo" : "pci@0000:ff:05.2", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:15", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:ff", + "description" : "Host bridge", + "product" : "Core Processor Integrated Memory Controller Channel 1 Thermal Control Registers", + "vendor" : "Intel Corporation", + "physid" : "10f", + "businfo" : "pci@0000:ff:05.3", + "version" : "04", + "width" : 32, + "clock" : 33000000 + }] + }, + { + "id" : "power", + "class" : "power", + "description" : "To Be Filled By O.E.M.", + "product" : "To Be Filled By O.E.M.", + "vendor" : "To Be Filled By O.E.M.", + "physid" : "1", + "version" : "To Be Filled By O.E.M.", + "serial" : "To Be Filled By O.E.M.", + "units" : "mWh", + "capacity" : 32768 + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "2", + "logicalname" : ["input0", "/dev/input/event0"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "3", + "logicalname" : ["input1", "/dev/input/event1"], + "capabilities" : { + "platform" : true + } + }] +}