OpenC3 COSMOS Core 7.1.0 - TSDB Metrics and Sharding Support
Welcome to OpenC3 COSMOS Core 7.1.0!
We continue to iterate on improving the time series database powered by QuestDB. There is now a Metrics tab alongside the Queries tab in the TSDB tab of the Admin Console.
This allows you to quickly see the partition size, row count, and disk size of all the packets in your system. You can also delete tables and perform data gap analysis of the tables. The data gap analysis is paired with our new import of raw data feature. If the data gap detects a hole in your decommutated data, you can choose to re-import data from the raw bin files.
In addition, we've added a lot of infrastructure in Core to support Enterprise sharding. This will allow COSMOS Enterprise to scale to hundreds of targets using Kubernetes and sharded ValKey and QuestDB instances.
See the COSMOS 7.0.0 release notes for all the amazing new features in COSMOS 7 as well as important migration notes!
🛠 Enhancements
- TSDB Metrics with raw bin file import
- Core support for Enterprise Sharding
- Add glob-style wildcard support for Data Extractor item keys
- Add stored flag to inject_tlm
🪲 Bug Fixes
- Disable take/release command authority buttons for unauthorized users
- Fix Tlm Grapher "Graph" context menu option for indexed array items
- Fix Tlm Viewer graph cannot graph array items
- Fix Tlm Viewer array item parsing in various widgets
- Fix App Store rendering for non-admin
- Fix upgrade option in openc3.bat
- Fix anycable gRPC keepalive too_many_pings GoAway
- Fix limits set fall back to DEFAULT for items where the selected limits set is not defined
- Fix build_cmd for targets with no telemetry items defined
- Fix identifying telemetry with identical signatures (bit offset, bit size, data type) but different accessors (Binary vs JSON)
- Fix QuestDB 422 errors from cmd-tlm-api
- Fix for empty WebSocket frames (primarily affects openc3.sh cli script)
- Fix for Python bridges on Windows and add bridgesetup command
What's Changed
- Update pre-commit hook by @EmilyRagan in #3215
- Update axios to 1.15.0 to solve vulnerability by @EmilyRagan in #3216
- Add glob-style wildcard support for Data Extractor item keys by @mcosgriff in #3206
- Rewrote the SSL-TLS Kubernetes section into two explicit patterns by @jmthomas in #3242
- Disable take/release command authority buttons for unauthorized users by @mcosgriff in #3243
- Bump actions/github-script from 8.0.0 to 9.0.0 by @dependabot[bot] in #3222
- Bump pnpm/action-setup from 5.0.0 to 6.0.0 by @dependabot[bot] in #3220
- Add stored flag to inject_tlm by @jmthomas in #3212
- Update cfs guide to call out cfs-cosmos-plugin by @jmthomas in #3247
- [Documentation] Istio by @clayandgen in #3253
- Upgrade QuestDB and remove skip for ALTER DECIMAL → VARCHAR by @jmthomas in #3257
- Bump step-security/harden-runner from 2.16.0 to 2.18.0 by @dependabot[bot] in #3221
- Array item bugs by @ryan-pratt in #3259
- Bump actions/setup-node from 6.3.0 to 6.4.0 by @dependabot[bot] in #3263
- Bump ruby/setup-ruby from 1.300.0 to 1.305.0 by @dependabot[bot] in #3262
- [Enhancement] App Store plugins loading icon and permissions check by @clayandgen in #3260
- fix(tsdb): recreate dropped tables with proper schema by @jmthomas in #3256
- Implement ToolsBucketController for private tools bucket by @jmthomas in #3245
- Bump github/codeql-action from 3.34.1 to 4.35.2 by @dependabot[bot] in #3261
- Update pre-commit hook and Claude rules by @EmilyRagan in #3241
- Partial Fix: Upgrade Batch script by @clayandgen in #3250
- fix(anycable): prevent gRPC keepalive too_many_pings GoAway by @jmthomas in #3271
- Bump codespell-project/actions-codespell from 2.1 to 2.2 by @dependabot[bot] in #3149
- Correctly parse array items in various widgets by @jmthomas in #3273
- Address template injection issues by @jmthomas in #3277
- Add app store metadata to plugin template by @ryan-pratt in #3268
- Calendar time by @jmthomas in #3275
- TSDB Metrics with raw bin file import by @jmthomas in #3213
- Fix nil limits set by @ryan-pratt in #3267
- [Enhancement] DECOM microservice start when no telemetry by @clayandgen in #3279
- Bump alpine, versitygw, traefik, puma by @jmthomas in #3276
- Bump dorny/paths-filter from 3.0.2 to 4.0.1 by @dependabot[bot] in #2987
- Address sonarqube issues by @jmthomas in #3282
- Include accessor in packet ID item signature by @jmthomas in #3280
- Clarify docs about scripting instrumentation by @ryan-pratt in #3287
- Sharded Targets by @ryanmelt in #3140
- Create id_signature test by @jmthomas in #3289
- Better document command write conversions by @jmthomas in #3286
- Fix QuestDB 422 errors from cmd-tlm-api by @ryanmelt in #3291
- fix(script): handle empty WebSocket frame without crashing by @jmthomas in #3290
- feat(python): add bridgesetup command and fix python bridge by @jmthomas in #3288
- Bump aquasecurity/trivy-action from 0.35.0 to 0.36.0 by @dependabot[bot] in #3296
- Bump actions/upload-artifact from 7.0.0 to 7.0.1 by @dependabot[bot] in #3294
- Bump step-security/harden-runner from 2.18.0 to 2.19.0 by @dependabot[bot] in #3292
- Bump ruby/setup-ruby from 1.305.0 to 1.306.0 by @dependabot[bot] in #3295
- Data extractor wildcard merge treats array index brackets as glob patterns by @mcosgriff in #3272
- Bump anycable, traefik, python, packages by @jmthomas in #3300
- Add json_api.py direct port from json_api.rb by @ryanmelt in #3304
- Use socket.socketpair instead of multiprocessing.Pipe for Windows by @jmthomas in #3303
Full Changelog: v7.0.1...v7.1.0