diff --git a/.tx/config b/.tx/config index 0438e6756..9b12774e3 100644 --- a/.tx/config +++ b/.tx/config @@ -477,4 +477,56 @@ source_file = build/locale/agent_config/index.pot source_lang = en type = PO +[o:teclib:p:glpi-plugins-documentation:r:carbon--index] +file_filter = source/locale//LC_MESSAGES/carbon/index.po +source_file = build/locale/carbon/index.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--carbon_reports] +file_filter = source/locale//LC_MESSAGES/carbon/carbon_reports.po +source_file = build/locale/carbon/carbon_reports.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--configuration] +file_filter = source/locale//LC_MESSAGES/carbon/configuration.po +source_file = build/locale/carbon/configuration.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--features] +file_filter = source/locale//LC_MESSAGES/carbon/features.po +source_file = build/locale/carbon/features.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--installation] +file_filter = source/locale//LC_MESSAGES/carbon/installation.po +source_file = build/locale/carbon/installation.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--limitations] +file_filter = source/locale//LC_MESSAGES/carbon/limitations.po +source_file = build/locale/carbon/limitations.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--reading] +file_filter = source/locale//LC_MESSAGES/carbon/reading.po +source_file = build/locale/carbon/reading.pot +source_lang = en +type = PO + +[o:teclib:p:glpi-plugins-documentation:r:carbon--recommandations] +file_filter = source/locale//LC_MESSAGES/carbon/recommandations.po +source_file = build/locale/carbon/recommandations.pot +source_lang = en +type = PO +[o:teclib:p:glpi-plugins-documentation:r:carbon--requirements] +file_filter = source/locale//LC_MESSAGES/carbon/requirements.po +source_file = build/locale/carbon/requirements.pot +source_lang = en +type = PO \ No newline at end of file diff --git a/source/carbon/carbon_reports.rst b/source/carbon/carbon_reports.rst new file mode 100644 index 000000000..b6201f0ae --- /dev/null +++ b/source/carbon/carbon_reports.rst @@ -0,0 +1,10 @@ +Carbon reports +============== + +A dashboard is available and customizable. +Several types of data are available such as monthly carbon emissions, biggest monthly averaged carbon emissions per model, handled assets ratio, etc. + +This dashboard works like the classic GLPI dashboard and can be customized in the same way. + +.. note:: The plugin is still under development, so some changes are still being made. + Since the dashboards are not finalized, we are not yet able to provide you with a visual. \ No newline at end of file diff --git a/source/carbon/configuration.rst b/source/carbon/configuration.rst new file mode 100644 index 000000000..0ccde08c6 --- /dev/null +++ b/source/carbon/configuration.rst @@ -0,0 +1,114 @@ +Configuration +============= + +Automatic actions +----------------- + +The plugin requires a working configuration of `automatic actions with CLI mode `_. +Check carefully that GLPI scheduler is running every minute. + +Downloading carbon intensitiy data +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The plugin implements an automatic action for each data provider. Supported sources are : + +* **RTE** for France (free, data back to 2012-01-01) +* **Electricity Map** for most countries and regions in the world (free access limited to last 24 hours) + +When an automatic action runs for the first time it setups supported regions in database. Once done, you may activate downloads for regions of interest. + +Enable / disable carbon intensity data download +----------------------------------------------- + +* Navigate in GLPI to **Setup > Dropdowns > box GLPI Carbon > Carbon intensity sources** + +.. image:: images/plugin_dropdowns_intensity.png + :alt: select carbon in dropdown tab + :scale: 38% + +* Select a data provider +* Open the tab **Carbon intensity zones** +* Find the country you want to check or set + +.. image:: images/choose_country.png + :alt: select the country + :scale: 44% + + +* Toggle the flag **Download enabled** by clicking on its status + +.. image:: images/enable_download.png + :alt: enable download of the country + :scale: 44% + +.. note:: + If the list of regions or countries is empty then you need to run the automatic action of this source first. + +Enable / disable automatic geocoding +------------------------------------ + +Boaviztapi needs an encoded country designation to improve the accuracy of its results. This is done by the plugin using geocoding services from Nominatim. It is disabled by default and can be enabled in the configuration page of the plugin. When enabled, it monitors changes in locations and tries to resolve the encoded country designation from the fields country, state, and town filled in a location. + +It also has an automatic action to find the country designation for locations already in the database at installation time. This automatic action works only if geocoding is enabled, and runs once a day to solve 10 locations at a time to obey the Nominatim usage policy. + +.. note:: + If you need to import a large number of locations, disable geocoding first to avoid any abuse, then let the automatic action resolve them slowly. + +To enable it, go to **Setup > Plugins**, locate the Carbon plugin, click on its wrench and check the box **Enable geocoding**. + +When the geocoding feature is disabled, it is advised to select the country field manually. This field is under the map and duplicates the native text field **Country** from GLPI. + + +Inventory requirements +---------------------- + +All assets +^^^^^^^^^^ + +1. To calculate the emission of greenhouse gas related to energy consumed during use of your assets, the plugin needs to know when an asset is used for the first time and when its services is stopped. + +To do so, the plugin searches for the following dates on order of decreasing precedence: + +* **startup date** (Financial and administrative informations) : **this information is mandatory** +* **delivery date** (Financial and administrative informations) +* **date of purchase** (Financial and administrative informations) +* **creation date in inventory** +* **modification date in inventory** + +.. image:: images/financial_information.png + :alt: view financial information + :scale: 36% + +.. note:: Monitors rely on the location of the computer it is connected to, so there is no need to add it manually + +2. The plugin needs to know where is an asset to determine which carbon intensity is applied to its energy consumption. The associated location must have the field **Country** filled + +3. Each asset must be associated with a model so that the plugin can estimate CO2 emissions as closely as possible. This information can be pre-filled from a `template `_ + +.. image:: images/computer_model.png + :alt: Asset's model + :scale: 45% + + +4. It is preferable that the machines be inventoried by an agent so that the **components** tab is filled in as accurately as possible. +It is possible to do this manually but the automatic inventory seems more reliable. + +.. image:: images/computer_components.png + :alt: Asset's components + :scale: 43% + +Computers +^^^^^^^^^ +Computers are usually powered on depending on working days and hours. You msut tell when computers are turned on in their tab **Environnemental impact**. In this place you can assign a usege profile which describes how the computers are powered on. + +To create an usage profile, go in **Setup > Dropdowns > box GLPI Carbon > Computer usage profiles**. + +.. image:: images/plugin_dropdowns.png + :alt: select carbon in dropdown tab + :scale: 38% + +.. image:: images/usage_profile.png + :alt: select carbon in dropdown tab + :scale: 38% + +.. note:: It is considered that the network equipment is on 24/7 and therefore does not have an associated profile \ No newline at end of file diff --git a/source/carbon/features.rst b/source/carbon/features.rst new file mode 100644 index 000000000..8e8d3147c --- /dev/null +++ b/source/carbon/features.rst @@ -0,0 +1,13 @@ +Features +-------- + +* Collect carbon intensity of electricity from various sources + * RTE (France) + * Electricity Map (most countries and regions of the whole world) +* Supports constant carbon intensity for the following regions + * Quebec +* Fallbacks to yearly world carbon intensity if no data is available for the region of an asset +* Estimate consumed energy and carbon emission of assets +* Show results as charts + +.. note:: RTE is free and ElectricityMaps but is very limitative in free version \ No newline at end of file diff --git a/source/carbon/images/asset_usage.png b/source/carbon/images/asset_usage.png new file mode 100644 index 000000000..59e19c7c1 Binary files /dev/null and b/source/carbon/images/asset_usage.png differ diff --git a/source/carbon/images/choose_country.png b/source/carbon/images/choose_country.png new file mode 100644 index 000000000..842a1c312 Binary files /dev/null and b/source/carbon/images/choose_country.png differ diff --git a/source/carbon/images/computer_components.png b/source/carbon/images/computer_components.png new file mode 100644 index 000000000..0896c73ab Binary files /dev/null and b/source/carbon/images/computer_components.png differ diff --git a/source/carbon/images/computer_model.png b/source/carbon/images/computer_model.png new file mode 100644 index 000000000..8c32469aa Binary files /dev/null and b/source/carbon/images/computer_model.png differ diff --git a/source/carbon/images/dashboard.png b/source/carbon/images/dashboard.png new file mode 100644 index 000000000..dd875fc89 Binary files /dev/null and b/source/carbon/images/dashboard.png differ diff --git a/source/carbon/images/dashboard_view.png b/source/carbon/images/dashboard_view.png new file mode 100644 index 000000000..0606a2fc9 Binary files /dev/null and b/source/carbon/images/dashboard_view.png differ diff --git a/source/carbon/images/embodied_impact.png b/source/carbon/images/embodied_impact.png new file mode 100644 index 000000000..5a6260e8f Binary files /dev/null and b/source/carbon/images/embodied_impact.png differ diff --git a/source/carbon/images/enable_download.png b/source/carbon/images/enable_download.png new file mode 100644 index 000000000..443c10702 Binary files /dev/null and b/source/carbon/images/enable_download.png differ diff --git a/source/carbon/images/financial_information.png b/source/carbon/images/financial_information.png new file mode 100644 index 000000000..82529bd78 Binary files /dev/null and b/source/carbon/images/financial_information.png differ diff --git a/source/carbon/images/historization_status.png b/source/carbon/images/historization_status.png new file mode 100644 index 000000000..52c44e72e Binary files /dev/null and b/source/carbon/images/historization_status.png differ diff --git a/source/carbon/images/location_asset.png b/source/carbon/images/location_asset.png new file mode 100644 index 000000000..434b29cb7 Binary files /dev/null and b/source/carbon/images/location_asset.png differ diff --git a/source/carbon/images/location_carbon.png b/source/carbon/images/location_carbon.png new file mode 100644 index 000000000..6fb5093ce Binary files /dev/null and b/source/carbon/images/location_carbon.png differ diff --git a/source/carbon/images/plugin_dropdowns.png b/source/carbon/images/plugin_dropdowns.png new file mode 100644 index 000000000..660aa6c1e Binary files /dev/null and b/source/carbon/images/plugin_dropdowns.png differ diff --git a/source/carbon/images/plugin_dropdowns_intensity.png b/source/carbon/images/plugin_dropdowns_intensity.png new file mode 100644 index 000000000..286ded872 Binary files /dev/null and b/source/carbon/images/plugin_dropdowns_intensity.png differ diff --git a/source/carbon/images/usage.png b/source/carbon/images/usage.png new file mode 100644 index 000000000..d16d5e0e0 Binary files /dev/null and b/source/carbon/images/usage.png differ diff --git a/source/carbon/images/usage_profile.png b/source/carbon/images/usage_profile.png new file mode 100644 index 000000000..56bcae353 Binary files /dev/null and b/source/carbon/images/usage_profile.png differ diff --git a/source/carbon/index.rst b/source/carbon/index.rst new file mode 100644 index 000000000..26baf89a4 --- /dev/null +++ b/source/carbon/index.rst @@ -0,0 +1,18 @@ +Carbon +============ + +Carbon is a plugin which helps you to monitor environmental footprint of your asset. The plugins is under active development. + +.. toctree:: + :maxdepth: 2 + + requirements + features + installation + configuration + reading.rst + carbon_reports + limitations + recommendations + types_of_impact + methodology diff --git a/source/carbon/installation.rst b/source/carbon/installation.rst new file mode 100644 index 000000000..0c82c8b5c --- /dev/null +++ b/source/carbon/installation.rst @@ -0,0 +1,39 @@ +Install the Plugin +------------------ + +From the marketplace +^^^^^^^^^^^^^^^^^^^^ +.. warning:: + + The plugin is not available in the marketplace yet. + + You can install it manually from the archive. + +Manually +^^^^^^^^ + +* Uncompress the archive. +* Move the ``carbon`` directory to the ``/plugins`` directory +* Navigate to the *Configuration > Plugins* page, +* Install and activate the plugin. + +.. warning:: + + The plugin's directory must have the same name as the plugin: + + * **Good**: `glpi/plugins/carbon` + * **Bad**: `glpi/plugins/carbon-master` + * **Bad**: `glpi/plugins/carbon-1.0.0` + + Only one directory must contains the plugin's files of a single plugin in the GLPI plugins directory. **Don't rename the plugin's directory for backup, move it!** + +Install plugin dependencies +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The plugin requires Boavizta to calculate non-GWP impact of assets. It is recommended to set it up using Docker as described in the README file of the project https://github.com/Boavizta/boaviztapi. + +The access URL of this service must be set in the configuration page of the plugin. + +.. note:: + + The plugin will work without Boavizta, but the non-GWP impact of assets will not be calculated. diff --git a/source/carbon/limitations.rst b/source/carbon/limitations.rst new file mode 100644 index 000000000..8554612c7 --- /dev/null +++ b/source/carbon/limitations.rst @@ -0,0 +1,49 @@ +Limitations +============ + +Carbon intensity of electricity +------------------------------------- + +The plugin can collect carbon intensity from several sources. The accuracy if these datas varies : + +- Data from RTE which represents the carbon intensity of electricity production +- Data from Electricity Map represents the carbon intensity oc electricity consumption (which is more accurate) + +.. warning:: Electrcitymaps license keys. Some limitations may apply to free keys. With the free version, electricitymaps only provides intensity history for the last 24 hours. + +Dates handling +-------------- + +The plugin heavily relies on dates manipulation. Dates stored in its tables are set on time zone configured in general configuration of GLPI (**Setup > General > tab Personnalization**). + +Dates are manipulated in the context of automatic actions, this means that changing the above setting **will** impact the timezone of dates manipulates after this change. This may will have an effect charts and reports. It is advised to carefully check the configuration of time zone before starting to use the plugin and avoid any change after it began to download data from external sources. + +Daylight saving time +-------------------- + +Handling timezones with daylight saving time (DST) is challenging because it is not possible to reliably convert dates from / to UTC. + +**Example** : +France switches from GMT +01:00 to GMT+02:00 in last sunday of march and switches back to GMT+01:00 in last sunday of october. This event occurs at 02:00AM. + +Therefore the time 2024-03-01 02:00:00 is not visible in the table of carbon intensities if its date is displayed with time zine Europe/Paris and 2 rows have the same date. However if the timezone is UTC the 2 rows show an interval of 1H. + +The reverse occurs on 2023-10-29 02:00:00 where there are two rows with the same date (visible when the table displayed with timezone Europe/Paris) but internally, there is an interval of 1H between them (visible when the table is displayed with UTC) + +Not used assets +--------------- + +computer +^^^^^^^^ + +When a computer is not used it is recommended to remove its usage profile. + +Monitor +^^^^^^^ + +If there are laptops in the inventory, their internal display may be inventoried. In this case, ensure that it has a model and a type without any power consumption set, or no type or model at all. + +Deleted asset +------------- + +GLPI usually handles a trash for assets. A deleted asset will be ignored. When an asset enters or exists the trash then it will be respectively excluded or included in the environmental impact history calculation. diff --git a/source/carbon/methodology.rst b/source/carbon/methodology.rst new file mode 100644 index 000000000..2981e0603 --- /dev/null +++ b/source/carbon/methodology.rst @@ -0,0 +1,29 @@ +Methodology +=========== + +Embodied impacts +---------------- + +Depending on the enabled engine, the methodology of embodied impact may vary. + + +Boaviztapi +^^^^^^^^^^ + +Boaviztapi is a tool produced by Boavizta, an association helping organizations to assess, manage and reduce the environmental impact of their digital assets in a simple, fast and reliable way. + +The Carbon plugin sends queries to this tool to get metrics which are locally saved and agregated. + +Usage impacts +---------------- + +The plugin internally calculates the emissions of C0_2Eq, using the carbon intensity of the local electricity supplier of each asset. Other impacts are calculated by external tools. + +Greenhouse gas emissions +^^^^^^^^^^^^^^^^^^^^^^^^ + +The Carbon plugin identifies the location of an asset, the average power consumption and theoretical power-on and power-off times to approximate the amount of greenhouse gas emitted by the asset's usage. + +The carbon intensity of electricity is collected from local providers and down-sampled to 1 hour time slots. For each asset where there is enough data, the plugin evaluates when it is powered on and calculates the average energy consumed then the carbon emissions of this energy consumption. + +The results are then aggregated by day, and are used to calculate the total carbon emission on a larger time frame, like a month or a year. \ No newline at end of file diff --git a/source/carbon/reading.rst b/source/carbon/reading.rst new file mode 100644 index 000000000..c113a63c7 --- /dev/null +++ b/source/carbon/reading.rst @@ -0,0 +1,66 @@ +Reading datas +============= + +In each asset, an Environmental impact tab is now visible. + +.. image:: images/dashboard_view.png + :alt: Global view of dashboard + :scale: 21% + + +Asset usage +----------- + +You can (for computers) select the appropriate profile as well as the planned lifespan (in months) + +.. image:: images/asset_usage.png + :alt: Setup the asset usage + :scale: 51% + + +Historization status +-------------------- + +The logging status tells you whether all requirements are correctly met, ensuring that the data sent by Carbon is as accurate as possible. + +.. image:: images/historization_status.png + :alt: Read the historization status + :scale: 61% + +If an item is in red, the plugin will operate in a degraded manner, providing less accurate, aggregated estimation information. +Data in orange are optional items with a slight impact on data quality + +Usage +----- + +A graph displays energy consumption and carbon emissions per month + +.. image:: images/usage.png + :alt: Read the graph of energy consumption and carbon emissions per month + :scale: 49% + +* Consumption in appears in red +* Carbon emissions in green + +Using the toolbar at the top right, you can: + +* Zoom in/out on a specific period +* Zoom through a selection +* Scroll +* Return to the initial presentation +* Export (SVG, PNG, CSV) + +Additional data, ``gSbeq``, is available. +These are grams of antimony equivalent. This index is used to measure the depletion of abiotic resources (rare earths, minerals, etc.). + +You can reset and calculate this data with the corresponding buttons (There is an automatic action ``UsageImpact`` to set them if they are not already calculated. +The buttons may be useful to update values after we change an asset property.) + +Embodied data +------------- + +In the life cycle of an asset, we can measure the environmental impact associated with its manufacture/destruction/recycling. +This data is visible in this insert + +.. image:: images/embodied_impact.png + :alt: Data summary diff --git a/source/carbon/recommendations.rst b/source/carbon/recommendations.rst new file mode 100644 index 000000000..81ced4b1e --- /dev/null +++ b/source/carbon/recommendations.rst @@ -0,0 +1,33 @@ +Recommmendations +---------------- + +The plugin provides a diagnosis view for supported assets, in the tab Environmental impact. The administrator +should refer to this page to easily find out which data is missing for a single asset. + +Mandatory informations are: + +* A location with a country or a state filled +* A startup date or a delivery date +* A usage profile for computers +* A model or a type +* A power consumption in the model or the type of the asset +* Financial information enabled with one of the fllowing dates filled (ordered by precedence) + + * use date + * delivery date + * order date + +.. tip:: It is possible to automatically add carbon intensity zones but under conditions. The asset location field must be written in English and strictly identical to the Bovizta zone field. + + .. image:: images/location_carbon.png + :alt: see the location en carbon intensity zones + :scale: 49% + + .. image:: images/location_asset.png + :alt: Report the location on the asset + :scale: 69% + +Optional informations are: + +* Category of computer filled in each computer type + diff --git a/source/carbon/requirements.rst b/source/carbon/requirements.rst new file mode 100644 index 000000000..1a92566db --- /dev/null +++ b/source/carbon/requirements.rst @@ -0,0 +1,21 @@ +.. list-table:: + :header-rows: 1 + + * - Download + - Sources + * - ``_ + - ``_ + +Requirements (on-premise) +------------------------- + +============ =========== =========== ============ +GLPI Version Minimum PHP Recommended Minimum DBMS +============ =========== =========== ============ +10.0.x 8.3 8.3 Mysql 8.0 or MariaDB 10.2 +============ =========== =========== ============ + + +.. warning:: For MySQL, a minimum version of 8.0 is required + +.. include:: ../include/no_subscription_no_cloud.rst \ No newline at end of file diff --git a/source/carbon/types_of_impact.rst b/source/carbon/types_of_impact.rst new file mode 100644 index 000000000..76b1072ae --- /dev/null +++ b/source/carbon/types_of_impact.rst @@ -0,0 +1,21 @@ +Types of impact +=============== + +Carbon dioxide equivalent +-------------------------- + +The amount of carbon dioxide (CO2) emissions that would have an equivalent effect on a specified key measure of climate change, over a specified time horizon, as an emitted amount of greenhouse gas (GHG) or a mixture of other GHGs. For a mix of GHGs, it is obtained by summing the CO2-equivalent emissions of each gas. There are various ways and time horizons to compute such equivalent emissions (see greenhouse gas emission metric). CO2-equivalent emissions are commonly used to compare emissions of different GHGs, but should not be taken to imply that these emissions have an equivalent effect across all key measures of climate change. + +Climate change 2021, IPCC, glossary, page 2224 +https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_FullReport.pdf + +Antimony equivalent +-------------------- + +Antimony is a metalloid: it has properties of both metals and non-metals. It is used in life cycle assessments to assess the impact of tie extraction from the Earth crust of non-biotic resources, like minerals and fossil fuels. + + +Primary energy +-------------- + +The primary energy is the energy contained in natural resources before any conversion or transformation. It is used in lifecycle assessments to assess the impact of energy extraction from the Earth. \ No newline at end of file diff --git a/source/index.rst b/source/index.rst index e9b0d9462..783cb3a34 100644 --- a/source/index.rst +++ b/source/index.rst @@ -24,6 +24,7 @@ You'll find here user documentation for various `GLPI ` :maxdepth: 2 :caption: 🧩 GLPI Plugins + carbon/index centreon/index credit/index datainjection/index