1. 21 1月, 2016 1 次提交
  2. 20 1月, 2016 2 次提交
  3. 19 1月, 2016 1 次提交
  4. 14 1月, 2016 27 次提交
  5. 13 1月, 2016 1 次提交
    • Y
      Randomize metrics sample intervals · 057eb824
      Yorick Peterse 提交于
      Sampling data at a fixed interval means we can potentially miss data
      from events occurring between sampling intervals. For example, say we
      sample data every 15 seconds but Unicorn workers get killed after 10
      seconds. In this particular case it's possible to miss interesting data
      as the sampler will never get to actually submitting data.
      
      To work around this (at least for the most part) the sampling interval
      is randomized as following:
      
      1. Take the user specified sampling interval (15 seconds by default)
      2. Divide it by 2 (referred to as "half" below)
      3. Generate a range (using a step of 0.1) from -"half" to "half"
      4. Every time the sampler goes to sleep we'll grab the user provided
         interval and add a randomly chosen "adjustment" to it while making
         sure we don't pick the same value twice in a row.
      
      For a specified timeout of 15 this means the actual intervals can be
      anywhere between 7.5 and 22.5, but never can the same interval be used
      twice in a row.
      
      The rationale behind this change is that on dev.gitlab.org I'm sometimes
      seeing certain Gitlab::Git/Rugged objects being retained, but only for a
      few minutes every 24 hours. Knowing the code of Gitlab and how much
      memory it uses/leaks I suspect we're missing data due to workers getting
      terminated before the sampler can write its data to InfluxDB.
      057eb824
  6. 12 1月, 2016 2 次提交
    • Y
      Stop tracking call stacks for instrumented views · 355c341f
      Yorick Peterse 提交于
      Where a vew is called from doesn't matter as much. We already know what
      action they belong to and this is more than enough information. By
      removing the file/line number from the list of tags we should also be
      able to reduce the number of series stored in InfluxDB.
      355c341f
    • Y
      Track memory allocated during a transaction · 5679ee01
      Yorick Peterse 提交于
      This gives a very rough estimate of how much memory is allocated during
      a transaction. This only works reliably when using a single-threaded
      application server and a Ruby implementation with a GIL as otherwise
      memory allocated by other threads might skew the statistics. Sadly
      there's no way around this as Ruby doesn't provide a reliable way of
      gathering accurate object sizes upon allocation on a per-thread basis.
      5679ee01
  7. 11 1月, 2016 1 次提交
    • Y
      Tag all transaction metrics with an "action" tag · 35b501f3
      Yorick Peterse 提交于
      Without this it's impossible to find out what methods/views/queries are
      executed by a certain controller or Sidekiq worker. While this will
      increase the total number of series it should stay within reasonable
      limits due to the amount of "actions" being small enough.
      35b501f3
  8. 09 1月, 2016 1 次提交
  9. 08 1月, 2016 2 次提交
  10. 07 1月, 2016 2 次提交
    • D
      Update spec · 1e927d39
      Douwe Maan 提交于
      1e927d39
    • Y
      Store request methods/URIs as values · 7b10cb6f
      Yorick Peterse 提交于
      Since filtering by these values is very rare (they're mostly just
      displayed as-is) we don't need to waste any index space by saving them
      as tags. By storing them as values we also greatly reduce the number of
      series in InfluxDB.
      7b10cb6f