Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
1,702
in the current tree
Bus Factor
10
10 authors are primary owner of 884 of 1,702 files
Single-Owner Files
572
33.6% of tracked files
Contributors
1,223
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
web/ui/mantine-ui/src/pages/query/UPlotChart.tsxJulius Volz16
tsdb/chunkenc/benchmark_test.goGyörgy Krajcsovits9
web/ui/mantine-ui/src/pages/query/QueryPage.tsxJulius Volz9
web/ui/mantine-ui/src/Badge.module.cssJulius Volz8
web/ui/mantine-ui/src/pages/query/RangeInput.tsxJulius Volz8
promql/promqltest/testdata/duration_expression.testJulien7
web/ui/mantine-ui/src/pages/targets/TargetLabels.tsxJulius Volz7
web/ui/mantine-ui/src/pages/query/ExplainViews/BinaryExpr/VectorVector.tsxJulius Volz7
web/ui/mantine-ui/src/main.tsxJulius Volz7
web/ui/mantine-ui/src/pages/query/TimeInput.tsxJulius Volz6
Table: the 100 most-changed of 572 single-owner files
FileSole ownerCommits
web/ui/mantine-ui/src/pages/query/UPlotChart.tsxJulius Volz16
tsdb/chunkenc/benchmark_test.goGyörgy Krajcsovits9
web/ui/mantine-ui/src/pages/query/QueryPage.tsxJulius Volz9
web/ui/mantine-ui/src/Badge.module.cssJulius Volz8
web/ui/mantine-ui/src/pages/query/RangeInput.tsxJulius Volz8
promql/promqltest/testdata/duration_expression.testJulien7
web/ui/mantine-ui/src/pages/targets/TargetLabels.tsxJulius Volz7
web/ui/mantine-ui/src/pages/query/ExplainViews/BinaryExpr/VectorVector.tsxJulius Volz7
web/ui/mantine-ui/src/main.tsxJulius Volz7
web/ui/mantine-ui/src/pages/query/TimeInput.tsxJulius Volz6
web/ui/mantine-ui/src/pages/query/TableTab.tsxJulius Volz6
web/ui/mantine-ui/src/state/store.tsJulius Volz6
web/ui/module/codemirror-promql/.gitignoreAugustin Husson6
web/ui/module/codemirror-promql/tsconfig.jsonAugustin Husson6
web/api/v1/translate_ast_test.goJulien5
tsdb/chunkenc/st_helper_test.goGyörgy Krajcsovits5
web/ui/mantine-ui/src/components/LabelBadges.tsxJulius Volz5
web/ui/mantine-ui/src/pages/query/SeriesName.tsxJulius Volz5
web/ui/mantine-ui/src/pages/query/TreeView.tsxJulius Volz5
web/ui/mantine-ui/src/pages/query/uplot.cssJulius Volz5
web/ui/mantine-ui/src/promql/durationExprNotes.tsxJulien4
Dockerfile.distrolessJulien4
util/fuzzing/corpus_gen/main.goJulien4
web/ui/mantine-ui/src/promql/binOp.test.tsJulius Volz4
web/ui/mantine-ui/src/api/responseTypes/query.tsJulius Volz4
web/ui/mantine-ui/src/components/ErrorBoundary.tsxJulius Volz4
web/ui/mantine-ui/src/components/StateMultiSelect.tsxJulius Volz4
web/ui/mantine-ui/src/pages/FlagsPage.tsxJulius Volz4
web/ui/mantine-ui/src/components/EndpointLink.tsxJulius Volz4
web/ui/mantine-ui/src/state/targetsPageSlice.tsJulius Volz4
web/ui/module/codemirror-promql/src/parser/matcher.test.tsAugustin Husson4
web/ui/module/codemirror-promql/src/types/matcher.tsAugustin Husson4
web/ui/module/codemirror-promql/build.shAugustin Husson4
config/testdata/otlp_label_underscore_sanitization_defaults.good.ymlArve Knudsen3
config/testdata/otlp_label_underscore_sanitization_disabled.good.ymlArve Knudsen3
config/testdata/otlp_label_underscore_sanitization_enabled.good.ymlArve Knudsen3
web/ui/mantine-ui/src/components/NotificationsProvider.tsxJulien3
scripts/package_assets.shJulien3
config/testdata/scrape_config_global_validation_mode.ymlOwen Williams3
config/testdata/scrape_config_local_global_validation_mode.ymlOwen Williams3
config/testdata/scrape_config_local_validation_mode.ymlOwen Williams3
web/ui/mantine-ui/src/api/responseTypes/selfMetrics.tsJulius Volz3
web/ui/mantine-ui/src/api/responseTypes/targets.tsJulius Volz3
web/ui/mantine-ui/src/pages/AgentPage.tsxJulius Volz3
web/ui/mantine-ui/src/pages/AlertmanagerDiscoveryPage.tsxJulius Volz3
web/ui/mantine-ui/src/pages/service-discovery/ServiceDiscoveryPage.tsxJulius Volz3
web/ui/mantine-ui/src/promql.cssJulius Volz3
web/ui/mantine-ui/src/App.module.cssJulius Volz3
web/ui/mantine-ui/src/codemirror/theme.tsJulius Volz3
web/ui/mantine-ui/src/pages/ConfigPage.tsxJulius Volz3
tsdb/docs/format/memory_snapshot.mdGanesh Vernekar3
web/ui/module/codemirror-promql/src/test/utils-test.tsAugustin Husson3
web/ui/module/codemirror-promql/src/lint/index.tsAugustin Husson3
web/ui/react-app/src/pages/graph/HistogramChart.tsxManik Rana3
tsdb/testdata/index_format_v1/chunks/000001Brian Brazil3
tsdb/testdata/index_format_v1/indexBrian Brazil3
tsdb/testdata/index_format_v1/meta.jsonBrian Brazil3
cmd/promtool/testdata/prometheus-config.lint.too_long_scrape_interval.ymlArve Knudsen2
util/strutil/subsequence.goJulien2
util/strutil/subsequence_test.goJulien2
util/fuzzing/corpus_protobuf.goJulien2
web/api/testhelpers/assertions.goJulien2
discovery/moby/testdata/swarmprom/services.jsonJulien2
discovery/moby/testdata/swarmprom/tasks.jsonJulien2
documentation/examples/prometheus-puppetdb.ymlJulien2
util/testrecord/record.goOwen Williams2
.github/workflows/zizmor.ymlArthur Silva Sens2
config/testdata/otlp_allow_utf8.bad.ymlArthur Silva Sens2
config/testdata/otlp_allow_utf8.good.ymlArthur Silva Sens2
config/testdata/otlp_allow_utf8.incompatible.ymlArthur Silva Sens2
web/ui/mantine-ui/src/pages/query/uPlotStackHelpers.tsJulius Volz2
web/ui/mantine-ui/eslint.config.mjsJulius Volz2
web/ui/mantine-ui/src/lib/formatSeries.tsJulius Volz2
web/ui/mantine-ui/src/components/InfoPageCard.tsxJulius Volz2
web/ui/mantine-ui/src/pages/query/TreeNode.module.cssJulius Volz2
web/ui/mantine-ui/src/pages/query/ResolutionInput.tsxJulius Volz2
web/ui/mantine-ui/src/components/CustomInfiniteScroll.tsxJulius Volz2
web/ui/mantine-ui/src/api/responseTypes/labelValues.tsJulius Volz2
web/ui/mantine-ui/src/api/responseTypes/scrapePools.tsJulius Volz2
web/ui/mantine-ui/src/api/responseTypes/tsdbStatus.tsJulius Volz2
web/ui/mantine-ui/src/lib/escapeString.tsJulius Volz2
web/ui/mantine-ui/src/state/hooks.tsJulius Volz2
web/ui/mantine-ui/src/components/ScrapePoolConfig.test.tsxMorax2
web/ui/mantine-ui/src/components/ScrapePoolConfig.tsxMorax2
tsdb/docs/format/tombstones.mdGanesh Vernekar2
tsdb/label_values_bench_test.goDivyansh Mishra2
web/ui/module/codemirror-promql/src/complete/index.test.tsAugustin Husson2
web/ui/module/lezer-promql/.gitignoreAugustin Husson2
web/ui/module/codemirror-promql/src/client/index.tsAugustin Husson2
web/ui/module/codemirror-promql/src/lint/hybrid.tsAugustin Husson2
web/ui/module/codemirror-promql/src/types/index.tsAugustin Husson2
web/ui/react-app/src/vendor/flot/jquery.flot.selection.jsLevi Harrison2
config/testdata/uyuni_no_server.bad.ymlWitek Bedyk2
documentation/prometheus-mixin/mixin.libsonnetTom Wilkie2
config/testdata/global_timeout.good.ymlFabian Reinartz2
promql/estimate_resource_test.goArve Knudsen1
promql/matrix_budget.goArve Knudsen1
promql/matrix_budget_test.goArve Knudsen1
promql/query_cost_duration_test.goArve Knudsen1
tsdb/query_cost.goArve Knudsen1

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Julien24394645
Julius Volz19989403
Matthieu MOREL772380
Björn Rabenstein6717398
Augustin Husson6222151
Michal Wasilewski53093
Bartlomiej Plotka5212256
Bryan Boreham494261
Paulin Todev420108
Arthur Silva Sens4036124
Ben Kochie340651
Arve Knudsen3214307
Ganesh Vernekar266203
Simon Pasquier261117
Levi Harrison2110219
Tom Wilkie17194
Owen Williams169113
Ayoub Mrini157161
György Krajcsovits143149
Lukasz Mierzwa143118
Fabian Reinartz134114
TJ Hoplock120164
Krasimir Georgiev12674
matt-gp12524
dandrucz121217

Showing top 25 of 1223 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
docs/configuration/configuration.md211Julien18.3%
cmd/prometheus/main.go144Julien13.9%
promql/engine.go120Bryan Boreham11.6%
config/config_test.go115Julien13.3%
go.mod112Julien16.2%
config/config.go111Fabian Reinartz15.1%
go.sum105Julien16.9%
web/api/v1/api.go104Fabian Reinartz8.4%
web/api/v1/api_test.go102Tom Wilkie6.2%
web/web.go99Julius Volz12.8%
scrape/scrape.go94Bryan Boreham12.2%
scrape/scrape_test.go88Julien11.6%
tsdb/db_test.go88Julien9.7%
cmd/promtool/main.go88Julien10.6%
rules/manager.go87Fabian Reinartz16.1%
promql/engine_test.go87Julien9.9%
tsdb/head.go83Ganesh Vernekar16.8%
tsdb/db.go80Yuri Nikolic9.0%
tsdb/head_test.go79Ganesh Vernekar15.7%
CHANGELOG.md78Julien9.3%