aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/graphs.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/report: move TitleToCrashType to crash packageDmitry Vyukov2026-01-091-2/+1
| | | | | | | | | TitleToCrashType is a simple function with no heavy dependencies that is used by the dashboard app. Currnetly we have to import pkg/report into dashboard/app, and this package has lots of heavy deps (symbolizer, demangler, coverage report generation, etc). Move TitleToCrashType to pkg/report/crash (where it arguably belongs anyway).
* all: remove unused nolint directivesDmitry Vyukov2026-01-021-4/+0
|
* dashboard/app: use crash types instead, no regexpsTaras Madan2025-07-021-11/+13
|
* all: use min/max functionsDmitry Vyukov2025-01-171-13/+5
| | | | They are shorter, more readable, and don't require temp vars.
* dashboard/app: move coverage handlers to separate fileTaras Madan2025-01-101-187/+0
|
* dashboard/app: add targeting controls to the coverage pageTaras Madan2025-01-091-3/+23
| | | | | | | | | It allows to control known parameters: 1. Period (months or days). 2. Target subsystem. 3. Target manager. And adds the disabled "Only unique" checkbox.
* dashboard/app: show manager coverageTaras Madan2024-12-231-3/+4
|
* dashboard/app: fix total coverage visualizationTaras Madan2024-12-121-2/+4
|
* dashboard/app: make coverage period configurableTaras Madan2024-11-071-1/+12
| | | | | | This change makes amount of coverage columns configurable. The default width is 4 columns now (months, days, quarters). Previous default was 12 and was too wide.
* dashboard/app: read lines coverage from spannerTaras Madan2024-11-071-7/+9
| | | | | | We currently merge bigquery data for every line coverage request. Let's read cached lines coverage data from spanner instead. It allows to get only 1 file version from git and skip the data merge step.
* dashboard/app: make WebGitURIProvider configurableTaras Madan2024-10-251-4/+10
| | | | | We don't want to scale the github repo usage. Let's eventually switch to the internal service.
* dashboard/app: invalid input are the client errorsTaras Madan2024-10-221-1/+1
|
* dashboard/app: make lines coverage publicTaras Madan2024-10-101-4/+0
|
* dashboard/app: timeNow(c) not time.Now()Taras Madan2024-10-021-2/+2
|
* dashboard/app: propagate period type generating seriesTaras Madan2024-10-021-5/+2
|
* dashboard/app: bad inputs are client errorsTaras Madan2024-10-011-2/+3
|
* dashboard/app: add file coverage pageTaras Madan2024-09-161-0/+53
| | | | | | | | | | | | | | It directly uses the coverage signals from BigQuery. There is no need to wait for the coverage_batch cron jobs. Looks good for debugging. Limitations: 1. It is slow. I know how to speed up but want to stabilize the UI first. 2. It is expensive because of the direct BQ requests. Limited to admin only because of it. 3. It merges only the commits reachable on github because of the gitweb throttling. After the UI stabilization I'll save all the required artifacts to spanner and make this page publicly available. To merge all the commits, not the github reachable only, http git caching instance is needed.
* dashboard/app: use day long aggregations not week longTaras Madan2024-09-091-6/+16
| | | | | | | | | Current coverage is a week long data merge for every day. The goal is to show a monthly data by default and make daily data available for &period=day requests. This commit makes the first two steps: 1. Make the day a day long, not a week long aggregation. 2. Enable the month long merges available for &period=month.
* dashboard/app: add total value on Bugs/Month graphDmitry Vyukov2024-09-041-3/+6
|
* dashboard/app: total coverage is about months or quartersTaras Madan2024-08-301-7/+16
| | | | | Total coverage page defaults to quarters (?period=quarter). Monthly data is available with ?period=month.
* dashboard/app: enable subsystem= flag for coverage pagesTaras Madan2024-08-091-2/+3
| | | | It also fixes the context propagation bug.
* dashboard/app: add coverage->subsystems heatmapTaras Madan2024-07-221-15/+12
|
* dashboard/app: linkify subsystems coverageTaras Madan2024-07-221-1/+15
|
* dashboard/app: integrate heatmap at /graph/coverage_heatmapTaras Madan2024-07-171-0/+27
|
* dashboard/app: add coverage histogramTaras Madan2024-06-201-0/+40
|
* dashboard/app/graph: generalize histogramTaras Madan2024-06-201-3/+5
|
* dashboard/app: show embargoed bugs in bugs/month graphDmitry Vyukov2024-06-141-3/+32
| | | | | | Bugs that are delayed from reaching the final reporting only by embargo can also be considered found and stable (e.g. not one-off corruptions staged in moderation).
* dashboard/app: fix found bugs graphDmitry Vyukov2024-05-311-19/+40
| | | | | | | 1. Don't considered invalid bugs in non-last reporting. E.g. invalidated KCSAN reports that were never reported publicly. 2. Days start with 1, not with 0.
* dashboard/app: add bugs found per month graphDmitry Vyukov2024-05-311-16/+120
| | | | Useful to estimate overall syzbot performance.
* dashboard/app: improve bug lifetime graphDmitry Vyukov2024-05-271-15/+26
| | | | | | | | | 1. Use Fixed date for fixed bugs as X coord. This avoids the top part of the graph being skewed 45°. 2. Slightlyh randomize Y coord for dots near X axis. Currently they all are shown at +/-0.1 and blend together. 3. Randomize unfixed bugs a bit more (i%10 instead of i%7). There are lots of them and they blend together.
* all: fix up context import after go fixDmitry Vyukov2024-04-261-1/+1
|
* all: go fix everythingDmitry Vyukov2024-04-261-1/+1
|
* dashboard: capture cover and PCs after corpus triageAleksandr Nogikh2024-01-231-18/+28
| | | | | This statistics allows us to better estimate the amount of coverage that is lost after every syzbot instance is restarted.
* dashboard: speed up Job query for graphsAleksandr Nogikh2023-10-271-1/+2
| | | | Add a Namespace x Type index and use it to speed up graphs generation.
* dashboard: introduce a getNsConfig() helperAleksandr Nogikh2023-10-121-1/+1
| | | | | In many cases we want to just access the namespaces's config. Introduce a special helper function to keep code shorter and more conscise.
* dashboard: access config through contextAleksandr Nogikh2023-10-121-4/+4
| | | | | | | | | | | | | | | | | | | | | We used to have a single global `config` variable and access it throughout the whole dashboard application. However, this approach has been more and more complicated test writing -- sometimes we want the config to be only slightly different, so that it's not worth it adding new namespaces, sometimes we have to test how dashboard handles config changes over time. This has already led to a number of hacky contextWithXXX methods that mocked various parts of the global variable. The rest of the code had to sometimes still use `config` directly and sometimes invoke getXXX(c) methods. This is very inconsistent and prone to errors. With more and more situations where we need to patch the config appearing (see #4118), let's refactor the application to always access config via the getConfig(c) method. This allows us to uniformly patch the config and be sure that the non-patched copy is not accessible from anywhere else.
* dashboard: display historically open bugs in Kernel HealthAleksandr Nogikh2023-08-231-7/+22
| | | | | | | | | Currently we remove all invalidated and deduplicated bugs, which skews the graph over time - many of the currently open bugs will be invalidated, too, and disappear from the graph later. Let's be more historically correct and display the actual number of open bugs at every moment in history.
* dashboard/app/graphs.go: 4xx on bad metric value, not panic (#3602)Taras Madan2022-12-301-9/+22
| | | * dashboard/app/graphs.go: return 400 if bad input
* dashboard/app: open graph pagesDmitry Vyukov2022-05-051-16/+10
| | | | Show graph pages to users who have access to the bugs themselves.
* dasboard: add crash stats pageAleksandr Nogikh2022-02-251-0/+179
| | | | | Show top crashers for X last days. Show graph with daily shares of crashes that satisfy user-entered regexps.
* dashboard/app: update to go116 (#2959)Taras Madan2022-01-051-1/+1
| | | | | | 1. Updated the "include"s. 2. No logs read API in the AppEngine anymore. Replaced by the GCP logging API. 3. Use "GO111MODULE=off gcloud beta app deploy ./dashboard/app/app.yaml --no-promote" to test new deployment. 4. Updated the documentation.
* dashboard: add an exec speed graphAleksandr Nogikh2021-12-131-11/+18
| | | | | | | | Show also the "executions per second" graph on the dashboard. We have differing amouns of fuzzing time each day, so it is very hard to analyze the dynamics of "exec total" otherwise. Truncate hints to 2 digits after the floating points.
* dashboard/app: add page with manager stats graphsDmitry Vyukov2021-12-061-0/+432