Skip to content

Commit 38fc33a

Browse files
committed
Add instrumentation_scope.name and log.record.original attributes to pgadmin log transform. Move log message to body.
1 parent 8e37a1f commit 38fc33a

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

internal/collector/pgadmin.go

+17
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,27 @@ func EnablePgAdminLogging(ctx context.Context, spec *v1beta1.InstrumentationSpec
6060
{
6161
"context": "log",
6262
"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)`,
6368
`set(cache, ParseJSON(body))`,
6469
`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
6576
`set(severity_text, cache["level"])`,
6677
`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
6784
`set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"`,
6885
`set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"`,
6986
`set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"`,

internal/collector/pgadmin_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,12 @@ collector.yaml: |
7070
log_statements:
7171
- context: log
7272
statements:
73+
- set(attributes["log.record.original"], body)
7374
- set(cache, ParseJSON(body))
7475
- merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"),
7576
"insert")
77+
- set(body, cache["message"])
78+
- set(instrumentation_scope.name, cache["name"])
7679
- set(severity_text, cache["level"])
7780
- set(time_unix_nano, Int(cache["time"]*1000000000))
7881
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"
@@ -174,9 +177,12 @@ collector.yaml: |
174177
log_statements:
175178
- context: log
176179
statements:
180+
- set(attributes["log.record.original"], body)
177181
- set(cache, ParseJSON(body))
178182
- merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"),
179183
"insert")
184+
- set(body, cache["message"])
185+
- set(instrumentation_scope.name, cache["name"])
180186
- set(severity_text, cache["level"])
181187
- set(time_unix_nano, Int(cache["time"]*1000000000))
182188
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"

0 commit comments

Comments
 (0)