VS issueshttps://gitlab.eox.at/esa/prism/vs/-/issues2021-11-16T21:36:20+01:00https://gitlab.eox.at/esa/prism/vs/-/issues/157Update User Guide and Design Document2021-11-16T21:36:20+01:00Stephan Meißlstephan.meissl@eox.atUpdate User Guide and Design DocumentThe [attached RIDs](/uploads/f4e02dd481f8a2f229dda90982fa75ca/View_Server_Documents_RIDs.xlsx) should be addressed.The [attached RIDs](/uploads/f4e02dd481f8a2f229dda90982fa75ca/View_Server_Documents_RIDs.xlsx) should be addressed.Lubomir DoležalLubomir Doležal2021-11-12https://gitlab.eox.at/esa/prism/vs/-/issues/160auto-scaling of ViewServer renderer pod based on request queue length2022-01-24T13:21:42+01:00Stefan Achtsnitauto-scaling of ViewServer renderer pod based on request queue length### problem statement
we currently have already 5 customer-facing (and additional test) instances of ViewServer running on our cluster for AGRI/EO-WIDGET, each instance has a fixed static number of replicas for the renderer pods configur...### problem statement
we currently have already 5 customer-facing (and additional test) instances of ViewServer running on our cluster for AGRI/EO-WIDGET, each instance has a fixed static number of replicas for the renderer pods configured, i.e. resources are claimed and reserved on cluster even if not used
### goal
allow to claim only minimum number of resources per default and scale up if needed (note: while scale to zero for 0..n renderer pods would be even nicer I'm happy with solutions with 1..n renderer pods with 1 as default)
---
there is an out of the box concept in kubernetes called HPA https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ which scales up based on resource metrics, but per default only based on memory and cpu consumption
in our case memory and cpu of the renderer pod are **not** the relevant metrics, a good indicator would be the http request queue length of the http server (gunicorn or similar) to trigger autoscaling behavior
there is another kubernetes project https://keda.sh/ which provides queue based metrics so hope it can be leveraged for http request queues too (in addition to queues from brokers like rabbitmq, kafka,...), if this is not a feasible way I propose to expose the request queue length from gunicorn as a renderer metric on prometheus endpoint and try to connect HPA to this custom metric
to sum up: we should investigate in the direction of these 2 components and check if they work alongside or one of them can be extended properly to optimize our cluster utilization
@stephan.meissl @fabian.schindler @mallingerb2022-02-04https://gitlab.eox.at/esa/prism/vs/-/issues/159implement WPS UI for DEM collection in the vs client2021-11-10T21:54:45+01:00Mussab Abdallaimplement WPS UI for DEM collection in the vs clientDEM Second Releasehttps://gitlab.eox.at/esa/prism/vs/-/issues/158number of products to handle per WPS process2021-11-10T21:54:24+01:00Mussab Abdallanumber of products to handle per WPS processa policy on how many products can be handled in one WPS processes, the current processes have different approaches when comes to that, for example:
- **GetStatistics process:** inputs are a bbox, and the response is the statistics of all...a policy on how many products can be handled in one WPS processes, the current processes have different approaches when comes to that, for example:
- **GetStatistics process:** inputs are a bbox, and the response is the statistics of all the coverages within (or intersects with) the bbox.
- **GetDEMProcessing (contour), GetHeightProfile:** one process per coverage, in fact the coverage ID is one of the inputs in both processesDEM Second ReleaseMussab AbdallaMussab Abdallahttps://gitlab.eox.at/esa/prism/vs/-/issues/156legend for the dem processed layers2021-11-10T22:17:49+01:00Mussab Abdallalegend for the dem processed layersDem processed layers (hillshade, aspect, slope and contour) should have a legend that reflects the color scale values vs band values.Dem processed layers (hillshade, aspect, slope and contour) should have a legend that reflects the color scale values vs band values.https://gitlab.eox.at/esa/prism/vs/-/issues/155setting parameters for dem processed rendering2021-11-10T22:20:24+01:00Mussab Abdallasetting parameters for dem processed renderingthe renderer should support custom wms parameters for setting additional rendering parameters for hillshade, aspect, slope and contour layersthe renderer should support custom wms parameters for setting additional rendering parameters for hillshade, aspect, slope and contour layershttps://gitlab.eox.at/esa/prism/vs/-/issues/154add navigation/zoom button to 3D viewer2021-11-10T15:15:43+01:00Mussab Abdallaadd navigation/zoom button to 3D viewerthere should be a button to control/reset the view orientation and zoom in 3D, most of the solution includes plugins to Cesium widget (e.g https://github.com/alberto-acevedo/cesium-navigation)there should be a button to control/reset the view orientation and zoom in 3D, most of the solution includes plugins to Cesium widget (e.g https://github.com/alberto-acevedo/cesium-navigation)https://gitlab.eox.at/esa/prism/vs/-/issues/153provide a GetCapability button per collection2021-11-10T15:15:21+01:00Mussab Abdallaprovide a GetCapability button per collectionadd a button that links to -for example- https://dem.pdas.prism.eox.at/ows?service=WMS&request=GetCapabilitiesadd a button that links to -for example- https://dem.pdas.prism.eox.at/ows?service=WMS&request=GetCapabilitieshttps://gitlab.eox.at/esa/prism/vs/-/issues/152Investigate multi project pipelines2021-11-21T16:29:00+01:00Nikola JankovicInvestigate multi project pipelinesCould be useful for integration testing once repos are separated:
- https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html
- https://about.gitlab.com/blog/2018/10/31/use-multiproject-pipelines-with-gitlab-cicd/Could be useful for integration testing once repos are separated:
- https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html
- https://about.gitlab.com/blog/2018/10/31/use-multiproject-pipelines-with-gitlab-cicd/ViewServer 2.0Nikola JankovicNikola Jankovichttps://gitlab.eox.at/esa/prism/vs/-/issues/151Branch v2.0 regressions2021-11-21T16:36:08+01:00Lubomir DoležalBranch v2.0 regressions- [x] Post handler in registrar does not work (reports)
- [ ] Registrar can only register products from the configured swift object storage container, not from arbitrary, which would be part of STAC item href
- [x] preprocessor can not c...- [x] Post handler in registrar does not work (reports)
- [ ] Registrar can only register products from the configured swift object storage container, not from arbitrary, which would be part of STAC item href
- [x] preprocessor can not create STAC item for already preprocessed products anew
- [x] preprocessor needs regex based asset name mapping of outputs, sorting is unrealiableViewServer 2.0https://gitlab.eox.at/esa/prism/vs/-/issues/150Add minimum resources for the client to User Guide2021-10-16T12:11:14+02:00Stephan Meißlstephan.meissl@eox.atAdd minimum resources for the client to User GuideMussab AbdallaMussab Abdallahttps://gitlab.eox.at/esa/prism/vs/-/issues/149Registrar swift token does not refresh sometimes after expiring2021-11-21T16:24:12+01:00Lubomir DoležalRegistrar swift token does not refresh sometimes after expiring- registrar sometimes fails to find a file after running for a long time without restart (probably auth token expired and is not refreshed for some reason) - restart of registrar fixes this, Logs: `...file.tif not recognized as a support...- registrar sometimes fails to find a file after running for a long time without restart (probably auth token expired and is not refreshed for some reason) - restart of registrar fixes this, Logs: `...file.tif not recognized as a supported file format.`
The reason is probably expiring of the auth token and in some cases not refreshing for some reason.
full trace:
```
Sep 16, 2021 @ 07:11:37.234 RuntimeError: `/vsiswift/emg-data/data26/0000571902/PH1A_PHR_FUS__3_20210129T093100_20210129T093102_TOU_1234_a568.DIMA.tar/IMG_PHR1A_PMS_202101290931008_ORT_5928860101_R1C1.tif' not recognized as a supported file format. /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.234 return _gdal.Open(*args) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.234 File "/usr/lib/python3/dist-packages/osgeo/gdal.py", line 2978, in Open /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 ds = gdal.Open(vsi_path) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 File "/usr/local/lib/python3.8/dist-packages/registrar-1.4.7-py3.8.egg/registrar/backend.py", line 215, in _register_with_registrator /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 product = self._register_with_registrator(source, item, replace, storage, mapping) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 File "/usr/local/lib/python3.8/dist-packages/registrar-1.4.7-py3.8.egg/registrar/backend.py", line 377, in register /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 return func(*args, **kwds) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 File "/usr/lib/python3.8/contextlib.py", line 75, in inner /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 backend.register(source, context, replace=False) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 File "/usr/local/lib/python3.8/dist-packages/registrar-1.4.7-py3.8.egg/registrar/registrar.py", line 59, in register_file /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 register_file(config, value, replace) /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 File "/usr/local/lib/python3.8/dist-packages/registrar-1.4.7-py3.8.egg/registrar/daemon.py", line 56, in run_daemon /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 Traceback (most recent call last): /csea-emg-pdas_registrar.1.wsydxbtuqxzex8ejroynlzb2z
Sep 16, 2021 @ 07:11:37.233 ERROR registrar.daemon: `/vsiswift/emg-data/data26/0000571902/PH1A_PHR_FUS__3_20210129T093100_20210129T093102_TOU_1234_a568.DIMA.tar/IMG_PHR1A_PMS_202101290931008_ORT_5928860101_R1C1.tif' not recognized as a supported file format.
```https://gitlab.eox.at/esa/prism/vs/-/issues/148PRISM Backlog ingestion errors2021-09-29T09:09:29+02:00Lubomir DoležalPRISM Backlog ingestion errorsThis issue is to track ongoing backlog ingestion campaign on PASS started on 15.9.2021:
- ~~vhr18 registration failing because storage_auth created for original vhr18 is different from new the one expected by new registrar - models misma...This issue is to track ongoing backlog ingestion campaign on PASS started on 15.9.2021:
- ~~vhr18 registration failing because storage_auth created for original vhr18 is different from new the one expected by new registrar - models mismatch `ERROR registrar.daemon: duplicate key value violates unique constraint "backends_storage_name_key"`, fix the model and register the failed products manually~~
- ~~registrar sometimes fails to find a file after running for a long time without restart (probably auth token expired and is not refreshed for some reason) - restart of registrar fixes this, register failed products manually. Error to search for: `...file.tif not recognized as a supported file format.`~~ -> moved to https://gitlab.eox.at/esa/prism/vs/-/issues/149Lubomir DoležalLubomir Doležalhttps://gitlab.eox.at/esa/prism/vs/-/issues/1473D client performance2021-10-16T12:11:02+02:00Mussab Abdalla3D client performancehttps://gitlab.eox.at/esa/prism/vs/-/issues/146Tagged releases do not create images2021-09-10T18:36:04+02:00Lubomir DoležalTagged releases do not create imagesCurrently because our tagged releases start with word `release` they are not caught by the TAG_REGEX in ci_image_build.sh
https://gitlab.eox.at/esa/prism/vs/-/blob/staging/ci_image_build.sh#L11-15
Solution: there is a CI env variable `C...Currently because our tagged releases start with word `release` they are not caught by the TAG_REGEX in ci_image_build.sh
https://gitlab.eox.at/esa/prism/vs/-/blob/staging/ci_image_build.sh#L11-15
Solution: there is a CI env variable `CI_COMMIT_TAG` which can be used to know if we are doing this for a tag or not.
https://docs.gitlab.com/ee/ci/variables/#list-all-environment-variablesNikola JankovicNikola Jankovichttps://gitlab.eox.at/esa/prism/vs/-/issues/145fix 2D-3D harmonization + style + attribution2021-11-10T22:21:58+01:00Mussab Abdallafix 2D-3D harmonization + style + attributionDEM First ReleaseMussab AbdallaMussab Abdallahttps://gitlab.eox.at/esa/prism/vs/-/issues/144Create common software library to map to STAC2021-11-09T12:15:03+01:00Fabian SchindlerCreate common software library to map to STACThe task of the library is to map from whatever input is provided to a (list of) STAC items
Common use cases for major platforms should be covered by this library.
Examples:
- CREODIAS - OpenSearch - Sentinel-2:
- interpret OpenSear...The task of the library is to map from whatever input is provided to a (list of) STAC items
Common use cases for major platforms should be covered by this library.
Examples:
- CREODIAS - OpenSearch - Sentinel-2:
- interpret OpenSearch response (GeoJSON)
- pick `productIdentifier` property
- transform this to a valid S3 URL
- use stactools + sentinel2 to lookup that object storage prefix to create a STAC Item
- PRISM
- read list of object storage prefixes
- transform this to STAC items using the stored metadata thereViewServer 2.0Nikola JankovicNikola Jankovichttps://gitlab.eox.at/esa/prism/vs/-/issues/143Investigate current STAC translators2021-11-09T12:14:30+01:00Nikola JankovicInvestigate current STAC translatorsIt might be necessary to investigate properly current STAC translators, before deciding to write a separate one.It might be necessary to investigate properly current STAC translators, before deciding to write a separate one.Nikola JankovicNikola Jankovichttps://gitlab.eox.at/esa/prism/vs/-/issues/142Setup liveness probe for services2021-09-02T17:43:30+02:00Nikola JankovicSetup liveness probe for servicesAdd and update with following
> can you please make the livenessProbe in viewserver helm chart configurable, currently it is not possible to override default values
> - periodSeconds: 10
> - successThreshold: 1
> - timeoutSecond...Add and update with following
> can you please make the livenessProbe in viewserver helm chart configurable, currently it is not possible to override default values
> - periodSeconds: 10
> - successThreshold: 1
> - timeoutSeconds: 1
>
> I propose to increase timeoutSeconds (e.g. to 5 sec) and also to configure failureThreshold (default 3) to 10 - it seems that the viewserver is often busy with requests and therefore the individual livenessProbe requests won't go through and the pod is considered unhealthy (and gets restarted)
>
> if we can't improve situation that we should talk about possibilities to either priorizite livenessProbe requests (don't know if/how this can be done in python with gunicorn or similar) or to use different means to indicate liveness (implementation effort)Nikola JankovicNikola Jankovichttps://gitlab.eox.at/esa/prism/vs/-/issues/141STAC: Registrar2021-11-09T15:15:44+01:00Fabian SchindlerSTAC: RegistrarFind an approach of how STAC can be adopted as an input format and how the configuration must be adopted in order to support the change.Find an approach of how STAC can be adopted as an input format and how the configuration must be adopted in order to support the change.ViewServer 2.0Nikola JankovicNikola Jankovic