aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/controller.scm
Commit message (Collapse)AuthorAge
* Don't use the reserved pool for HTML/JSON responsesChristopher Baines2024-09-08
| | | | Just use it for providing substitutes.
* Include background pool metricsChristopher Baines2024-09-08
|
* Add a new background connection poolChristopher Baines2024-09-08
| | | | Mostly to constrain the build server event handlers.
* Tweak handling web server errorsChristopher Baines2024-08-14
|
* Remove the statistics pageChristopher Baines2024-06-30
| | | | As it's been broken for a long time now, there are too many rows to count.
* Fix the arguments to most-appropriate-mime-typeChristopher Baines2024-06-24
|
* Add a JSON error pageChristopher Baines2024-06-21
|
* Make changes for the guile-prometheus updateChristopher Baines2024-03-30
|
* Report the size of the guix database and WAL fileChristopher Baines2024-03-05
| | | | Since the Guix daemon doesn't export these metrics, instrument it here.
* Instrument resource pool checkout failuresChristopher Baines2024-02-10
| | | | As I've got no idea why the resource pools sometimes stop working.
* Try to avoid the metrics timing outChristopher Baines2023-11-09
| | | | As that makes debugging problems harder.
* Add metrics for ports and file descriptorsChristopher Baines2023-09-07
|
* Make fetching metrics work even when having database problemsChristopher Baines2023-07-14
|
* Expose resource pool statsChristopher Baines2023-07-10
|
* Stop using a pool of threads for database operationsChristopher Baines2023-07-10
| | | | | | Now that squee cooperates with suspendable ports, this is unnecessary. Use a connection pool to still support running queries in parallel using multiple connections.
* Add Guile internal time metricsChristopher Baines2023-05-14
| | | | As this will help identify when the service restarts.
* Split the thread pool used for database connectionsChristopher Baines2023-04-27
| | | | | | | | In to two thread pools, a default one, and one reserved for essential functionality. There are some pages that use slow queries, so this should help stop those pages block other operations.
* Tweak behaviour when the response body is a procedureChristopher Baines2023-02-09
| | | | | | | | | Newer versions of Guile Fibers will now use chunked encoding when a procedure is used (and no content length is set). This is good, but not always what is wanted, and there's also an issue with the port encoding. This commit switches to responding with a string/bytevector when more appropriate, plus explicitly setting the port encoding where that's needed.
* Pull the metrics registry out of the controllerChristopher Baines2023-01-01
| | | | | This will allow for instrumenting low level database functionality, before anything starts using the database.
* Expose metrics from pg_statsChristopher Baines2022-11-29
|
* Expose Guile GC metricsChristopher Baines2022-10-09
| | | | | As the guix-data-service process seems to be using excessive amounts of memory, and this will be useful to track it.
* Return 503 for the /healthcheck if the service is starting upChristopher Baines2022-07-15
| | | | As this is a little clearer.
* Handle migrations and server startup betterChristopher Baines2022-06-17
| | | | | | | | | The server part of the guix-data-service doesn't work great as a guix service, since it often fails to start if the migrations take any time at all. To address this, start the server before running the migrations, and serve the pages that work without the database, plus a general 503 response. Once the migrations have completed, switch to the normal behaviour.
* Fix a URI decoding issueChristopher Baines2021-05-27
| | | | | This caused a problem viewing this derivation /gnu/store/65r4488732qy6ilrh1ryb8xwmip1qnir-tklib-0.6.tar.gz?uuid=tklib-0-6.drv
* Remove the "derivations using output" dataChristopher Baines2021-05-17
| | | | | | From the HTML and JSON responses, since this data isn't very useful, and the query to collect the small amount which is displayed is very slow. This could return at some point, but in a proper paginated form which isn't slow.
* Add a /package/NAME pageChristopher Baines2021-03-14
| | | | | | This might be useful for working out when a non-master branch contains a newer version of a package, or someone has sent in a patch for a newer version already.
* Split the jobs metric in to succeede, queued and failedChristopher Baines2020-10-09
| | | | Rather than just completed or not.
* Add Prometheus metrics for indexes specificallyChristopher Baines2020-10-09
|
* Include tablespace as a label for table metricsChristopher Baines2020-10-09
| | | | As this will make it easier to tell where space is going.
* Remove some unnecessary parallel-via-thread-pool-channel callsChristopher Baines2020-10-04
| | | | As these were causing errors because they were nested in letpar&.
* Completely rework the way db connections are handled during requestsChristopher Baines2020-10-03
| | | | | | | | | | | | | Previously, a connection was passed through the code handling the request. When queries were performed, this could block the thread though, potentially leaving the server unable to serve other requests. Instead, this now runs queries in a pool of threads. This should remove the possibility of blocking the threads used by the web server, and in doing so, some of the queries have been parallelised. I''m still not sure about the naming and syntax, but I think the functionality is a sort of step forward.
* Stop opening a PostgreSQL connection per requestChristopher Baines2020-10-03
| | | | | | | This was good in that it avoided having to deal with long running connections, but it probably takes some time to open the connection, and these changes are a step towards offloading the PostgreSQL queries to other threads, so they don't block the threads for fibers.
* Track some pg_stat metricsChristopher Baines2020-10-01
| | | | Hopefully this'll help track database things better.
* Add some new metrics about load new revision jobsChristopher Baines2020-09-20
|
* Add a metric for the number of revisionsChristopher Baines2020-09-20
|
* Return a number from count-guix-revisionsChristopher Baines2020-09-20
|
* Add a Prometheus metrics page, with some database metricsChristopher Baines2020-09-06
| | | | | The database size is growing, but it's hard to know what parts are growing the fastest. These metrics will hopefully help with understanding that.
* Add JSON representation for the store item pageDanjela Lura2020-08-26
| | | | Signed-off-by: Christopher Baines <mail@cbaines.net>
* Add JSON representation for the derivation pageDanjela Lura2020-08-26
| | | | Signed-off-by: Christopher Baines <mail@cbaines.net>
* Add builds to the store item pageChristopher Baines2020-07-04
|
* Set a statement timeout of 60 seconds for web requestsChristopher Baines2020-04-24
| | | | | This will help stop queries running for an unnecessarily long time, longer than NGinx will wait for example.
* Improve the 404 pagesChristopher Baines2020-03-14
| | | | Render some HTML rather than the plain response.
* Improve handling of errorsChristopher Baines2020-03-14
| | | | | Adjust the previously unused error page code, and start to use it. Only show the error if configured to do so, to avoid leaking secret information.
* Add a page listing the available database dumpsChristopher Baines2020-02-22
|
* Add a very basic repositories pageChristopher Baines2020-02-01
|
* Add a build servers pageChristopher Baines2020-02-01
|
* Add a job events pageChristopher Baines2020-01-20
|
* Delete unused assoc-ref-multiple functionChristopher Baines2020-01-10
|
* Display details for the derivation source filesChristopher Baines2019-12-30
| | | | If the nar file is available.
* Serve narinfo files for derivationsChristopher Baines2019-12-26
|