From 0d81ff6b4c99a538d499d91aa221594352423ff3 Mon Sep 17 00:00:00 2001 From: Lukas Bindreiter Date: Fri, 22 Aug 2025 16:55:18 +0200 Subject: [PATCH] Document jaeger tracing --- .../observability/tilebox-jaeger.png | Bin 0 -> 69787 bytes workflows/observability/open-telemetry.mdx | 103 +++++++++++++++++- 2 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 assets/workflows/observability/tilebox-jaeger.png diff --git a/assets/workflows/observability/tilebox-jaeger.png b/assets/workflows/observability/tilebox-jaeger.png new file mode 100644 index 0000000000000000000000000000000000000000..fcef7b9823c582b80d59e546a6f7020d76400089 GIT binary patch literal 69787 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≪pGlZO*EY^-JNg{+Vt_BV94 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 literal 0 HcmV?d00001 diff --git a/workflows/observability/open-telemetry.mdx b/workflows/observability/open-telemetry.mdx index 49b2bce..02416f5 100644 --- a/workflows/observability/open-telemetry.mdx +++ b/workflows/observability/open-telemetry.mdx @@ -34,10 +34,107 @@ Tilebox Workflows currently supports OpenTelemetry for tracing and logging, with ## Integrations -Tilebox exports telemetry data using the [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otlp/). +Tilebox exports telemetry data using the [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otlp/). This allows you to send telemetry data to any OpenTelemetry-compatible backend, such as Axiom or Jaeger. + +### Axiom Tilebox is pre-integrated with Axiom -Axiom, a cloud-based observability and telemetry platform, supports this protocol. Tilebox Workflows has built-in support for Axiom, and the examples and screenshots in this section come from this integration. +Tilebox Workflows has built-in support for Axiom, a cloud-based observability and telemetry platform. The examples and screenshots in this section come from this integration. + +To get started, [sign up for a free Axiom account](https://axiom.co/), create an axiom dataset for traces and logs, and generate an API key with ingest permissions for those datasets. + +You can then configure Tilebox to export traces and logs to Axiom using [configure_otel_tracing_axiom](/workflows/observability/tracing#axiom) and [configure_otel_logging_axiom](/workflows/observability/logging#axiom). + +### Jaeger + +Tilebox works well with Jaeger + +Another popular option is [Jaeger](https://jaegertracing.io/), a popular distributed tracing system. You can use the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) to collect telemetry data from Tilebox Workflows and export it to Jaeger. + +An all-in-one Jaeger environment can be spun up using Docker: + +```bash +docker run --rm --name jaeger \ + -p 5778:5778 \ + -p 16686:16686 \ + -p 4318:4318 \ + jaegertracing/jaeger:2.9.0 +``` + +You can then configure Tilebox to export traces to Jaeger using `configure_otel_tracing`. + + +```python Python +from tilebox.workflows import Client +from tilebox.workflows.observability.tracing import configure_otel_tracing + +# your own workflow: +from my_workflow import MyTask + +def main(): + configure_otel_tracing( + # export traces to the local Jaeger instance + endpoint="http://localhost:4318", + ) + + # the following task runner generates traces for executed tasks and + # exports trace and span data to the specified endpoint + client = Client() + runner = client.runner(tasks=[MyTask]) + runner.run_forever() + +if __name__ == "__main__": + main() +``` +```go Go +package main + +import ( + "context" + "log/slog" + + "github.com/tilebox/tilebox-go/examples/workflows/opentelemetry" + "github.com/tilebox/tilebox-go/observability" + "github.com/tilebox/tilebox-go/observability/tracer" + "github.com/tilebox/tilebox-go/workflows/v1" + "go.opentelemetry.io/otel" +) + +// specify a service name and version to identify the instrumenting application in traces and logs +var service = &observability.Service{Name: "task-runner", Version: "dev"} + +func main() { + ctx := context.Background() + + endpoint := "http://localhost:4318" + + // Setup an OpenTelemetry trace span processor, exporting traces and spans to an OTEL compatible trace endpoint + tileboxTracerProvider, shutdown, err := tracer.NewOtelProvider(ctx, service, tracer.WithEndpointURL(endpoint)) + defer shutdown(ctx) + if err != nil { + slog.Error("failed to set up otel span processor", slog.Any("error", err)) + return + } + otel.SetTracerProvider(tileboxTracerProvider) // set the tilebox tracer provider as the global OTEL tracer provider + + client := workflows.NewClient() + + taskRunner, err := client.NewTaskRunner(ctx) + if err != nil { + slog.Error("failed to create task runner", slog.Any("error", err)) + return + } + + err = taskRunner.RegisterTasks(&MyTask{}) + if err != nil { + slog.Error("failed to register tasks", slog.Any("error", err)) + return + } + + taskRunner.RunForever(ctx) +} +``` + -Additionally, any other OpenTelemetry-compatible backend, such as OpenTelemetry Collector or Jaeger, can be used to collect telemetry data generated by Tilebox Workflows. +The generated workflow traces can then be viewed in the Jaeger UI at [http://localhost:16686](http://localhost:16686).