Repository Analysis

jaegertracing/jaeger

CNCF Jaeger, a Distributed Tracing Platform

2.2 Likely human-written View on GitHub
2.2
Adjusted Score
2.2
Raw Score
100%
Time Factor
2026-05-29
Last Push
22,843
Stars
Go
Language
182,213
Lines of Code
1314
Files
246
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 63LOW 183

Pattern Findings

246 matches across 10 categories. Click a row to expand file-level details.

Decorative Section Separators50 hits · 164 pts
SeverityFileLineSnippet
MEDIUM…n/jaegermcp/internal/criticalpath/criticalpath_test.go17// ┌──────────────────────────────────────┐
MEDIUM…n/jaegermcp/internal/criticalpath/criticalpath_test.go19// └──┬──────────▲─────────┬──────────▲───┘
MEDIUM…n/jaegermcp/internal/criticalpath/criticalpath_test.go22// ▼──────────┤ ▼──────────┤
MEDIUM…n/jaegermcp/internal/criticalpath/criticalpath_test.go24// └──────────┘ └──────────┘
MEDIUMexamples/reverse-proxy/docker-compose.yml20 # ---------------------------------------------------------------------------
MEDIUMexamples/reverse-proxy/docker-compose.yml22 # ---------------------------------------------------------------------------
MEDIUMexamples/reverse-proxy/docker-compose.yml38 # ---------------------------------------------------------------------------
MEDIUMexamples/reverse-proxy/docker-compose.yml40 # ---------------------------------------------------------------------------
MEDIUMexamples/reverse-proxy/docker-compose.yml55 # ---------------------------------------------------------------------------
MEDIUMexamples/reverse-proxy/docker-compose.yml57 # ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh114# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh117# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh139# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh144# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh162# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh168# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh197# ---------------------------------------------------------------------------
MEDIUMscripts/e2e/ui-reverse-proxy.sh201# ---------------------------------------------------------------------------
MEDIUM.github/workflows/ci-orchestrator.yml22 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml25 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml124 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml126 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml165 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml169 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml188 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml192 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml211 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml214 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml265 # ============================================================================
MEDIUM.github/workflows/ci-orchestrator.yml271 # ============================================================================
MEDIUM.github/scripts/ci-summary-report-publish.test.js19// ── safeNum ──────────────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js34// ── sanitizeMetricName ───────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js79// ── sanitizeSnapshots ────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js218// ── computeMetrics ────────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js289// ── formatMetricsDetail ──────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js376// ── computeCoverage ───────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js447// ── buildCommentBody ──────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js527// ── postCheckRun ──────────────────────────────────────────────────────────────
MEDIUM.github/scripts/ci-summary-report-publish.test.js553// ── postOrUpdateComment ───────────────────────────────────────────────────────
MEDIUM.github/actions/verify-metrics-snapshot/action.yaml5# ─────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go72 // ── Row 1: Collector - Ingestion ───────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go77 // ── Row 2: Collector - Export ──────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go82 // ── Row 3: Storage ─────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go87 // ── Row 4: Query ───────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go92 // ── Row 5: System ──────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go147// ── Collector - Ingestion ──────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go177// ── Collector - Export ────────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go207// ── Storage ───────────────────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go228// ── Query ─────────────────────────────────────────────────────────────────────
MEDIUMmonitoring/jaeger-mixin/generate/main.go249// ── System ────────────────────────────────────────────────────────────────────
Over-Commented Block89 hits · 89 pts
SeverityFileLineSnippet
LOW.fossa.yml1# Copyright (c) 2026 The Jaeger Authors.
LOWdoc.go1// Copyright (c) 2019 The Jaeger Authors.
LOW.mockery.header.txt1// Copyright (c) The Jaeger Authors.
LOW…nternal/extension/jaegerquery/internal/query_parser.go81
LOW…nternal/extension/jaegerquery/internal/query_parser.go201// Why the API is designed using an end time (endTs) and lookback:
LOW…nternal/extension/jaegerquery/internal/query_parser.go221//
LOW…nternal/extension/jaegerquery/internal/query_parser.go321// - "unspecified": when no span kind specified in span.
LOW…eger/internal/extension/jaegerquery/internal/ui/doc.go1// Copyright (c) 2018 The Jaeger Authors.
LOW…/extension/jaegerquery/internal/jaegerai/dispatcher.go21// returns an immediate `{acknowledged: true}` ack. The browser observes
LOW…/extension/jaegerquery/internal/jaegerai/dispatcher.go41// in ContextualToolsStore for any callbacks that come back.
LOW…/extension/jaegerquery/internal/jaegerai/dispatcher.go61 Result any `json:"result"`
LOW…/extension/jaegerquery/internal/jaegerai/dispatcher.go121// response.
LOW…/extension/jaegerquery/internal/jaegerai/dispatcher.go141// frontend exposes.
LOW…sion/jaegerquery/internal/jaegerai/contextual_tools.go1// Copyright (c) 2026 The Jaeger Authors.
LOW…sion/jaegerquery/internal/jaegerai/contextual_tools.go21// corrupt the stored snapshot by mutating decoded maps.
LOW…extension/jaegerquery/internal/jaegerai/translation.go41 } else {
LOW…extension/jaegerquery/internal/jaegerai/translation.go221
LOW…sion/jaegerquery/internal/jaegerai/streaming_client.go21// streamingClientIDSeq is a process-wide monotonic counter appended to the
LOW…sion/jaegerquery/internal/jaegerai/streaming_client.go261 return acp.WaitForTerminalExitResponse{}, errNotSupported
LOW…l/extension/jaegerquery/internal/adjuster/clockskew.go21 warningSkewAdjustDisabled = "clock skew adjustment disabled; not applying calculated delta of %v"
LOW…ger/internal/extension/jaegerquery/querysvc/service.go81 adjuster.StandardAdjusters(options.MaxClockSkewAdjust)...,
LOW…ger/internal/extension/jaegerquery/querysvc/service.go161// FindTraceSummaries searches for traces matching the query and returns an iterator
LOW…ension/jaegermcp/internal/criticalpath/criticalpath.go21// The algorithm begins with the top-level span and iterates through the last finishing children (LFCs).
LOWcmd/internal/flags/doc.go1// Copyright (c) 2019 The Jaeger Authors.
LOWcmd/internal/printconfig/command_test.go1// Copyright (c) 2024 The Jaeger Authors.
LOWcmd/remote-storage/config.yaml21# Multi-tenancy configuration (optional)
LOWinternal/metrics/package.go1// Copyright (c) 2019 The Jaeger Authors.
LOWinternal/tools/empty.go1// Copyright (c) 2024 The Jaeger Authors.
LOWinternal/converter/doc.go1// Copyright (c) 2019 The Jaeger Authors.
LOWinternal/converter/thrift/doc.go1// Copyright (c) 2019 The Jaeger Authors.
LOWinternal/converter/thrift/jaeger/doc.go1// Copyright (c) 2019 The Jaeger Authors.
LOWinternal/proto-gen/storage/v2/trace_storage.pb.go1421// is compatible with the grpc package it is being compiled against.
LOWinternal/proto-gen/storage/v2/trace_storage.pb.go1441 GetServices(ctx context.Context, in *GetServicesRequest, opts ...grpc.CallOption) (*GetServicesResponse, error)
LOWinternal/proto-gen/storage/v2/trace_storage.pb.go1601
LOWinternal/proto-gen/storage/v2/trace_storage.pb.go1621 // FindTraces returns a stream that retrieves traces matching query parameters.
LOWinternal/proto-gen/zipkin/zipkin.pb.go21// This is a compile-time assertion to ensure that this generated file
LOWinternal/proto-gen/zipkin/zipkin.pb.go41 // remote_endpoint is the server.
LOWinternal/proto-gen/zipkin/zipkin.pb.go101// producers and consumers. However, they can also represent in-process
LOWinternal/proto-gen/zipkin/zipkin.pb.go121 // Randomly generated, unique identifier for a trace, set on all spans within
LOWinternal/proto-gen/zipkin/zipkin.pb.go141 // Epoch microseconds of the start of this span, possibly absent if
LOWinternal/proto-gen/zipkin/zipkin.pb.go161 // The host that recorded this span, primarily for query by service name.
LOWinternal/proto-gen/zipkin/zipkin.pb.go381
LOWinternal/proto-gen/api_v2/metrics/otelspankind.pb.go21// proto package needs to be updated.
LOWinternal/sampling/samplingstrategy/adaptive/options.go21 // and the system does not need to send an updated sampling probability (the "control signal" u(t)
LOWinternal/sampling/samplingstrategy/adaptive/options.go41 BucketsForCalculation int `mapstructure:"calculation_buckets"`
LOW…ationstrategy/percentage_increase_capped_calculator.go1// Copyright (c) 2018 The Jaeger Authors.
LOWinternal/sampling/http/handler_test.go81 // handler must emit metrics
LOWinternal/storage/v1/api/doc.go1// Copyright (c) 2019 The Jaeger Authors.
LOWinternal/storage/v1/api/metricstore/interface.go21 // GetErrorRates gets the error rate metrics for a given list of services grouped by service
LOWinternal/storage/v1/api/metricstore/interface.go41 // RatePer is the duration in which the per-second rate of change is calculated for a cumulative counter metric.
LOW…storage/v2/clickhouse/tracestore/attribute_metadata.go41// The query APIs (both HTTP and gRPC) only accept string values for tag filters, regardless
LOW…ternal/storage/v2/clickhouse/tracestore/driver_test.go21// Snapshots can be regenerated via:
LOW…v2/clickhouse/tracestore/dbmodel/attribute_metadata.go1// Copyright (c) 2026 The Jaeger Authors.
LOW…al/storage/v2/clickhouse/tracestore/dbmodel/spanrow.go1// Copyright (c) 2025 The Jaeger Authors.
LOWinternal/storage/v2/api/tracestore/summary.go21// TraceSummary contains lightweight summary information about a trace,
LOWinternal/storage/v2/api/tracestore/summary.go41 OrphanSpanCount int
LOWinternal/storage/v2/api/tracestore/reader.go21 // - A single ptrace.Traces chunk MUST NOT contain spans from multiple traces.
LOWinternal/storage/v2/api/tracestore/reader.go41 //
LOWinternal/storage/v2/elasticsearch/factory_test.go21 "Version": {
LOW…nal/storage/v2/elasticsearch/tracestore/core/reader.go441}
29 more matches not shown…
Hyper-Verbose Identifiers44 hits · 51 pts
SeverityFileLineSnippet
LOWscripts/ai-sidecar/gemini/sidecar_helpers.py37def _extract_contextual_tools(field_meta: Any) -> list[dict[str, Any]]:
LOWscripts/ai-sidecar/gemini/sidecar_helpers.py53def _build_gemini_contextual_tool(contextual_tools: list[dict[str, Any]]) -> types.Tool | None:
LOWscripts/ai-sidecar/gemini/sidecar_helpers.py99def _extract_function_declaration(tool: Any) -> types.FunctionDeclaration | None:
LOWscripts/ai-sidecar/gemini/test_sidecar_workflow.py243def test_complete_acp_workflow_with_fake_agent() -> None:
LOWscripts/lint/dco_check.py363def get_common_ancestor_commit_hash(
LOWscripts/lint/dco_check.py406def get_default_branch_from_remote(
LOWscripts/lint/import-order-cleanup.py8def cleanup_imports_and_return(imports):
LOWscripts/lint/updateLicense.py76 def build_constraint_end_index():
LOWscripts/utils/compare_metrics.py30def extract_metrics_with_labels(metrics, strip_prefix=None):
LOWscripts/utils/compare_metrics.py44def remove_overlapping_metrics(all_in_one_data, other_json_data):
LOWscripts/utils/metrics-md.py7def generate_spans_markdown_table(v1_spans, v2_spans):
LOWscripts/utils/metrics-md.py35def generate_combined_markdown_table(common_metrics, v1_metrics, v2_metrics):
LOWscripts/release/formatter.py8def extract_section_from_file(file_path, start_marker, end_marker):
LOWscripts/release/notes.py72def num_commits_since_prev_tag(token, base_url, branch, verbose):
LOWscripts/e2e/compare_metrics.py71def suppress_transient_labels(metric_name, labels):
LOWscripts/e2e/metrics_summary_test.py57 def test_extracts_name_before_braces(self):
LOWscripts/e2e/metrics_summary_test.py60 def test_returns_bare_name_when_no_braces(self):
LOWscripts/e2e/metrics_summary_test.py70 def test_empty_input_returns_empty(self):
LOWscripts/e2e/metrics_summary_test.py73 def test_pure_removals_are_truncated(self):
LOWscripts/e2e/metrics_summary_test.py79 def test_pure_additions_are_truncated(self):
LOWscripts/e2e/metrics_summary_test.py85 def test_interleaves_removed_and_added_lines(self):
LOWscripts/e2e/metrics_summary_test.py96 def test_interleaved_truncation_adds_ellipsis(self):
LOWscripts/e2e/metrics_summary_test.py105 def test_no_ellipsis_when_within_limit(self):
LOWscripts/e2e/metrics_summary_test.py114 def test_parses_added_removed_and_modified(self):
LOWscripts/e2e/metrics_summary_test.py131 def test_accumulates_exclusion_counts(self):
LOWscripts/e2e/metrics_summary_test.py139 def test_zero_exclusion_count_when_no_exclusion_lines(self):
LOWscripts/e2e/metrics_summary_test.py147 def test_raw_diff_sections_populated(self):
LOWscripts/e2e/metrics_summary_test.py183 def test_total_changes_header_present(self):
LOWscripts/e2e/metrics_summary_test.py192 def test_added_section_rendered(self):
LOWscripts/e2e/metrics_summary_test.py202 def test_removed_section_rendered(self):
LOWscripts/e2e/metrics_summary_test.py212 def test_modified_section_rendered(self):
LOWscripts/e2e/metrics_summary_test.py222 def test_diff_sample_block_present_for_changed_metric(self):
LOWscripts/e2e/metrics_summary_test.py231 def test_exclusion_count_shown(self):
LOWscripts/e2e/metrics_summary_test.py255 def test_metric_names_list_sorted(self):
LOWscripts/e2e/metrics_summary_test.py265 def test_metric_names_deduped(self):
LOWscripts/e2e/metrics_summary_test.py274 def test_added_only_produces_correct_output(self):
LOWscripts/e2e/compare_metrics_test.py45 def test_identical_snapshots_returns_empty(self):
LOWscripts/e2e/compare_metrics_test.py50 def test_empty_snapshots_returns_empty(self):
LOWscripts/e2e/compare_metrics_test.py63 def test_new_metric_in_current_snapshot_produces_diff(self):
LOWscripts/e2e/compare_metrics_test.py77 def test_exclusion_count_difference_does_not_produce_diff(self):
LOWscripts/e2e/compare_metrics_test.py93 def test_mixed_regression_and_new_metric_returns_diff(self):
LOWscripts/e2e/compare_metrics_test.py103 def test_regression_with_exclusions_includes_exclusion_summary(self):
LOWscripts/e2e/compare_metrics_test.py111 def test_no_exclusions_means_no_exclusion_summary(self):
LOWscripts/e2e/compare_metrics_test.py120 def test_excluded_labels_are_dropped(self):
Excessive Try-Catch Wrapping22 hits · 32 pts
SeverityFileLineSnippet
LOWexamples/otel-demo/generate_traces.py29 except Exception as e:
LOWexamples/oci/load-generator/generate_traces.py24 except Exception as e:
LOWscripts/ai-sidecar/gemini/sidecar.py244 except Exception as e:
LOWscripts/ai-sidecar/gemini/sidecar.py282 except Exception as e:
LOWscripts/ai-sidecar/gemini/sidecar.py401 except Exception as e:
LOWscripts/ai-sidecar/gemini/sidecar.py483 except Exception:
LOWscripts/ai-sidecar/gemini/ws_commands.py25 except Exception as e:
LOWscripts/ai-sidecar/gemini/ws_commands.py41 except Exception as e:
LOWscripts/ai-sidecar/gemini/mcp_bridge.py61 except Exception as exc:
LOWscripts/ai-sidecar/gemini/mcp_bridge.py105 except Exception as e:
LOWscripts/ai-sidecar/gemini/sidecar_helpers.py95 except Exception:
LOWscripts/lint/updateLicense.py175 except Exception as error:
MEDIUMscripts/utils/compare_metrics.py123 print(f"Error running metrics_md.py: {e}")
LOWscripts/release/formatter.py56 except Exception as e:
LOWscripts/release/formatter.py63 except Exception as e:
LOWscripts/release/formatter.py69 except Exception as e:
MEDIUMscripts/release/update-changelog.py58 print("Error: Could not find template end marker", file=sys.stderr)
MEDIUMscripts/release/rotate-managers.py43 print("Error: Could not find release managers table", file=sys.stderr)
MEDIUMscripts/release/rotate-managers.py56 print("Error: No data lines found in release managers table", file=sys.stderr)
MEDIUMscripts/release/rotate-managers.py80 print("Error: Could not find any valid versions in the table", file=sys.stderr)
MEDIUMscripts/release/rotate-managers.py90 print(f"Error: First data row is malformed (expected at least 2 columns): {first_row}", file=sys.stderr)
LOWscripts/e2e/metrics_summary.sh198 except Exception as e:
Self-Referential Comments7 hits · 22 pts
SeverityFileLineSnippet
MEDIUMinternal/config/tlscfg/testdata/gen-certs.sh92# Creating the client and server certificate.
MEDIUM…al/storage/v1/cassandra/schema/migration/V002toV003.sh6# Create a new operation_names_v2 table and copy all data from operation_names table
MEDIUMscripts/release/prepare.sh63# Create a new branch
MEDIUMscripts/release/prepare.sh155 # Create the PR
MEDIUMscripts/release/update-changelog.py61 # Create the new changelog section
MEDIUMscripts/release/rotate-managers.py94 # Create the new row for the bottom
MEDIUM.github/actions/verify-metrics-snapshot/action.yaml81 # Create an empty stub so the diff artifact is always uploaded on PRs.
Redundant / Tautological Comments14 hits · 21 pts
SeverityFileLineSnippet
LOWexamples/otel-demo/deploy-all.sh150 # Check if ingress files exist
LOWscripts/lint/dco_check.py68 # Set default to env var value if it exists
LOWscripts/lint/dco_check.py753 # Check if base revision is provided to the environment, e.g.
LOWscripts/lint/dco_check.py808 # Check if pull request
LOWscripts/lint/dco_check.py868 # Check if pull request
LOWscripts/lint/dco_check.py1037 # Check if the commit should be ignored because of the commit author email
LOWscripts/lint/dco_check.py1043 # Check if the commit should be ignored because of the commit author email pattern
LOWscripts/lint/dco_check.py1185 # Check if there are any infractions
LOWscripts/release/prepare.sh80 # Verify if the directory exists and is not empty
LOWscripts/release/notes.py168 # Check if the pull request has changelog label
LOWscripts/e2e/spm.sh192 # Check if this operation is in the expected list
LOWscripts/e2e/compare_metrics.py202 # Check if there are any differences
LOWscripts/e2e/metrics_summary.py38 # Check if this line contains a metric change
LOWscripts/e2e/metrics_summary.sh137# Output results
Deep Nesting12 hits · 12 pts
SeverityFileLineSnippet
LOWscripts/ai-sidecar/gemini/sidecar.py287
LOWscripts/lint/dco_check.py663
LOWscripts/lint/import-order-cleanup.py42
LOWscripts/lint/updateLicense.py30
LOWscripts/utils/compare_metrics.py44
LOWscripts/release/notes.py108
LOWscripts/release/rotate-managers.py32
LOWscripts/release/draft.py54
LOWscripts/e2e/filter_coverage.py16
LOWscripts/e2e/compare_metrics.py45
LOWscripts/e2e/compare_metrics.py71
LOWscripts/e2e/metrics_summary.py8
Verbosity Indicators5 hits · 11 pts
SeverityFileLineSnippet
LOW…aeger/internal/extension/jaegermcp/integration_test.go390 // Step 1: Discover services
LOW…aeger/internal/extension/jaegermcp/integration_test.go393 // Step 2: Search traces
LOW…aeger/internal/extension/jaegermcp/integration_test.go398 // Step 3: Get topology
LOW…aeger/internal/extension/jaegermcp/integration_test.go401 // Step 4: Get critical path
LOW…aeger/internal/extension/jaegermcp/integration_test.go404 // Step 5: Drill into span details
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippet
LOWscripts/lint/check-line-endings.py12# Usage:
LOWscripts/e2e/filter_coverage.py8# Usage:
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOWscripts/ai-sidecar/gemini/test_sidecar_workflow.py4