Skip to content

Commit 558c686

Browse files
committed
Add instrumentation_scope.name and log.record.original attributes to pgadmin log transform. Move log message to body. Move log name to process.title.
1 parent 0300d6e commit 558c686

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

internal/collector/pgadmin.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,32 @@ func EnablePgAdminLogging(ctx context.Context, instrumentationSpec *v1beta1.Inst
6060
{
6161
"context": "log",
6262
"statements": []string{
63+
// Set instrumentation scope
64+
`set(instrumentation_scope.name, "pgadmin")`,
65+
66+
// Keep the unparsed log record in a standard attribute, and replace
67+
// the log record body with the message field.
68+
//
69+
// https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/general/logs.md
70+
`set(attributes["log.record.original"], body)`,
6371
`set(cache, ParseJSON(body))`,
6472
`merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"), "insert")`,
73+
`set(body, cache["message"])`,
74+
75+
// Set process.title to the "name" from each log record.
76+
// TODO: confirm that the "name" entry in the pgAdmin logs is in fact referring
77+
// to a process... Should this be "instrumentation_scope.name"??
78+
`set(attributes["process.title"], cache["name"])`,
79+
80+
// https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitytext
6581
`set(severity_text, cache["level"])`,
6682
`set(time_unix_nano, Int(cache["time"]*1000000000))`,
83+
84+
// Map pgAdmin "logging levels" to OpenTelemetry severity levels.
85+
//
86+
// https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
87+
// https://opentelemetry.io/docs/specs/otel/logs/data-model-appendix/#appendix-b-severitynumber-example-mappings
88+
// https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/-/pkg/ottl/contexts/ottllog#enums
6789
`set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"`,
6890
`set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"`,
6991
`set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"`,

internal/collector/pgadmin_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,13 @@ collector.yaml: |
7070
log_statements:
7171
- context: log
7272
statements:
73+
- set(instrumentation_scope.name, "pgadmin")
74+
- set(attributes["log.record.original"], body)
7375
- set(cache, ParseJSON(body))
7476
- merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"),
7577
"insert")
78+
- set(body, cache["message"])
79+
- set(attributes["process.title"], cache["name"])
7680
- set(severity_text, cache["level"])
7781
- set(time_unix_nano, Int(cache["time"]*1000000000))
7882
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"
@@ -174,9 +178,13 @@ collector.yaml: |
174178
log_statements:
175179
- context: log
176180
statements:
181+
- set(instrumentation_scope.name, "pgadmin")
182+
- set(attributes["log.record.original"], body)
177183
- set(cache, ParseJSON(body))
178184
- merge_maps(attributes, ExtractPatterns(cache["message"], "(?P<webrequest>[A-Z]{3}.*?[\\d]{3})"),
179185
"insert")
186+
- set(body, cache["message"])
187+
- set(attributes["process.title"], cache["name"])
180188
- set(severity_text, cache["level"])
181189
- set(time_unix_nano, Int(cache["time"]*1000000000))
182190
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"

0 commit comments

Comments
 (0)