Skip to content

v1.8.0: Added metrics and traces

Compare
Choose a tag to compare
@github-actions github-actions released this 21 Aug 02:41
· 68 commits to main since this release
v1.8.0

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