gotosocial/docs/locales/zh/advanced/tracing.md
Jochen Schalanda 56204cc2f4 [feature] add support for sending headers to tracing system
Add support for sending additional HTTP or gRPC headers which
can be used for authentication or other additional information
for the tracing system without having to set up a local instance
of the OpenTelemetry Collector to add these headers.

Example with Dash0:

```yaml
tracing-enabled: false
tracing-transport: "grpc"
tracing-endpoint: "ingress.eu-west-1.aws.dash0.com:4317"
tracing-headers:
  "Authorization": "Bearer DASH0_AUTH_TOKEN"
  "Dash0-Dataset": "gotosocial"
```

Example with Honeycomb:

```yaml
tracing-enabled: false
tracing-transport: "grpc"
tracing-endpoint: "api.honeycomb.io:443"
tracing-headers:
  "x-honeycomb-team": "YOUR_API_KEY"
  "x-honeycomb-dataset": "YOUR_DATASET"
```
2024-12-14 17:28:50 +01:00

2.4 KiB
Raw Blame History

追踪

GoToSocial 内置了基于 OpenTelemetry 的追踪功能。虽然并没有贯穿每个函数,但我们的 HTTP 处理程序和数据库库会创建跨度。在 可观测性配置参考 中解释了如何配置追踪。

为了接收这些追踪,你需要一些工具来摄取并可视化它们。有很多选项,包括自托管和商业选项。

我们提供了一个示例,说明如何使用 Grafana Tempo 来抓取数据跨度,并使用 Grafana 来检索它们。请注意,我们提供的配置不适合生产环境。可以安全地用于本地开发,并可为设置你自己的追踪基础设施提供一个良好的起点。

你需要获取 example/tracing 中的文件。获取这些文件后,你可以运行 docker-compose up -d 来启动 Tempo 和 Grafana。在两个服务运行后可以将以下内容添加到 GoToSocial 配置中,并重新启动你的实例:

tracing-enabled: true
tracing-transport: "grpc"
tracing-endpoint: "localhost:4317"
tracing-headers:
  "Authorization": "Bearer super-secret-token"
  "Dataset": "gotosocial"
tracing-insecure-transport: true

查询和可视化追踪

在对你的实例执行几个查询后,你可以在 Grafana 中找到它们。你可以使用 Explore 选项卡并选择 Tempo 作为数据源。由于我们的 Grafana 示例配置启用了 TraceQLExplore 选项卡将默认选择 TraceQL 查询类型。你可以改为选择“搜索”并在“GoToSocial”服务名称下找到所有 GoToSocial 发出的追踪。

使用 TraceQL 时,一个简单的查询来查找与 /api/v1/instance 请求相关的所有追踪可以这样写:

{.http.route = "/api/v1/instance"}

如果你想查看所有 GoToSocial 追踪,可以运行:

{.service.name = "GoToSocial"}

选择一个追踪后,将打开第二个面板,显示对应数据跨度的可视化视图。你可以从那里深入浏览,通过点击每个子跨度查看其执行的操作。

Grafana 显示 /api/v1/instance 端点的追踪