docs/test: OpenTelemetry endpoint examples must be base URLs, and add an exporter URI test
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 73/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- csharp
- Lĩnh vực
- documentation, testing
Hướng nghiên cứu
Search for /v1/logs in docs/DEPLOYMENT.md, docs/superpowers/specs/2026-05-12-portainer-gitops-deployment-design.md and docs/GETTING_STARTED.md. Then read TaskFlow.Api/Extensions/OpenTelemetryServiceExtensions.cs and the existing OpenTelemetryServiceExtensionsTests to find how exporter options are resolved and tested. Done means the docs use base URLs, the test verifies all three signal URIs without doubled segments, and dotnet test and dotnet format --verify-no-changes pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Groomed 2026-10-30, updated after splitting — ready for implementation.
The production fix (the taskflow-deploy value and redeploy) moved to #371, together with #358. This issue now covers only the docs and the test in this repo. It does not depend on what the live check in #371 finds.
Original Description
Problem
The production compose file in nevridge/taskflow-deploy sets:
OpenTelemetry__Endpoint=http://seq:5341/ingest/otlp/v1/logs
But TaskFlow.Api/Extensions/OpenTelemetryServiceExtensions.cs treats OpenTelemetry:Endpoint as a base URL and appends the signal path itself:
- line 46:
baseEndpoint + "/v1/traces" - line 58:
baseEndpoint + "/v1/metrics" - line 99:
baseEndpoint + "/v1/logs"
With the deploy value, logs would go to .../ingest/otlp/v1/logs/v1/logs, and traces and metrics to .../v1/logs/v1/traces and .../v1/logs/v1/metrics. Dev uses the base form http://seq:5341/ingest/otlp, which is what the code expects.
Status
Found by code reading and by comparing against a local clone of the deploy repo, which may be stale. The live deploy repo was read on 2026-10-30 and confirms the value above (images at sha-5405774). Not verified against live Seq. The same /v1/logs suffix also appears in docs/DEPLOYMENT.md (line 270 on main at 5405774) and docs/superpowers/specs/2026-05-12-portainer-gitops-deployment-design.md (line 90).
Suggested fix
- Confirm against the live deploy repo and live Seq whether production logs, traces and metrics are arriving. (Now #371.)
- If broken, change the deploy repo value to the base form
http://seq:5341/ingest/otlp. (Now #371.) - Correct the
/v1/logsexamples indocs/DEPLOYMENT.mdand the GitOps design spec.
Context
Surfaced while grooming #203 (stale docker-compose.prod.yml), which deliberately leaves the deploy repo out of scope.
User Story
As a TaskFlow developer or operator following the docs, I want every documented OpenTelemetry__Endpoint example to be the base-URL form the API expects, and a test that proves the exporter URIs are built from it, so that a setup copied from the docs works and the path handling cannot regress unnoticed.
Acceptance Criteria
- Given
docs/DEPLOYMENT.md(around line 270) anddocs/superpowers/specs/2026-05-12-portainer-gitops-deployment-design.md(around line 90), when the change is merged, then neither shows anOpenTelemetry__Endpointvalue ending in/v1/logs. Both showhttp://seq:5341/ingest/otlp. - Given the docs describe
OpenTelemetry:Endpoint, when they are searched, then each example is a base URL with no signal path, matchingREADME.md,docs/LOGGING.mdanddocs/DOCKER_CONFIGURATION.md. - Given
docs/GETTING_STARTED.md(about line 238) shows a gRPC-style port 4317 example (http://your-otlp-backend:4317), when the change is merged, then the example uses a base-URL form consistent with the http/protobuf-only setting. - Given a test configures
OpenTelemetry:Endpointashttp://host:5341/ingest/otlp, when the exporter options are resolved, then the log, trace and metric exporter URIs end in/v1/logs,/v1/tracesand/v1/metricsrespectively, with no doubled segment. Existing tests only check registration, so this test is new. A trailing slash on the configured value (.../otlp/) gives the same URIs. - Given the finished change, when I run
dotnet testanddotnet format --verify-no-changes, then both pass, and backend line coverage stays at 75% or above.
Edge Cases
docs/GETTING_STARTED.md:238and the existingOpenTelemetryServiceExtensionsTestsusehttp://localhost:4317, a gRPC-style port. The API supports only http/protobuf. The new test uses the Seq-style base URL.- An empty-string
OpenTelemetry__Endpointbypasses the??fallback and throws at startup (new Uri("/v1/logs")). That is a separate failure mode and is not changed here. - A value that already ends in a signal path is not handled by the API. A startup guard is a possible follow-up issue, not part of this one.
- Line numbers drift; find the examples by searching for
/v1/logs.
Out of Scope
- Changing the deploy repo, redeploying, or checking live Seq (#371).
ALLOWED_HOSTS(#358, folded into #371).- Making the API accept, auto-correct or reject endpoints that already include a signal path.
- Adding gRPC or other OTLP protocol support.
- Updating
docker-compose.prod.yml, which has no OTel variables. - Restructuring Seq, dashboards or alerts.
- Ngôn ngữ chính
- C#
- Star
- 1
- Fork
- 0
- Merge trung bình
- 2 giờ 2 phút
- Pull request đã merge (30 ngày)
- 98
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nevridge/TaskFlow
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
tech-debt
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của nevridge/TaskFlow
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
juandresrodca/AdminForge#54 ·
-
[辞書] C/C++のプリプロセッサ指令名を英字のままにするĐang mở要トリアージ 辞書
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
yksr-melt/Meltype#1625 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Docs typoĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
MonoGame/docs.monogame.github.io#328 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
space-wizards/RobustToolbox#7197 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation high priority
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
lachydotmcg/capri-desktop#201 ·
Maintainer thường phản hồi trong vòng 1 ngày