diff --git a/.versionbot/CHANGELOG.yml b/.versionbot/CHANGELOG.yml index 1e146071..74b481c8 100644 --- a/.versionbot/CHANGELOG.yml +++ b/.versionbot/CHANGELOG.yml @@ -1,3 +1,61 @@ +- commits: + - subject: Use promises for setup/writing for logging backend + hash: 8bc08750e946a3eea5c7eba14182a9506823b559 + body: | + The balena logging backend now uses async functions to setup the + connection and write messages to the request stream. This adds some + backpressure on `log` calls by by the log monitor module, to prevent a + very agressive container causing the supervisor to waste CPU cycles just + dropping messages. + footer: + Change-type: patch + change-type: patch + author: Felipe Lalanne + nested: [] + - subject: Improve the LogBackend interface + hash: f3fcb0db7a8478dfe9ffde342b683510ba49502f + body: | + This make the LogBackend `log` method into an async method in + preparation for upcoming changes that will use backpressure from the + connection to delay logging coming from containers. + + This also removes unnecessary imageId from the LogMessage type + footer: + Change-type: patch + change-type: patch + author: Felipe Lalanne + nested: [] + - subject: Use stream pipeline instead of pipe + hash: 5af948483a69701ebe7db9933a695f85f29b62f3 + body: | + This also removes the use of JSONStream from the monitor module + footer: + Change-type: patch + change-type: patch + author: Felipe Lalanne + nested: [] + - subject: Do not use DB to store container logs info + hash: dbacca977a1f42ad4e3381112d3523cf7624d283 + body: | + This removes the dependence of the supervisor on the containerLogs + database for remembering the last sent timestamp. This commit instead + uses the supervisor startup time as the initial time for log retrieval. + This might result in some logs missing for services that may start + before the supervisor after a boot, or if the supervisor restarts. + However this seems like an acceptable trade-off as the current + implementation seems to make things worst in resource contrained + environments. + + We'll move storing the last sent timestamp to a better storage medium in + a future commit. + footer: + Change-type: minor + change-type: minor + author: Felipe Lalanne + nested: [] + version: 16.5.0 + title: "" + date: 2024-07-30T18:48:22.422Z - commits: - subject: Update semver to v7.6.3 hash: 340e69d0c22e12281ac8608eda2b5a871e645e19 diff --git a/CHANGELOG.md b/CHANGELOG.md index 998a1d2a..ba8cbc37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to [Semantic Versioning](http://semver.org/). +# v16.5.0 +## (2024-07-30) + +* Use promises for setup/writing for logging backend [Felipe Lalanne] +* Improve the LogBackend interface [Felipe Lalanne] +* Use stream pipeline instead of pipe [Felipe Lalanne] +* Do not use DB to store container logs info [Felipe Lalanne] + # v16.4.6 ## (2024-07-30) diff --git a/VERSION b/VERSION index d8482c38..d9617ea1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -16.4.6 \ No newline at end of file +16.5.0 \ No newline at end of file diff --git a/balena.yml b/balena.yml index 93db5e78..3f4dd7ea 100644 --- a/balena.yml +++ b/balena.yml @@ -2,6 +2,6 @@ name: balena-supervisor description: 'Balena Supervisor: balena''s agent on devices.' joinable: false type: sw.application -version: 16.4.6 +version: 16.5.0 provides: - slug: sw.compose.long-volume-syntax diff --git a/package-lock.json b/package-lock.json index 4d19ab61..ae1cae66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "balena-supervisor", - "version": "16.4.6", + "version": "16.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "balena-supervisor", - "version": "16.4.6", + "version": "16.5.0", "license": "Apache-2.0", "dependencies": { "@balena/systemd": "^0.5.0", diff --git a/package.json b/package.json index dd137acd..998a07c5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "balena-supervisor", "description": "This is balena's Supervisor, a program that runs on IoT devices and has the task of running user Apps (which are Docker containers), and updating them as the balena API informs it to.", - "version": "16.4.6", + "version": "16.5.0", "license": "Apache-2.0", "repository": { "type": "git", @@ -135,6 +135,6 @@ "yargs": "^17.7.2" }, "versionist": { - "publishedAt": "2024-07-30T14:43:21.832Z" + "publishedAt": "2024-07-30T18:48:22.975Z" } }