Harbor v2.4 release and Distributed Tracing

October 28, 2021

Harbor Team

We’re excited to announce the Harbor v2.4 GA release which focuses on distributed tracing for enhanced troubleshooting, identifying performance bottlenecks.

We’re delighted to announce the general availability of Harbor v2.4.

Main new feature:

Observability is a key feature for operating a service in production and by using this data you can identify abnormal statuses and make informed decisions to fix issues when an error occurs. The distributed tracing is a key element of observability in modern applications. Harbor can provide distributed tracing data for operators and administrators to know the current running status and to help troubleshooting. Harbor exposes tracing data using the OpenTelemetry sdk, you can easily export traces via Otel protocol which can be consumed by OpenTelemetry Collector then expose to almost the on-prem or cloud trace backend. Because of the popularity of Jaeger, Harbor also can expose tracing data to Jaeger backend directly.

Other notable features such as:

  • Support replication of Harbor instances with Robot Account guide
  • Support Stop All and single scan jobs
  • Support exclusions and rate limit to Replication Rules.
  • Enable OIDC auth based user deletion, this addresses #8424.
  • Synchronize schedule from DB to Redis.
  • Harbor is now built using Golang v1.17.2 as of this release. #15868
  • Bump up Trivy to 0.23.0 which adds support for go.sum scanning. #15861


  • The legacy robot account is deprecated in v2.4.0 release. It’s suggested that you remove all the legacy robots and use robot v2 instead.
  • Limit support on Chartmuseum from v2.4.0 release.

Full list of PRs!

Full list of Resolved issues here!

Distributed Tracing

In harbor v2.4 and later you are able to enable distributed tracing in your Harbor. But we only support one exporter at a time (you can not set bosh or none of them if you enabled tracing). You can set otel as exporter and leveraging OpenTelemetry Collector to retransmit to multiple backend if you want to send data to multiple exporter. And similarly, Jaeger exporter supports agent mode and endpoint mode, but only one mode can be enabled at a time.

If you’re a user of Harbor and want to share any feedback, we’d love to hear from you here!

Huge shoutout to the maintainer team, our contributors & everyone in the community who helped the project realize its level of adoption today !! The project would not be where it is today without the community

Contributors to v2.4

We also want to thank the following users for their sustained contributions to the project!

  • Alexis L
  • Chenyu Zhang
  • He Weiwei
  • Rolf Ahrenberg
  • Steven Zou
  • Wang Yan
  • chlins
  • stonezdj(Daojun Zhang)
  • 孙世军

And overall contributors:

  • Will Sun
  • Qian Deng
  • Wang Yan
  • He Weiwei
  • danfengliu
  • Daniel Jiang
  • Wenkai Yin(尹文开)
  • stonezdj(Daojun Zhang)
  • Ziming
  • Abigail McCarthy
  • Chlins Zhang
  • Dirk Mueller
  • sluetze
  • mmpei
  • 疯魔慕薇
  • Thoro
  • Steven Zou
  • Ángel Barrera
  • Bo Shao
  • Greg
  • Sven Haardiek
  • prahaladdarkin
  • Flávio Ramalho
  • KeisukeYamashita
  • Daniel Pacak

Collaborate with the Harbor Community

Get updates on Twitter: @project_harbor
Chat with us on Slack: #harbor and #harbor-dev on the CNCF Slack
Collaborate with us on GitHub
Attend the community meetings


Orlin Vasilev
Harbor Community Manager
GitHub: @OrlinVasilev
Twitter: @OrlinVasilev