Skip to content

Commit 1763044

Browse files
committed
Modify context path of OTEL transformers
As of 0.119.0, the parser collector modifies certain paths of transforms. While this is not an error, the resulting log can look a little alarming, so we rewrote some of our transforms to match. Issues: [PGO-2268]
1 parent e19f3fe commit 1763044

12 files changed

+430
-344
lines changed

internal/collector/generated/pgbackrest_logs_transforms.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/collector/generated/postgres_logs_transforms.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/collector/patroni.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,23 @@ func EnablePatroniLogging(ctx context.Context,
6969
`set(instrumentation_scope.name, "patroni")`,
7070

7171
// https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/-/pkg/ottl/ottlfuncs#parsejson
72-
`set(cache, ParseJSON(body["original"]))`,
72+
`set(log.cache, ParseJSON(log.body["original"]))`,
7373

7474
// The log severity is in the "levelname" field.
7575
// https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitytext
76-
`set(severity_text, cache["levelname"])`,
76+
`set(log.severity_text, log.cache["levelname"])`,
7777

7878
// Map Patroni (python) "logging levels" to OpenTelemetry severity levels.
7979
//
8080
// https://docs.python.org/3.6/library/logging.html#logging-levels
8181
// https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber
8282
// https://github.com/open-telemetry/opentelemetry-python/blob/v1.29.0/opentelemetry-api/src/opentelemetry/_logs/severity/__init__.py
8383
// https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/-/pkg/ottl/contexts/ottllog#enums
84-
`set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"`,
85-
`set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"`,
86-
`set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"`,
87-
`set(severity_number, SEVERITY_NUMBER_ERROR) where severity_text == "ERROR"`,
88-
`set(severity_number, SEVERITY_NUMBER_FATAL) where severity_text == "CRITICAL"`,
84+
`set(log.severity_number, SEVERITY_NUMBER_DEBUG) where log.severity_text == "DEBUG"`,
85+
`set(log.severity_number, SEVERITY_NUMBER_INFO) where log.severity_text == "INFO"`,
86+
`set(log.severity_number, SEVERITY_NUMBER_WARN) where log.severity_text == "WARNING"`,
87+
`set(log.severity_number, SEVERITY_NUMBER_ERROR) where log.severity_text == "ERROR"`,
88+
`set(log.severity_number, SEVERITY_NUMBER_FATAL) where log.severity_text == "CRITICAL"`,
8989

9090
// Parse the "asctime" field into the record timestamp.
9191
// The format is neither RFC 3339 nor ISO 8601:
@@ -95,14 +95,14 @@ func EnablePatroniLogging(ctx context.Context,
9595
//
9696
// https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/-/pkg/stanza/docs/types/timestamp.md
9797
// https://docs.python.org/3.6/library/logging.html#logging.LogRecord
98-
`set(time, Time(cache["asctime"], "%F %T,%L"))`,
98+
`set(log.time, Time(log.cache["asctime"], "%F %T,%L")) where IsString(log.cache["asctime"])`,
9999

100100
// Keep the unparsed log record in a standard attribute, and replace
101101
// the log record body with the message field.
102102
//
103103
// https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/general/logs.md
104-
`set(attributes["log.record.original"], body["original"])`,
105-
`set(body, cache["message"])`,
104+
`set(log.attributes["log.record.original"], log.body["original"])`,
105+
`set(log.body, log.cache["message"])`,
106106
},
107107
}},
108108
}

internal/collector/patroni_test.go

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,21 @@ processors:
7474
- context: log
7575
statements:
7676
- set(instrumentation_scope.name, "patroni")
77-
- set(cache, ParseJSON(body["original"]))
78-
- set(severity_text, cache["levelname"])
79-
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"
80-
- set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"
81-
- set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"
82-
- set(severity_number, SEVERITY_NUMBER_ERROR) where severity_text == "ERROR"
83-
- set(severity_number, SEVERITY_NUMBER_FATAL) where severity_text == "CRITICAL"
84-
- set(time, Time(cache["asctime"], "%F %T,%L"))
85-
- set(attributes["log.record.original"], body["original"])
86-
- set(body, cache["message"])
77+
- set(log.cache, ParseJSON(log.body["original"]))
78+
- set(log.severity_text, log.cache["levelname"])
79+
- set(log.severity_number, SEVERITY_NUMBER_DEBUG) where log.severity_text ==
80+
"DEBUG"
81+
- set(log.severity_number, SEVERITY_NUMBER_INFO) where log.severity_text ==
82+
"INFO"
83+
- set(log.severity_number, SEVERITY_NUMBER_WARN) where log.severity_text ==
84+
"WARNING"
85+
- set(log.severity_number, SEVERITY_NUMBER_ERROR) where log.severity_text ==
86+
"ERROR"
87+
- set(log.severity_number, SEVERITY_NUMBER_FATAL) where log.severity_text ==
88+
"CRITICAL"
89+
- set(log.time, Time(log.cache["asctime"], "%F %T,%L")) where IsString(log.cache["asctime"])
90+
- set(log.attributes["log.record.original"], log.body["original"])
91+
- set(log.body, log.cache["message"])
8792
receivers:
8893
filelog/patroni_jsonlog:
8994
include:
@@ -169,16 +174,21 @@ processors:
169174
- context: log
170175
statements:
171176
- set(instrumentation_scope.name, "patroni")
172-
- set(cache, ParseJSON(body["original"]))
173-
- set(severity_text, cache["levelname"])
174-
- set(severity_number, SEVERITY_NUMBER_DEBUG) where severity_text == "DEBUG"
175-
- set(severity_number, SEVERITY_NUMBER_INFO) where severity_text == "INFO"
176-
- set(severity_number, SEVERITY_NUMBER_WARN) where severity_text == "WARNING"
177-
- set(severity_number, SEVERITY_NUMBER_ERROR) where severity_text == "ERROR"
178-
- set(severity_number, SEVERITY_NUMBER_FATAL) where severity_text == "CRITICAL"
179-
- set(time, Time(cache["asctime"], "%F %T,%L"))
180-
- set(attributes["log.record.original"], body["original"])
181-
- set(body, cache["message"])
177+
- set(log.cache, ParseJSON(log.body["original"]))
178+
- set(log.severity_text, log.cache["levelname"])
179+
- set(log.severity_number, SEVERITY_NUMBER_DEBUG) where log.severity_text ==
180+
"DEBUG"
181+
- set(log.severity_number, SEVERITY_NUMBER_INFO) where log.severity_text ==
182+
"INFO"
183+
- set(log.severity_number, SEVERITY_NUMBER_WARN) where log.severity_text ==
184+
"WARNING"
185+
- set(log.severity_number, SEVERITY_NUMBER_ERROR) where log.severity_text ==
186+
"ERROR"
187+
- set(log.severity_number, SEVERITY_NUMBER_FATAL) where log.severity_text ==
188+
"CRITICAL"
189+
- set(log.time, Time(log.cache["asctime"], "%F %T,%L")) where IsString(log.cache["asctime"])
190+
- set(log.attributes["log.record.original"], log.body["original"])
191+
- set(log.body, log.cache["message"])
182192
receivers:
183193
filelog/patroni_jsonlog:
184194
include:

0 commit comments

Comments
 (0)