v1.8.0: Added metrics and traces
Caution
Quality upgrade is not working here and will cause a deadlock. Deadlock can be detected by seeing a CANCELED state in the metrics that is too long.
New Feature: Added OTEL Tracing, Metrics and Pyroscope
As a wish to seriously improve the performance and memory-safety of fc2-live-dl-go
, supports for OTEL and Pyroscope is added.
OTEL and Pyroscope are solutions for YOU to monitor and profile the program. No data is sent to us.
OpenTelemetry
OpenTelemetry provides an API that allows you to collect traces and metrics from the application.
By setting these environment variables:
OTEL_EXPORTER_OTLP_TRACES_ENABLED=true/false
OTEL_EXPORTER_OTLP_METRICS_ENABLED=true/false
You enable push-based telemetry. The telemetry must be send to a OTEL collector like the OTEL Agent or Grafana Alloy.
The parameters of OTEL can be changed using standard environment variables given by the OpenTelemetry project.
Prometheus
In combination with OTEL, we are also exposing the metrics at 0.0.0.0:3000/metrics
. This comes included with OTEL.
Pyroscope
In addition to net/http/pprof
, github.com/grafana/pyroscope-go/godeltaprof/http/pprof
has been added to enable precise continuous profiling via Pyroscope.
The endpoint is still 0.0.0.0:3000/debug/pprof
.
Grafana Dashboard
A Grafana Dashboard is now available in the grafana
directory
Fixes
- Fixed a memory leak when calling
C.CString
during concatenation. - Fixed
dts_offset
missing free on multiple inputs using arena allocation. - Ignore empty files and dirs during concat.
- Fixed Windows build and added basic Windows testing.
- Fixed an issue where concatenation of mixed formats didn't work because
ignoreSingle
was passed.
Other Changes
- Notifications about a new version will now be sent to the user.
- Container images are now signed.
- The quality
3Mbps
is now the default. We recommend enabling "quality upgrade". - The CI is now releasing on GitHub. No more manual releases.
- Removed a goroutine and used idiomatic Go usage of
io.Writer
to write bytes directly from HTTP request. - Download lifecycle is now controlled via an error channel instead of the
ctx.Done
. This allow proper graceful cancellation. - Added e2e tests by streaming with FFmpeg and do some kool sh- with SSIM and PSNR.
- Added trace log level.
- Bumped Go to 1.22.
SHA256 Checksums
18bec7a0023d623c1d5c040c35f6566535a66e993dd356252c0cae06114a13aa fc2-live-dl-go-darwin-amd64
ec48e96650bf8c4004a4780ec7e6ae78bf6b18f3b4e76474efb0efaa7a1442fc fc2-live-dl-go-darwin-arm64
88c668125f6b5156723737550fbb32b6890cc0926c9cb11b435d6921d143f6d8 fc2-live-dl-go-linux-amd64
40bad556e82ad6fba21a68e1bd61730f6ee63d88f09532a1b8f451903140d2a2 fc2-live-dl-go-linux-arm64
5be9a0d4e82b15f19693f6b1fa50c205e69794758fc0bb531c2ccc7955fb2357 fc2-live-dl-go-linux-riscv64
41b76b37455d828d2e10fd61093e9d89e49c188c70f4b833b6cc2a95acb67cde fc2-live-dl-go-windows-amd64.exe
Full Changelog: v1.7.0...v1.8.0