From 80a80bb73902e6b6206182b2892fb37c667c02c6 Mon Sep 17 00:00:00 2001 From: EROMOSELE AKHIGBE Date: Fri, 19 Jul 2024 16:25:43 +0100 Subject: [PATCH 1/6] add changelog entry --- CHANGELOG.md | 2 ++ versions.yaml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f3818a79bc..1c5d1a37850 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - The `go.opentelemetry.io/contrib/config` package supports configuring `with_resource_constant_labels` for the prometheus exporter. (#5890) - Add new runtime metrics to `go.opentelemetry.io/contrib/instrumentation/runtime`, which are still disabled by default. (#5870) - Support for the `OTEL_HTTP_CLIENT_COMPATIBILITY_MODE=http/dup` environment variable in `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` to emit attributes for both the v1.20.0 and v1.26.0 semantic conventions. (#5401) +- The `go.opentelemetry.io/contrib/bridges/otelzerolog` module. + This module provides an OpenTelemetry logging bridge for `github.com/rs/zerolog`. (#5405) ### Removed diff --git a/versions.yaml b/versions.yaml index a66ee6e247c..0013dc4fa17 100644 --- a/versions.yaml +++ b/versions.yaml @@ -89,7 +89,6 @@ module-sets: modules: - go.opentelemetry.io/contrib/detectors/azure/azurevm excluded-modules: - - go.opentelemetry.io/contrib/bridges/otelzerolog - go.opentelemetry.io/contrib/instrgen - go.opentelemetry.io/contrib/instrgen/driver - go.opentelemetry.io/contrib/instrgen/testdata/interface From 956cc4cc404e2c0e7173f47287c97ba2d7770521 Mon Sep 17 00:00:00 2001 From: EROMOSELE AKHIGBE Date: Sat, 20 Jul 2024 23:06:27 +0100 Subject: [PATCH 2/6] improved documentation --- bridges/otelzerolog/hook.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/bridges/otelzerolog/hook.go b/bridges/otelzerolog/hook.go index 5f8327f1f01..821ea9adafc 100644 --- a/bridges/otelzerolog/hook.go +++ b/bridges/otelzerolog/hook.go @@ -3,7 +3,25 @@ // Package otelzerolog provides a [Hook], a [zerolog.Hook] implementation that // can be used to bridge between the [zerolog] API and [OpenTelemetry]. +// Note: otelzerolog is a basic implementation and does not support adding custom fields. + +// # Record Conversion +// +// The [zerolog.event] records are converted to OpenTelemetry [log.Record] in +// the following way: +// +// - Message is set as the Body using a [log.StringValue]. +// - Level is transformed and set as the Severity. The SeverityText is also +// set. +// The Level is transformed to the OpenTelemetry Severity types in the following way. +// +// - [zerolog.DebugLevel] is transformed to [log.SeverityDebug] +// - [zerolog.InfoLevel] is transformed to [log.SeverityInfo] +// - [zerolog.WarnLevel] is transformed to [log.SeverityWarn] +// - [zerolog.ErrorLevel] is transformed to [log.SeverityError] +// - [zerolog.FatalLevel] is transformed to [log.SeverityFatal] // [OpenTelemetry]: https://opentelemetry.io/docs/concepts/signals/logs/ + package otelzerolog // import "go.opentelemetry.io/contrib/bridges/otelzerolog" import ( From 798223f186f8eccdb431064bcb232afe3955f3a7 Mon Sep 17 00:00:00 2001 From: EROMOSELE AKHIGBE Date: Sat, 20 Jul 2024 23:59:43 +0100 Subject: [PATCH 3/6] added comment --- bridges/otelzerolog/hook.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bridges/otelzerolog/hook.go b/bridges/otelzerolog/hook.go index 821ea9adafc..69da4e953d0 100644 --- a/bridges/otelzerolog/hook.go +++ b/bridges/otelzerolog/hook.go @@ -19,7 +19,8 @@ // - [zerolog.InfoLevel] is transformed to [log.SeverityInfo] // - [zerolog.WarnLevel] is transformed to [log.SeverityWarn] // - [zerolog.ErrorLevel] is transformed to [log.SeverityError] -// - [zerolog.FatalLevel] is transformed to [log.SeverityFatal] +// - [zerolog.PanicLevel] is transformed to [log.SeverityFatal1] +// - [zerolog.FatalLevel] is transformed to [log.SeverityFatal2] // [OpenTelemetry]: https://opentelemetry.io/docs/concepts/signals/logs/ package otelzerolog // import "go.opentelemetry.io/contrib/bridges/otelzerolog" From ff58f84036c6c02ccaa202bd3f69aba5d3d7a81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Mon, 22 Jul 2024 09:01:09 +0200 Subject: [PATCH 4/6] Update bridges/otelzerolog/hook.go --- bridges/otelzerolog/hook.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bridges/otelzerolog/hook.go b/bridges/otelzerolog/hook.go index 69da4e953d0..049f9aa8380 100644 --- a/bridges/otelzerolog/hook.go +++ b/bridges/otelzerolog/hook.go @@ -3,8 +3,7 @@ // Package otelzerolog provides a [Hook], a [zerolog.Hook] implementation that // can be used to bridge between the [zerolog] API and [OpenTelemetry]. -// Note: otelzerolog is a basic implementation and does not support adding custom fields. - +// // # Record Conversion // // The [zerolog.event] records are converted to OpenTelemetry [log.Record] in @@ -13,6 +12,7 @@ // - Message is set as the Body using a [log.StringValue]. // - Level is transformed and set as the Severity. The SeverityText is also // set. +// // The Level is transformed to the OpenTelemetry Severity types in the following way. // // - [zerolog.DebugLevel] is transformed to [log.SeverityDebug] @@ -21,8 +21,11 @@ // - [zerolog.ErrorLevel] is transformed to [log.SeverityError] // - [zerolog.PanicLevel] is transformed to [log.SeverityFatal1] // - [zerolog.FatalLevel] is transformed to [log.SeverityFatal2] +// +// +// NOTE: Fields are not transformed because of https://github.com/rs/zerolog/issues/493. +// // [OpenTelemetry]: https://opentelemetry.io/docs/concepts/signals/logs/ - package otelzerolog // import "go.opentelemetry.io/contrib/bridges/otelzerolog" import ( From 5dac44ee476264209e034f7d33a1222df540c5a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Mon, 22 Jul 2024 09:03:02 +0200 Subject: [PATCH 5/6] Apply suggestions from code review --- bridges/otelzerolog/hook.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridges/otelzerolog/hook.go b/bridges/otelzerolog/hook.go index 049f9aa8380..cfacffaf9c7 100644 --- a/bridges/otelzerolog/hook.go +++ b/bridges/otelzerolog/hook.go @@ -6,7 +6,7 @@ // // # Record Conversion // -// The [zerolog.event] records are converted to OpenTelemetry [log.Record] in +// The [zerolog.Event] records are converted to OpenTelemetry [log.Record] in // the following way: // // - Message is set as the Body using a [log.StringValue]. From 05f6561a817e536085f2d3087fcbf513adf42a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Mon, 22 Jul 2024 09:25:14 +0200 Subject: [PATCH 6/6] Update bridges/otelzerolog/hook.go Co-authored-by: Damien Mathieu <42@dmathieu.com> --- bridges/otelzerolog/hook.go | 1 - 1 file changed, 1 deletion(-) diff --git a/bridges/otelzerolog/hook.go b/bridges/otelzerolog/hook.go index cfacffaf9c7..f9b2b5cb2c4 100644 --- a/bridges/otelzerolog/hook.go +++ b/bridges/otelzerolog/hook.go @@ -22,7 +22,6 @@ // - [zerolog.PanicLevel] is transformed to [log.SeverityFatal1] // - [zerolog.FatalLevel] is transformed to [log.SeverityFatal2] // -// // NOTE: Fields are not transformed because of https://github.com/rs/zerolog/issues/493. // // [OpenTelemetry]: https://opentelemetry.io/docs/concepts/signals/logs/