[L] Change in dart/sdk[main]: Fine. Add 'produceErrors' statistics to 'analysis_statistics'.

0 views
Skip to first unread message

Konstantin Shcheglov (Gerrit)

unread,
Oct 7, 2025, 10:42:02 PMOct 7
to dart-analys...@google.com, rev...@dartlang.org

Konstantin Shcheglov added 1 comment

File pkg/analysis_server/lib/src/analytics/analytics_manager.dart
Line 592, Patchset 3 (Latest): Event.analysisStatistics(
Konstantin Shcheglov . unresolved

I will need to update `unified_analytics` package to use these new items. Maybe add generic `Map<String, Object?> eventData` instead, to be able to change it freely?

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
Gerrit-Change-Number: 453864
Gerrit-PatchSet: 3
Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
Gerrit-Comment-Date: Wed, 08 Oct 2025 02:41:59 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Johnni Winther (Gerrit)

unread,
Oct 8, 2025, 4:03:21 AMOct 8
to Konstantin Shcheglov, Brian Wilkerson, dart-analys...@google.com, rev...@dartlang.org
Attention needed from Brian Wilkerson and Konstantin Shcheglov

Johnni Winther voted and added 1 comment

Votes added by Johnni Winther

Code-Review+1

1 comment

File DEPS
Line 150, Patchset 4 (Latest): "tools_rev": "6866f9b19553625cc8af099d67aecbfb02067dcD",
Johnni Winther . unresolved

Is this intended?

Open in Gerrit

Related details

Attention is currently required from:
  • Brian Wilkerson
  • Konstantin Shcheglov
Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 4
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Attention: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Attention: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Wed, 08 Oct 2025 08:03:15 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Brian Wilkerson (Gerrit)

    unread,
    Oct 9, 2025, 4:35:31 PMOct 9
    to Konstantin Shcheglov, Johnni Winther, Brian Wilkerson, dart-analys...@google.com, rev...@dartlang.org
    Attention needed from Konstantin Shcheglov

    Brian Wilkerson added 1 comment

    File pkg/analysis_server/lib/src/analytics/analytics_manager.dart
    Line 592, Patchset 3: Event.analysisStatistics(
    Konstantin Shcheglov . unresolved

    I will need to update `unified_analytics` package to use these new items. Maybe add generic `Map<String, Object?> eventData` instead, to be able to change it freely?

    Brian Wilkerson

    Discussed in person.

    But I have a question about the values. The event currently records timings for multiple analyses, but it looks like the rest of the data is for a specific analysis (with the exception of `withFineDependencies`, which can't change from one analysis to another). Which timing are the other values associated with?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Konstantin Shcheglov
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 4
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Attention: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Thu, 09 Oct 2025 20:35:28 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Konstantin Shcheglov <sche...@google.com>
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Konstantin Shcheglov (Gerrit)

    unread,
    Oct 12, 2025, 11:50:04 PMOct 12
    to Johnni Winther, Brian Wilkerson, dart-analys...@google.com, rev...@dartlang.org

    Konstantin Shcheglov added 1 comment

    Patchset-level comments
    File-level comment, Patchset 5 (Latest):
    Konstantin Shcheglov . resolved

    PTAL, I added more information: about immediate / transitive file counts, and counts of changes to files. This should help us understand sizes of workspaces and how many / often files change.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 5
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Comment-Date: Mon, 13 Oct 2025 03:50:01 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Brian Wilkerson (Gerrit)

    unread,
    Oct 13, 2025, 12:07:09 PMOct 13
    to Konstantin Shcheglov, Johnni Winther, Brian Wilkerson, dart-analys...@google.com, rev...@dartlang.org
    Attention needed from Konstantin Shcheglov

    Brian Wilkerson added 3 comments

    File pkg/analysis_server/lib/src/analytics/session_data.dart
    Line 14, Patchset 5 (Latest): final Set<String> uniqueChangedFiles = {};
    Brian Wilkerson . unresolved

    I don't understand what information this is giving us. As I understand it, this is used to compute the number of unique files across an arbitrary number of independent analysis working periods.

    I could understand keeping the number of changed files in each working period (as a percentile graph) because it might be useful to know how many files were changed when each analysis is performed.

    But doesn't the number become meaningless if we're merging data from multiple periods?

    (Same comment applies to `uniqueRemovedFiles` and the potential / actual file and line counts.)

    Also, is the number of added files of interest?

    Line 51, Patchset 5 (Latest): int produceErrorsMs = 0;
    Brian Wilkerson . unresolved

    I don't understand this either. If we look at the data and can conclude that across 1 million users it took 5 weeks of compute time to produce errors, what does that tell us?

    On the other hand, if we know that the mean time to compute errors is 1ms per 10K lines of code, then I think that gives us something interesting. But we can't compute that unless we store the timing information, normalized by lines of code, as a percentile.

    Line 57, Patchset 5 (Latest): int produceErrorsPotentialFileCount = 0;
    Brian Wilkerson . unresolved

    I'm wondering why the 'produceErrors' prefix is useful here. Is there a different potential file count for different phases of analysis?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Konstantin Shcheglov
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 5
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Attention: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Mon, 13 Oct 2025 16:07:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Konstantin Shcheglov (Gerrit)

    unread,
    Oct 13, 2025, 12:54:39 PMOct 13
    to Johnni Winther, Brian Wilkerson, dart-analys...@google.com, rev...@dartlang.org
    Attention needed from Brian Wilkerson

    Konstantin Shcheglov added 3 comments

    File pkg/analysis_server/lib/src/analytics/session_data.dart
    Line 14, Patchset 5 (Latest): final Set<String> uniqueChangedFiles = {};
    Brian Wilkerson . unresolved

    I don't understand what information this is giving us. As I understand it, this is used to compute the number of unique files across an arbitrary number of independent analysis working periods.

    I could understand keeping the number of changed files in each working period (as a percentile graph) because it might be useful to know how many files were changed when each analysis is performed.

    But doesn't the number become meaningless if we're merging data from multiple periods?

    (Same comment applies to `uniqueRemovedFiles` and the potential / actual file and line counts.)

    Also, is the number of added files of interest?

    Konstantin Shcheglov

    The number of added files is somewhat interesting, but it might be a few thousand files spike at the start, and I thought that maybe we don't want to pay for it.

    The total number of changed files is interesting because it will tell us how diverse was area of work during this 30 minutes period: was it 1-2 files constantly edited, or many files maybe auto-generated.

    The percentiles are not interesting, at least for me: it is almost always 1, while editing.

    Removed files are for different purpose: I need to know how often it happens, and whether it is worth handling removing better, currently it is somewhat expensive.

    Line 51, Patchset 5 (Latest): int produceErrorsMs = 0;
    Brian Wilkerson . unresolved

    I don't understand this either. If we look at the data and can conclude that across 1 million users it took 5 weeks of compute time to produce errors, what does that tell us?

    On the other hand, if we know that the mean time to compute errors is 1ms per 10K lines of code, then I think that gives us something interesting. But we can't compute that unless we store the timing information, normalized by lines of code, as a percentile.

    Konstantin Shcheglov

    We can compute `produceErrorsMs / produceErrorsPotentialFileLineCount`, this will give us time per line.

    Measuring it later in weeks also sounds fun :-)

    Line 57, Patchset 5 (Latest): int produceErrorsPotentialFileCount = 0;
    Brian Wilkerson . unresolved

    I'm wondering why the 'produceErrors' prefix is useful here. Is there a different potential file count for different phases of analysis?

    Konstantin Shcheglov

    I think it is useful to keep it organized with prefix to the names, for clarity. I can imagine we could measure timings and counts for element requests in the future.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Brian Wilkerson
    Submit Requirements:
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 5
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Attention: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Comment-Date: Mon, 13 Oct 2025 16:54:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Brian Wilkerson <brianwi...@google.com>
    unsatisfied_requirement
    satisfied_requirement
    open
    diffy

    Brian Wilkerson (Gerrit)

    unread,
    Oct 21, 2025, 5:41:23 PM (13 days ago) Oct 21
    to Konstantin Shcheglov, Brian Wilkerson, Commit Queue, Johnni Winther, dart-analys...@google.com, rev...@dartlang.org
    Attention needed from Konstantin Shcheglov

    Brian Wilkerson voted and added 4 comments

    Votes added by Brian Wilkerson

    Code-Review+1

    4 comments

    File pkg/analysis_server/lib/src/analytics/analytics_manager.dart
    Line 592, Patchset 3: Event.analysisStatistics(
    Konstantin Shcheglov . resolved

    I will need to update `unified_analytics` package to use these new items. Maybe add generic `Map<String, Object?> eventData` instead, to be able to change it freely?

    Brian Wilkerson

    Discussed in person.

    But I have a question about the values. The event currently records timings for multiple analyses, but it looks like the rest of the data is for a specific analysis (with the exception of `withFineDependencies`, which can't change from one analysis to another). Which timing are the other values associated with?

    Brian Wilkerson

    Acknowledged

    File pkg/analysis_server/lib/src/analytics/session_data.dart
    Line 14, Patchset 5: final Set<String> uniqueChangedFiles = {};
    Brian Wilkerson . resolved

    I don't understand what information this is giving us. As I understand it, this is used to compute the number of unique files across an arbitrary number of independent analysis working periods.

    I could understand keeping the number of changed files in each working period (as a percentile graph) because it might be useful to know how many files were changed when each analysis is performed.

    But doesn't the number become meaningless if we're merging data from multiple periods?

    (Same comment applies to `uniqueRemovedFiles` and the potential / actual file and line counts.)

    Also, is the number of added files of interest?

    Konstantin Shcheglov

    The number of added files is somewhat interesting, but it might be a few thousand files spike at the start, and I thought that maybe we don't want to pay for it.

    The total number of changed files is interesting because it will tell us how diverse was area of work during this 30 minutes period: was it 1-2 files constantly edited, or many files maybe auto-generated.

    The percentiles are not interesting, at least for me: it is almost always 1, while editing.

    Removed files are for different purpose: I need to know how often it happens, and whether it is worth handling removing better, currently it is somewhat expensive.

    Brian Wilkerson

    Acknowledged

    Line 51, Patchset 5: int produceErrorsMs = 0;
    Brian Wilkerson . resolved

    I don't understand this either. If we look at the data and can conclude that across 1 million users it took 5 weeks of compute time to produce errors, what does that tell us?

    On the other hand, if we know that the mean time to compute errors is 1ms per 10K lines of code, then I think that gives us something interesting. But we can't compute that unless we store the timing information, normalized by lines of code, as a percentile.

    Konstantin Shcheglov

    We can compute `produceErrorsMs / produceErrorsPotentialFileLineCount`, this will give us time per line.

    Measuring it later in weeks also sounds fun :-)

    Brian Wilkerson

    Acknowledged

    Line 57, Patchset 5: int produceErrorsPotentialFileCount = 0;
    Brian Wilkerson . resolved

    I'm wondering why the 'produceErrors' prefix is useful here. Is there a different potential file count for different phases of analysis?

    Konstantin Shcheglov

    I think it is useful to keep it organized with prefix to the names, for clarity. I can imagine we could measure timings and counts for element requests in the future.

    Brian Wilkerson

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Konstantin Shcheglov
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 7
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Reviewer: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Attention: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Tue, 21 Oct 2025 21:41:18 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Brian Wilkerson <brianwi...@google.com>
    Comment-In-Reply-To: Konstantin Shcheglov <sche...@google.com>
    satisfied_requirement
    open
    diffy

    Konstantin Shcheglov (Gerrit)

    unread,
    Oct 29, 2025, 4:12:36 PM (5 days ago) Oct 29
    to Brian Wilkerson, Commit Queue, Johnni Winther, dart-analys...@google.com, rev...@dartlang.org

    Konstantin Shcheglov added 1 comment

    File DEPS
    Line 150, Patchset 4: "tools_rev": "6866f9b19553625cc8af099d67aecbfb02067dcD",
    Johnni Winther . resolved

    Is this intended?

    Konstantin Shcheglov

    Yes, I wanted to mark `DEPS` as changed, but the specific hash was not yet known, because my PR for `unified_analytics` was not merged yet. Updated to real now.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 9
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Reviewer: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Wed, 29 Oct 2025 20:12:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Johnni Winther <johnni...@google.com>
    satisfied_requirement
    open
    diffy

    Konstantin Shcheglov (Gerrit)

    unread,
    Oct 30, 2025, 10:30:18 AM (4 days ago) Oct 30
    to Brian Wilkerson, Commit Queue, Johnni Winther, dart-analys...@google.com, rev...@dartlang.org

    Konstantin Shcheglov voted Commit-Queue+2

    Commit-Queue+2
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 9
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    Gerrit-Reviewer: Johnni Winther <johnni...@google.com>
    Gerrit-Reviewer: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Comment-Date: Thu, 30 Oct 2025 14:30:15 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Commit Queue (Gerrit)

    unread,
    Oct 30, 2025, 10:30:41 AM (4 days ago) Oct 30
    to Konstantin Shcheglov, Brian Wilkerson, Johnni Winther, dart-analys...@google.com, rev...@dartlang.org

    Commit Queue submitted the change with unreviewed changes

    Unreviewed changes

    7 is the latest approved patch-set.
    The change was submitted with unreviewed changes in the following files:

    ```
    The name of the file: pkg/analysis_server/lib/src/analytics/analytics_manager.dart
    Insertions: 1, Deletions: 1.

    The diff is too large to show. Please review the diff.
    ```
    ```
    The name of the file: DEPS
    Insertions: 2, Deletions: 2.

    The diff is too large to show. Please review the diff.
    ```

    Change information

    Commit message:
    Fine. Add 'produceErrors' statistics to 'analysis_statistics'.
    Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Reviewed-by: Brian Wilkerson <brianwi...@google.com>
    Reviewed-by: Johnni Winther <johnni...@google.com>
    Commit-Queue: Konstantin Shcheglov <sche...@google.com>
    Files:
    • M DEPS
    • M pkg/analysis_server/lib/src/analysis_server.dart
    • M pkg/analysis_server/lib/src/analytics/analytics_manager.dart
    • M pkg/analysis_server/lib/src/analytics/session_data.dart
    • M pkg/analysis_server/test/src/analytics/analytics_manager_test.dart
    • M pkg/analyzer/lib/src/dart/analysis/driver.dart
    • M pkg/analyzer/lib/src/dart/analysis/status.dart
    Change size: L
    Delta: 7 files changed, 427 insertions(+), 102 deletions(-)
    Branch: refs/heads/main
    Submit Requirements:
    • requirement satisfiedCode-Review: +1 by Brian Wilkerson, +1 by Johnni Winther
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: sdk
    Gerrit-Branch: main
    Gerrit-Change-Id: I07c80b4fc543ca36941b99f0f5e4dbd8b2030a9d
    Gerrit-Change-Number: 453864
    Gerrit-PatchSet: 10
    Gerrit-Owner: Konstantin Shcheglov <sche...@google.com>
    Gerrit-Reviewer: Brian Wilkerson <brianwi...@google.com>
    open
    diffy
    satisfied_requirement
    Reply all
    Reply to author
    Forward
    0 new messages