Performance indicators¶
The performance indicators (PI) measure the completeness and the timeliness of the production: are all the
expected products generated, and are they generated in time? They are computed by the processing flows and stored
in a PostgreSQL database (performance by default), displayed by Grafana with the Postgres-performance data
source.
How they are computed¶
At the end of each DPR processing, the process-generic flow records:
- the flow run: type (systematic, on-demand, benchmarking), mission, processor, input products, start and stop dates and status of the processing,
- the expected products: for each product type, the minimum and maximum number of products that the processor should generate from its inputs, and their estimated sensing start. The estimation depends on the processor and on its inputs,
- the realised products: the generated STAC items, with their sensing start, their origin date (
t0, the availability of the input data, e.g. of the last chunk of the session at the CADIP station) and their storage date in the catalog (tf), - the missing products, by comparing the expected and realised products, and the products that were not expected,
- the timeliness of each realised product: whether
tf - t0is within the maximum delay of its PI category, or within this delay plus 1, 2, 3 or 7 days.
Database model¶
The tables are created by the initialize-pi-db flow, that also fills the PI categories.
| Table | Content |
|---|---|
flow_run |
One line per processing: flow_type, mission, Prefect flow identifiers, Dask and Python versions, processor name and unit, input STAC items, processing start and stop dates, status, excluded_from_pi flag (e.g. to exclude a reprocessing from the indicators). |
pi_category |
The PI categories of each mission, with their maximum delay (max_delay_seconds). |
product_expected |
The expected products of a flow run: PI category, product type, estimated sensing start, min_count, max_count. |
product_realised |
The realised products of a flow run: PI category, product type, STAC item, sensing start, origin date, storage date, unexpected flag, on_time_0_day, on_time_1_day, on_time_2_day, on_time_3_day, on_time_7_day flags. |
product_missing |
The missing products of a flow run: PI category, product type, sensing start and count. |
The PI categories are defined in the init_pi_db_flow.py
module, e.g. for Sentinel-3: HKAN (housekeeping and navigation data), NRT (near real time products), STC1 and
STC2 (short time critical products), NTC1 and NTC2 (non time critical products). Each product type is
associated to a category.
Set up¶
- Create the
performancedatabase and its user at deployment time (rs_performance_indicatorinventory variables). - Set the
POSTGRES_HOST,POSTGRES_PORT,POSTGRES_USER,POSTGRES_PASSWORDandPOSTGRES_PI_DBvariables in theenv-varsPrefect block (see Initialise the processing environment). - Run the
initialize-pi-dbflow once. - Build the Grafana dashboards from the
Postgres-performancedata source.