Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

metrics: make meter updates lock-free #21446

Merged
merged 11 commits into from
Aug 18, 2020

Commits on Aug 14, 2020

  1. Configuration menu
    Copy the full SHA
    84b1e02 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    46892fc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    061e927 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    32f1f3b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ade478a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b315fdd View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2020

  1. Configuration menu
    Copy the full SHA
    180b342 View commit details
    Browse the repository at this point in the history
  2. metrics: don't acquire lock on metric.Mark()

    Previously we had to acquire a lock whenever we called Mark() on any metric,
    since metrics like ingress and egress are marked on every arriving packet
    there was a lot of time spent on acquiring their locks. This commit changes
    the semantics of a standard meter such that we write into a temporary buffer
    and add the buffer to the metrics every 5 seconds, which reduces the computation
    needed by metrics significantly.
    
    This change also has some further implications. Rates are not as stable as they
    used to be, since we update the meters only once every 5 seconds not whenever
    the meter was marked. This means we have to update tests that need *instant*
    finality of the marked meter.
    MariusVanDerWijden committed Aug 17, 2020
    Configuration menu
    Copy the full SHA
    5f73ecc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    33b998e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    75b23da View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2020

  1. Configuration menu
    Copy the full SHA
    d725109 View commit details
    Browse the repository at this point in the history