Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
* [FEATURE] Add support for `Accept: application/vnd.grafana.llm` to Tempo endpoints. Currently supported directly by trace by id and tag values [#5961](https://github.com/grafana/tempo/pull/5961) (@joe-elliott)
* [FEATURE] add database_name_attributes config to service graph processor [#5398](https://github.com/grafana/tempo/pull/5398) (@KyriosGN0)
This response is subject to change and should not be relied on. It is intended for LLM consumption only. Even a fundamental change to its representation (yaml? markdown?) would not be considered breaking.
* [FEATURE] New TraceQL intrinsic span:childCount which is the number of direct children of the span. Support in vParquet5 and later. [#6126](https://github.com/grafana/tempo/pull/6126) (@mdisibio)
* [FEATURE] Metrics generator will now produce overflow series to capture new data once limits are hit. These series have the label `metric_overflow="true"`. [#5954](https://github.com/grafana/tempo/pull/5954) (@Logiraptor)
* [ENHANCEMENT] docs: Add explicit notes about authentication [#5735](https://github.com/grafana/tempo/pull/5735) (@electron0zero)
* [ENHANCEMENT] On startup, first record for live store to consume is not older than two complete block timeouts [#5693](https://github.com/grafana/tempo/pull/5693) (@ruslan-mikhailov)
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ GORELEASER := $(GOPATH)/bin/goreleaser

# Build Images
DOCKER_PROTOBUF_IMAGE ?= otel/build-protobuf:0.25.0
LOKI_BUILD_IMAGE ?= grafana/loki-build-image:0.34.6
LOKI_BUILD_IMAGE ?= grafana/loki-build-image:0.34.9
DOCS_IMAGE ?= grafana/docs-base:latest

# More exclusions can be added similar with: -not -path './testbed/*'
Expand Down
1 change: 1 addition & 0 deletions docs/sources/tempo/traceql/construct-traceql-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,7 @@ The following table shows the current available scoped intrinsic fields:
| `span:kind` | kind enum | kind: server, client, producer, consumer, internal, unspecified | `{ span:kind = server }` |
| `span:id` | string | span id using hex string | `{ span:id = "0000000000000001" }` |
| `span:parentID` | string | parent span id using hex string | `{ span:parentID = "000000000000001" }` |
| `span:childCount` | integer | number of direct children of the span | `{ span:childCount > 0 }` |
| `trace:duration` | duration | max(end) - min(start) time of the spans in the trace | `{ trace:duration > 100ms }` |
| `trace:rootName` | string | if it exists, the name of the root span in the trace | `{ trace:rootName = "HTTP GET" }` |
| `trace:rootService` | string | if it exists, the service name of the root span in the trace | `{ trace:rootService = "gateway" }` |
Expand Down
1 change: 1 addition & 0 deletions modules/frontend/docs/basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Intrinsic fields use colon notation `<scope>:`:
- `span:kind` - Kind: server, client, producer, consumer, internal, unspecified
- `span:id` - Span ID using hex string
- `span:parentID` - Parent span ID using hex string
- `span:childCount` - Number of direct children of the span
- `trace:duration` - Max(end) - min(start) time of spans in trace
- `trace:rootName` - Name of the root span (if it exists)
- `trace:rootService` - Service name of the root span (if it exists)
Expand Down
4 changes: 2 additions & 2 deletions pkg/spanfilter/splitpolicy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -318,12 +318,12 @@ func Test_newSplitPolicy(t *testing.T) {
MatchType: config.Strict,
Attributes: []config.MatchPolicyAttribute{
{
Key: "childCount",
Key: "span:childCount",
Value: "foo",
},
},
},
err: errors.New("unsupported intrinsic: childCount"),
err: errors.New("unsupported intrinsic: span:childCount"),
},
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/traceql/ast_validate.go
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ func (a Attribute) validate() error {
return newUnsupportedError("parent")
}
switch a.Intrinsic {
case IntrinsicParent, IntrinsicChildCount:
case IntrinsicParent:
return newUnsupportedError(fmt.Sprintf("intrinsic (%v)", a.Intrinsic))
}

Expand Down
6 changes: 3 additions & 3 deletions pkg/traceql/enum_attributes.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ func (i Intrinsic) String() string {
case IntrinsicKind:
return "kind"
case IntrinsicChildCount:
return "childCount"
return "span:childCount"
case IntrinsicEventName:
return "event:name"
case IntrinsicEventTimeSinceStart:
Expand Down Expand Up @@ -229,8 +229,6 @@ func intrinsicFromString(s string) Intrinsic {
return IntrinsicStatusMessage
case "kind":
return IntrinsicKind
case "childCount":
return IntrinsicChildCount
case "event:name":
return IntrinsicEventName
case "event:timeSinceStart":
Expand Down Expand Up @@ -265,6 +263,8 @@ func intrinsicFromString(s string) Intrinsic {
return IntrinsicName
case "span:kind":
return IntrinsicKind
case "span:childCount":
return IntrinsicChildCount
case "trace:rootName":
return IntrinsicTraceRootSpan
case "trace:rootService":
Expand Down
2 changes: 1 addition & 1 deletion pkg/traceql/expr.y
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,6 @@ static:
// Going forward with scoped intrinsics only
intrinsicField:
IDURATION { $$ = NewIntrinsic(IntrinsicDuration) }
| CHILDCOUNT { $$ = NewIntrinsic(IntrinsicChildCount) }
| NAME { $$ = NewIntrinsic(IntrinsicName) }
| STATUS { $$ = NewIntrinsic(IntrinsicStatus) }
| STATUS_MESSAGE { $$ = NewIntrinsic(IntrinsicStatusMessage) }
Expand Down Expand Up @@ -450,6 +449,7 @@ scopedIntrinsicField:
| SPAN_COLON STATUS_MESSAGE { $$ = NewIntrinsic(IntrinsicStatusMessage) }
| SPAN_COLON ID { $$ = NewIntrinsic(IntrinsicSpanID) }
| SPAN_COLON PARENT_ID { $$ = NewIntrinsic(IntrinsicParentID) }
| SPAN_COLON CHILDCOUNT { $$ = NewIntrinsic(IntrinsicChildCount) }
// event:
| EVENT_COLON NAME { $$ = NewIntrinsic(IntrinsicEventName) }
| EVENT_COLON TIMESINCESTART { $$ = NewIntrinsic(IntrinsicEventTimeSinceStart) }
Expand Down
Loading
Loading