Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOC] Add blog link; update instrumentation scope doc #4569

Merged
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
7 changes: 2 additions & 5 deletions docs/sources/tempo/release-notes/v2-7.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,12 @@ This release gives you:
* New TraceQL capabilities
* Improvements to TraceQL metrics

<!-- Add link to blog post
Read the [Tempo 2.7 blog post](https://grafana.com/blog/2024/09/05/grafana-tempo-2.6-release-performance-improvements-and-new-traceql-features/) for more examples and details about these improvements. -->
Read the [Tempo 2.7 blog post](https://grafana.com/blog/2025/01/16/grafana-tempo-2.7-release-new-traceql-metrics-functions-operational-improvements-and-more/) for more examples and details about these improvements.

These release notes highlight the most important features and bugfixes.
For a complete list, refer to the [Tempo changelog](https://github.com/grafana/tempo/releases).

<!-- add link to video for blog post
{{< youtube id="aIDkPJ_e3W4" >}}
-->
{{< youtube id="0jUEvY-pCdw" >}}

## Features and enhancements

Expand Down
20 changes: 12 additions & 8 deletions docs/sources/tempo/traceql/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,8 @@ The following table shows the current available scoped intrinsic fields:
| `event:timeSinceStart` | duration | time of event in relation to the span start time | `{ event:timeSinceStart > 2ms}` |
| `link:spanID` | string | link span ID using hex string | `{ link:spanID = "0000000000000001" }` |
| `link:traceID` | string | link trace ID using hex string | `{ link:traceID = "1234567890abcde" }` |

<!-- instrumentation scope isn't included in the 2.6 documentation
| `instrumentation:name` | string | instrumentation scope name | `{ instrumentation:name = "grpc" }` |
| `instrumentation:version`| string | instrumentation scope version | `{ instrumentation:version = "1.0.0" }` |
-->

The trace-level intrinsics, `trace:duration`, `trace:rootName`, and `trace:rootService`, are the same for all spans in the same trace.
Additionally, these intrinsics are significantly more performant because they have to inspect much less data then a span-level intrinsic.
Expand All @@ -261,9 +258,7 @@ This example searches all Kubernetes clusters called `service-name` that have a

### Attribute fields

TraceQL has four different attribute scopes: span attributes, resource attributes, event attributes, and link attributes.
<!-- instrumentation scope isn't in 2.6 >
instrumentation scope attributes. -->
TraceQL supports these different attribute scopes: span attributes, resource attributes, event attributes, link attributes, and instrumentation scope attributes.

By expanding a span in the Grafana UI, you can see both its span attributes (1 in the screenshot) and resource attributes (2 in the screenshot).

Expand Down Expand Up @@ -314,12 +309,21 @@ You can search for an attribute in your link:
```
{ link.opentracing.ref_type = "child_of" }
```
<!-- instrumentation scope isn't included in the 2.6 release

The instrumentation scope lets you query the [instrumentation scope](https://opentelemetry.io/docs/concepts/instrumentation-scope/) fields so you can filter and explore your traces based on where and how they were instrumented.
The primary use of this scope is to query your trace data based on the various libraries and clients that are producing data.

Find instrumentation scope programming language:
```
{ instrumentation.language = "java" }
```
-->

Find the libraries producing instrumentation for a given service:
```
{ resource.service.name = "foo" } | rate() by (instrumentation:name)
```

The [Tempo 2.7 release video](https://www.youtube.com/watch?v=0jUEvY-pCdw) demos and explains the `instrumentation` scope, starting at 30 seconds.

### Unscoped attribute fields

Expand Down