Skip to content

Commit bd117d3

Browse files
Telemetry query functionality (#204)
* Telemetry query functionality * Fix lint issues
1 parent 3d84533 commit bd117d3

20 files changed

Lines changed: 3422 additions & 1150 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- `workflows`: Added `client.Jobs.QueryLogs` and `client.Jobs.QuerySpans` to query logs and trace spans for a job, plus a telemetry query example.
13+
1014
## [0.4.0] - 2026-03-06
1115

1216
### Added

buf.gen.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ managed:
77
module: buf.build/googleapis/googleapis
88
- file_option: go_package
99
module: buf.build/bufbuild/protovalidate
10+
- file_option: go_package
11+
module: buf.build/opentelemetry/opentelemetry
1012
override:
1113
- file_option: go_package_prefix
1214
value: github.com/tilebox/tilebox-go/protogen
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"log/slog"
7+
"time"
8+
9+
"github.com/google/uuid"
10+
"github.com/tilebox/tilebox-go/workflows/v1"
11+
)
12+
13+
func main() {
14+
ctx := context.Background()
15+
client := workflows.NewClient()
16+
jobID := uuid.MustParse("019e070c-63ba-1c7e-5f1d-65be3e22d52a")
17+
18+
fmt.Println("Log messages:") //nolint:forbidigo // This example intentionally prints query results to stdout.
19+
fmt.Printf("%-8s %-30s %s\n", "LEVEL", "TIME", "BODY") //nolint:forbidigo // This example intentionally prints query results to stdout.
20+
for logRecord, err := range client.Jobs.QueryLogs(ctx, jobID, workflows.WithSortDirection(workflows.Ascending)) {
21+
if err != nil {
22+
slog.Error("failed to query job logs", slog.Any("error", err))
23+
return
24+
}
25+
26+
fmt.Printf("%-8s %-30s %s\n", //nolint:forbidigo // This example intentionally prints query results to stdout.
27+
logRecord.SeverityText,
28+
logRecord.Time.Format(time.RFC3339Nano),
29+
logRecord.Body,
30+
)
31+
}
32+
33+
fmt.Println() //nolint:forbidigo // This example intentionally prints query results to stdout.
34+
fmt.Println("Trace spans:") //nolint:forbidigo // This example intentionally prints query results to stdout.
35+
fmt.Printf("%-30s %-40s %s\n", "TIME", "SPAN NAME", "DURATION") //nolint:forbidigo // This example intentionally prints query results to stdout.
36+
for span, err := range client.Jobs.QuerySpans(ctx, jobID) {
37+
if err != nil {
38+
slog.Error("failed to query job spans", slog.Any("error", err))
39+
return
40+
}
41+
42+
fmt.Printf("%-30s %-40s %s\n", //nolint:forbidigo // This example intentionally prints query results to stdout.
43+
span.StartTime.Format(time.RFC3339Nano),
44+
span.Name,
45+
span.Duration(),
46+
)
47+
}
48+
}

go.mod

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,30 @@ module github.com/tilebox/tilebox-go
33
go 1.25.0
44

55
require (
6-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260209202127-80ab13bee0bf.1
7-
connectrpc.com/connect v1.19.1
6+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260415201107-50325440f8f2.1
7+
connectrpc.com/connect v1.19.2
88
github.com/avast/retry-go/v4 v4.7.0
99
github.com/cespare/xxhash/v2 v2.3.0
10-
github.com/deckarep/golang-set/v2 v2.8.0
10+
github.com/deckarep/golang-set/v2 v2.9.0
1111
github.com/google/uuid v1.6.0
1212
github.com/hashicorp/go-retryablehttp v0.7.8
1313
github.com/lmittmann/tint v1.1.3
14-
github.com/paulmach/orb v0.12.0
14+
github.com/paulmach/orb v0.13.0
1515
github.com/samber/lo v1.53.0
16-
github.com/samber/slog-multi v1.7.1
16+
github.com/samber/slog-multi v1.8.0
1717
github.com/stretchr/testify v1.11.1
18-
go.opentelemetry.io/contrib/bridges/otelslog v0.16.0
18+
go.opentelemetry.io/contrib/bridges/otelslog v0.18.0
1919
go.opentelemetry.io/otel v1.43.0
2020
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0
2121
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0
2222
go.opentelemetry.io/otel/metric v1.43.0
2323
go.opentelemetry.io/otel/sdk v1.43.0
2424
go.opentelemetry.io/otel/sdk/log v0.19.0
2525
go.opentelemetry.io/otel/trace v1.43.0
26-
google.golang.org/grpc v1.80.0
26+
go.opentelemetry.io/proto/otlp v1.10.0
27+
google.golang.org/grpc v1.81.0
2728
google.golang.org/protobuf v1.36.11
28-
pgregory.net/rapid v1.2.0
29+
pgregory.net/rapid v1.3.0
2930
)
3031

3132
require (
@@ -34,19 +35,19 @@ require (
3435
github.com/fatih/color v1.18.0 // indirect
3536
github.com/go-logr/logr v1.4.3 // indirect
3637
github.com/go-logr/stdr v1.2.2 // indirect
37-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
38+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
3839
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
3940
github.com/mattn/go-colorable v0.1.14 // indirect
4041
github.com/pmezard/go-difflib v1.0.0 // indirect
41-
github.com/samber/slog-common v0.20.0 // indirect
42+
github.com/samber/slog-common v0.22.0 // indirect
43+
go.mongodb.org/mongo-driver v1.17.9 // indirect
4244
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
4345
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
4446
go.opentelemetry.io/otel/log v0.19.0 // indirect
45-
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
46-
golang.org/x/net v0.52.0 // indirect
47-
golang.org/x/sys v0.42.0 // indirect
48-
golang.org/x/text v0.35.0 // indirect
49-
google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect
50-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect
47+
golang.org/x/net v0.54.0 // indirect
48+
golang.org/x/sys v0.44.0 // indirect
49+
golang.org/x/text v0.37.0 // indirect
50+
google.golang.org/genproto/googleapis/api v0.0.0-20260504160031-60b97b32f348 // indirect
51+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260504160031-60b97b32f348 // indirect
5152
gopkg.in/yaml.v3 v3.0.1 // indirect
5253
)

0 commit comments

Comments
 (0)