@@ -60,10 +60,27 @@ func EnablePgAdminLogging(ctx context.Context, spec *v1beta1.InstrumentationSpec
60
60
{
61
61
"context" : "log" ,
62
62
"statements" : []string {
63
+ // Keep the unparsed log record in a standard attribute, and replace
64
+ // the log record body with the message field.
65
+ //
66
+ // https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/general/logs.md
67
+ `set(attributes["log.record.original"], body)` ,
63
68
`set(cache, ParseJSON(body))` ,
64
69
`merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"), "insert")` ,
70
+ `set(body, cache["message"])` ,
71
+
72
+ // Set instrumentation scope to the "name" from each log record.
73
+ `set(instrumentation_scope.name, cache["name"])` ,
74
+
75
+ // https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitytext
65
76
`set(severity_text, cache["level"])` ,
66
77
`set(time_unix_nano, Int(cache["time"]*1000000000))` ,
78
+
79
+ // Map pgAdmin "logging levels" to OpenTelemetry severity levels.
80
+ //
81
+ // https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
82
+ // https://opentelemetry.io/docs/specs/otel/logs/data-model-appendix/#appendix-b-severitynumber-example-mappings
83
+ // https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/-/pkg/ottl/contexts/ottllog#enums
67
84
`set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"` ,
68
85
`set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"` ,
69
86
`set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"` ,
0 commit comments