Skip to content
Snippets Groups Projects
  1. Oct 22, 2018
    • yunshi's avatar
      api: Display voluptuous error details · 5f171bcd
      yunshi authored
      The error detail looks like:
      
        {
          'cause': 'Invalid input',
          'reason': 'boulet',
          'detail': ['field'],
        }
      
      Note:
      
      Voluptuous prints `r` before data path for
      str(voluptuous.Invalid) in Python2. To simplify
      tests in Python2 and Python3, the error reasons
      are checked by regex.
      5f171bcd
  2. Jul 30, 2018
  3. Jun 21, 2018
  4. Jun 04, 2018
    • Mehdi Abaakouk's avatar
      file: allow to create a subdir to create less root directory · 806f3262
      Mehdi Abaakouk authored
      Some filesystem have a limit in term of number of directory a directory
      can have. Also in performance point of view, some filesystem are slower
      when too much directories are created in one directory.
      
      To improve the situation is such case, this change adds an option
      to create subdirectories for storing metrics.
      
      for example file_subdir_len=16 will create:
      
      de3a72c4505543b4be/d1f9bb1395b52a/de3a72c4-5055-43b4-bed1-f9bb1395c52a
      806f3262
  5. Apr 23, 2018
    • Julien Danjou's avatar
      Add gnocchi-injector · 7fbdcbff
      Julien Danjou authored
      This allows to inject measures and maybe process them in a single tool. This is
      useful to generate load to test metricd and also profile the processing code.
      7fbdcbff
  6. Apr 10, 2018
  7. Feb 28, 2018
  8. Jan 30, 2018
  9. Jan 15, 2018
  10. Jan 04, 2018
    • Julien Danjou's avatar
      storage: truncate aggregated time series before storing · 4211952e
      Julien Danjou authored
      The current truncation code in AggregatedTimeSerie truncate on object
      initialize only. That means that split up to POINTS_PER_SPLIT points are
      stored, and that data is read and _truncated_ at this point.
      
      When new points are added (existing merge), it's possible that the number of
      points grows more than the number of points defined by the archive policy,
      storing too many points. That's hidden because when re-read, the
      AggregatedTimeSerie is truncated again.
      
      However, that makes the storage driver store too much data.
      
      This patches remove the max_size attribute from carbonara.AggregatedTimeSerie
      and simply expose a truncate() method that can be used to truncate each split
      based on the oldest point that is defined by the archive policy.
      4211952e
  11. Dec 21, 2017
  12. Dec 06, 2017
  13. Dec 05, 2017
  14. Dec 01, 2017
  15. Nov 21, 2017
  16. Nov 16, 2017
    • Mehdi Abaakouk's avatar
      aggregates: rework API output · e1000517
      Mehdi Abaakouk authored
      This design have some issue when two timeseries have the same names,
      only the last one is dumped. Or if the same metric is asked
      twice for whatever reason, measures have all timestamps duplicated.
      
      This change the result to a new format:
      
      For resources:
      {
        "measures": { resource_id: {metric_name: {aggregation: MEASURES}}},
        "references": [RESOURCES_DETAILS]
      }
      
      For metrics
      {
        "measures": {metric_id: {aggregation: MEASURES}},
        "references": [METRICS_DETAILS]
      }
      
      When the result is aggregtated we got:
      
      For resources:
      {
        "measures": { "aggregated": MEASURES},
        "references": [RESOURCES_DETAILS]
      }
      For metrics
      {
        "measures": { "aggregated": MEASURES},
        "references": [METRICS_DETAILS]
      }
      
      Closes-bug: #477
      e1000517
  17. Nov 06, 2017
  18. Oct 26, 2017
  19. Oct 24, 2017
    • Mehdi Abaakouk's avatar
      aggregates: resources search api · 6da105a7
      Mehdi Abaakouk authored
      This change allows to search for metrics with the same format as
      resource search and cross metric aggregation.
      
      And then it applies operations.
      
      It also re-add transformation tests related to cross metric aggregation
      endpoint but with new aggregates API.
      
      Related #419
      6da105a7
  20. Oct 20, 2017
    • Mehdi Abaakouk's avatar
      aggregates: implements more operations · 28d917c5
      Mehdi Abaakouk authored
      This changes implements the following operations for the aggregates API:
      - rolling <agg> <window>
      - resample <agg> <granularity>
      - math (*/+-%...)
      - abosolute/negative
      
      It also re-add transformation tests related to metrics endpoint
      but with new aggregates API.
      
      Related #419
      28d917c5
  21. Oct 18, 2017
  22. Oct 13, 2017
  23. Oct 12, 2017
  24. Sep 25, 2017
  25. Sep 22, 2017
    • gord chung's avatar
      supporting rolling aggregates · c4765d87
      gord chung authored
      this implements rolling aggregates which works similar to how
      pandas rolling works but more trivial. this differs from deprecated
      moving_average by correctly matching points to trailing timestamp
      rather than leading timestamp.
      
      it does not return the NaN values that result in shift in values.
      
      Closes: #186
      c4765d87
    • Mehdi Abaakouk's avatar
      fix pagination for resource history · ceb3e1bd
      Mehdi Abaakouk authored
      ceb3e1bd
    • Mehdi Abaakouk's avatar
      rest: implements pagination links · a9e58152
      Mehdi Abaakouk authored
      This change implements pagination links according the RFC5988.
      
      It only implements the 'next' link, since other need extra mysql query
      that we don't really want for now.
      
      Related #3
      a9e58152
  26. Aug 29, 2017
    • Mehdi Abaakouk's avatar
      Allow to transform measures · f0718aa5
      Mehdi Abaakouk authored
      This change adds an API to transform retrieved measurements.
      
      First method implemented are absolute and negative. This API aims
      to do some transformations that are not aggregation related.
      
      This also fixes the data type passed to aggregated(), to ensure it's a
      list and not an iterator.
      f0718aa5
  27. Jul 28, 2017
    • gord chung's avatar
      enforce boundaries on overlap · b65a1add
      gord chung authored
      if no boundary is set, the returned series does not necessarily
      honour the overlap value. change behaviour so we require a boundary
      if overlap is not 100%.
      
      Fixes: #17
      b65a1add
  28. Jul 21, 2017
  29. Jul 05, 2017
    • Julien Danjou's avatar
      Make gnocchi-api wrap uWSGI · c8717e8b
      Julien Danjou authored
      As the wise Mehdi once said: "nobody reads documentation".
      Everybody wants to run a daemon for the API server and everybody wants to run
      `gnocchi-api'. Then let's provide it as a wrapper around uwsgi, so it's a fast
      and performant HTTP by default.
      c8717e8b
  30. Jul 02, 2017
    • gord chung's avatar
      deprecate moving average (& minimally fix what exists) · f76b8a5c
      gord chung authored
      deprecating moving average because the existing rolling average
      for some reason generates a left-aligned rolling average which
      is opposite of standard rolling average which should lag. also,
      none of the existing parameters are configurable or are valid
      (min_size is definitely wrong).
      
      will improve this by leveraging pandas rolling
      
      TEMP FIX:
      
      don't unnecessarily pull in all granularities, search through
      all series for min granularity, and rebuild.
      
      just detect if valid, pull in granularity that's valid, and continue.
      f76b8a5c
  31. Jul 01, 2017
  32. Jun 29, 2017
    • gord chung's avatar
      batch GET metric interface · 41117a83
      gord chung authored
      support ability to get multiple metrics based on id. returns result
      with format matching:
      
      {'metric_id1': [[timestamp, granularity, value]...],
       'metric_id2': [[timestamp, granularity, value]...]}
      
      Fixes: #87
      41117a83
  33. Jun 12, 2017
  34. Jun 08, 2017
    • Mehdi Abaakouk's avatar
      auth: Add REMOTE_USER env support · b06ed71b
      Mehdi Abaakouk authored
      Authentication can be delegated to a frontend webserver/middleware, that
      will ensure that REMOTE_USER env is set.
      
      Change-Id: I8ebda5fccb0804d3349b84cefbb8353226436c19
      b06ed71b
  35. May 30, 2017
  36. May 19, 2017
  37. May 18, 2017
    • Julien Danjou's avatar
      Stop using oslo_utils.fnmatch · 26f87a45
      Julien Danjou authored
      This was a work around for old buggy Python 2.7 versions. Everybody will have
      to upgrade!
      
      Change-Id: Id105e2e8c1fab7af49c11b323db64886e57eade6
      26f87a45
Loading