Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Apr 15 20:13
    borrob labeled #350
  • Apr 15 20:13
    borrob milestoned #350
  • Apr 15 20:12
    borrob opened #350
  • Apr 15 20:06
    borrob assigned #346
  • Apr 15 19:27
    borrob closed #348
  • Apr 15 19:27
    borrob commented #348
  • Apr 15 19:25
    borrob commented #315
  • Apr 15 19:22
    borrob synchronize #315
  • Apr 15 19:10
    borrob synchronize #315
  • Apr 15 10:43
    justb4 commented #315
  • Apr 15 10:37
    justb4 commented #349
  • Apr 15 10:11

    dependabot[bot] on pip

    (compare)

  • Apr 15 10:11

    justb4 on master

    PR #347 Bump lxml from 4.3.2 to… (compare)

  • Apr 15 10:11
    justb4 closed #347
  • Apr 15 10:09

    justb4 on master

    PR #349 Fixes for TMS and WFS3 … (compare)

  • Apr 15 10:09
    justb4 closed #349
  • Apr 12 18:06
    borrob commented #348
  • Apr 12 18:03
    borrob synchronize #349
  • Apr 12 17:40
    borrob commented #315
  • Apr 12 17:39
    borrob synchronize #315
Just van den Broecke
@justb4
So maybe the solution is that GHC OAFeat Probe also adds application/vnd.oai.openapi+json; version=3. to Accept headers.
Janne Heikkilä
@jampukka
curl "https://beta-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/api" -H "Accept: application/json" { "code" : "500", "description" : "HTTP 406 Not Acceptable" }
That doesn't even make sense, I'll have to fix that
Just van den Broecke
@justb4
This is more a discussion for the WFS_FES Gitter Channel. Need to dive into the standard.
Though this works as well offcourse: curl "https://beta-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/api" -H "Accept: application/json, application/vnd.oai.openapi+json; version=3.0"
Janne Heikkilä
@jampukka
Thanks, I'll fix mine to be a bit more lenient so it accepts both
Just van den Broecke
@justb4
Ok, thanks, was encountering more similar situations (return code 406) in GHC demo, e.g. https://www.ldproxy.nrw.de/kataster/collections?f=json where items can be requested as application/geo+json.
or application/gml+xml;profile=\\\"http: //www.opengis.net/def/profile/ogc/2.0/gml-sf2\\\";version=3.2" , try to get that right...
Janne Heikkilä
@jampukka
maybe OWSLib should also be changed to Accept both, if it's searching for link with rel: service-desc and type: application/vnd.oai.openapi+json;version=3.0 then it would be logical to Accept: application/vnd.oai.openapi+json;version=3.0, right?
Just van den Broecke
@justb4
Yes, probably, I don't think OWSLib does HTTP content negotiation. It does look for service-desc. But yes, makes sense.
Janne Heikkilä
@jampukka
Oh okay. I'll fix mine anyways
curl "https://beta-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/selite/items" -H "Accept: application/json" { "code" : "500", "description" : "HTTP 406 Not Acceptable" }
Yea that doesn't work either
application/geo+json does work, and not setting any Accept header works and the service defaults the Content-Type to application/geo+json
Probably best to change that also so people can use the service with OWSLib
Just van den Broecke
@justb4
OWSLib looks for service-desc and type='application/vnd.oai.openapi+json;version=3.0' in landing page to get OpenAPI doc url, but does not use HTTP Content neg.
Janne Heikkilä
@jampukka
So it's the GHC OAFeat probe that does it?
Just van den Broecke
@justb4
Users of OWSLib now can add headers, but only in the constructor of oafeat client. My first try was with ?f=json, but got into path issues with OWSLib, maybe a bug, so switched to HTTP COntent neg.
Yes GHC OAFeat probe sets the HTTP Headers, fixed now to "Accept: application/json", but maybe this is a direction with many interworking issues (over f=json).
Or the headers should be derived from the endpoint's metadata.
Janne Heikkilä
@jampukka
I see it passes the headers to the constructor
Just van den Broecke
@justb4
Yes, so it is hard to change per-request.
Janne Heikkilä
@jampukka
But it's simple for Basic Auth for example
Does OWSLib Features client work with anything else than JSON?
Just van den Broecke
@justb4
Does not seem so: single _request() function: return response.json()
with the headers from the constructor.
Janne Heikkilä
@jampukka
yeah not trivial to change that
Just van den Broecke
@justb4
But I need to first solve some Docker build issues for GHC (demo). OWSLib issues: best discussed on https://gitter.im/geopython/OWSLib
Janne Heikkilä
@jampukka
Thanks I'll join there
Just van den Broecke
@justb4
Just van den Broecke
@justb4
So Content Negotiation it will be. Will adapt GHC OAFeat Probe to send proper Accept: headers via issue #313 .
Just van den Broecke
@justb4
Upcoming Content Negotiation OAFeat Probe: geopython/GeoHealthCheck#338 ..
Just van den Broecke
@justb4
Janne Heikkilä
@jampukka
great, thanks!
Just van den Broecke
@justb4
GeoHealthCheck 0.8.3 is out. See the release info for what went in. Highlights: making GHC outgoing HTTP more web-friendly with User-Agent and compression Accept. Upgraded OWSLib to 0.20.0 (now WFS auth should work) and enhanced OGC OAFeat Probe support. German translation patches contributed by @astroidex.
Astrid Emde
@astroidex
Congratulation to the release of GeoHealthCheck 0.8.3
MiroslavHrcan
@MiroslavHrcan
Hi all, I am completely new user of GeoHealthChcek and I have deployed GHC as Docker container with default settings, tried to add one WMS and except first request, it doesn’t send any, even I set to run every 10 minutes. I suppose that I had to do more than default setting, right? Thx for any response.
James Passmore
@nmtoken
Just a quick question on the, GeoHealthCheck.plugins.check.checks.HttpStatusNoError ...The check itself is a test if the HTTP status code is in the 400 or 500-range... does that mean that if the service has some authentication, the test would fail on the challenge response (401 unauthorized), or only if the authentication failed
Just van den Broecke
@justb4
@MiroslavHrcan yes you gave the answer already in your last sentence: you have to set the env var: GHC_RUNNER_IN_WEBAPP=True. The default for Docker is False. There has been some discussion and an issue around this: #303. We are a bit cautious to change this default as it may silently affect existing installs. Especially in a Docker deployment it is good practice to separate the 3 main GHC components (UI, Healthcheck Runner and database). docker-compose is a convenient way, see this example.
Just van den Broecke
@justb4
@nmtoken no definitive answer. This is a broad Check. You could write a Check Plugin for a specific 401-Check. Out of my head: the Run report would specify the specific HTTP-error code. I think both your options apply: AFAIK in HTTP (Basic, Token) Authentication is a one-time request/response: if there are no auth-headers or if the auth-headers contain the wrong credentials, a 401 response is returned. GHC supports two Auth methods: Basic and Bearer Token per Resource (endpoint) which can be configured in the UI and will be sent with each HTTP-request in the HTTP headers.
MichaelOstling
@MichaelOstling
Hi, Im trying to find ways how to add new services into GeoHealthCheck through a API. I have a CSW where I would like to monitor all referenced services. Is there a API to add new services? Or should I export the json config-file in database and add my services into that file?
Just van den Broecke
@justb4

@MichaelOstling thanks, that is actually a scenario (add CSW and then monitor referenced OWS services) proposed at a FOSS4G presentation (think by GeoCat). This would require a new (CSW) Probe Plugin. This is similar to the GeoNode monitoring: a GeoNode endpoint is added and then all its referenced OWS-es endpoints are automatically fetched and added to a GHC instance. There is already a CSW Resource Type.

Export/Import JSON is really only used for Unit-testing, it is quite radical: wiping all existing data in the DB.

There is no API yet, it is our next-planned big Feature. Lack of time and funding. There is a spec already:
https://github.com/geopython/GeoHealthCheck/wiki/API-Specification .

MichaelOstling
@MichaelOstling
Are there any estimates on the amount of funding needed for this Feature ?
I could maybe cover some of the costs.
KoalaGeo
@KoalaGeo
Would a OGC web services / OGCAPI zabbix plugin have wider appeal/use case?
KoalaGeo
@KoalaGeo
Just thinking out loud, not a comment on GeoHealthCheck! we've an instance running internally.
Just van den Broecke
@justb4
@MichaelOstling thanks there was at least one other party interested in an API, so joint funding may be arranged. Hold on, DM me to progress this.
Just van den Broecke
@justb4

@KoalaGeo yes, interesting question. Having some thoughts: there are many many FOSS monitoring frameworks, Prometheus/Grafana (I use mostly), Icinga, Datadog, etc. And Zabbix offcourse. True, a lot of what GHC is does is covered (scheduling, data collection, notification, visualization). The heart of GHC are the often extensive Probes/Checks for OGC and other APIs (like GeoNode). With a lot of complex work delegated to OWSLib. These would all have to be (re)written (for Zabbix Agent2) in GoLang. Plus the Probe/Check configuration-capabilities are extensive.

On the other hand integrations with existing monitoring systems has been projected for GHC at the level of data sampling for existing monitoring systems. The current GHC API already allows for summary data, so a simple core-Zabbix command-based shell extension could at least do a curl-type GHC API call and e.g. report number of failing Resources or even more. Even GHC Probes could be executed via commands, so that level of integration is also possible.

ALZ
@axza:matrix.org
[m]

Hello Humans - I'm stucked starting runner bcs. pytz doesnt know Europe/UTC... any hints where to start troubleshooting?

pytz.exceptions.UnknownTimeZoneError: 'Europe/UTC'

Just van den Broecke
@justb4
Looks related to APScheduler package. GHC does not require pytz directly. Working production version has APScheduler==3.6.1 with pytz==2020.4. Further hard to tell without environment specifics (Timezone settings, Python, Docker etc).
1 reply