jaegertracing/jaeger - Open Source PR Review Scorecard

CNCF Jaeger, a Distributed Tracing Platform

C-Rank Grade: A (Welcoming) - 64/100

External PR Merge Rate: 38%

Response Time: -

First Timer Success: 21%

Frequently Asked Questions

Is jaegertracing/jaeger welcoming to first-time open-source contributors?

jaegertracing/jaeger has a recorded first-timer success rate of 20.8%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in jaegertracing/jaeger respond to incoming external pull requests in approximately 0.0 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 64.4 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 64.4 places jaegertracing/jaeger in the A tier.

What is the external contributor pull request merge rate for jaegertracing/jaeger?

The external contributor pull request merge rate for jaegertracing/jaeger is 37.8%, based on public PR activity from non-core contributors.

Are there Good First Issues available in jaegertracing/jaeger?

jaegertracing/jaeger currently has 9 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

jaegertracing
jaegertracing/jaegerA•Welcoming23.3k
GitHub
Back to Explorer
jaegertracing

jaegertracing/jaeger

23,250
Active (30d)A•Welcoming(64/100)Go

CNCF Jaeger, a Distributed Tracing Platform

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Strict Quality Architect

Warmth Score
6.6/10
Patience Score
7.2/10
Nitpick Rate
43%

Rigorous architecture standards (66% critical review signals). Ensure PRs strictly follow guidelines before requesting review in jaegertracing/jaeger.

Top PR Submission Do's

  • •Add unit tests with >80% coverage for modified code paths
  • •Run repository linter and code formatters locally before pushing
  • •Link relevant GitHub issue ID in PR description pre-flight checklist

Top PR Friction Pitfalls (Don'ts)

  • •Do not submit unlinked PRs without referencing an existing issue
  • •Do not mix refactoring and feature logic into a single commit
  • •Do not ping maintainers repeatedly within 24 hours of opening
Response Velocity
-
No reviewer activity recorded

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
37.8%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
20.8%
Accepts new contributor PRs

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
63 core
Highly collaborative maintainer core
Diagnostic Health HUD
37.8%
Merge Gauge
20.8%
1st-Timer
Community Vibe21/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for jaegertracing/jaeger
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/jaegertracing/jaeger)](https://getmerged.abhishekco.de/jaegertracing/jaeger?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Problem The ClickHouse spans table (internal/storage/v2/clickhouse/sql/create_spans_table.sql) stores nearly every OTLP span field, but the writer (dbmodel/to.go) and reader (dbmodel/from.go) have no column for these, so a span written to ClickHouse and read back loses them: OTLP field Level schema_url resource schema_url scope flags span dropped_attributes_count span, event, link, scope dropped_events_count span dropped_links_count span flags link The two schema_url fields matter beyond fidelity: RFC 0005 lists resource.schemaURL and scope.schemaURL as built-in filter fields, and ClickHouse is the only backend that declares all five levels, so these are the only two RFC 0005 built-in fields whose absence is a schema gap rather than unfinished lowering (#9701 maps five fields and can add the rest from existing columns). The dropped counts and flags carry no filter use, but a round trip through storage should not silently zero them, and the v1 storage integration s

📅 Opened Oct 7, 2026💬 2 comments
Quality: 90/100Contribute

Summary A Jaeger trace ID has two textual forms. The legacy model's model.TraceID.String() prints 16 hex characters when the high 64 bits are zero and 32 otherwise, while pcommon.TraceID.String() always prints 32. Every storage writer goes through pdata and writes 32 characters, so the short form never reaches storage anymore. It survives in the api v1 UI JSON that the query service still emits, in lenient ID parsers on the API input paths, in read-side padding that no writer needs, and in one byte-handling bug. This issue proposes to settle on the 32-character form everywhere and to remove the per-site workarounds, as a series of small independent PRs. Where the short form still appears API output. The api v1 UI JSON converter prints model.TraceID.String(), so every trace with a zero high half is shown to the UI and to the anonymizer with 16 characters [1]. API input. The api_v3 HTTP gateway and gRPC handler and the api v1 trace endpoints parse with model.TraceIDFromString, which acc

📅 Opened Oct 1, 2026💬 3 comments
Quality: 90/100Contribute

The separate-query e2e suite uses capabilities.E2EWithoutNativeFilters(), which skips the entire shared FindTracesWithFilter battery. This no longer describes the deployed storage path: Query API v3 → gRPC storage client/server → v2 memory store. Memory advertises native structured-filter support, and the storage gRPC API forwards both filters and filter capabilities. Relevant code: Separate-query suite Integration capability opt-outs Shared filter assertions Memory search capabilities gRPC storage reader Reproduction Replace capabilities.E2EWithoutNativeFilters() in TestJaegerQueryService with the zero-value capabilities, preserving any unrelated opt-outs, then run: go build -o ./cmd/jaeger/jaeger-e2e ./cmd/jaeger/internal/integration/jaeger-e2e STORAGE=query go test -race ./cmd/jaeger/internal/integration -run '^TestJaegerQueryService$' -count=1 -v A temporary Go test overlay making only that change produced 21 passing positive FindTracesWithFilter cases. Three refusal assertio

📅 Opened Sep 27, 2026💬 4 comments
Quality: 90/100Contribute

Requirement The internal query types carry search bounds as signed int while the values they stand for can never be negative, and the wire types they are translated to and from are not signed the same way. Every translation is therefore a conversion that a reviewer, gosec and CodeQL each have to reason about separately, and the query service has to refuse negative values that the type could have ruled out. Today: Field Internal type Wire type (jaeger.storage.v2) tracestore.TraceQueryParams.SearchDepth int int32 tracestore.Pagination.PageSize int uint32 The PageSize conversion in the remote-storage client (internal/storage/v2/grpc/tracereader.go) already carries a //nolint:gosec // G115, and CodeQL's go/incorrect-integer-conversion flags the same line once an HTTP parser feeds it a strconv-parsed value (seen on #9613). normalizeEnvelope refuses SearchDepth < 0 at runtime for a value that should not be representable. Proposal Make every depth and size field on the internal st

📅 Opened Sep 23, 2026💬 2 comments
Quality: 90/100Contribute

Requirement A client of the trace search API must be able to retrieve every matching trace, not only the first page. Today FindTraces and FindTraceSummaries return one page capped by search_depth, and everything past the cap is unreachable. The UI cannot offer "load more", and a program walking a time window cannot know whether it saw the whole result. Design RFC 0014 settles how this is done: an opaque page_token the caller echoes back for the next page, a next_page_token on the response, and a paginated capability that a backend declares so that one which cannot paginate serves a single capped page and says so, rather than returning a wrong one. Offset paging (limit/offset as in the v1 API) was weighed there and rejected (§3, §10), so a PR adding an offset parameter will be closed. Status Delivered: M1 protos, in jaegertracing/jaeger-idl#213. M2 storage contract, query-service admission and the PageChunk response envelope, in #9570, #9450 and #9585. Open, in order: The paginated

📅 Opened Sep 23, 2026💬 6 comments
Quality: 90/100Contribute
Looking for more Go beginner tasks?Explore Go GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for jaegertracing/jaeger

When evaluating whether to contribute to jaegertracing/jaeger, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of jaegertracing/jaeger acknowledge new external contributions in approximately -. Out of all submitted pull requests from non-core authors in the last 180-day window, 37.8% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to jaegertracing/jaeger

01

Is jaegertracing/jaeger welcoming to first-time open-source contributors?

jaegertracing/jaeger has a recorded first-timer success rate of 20.8%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~-. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 64.4 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 64.4 places jaegertracing/jaeger in the Welcoming tier.

04

What is the external contributor pull request merge rate for jaegertracing/jaeger?

The external pull request merge rate is 37.8%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in jaegertracing/jaeger?

Yes, jaegertracing/jaeger currently has 9 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for jaegertracing/jaeger are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.