Engineering Blog


KrakenD CE v2.6 released with OpenTelemetry

KrakenD Community Edition v2.6 updates! Enhancements include improved observability, plugin development tools, and JWT validation. This release introduces major improvements and OpenTelemetry integration. Plus, developers now have a new testing command for plugins and access to additional data for more creative plugin development.

Introducing OpenTelemetry

KrakenD has relied on OpenCensus or its native component for telemetry integration, ensuring reliable service for over six years. Now, it’s adopting the more advanced OpenTelemetry framework.

With OpenTelemetry (OTEL), KrakenD maintains comprehensive, unified, and vendor-neutral observability. OTEL simplifies integration with various systems without needing new exporters, offering deeper insights into application performance compared to OpenCensus. This includes identifying bottlenecks, latency issues, and error diagnostics more accurately.

The OTLP Exporter allows metric pushing to local or remote collectors and supports exporting a port for Prometheus data scraping.

The Grafana dashboards have been redesigned and enhanced with an abundance of new metrics! Check out this video for a glimpse of the updated look (subtitles provided).

🚀 Summary of changes for CEv2.6

OpenTelemetry integration, extended plugin capabilities, updated Grafana Dashboard, and JWT fixes.

  • Added the OpenTelemetry integration which will eventually replace the previous OpenCensus component.
  • The new command krakend test-plugin tests if one or more given .so files are loadable into KrakenD as the selected plugin type.
  • New Grafana dashboard available for Prometheus via OpenTelemetry
  • Backend logs like [BACKEND: /foo] have mutated now to [BACKEND: GET /endpoint/{var} -> /foo] showing their relationship with the endpoint.
  • All plugins have now the KrakenD context, allowing you to perform operations during shutdown
  • Request and response modifier plugins have now access to the HTTP context. Reponse modifiers have also access to the internal request, knowing low-level details like which backend was selected.
  • The JWT Validator adds a new field auth_header_name to read tokens from custom headers (thanks to @rodion-goritskov)
  • The JWT validator can read now scopes in array format in addition to the space-separated list (thanks to @pirm-in)
  • The JWT signer returns now the typ (thanks to @AlyHKafoury)
  • The audit command includes new validations and security recommendations, and fixes a false positive on the sequential rule.
  • Fixed hostname reporting on Logstash (thanks to @lxdraw)
  • Fixed a bug that prevented having multiple backends using Async Agents
  • Removed from schema previosuly deprecated fields allow_insecure_connections in the root. Must be declared under client_tls.allow_insecure_connections now.
  • Removed from schema previously deprecated prefetch_size and prefetch_count attributes from AMQP. These attributes did not have any effect in the software.
  • The telemetry exporters based in telemetry/opencensus, although they are still available, won’t receive further updates and will be deprecated in the future. All efforts are focused on OpenTelemetry instead.
  • The telemetry exporter telemetry/influx is still available, but won’t receive further updates and will be deprecated in the future. All efforts are focused on OpenTelemetry instead.

Link to the Article

Previous Post
Next Post