mirror of
https://github.com/SigNoz/signoz.git
synced 2026-03-20 11:40:27 +00:00
* feat: has JSON QB * fix: tests expected queries and values * fix: ignored .vscode in gitignore * fix: tests GroupBy * revert: gitignore change * fix: build json plans in metadata * fix: empty filteredArrays condition * fix: tests * fix: tests * fix: json qb test fix * fix: review based on tushar * fix: changes based on review from Srikanth * fix: remove unnecessary bool checking * fix: removed comment * fix: merge json body columns together * chore: var renamed * fix: merge conflict * test: fix * fix: tests * fix: go test flakiness * chore: merge json fields * fix: handle datatype collision * revert: few unrelated changes * revert: more unrelated change * test: blocked on pr #10153 * feat: mapping body_v2.message:string map to body * fix: go.mod required changes * fix: remove unused function * fix: test fixed * fix: go mod changes * fix: tests * fix: go lint * revert: remvoing unused function * revert: change ReadMultiple is needed * fix: body.message not being mapped correctly * fix: append warnings from fieldkeys * fix: change warning to a const to fix tests * chore: addressing comments from Nitya * chore: remove unnecessary change * fix: shift warning attachment to getKeySelectors * fix: lint error * feat: update message as typehint in JSON Column (#10545) * fix: cursor comments * chore: minor changes based on review * fix: message field key search in JSON Logs (#10577) * feat: work in progress * fix: test run success * fix: in progress * fix: excluding message from metadata fetch * test: cleared * fix: key name in metadata * fix: uncomment tests * chore: change to method for staticfields * fix: remove confusing comments; remove usage of logical keyword * chore: shift method above business logic * chore: changes based on review * fix: comments in metadata_store.go * fix: fallback expr switch case * revert: remove unused JSON Field datatype * fix: remove the exception checking * chore: keep message contained to field mapper * chore: text search tests * fix: package test fixed * fix: redundant code block removal * fix: retain staticfield implementation and spell fix * fix: nil param lint --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> Co-authored-by: Nityananda Gohain <nityanandagohain@gmail.com>
138 lines
4.6 KiB
Go
138 lines
4.6 KiB
Go
package telemetrylogs
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/SigNoz/signoz-otel-collector/constants"
|
|
"github.com/SigNoz/signoz/pkg/querybuilder"
|
|
qbtypes "github.com/SigNoz/signoz/pkg/types/querybuildertypes/querybuildertypesv5"
|
|
"github.com/SigNoz/signoz/pkg/types/telemetrytypes"
|
|
)
|
|
|
|
const (
|
|
|
|
// Internal Columns
|
|
LogsV2IDColumn = "id"
|
|
LogsV2TimestampBucketStartColumn = "ts_bucket_start"
|
|
LogsV2ResourceFingerPrintColumn = "resource_fingerprint"
|
|
|
|
// Intrinsic Columns
|
|
LogsV2TimestampColumn = "timestamp"
|
|
LogsV2ObservedTimestampColumn = "observed_timestamp"
|
|
LogsV2BodyColumn = "body"
|
|
LogsV2BodyV2Column = constants.BodyV2Column
|
|
LogsV2BodyPromotedColumn = constants.BodyPromotedColumn
|
|
LogsV2TraceIDColumn = "trace_id"
|
|
LogsV2SpanIDColumn = "span_id"
|
|
LogsV2TraceFlagsColumn = "trace_flags"
|
|
LogsV2SeverityTextColumn = "severity_text"
|
|
LogsV2SeverityNumberColumn = "severity_number"
|
|
LogsV2ScopeNameColumn = "scope_name"
|
|
LogsV2ScopeVersionColumn = "scope_version"
|
|
|
|
// Contextual Columns
|
|
LogsV2AttributesStringColumn = "attributes_string"
|
|
LogsV2AttributesNumberColumn = "attributes_number"
|
|
LogsV2AttributesBoolColumn = "attributes_bool"
|
|
LogsV2ResourcesStringColumn = "resources_string"
|
|
LogsV2ScopeStringColumn = "scope_string"
|
|
|
|
BodyV2ColumnPrefix = constants.BodyV2ColumnPrefix
|
|
BodyPromotedColumnPrefix = constants.BodyPromotedColumnPrefix
|
|
|
|
// messageSubColumn is the ClickHouse sub-column that body searches map to
|
|
// when BodyJSONQueryEnabled is true.
|
|
messageSubField = "message"
|
|
messageSubColumn = "body_v2.message"
|
|
bodySearchDefaultWarning = "body searches default to `body.message:string`. Use `body.<key>` to search a different field inside body"
|
|
)
|
|
|
|
var (
|
|
DefaultFullTextColumn = &telemetrytypes.TelemetryFieldKey{
|
|
Name: "body",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
}
|
|
IntrinsicFields = map[string]telemetrytypes.TelemetryFieldKey{
|
|
"body": {
|
|
Name: "body",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
"trace_id": {
|
|
Name: "trace_id",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
"span_id": {
|
|
Name: "span_id",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
"trace_flags": {
|
|
Name: "trace_flags",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeNumber,
|
|
},
|
|
"severity_text": {
|
|
Name: "severity_text",
|
|
Description: "Log level. Learn more [here](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitytext)",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
"severity_number": {
|
|
Name: "severity_number",
|
|
Description: "Numerical value of the severity. Learn more [here](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-severitynumber)",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextLog,
|
|
FieldDataType: telemetrytypes.FieldDataTypeNumber,
|
|
},
|
|
"scope_name": {
|
|
Name: "scope_name",
|
|
Description: "Logger name. Learn more about instrumentation scope [here](https://opentelemetry.io/docs/concepts/instrumentation-scope/)",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextScope,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
"scope_version": {
|
|
Name: "scope_version",
|
|
Signal: telemetrytypes.SignalLogs,
|
|
FieldContext: telemetrytypes.FieldContextScope,
|
|
FieldDataType: telemetrytypes.FieldDataTypeString,
|
|
},
|
|
}
|
|
|
|
DefaultLogsV2SortingOrder = []qbtypes.OrderBy{
|
|
{
|
|
Key: qbtypes.OrderByKey{
|
|
TelemetryFieldKey: telemetrytypes.TelemetryFieldKey{
|
|
Name: LogsV2TimestampColumn,
|
|
},
|
|
},
|
|
Direction: qbtypes.OrderDirectionDesc,
|
|
},
|
|
{
|
|
Key: qbtypes.OrderByKey{
|
|
TelemetryFieldKey: telemetrytypes.TelemetryFieldKey{
|
|
Name: LogsV2IDColumn,
|
|
},
|
|
},
|
|
Direction: qbtypes.OrderDirectionDesc,
|
|
},
|
|
}
|
|
)
|
|
|
|
func bodyAliasExpression() string {
|
|
if !querybuilder.BodyJSONQueryEnabled {
|
|
return LogsV2BodyColumn
|
|
}
|
|
|
|
return fmt.Sprintf("%s as body", LogsV2BodyV2Column)
|
|
}
|