Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Graphite 1.0-ish

1f1a3879e40c9418252a5aec3aed31b2?s=47 Jason Dixon
November 30, 2016

Graphite 1.0-ish

1f1a3879e40c9418252a5aec3aed31b2?s=128

Jason Dixon

November 30, 2016
Tweet

Transcript

  1. The Launch of Graphite 1.0-ish aka the cage match between

    0.9.x and 0.10.0
  2. what is graphite?

  3. None
  4. None
  5. None
  6. None
  7. how did we get here?

  8. None
  9. http://www.aosabook.org/en/ graphite.html

  10. None
  11. the changing tsdb landscape

  12. the not-so-secret secret about tsdb’s

  13. the future now of graphite

  14. not 0.9.x

  15. but I love 0.9.x

  16. ok, so what now?

  17. live demo

  18. highlights

  19. pluggable storage finders • standard (whisper, rrd) • ceres •

    Cyanite (external, Cassandra-based) • KairosDB (external) • OpenTSDB (external) • < your custom finder here >
  20. pluggable carbon protocols

  21. zomg so much test coverage special thanks to @brutasse @cbowman0

  22. improved brace expansion and globstar support

  23. None
  24. improved unicode, timezone, and special char support throughout

  25. updated requirements • Python 2.7 • Django 1.9 (graphite-web) •

    Twisted 13.2+ (carbon)
  26. new (optional) components • Carbonate (rebalancing suite) • Ceres (experimental

    tsdb)
  27. zomg new functions

  28. None
  29. aggregateLine

  30. avg min max

  31. applyByNode

  32. i tried i really did but you should just go

    read the applyByNode function docs because omg i can’t even
  33. averageOutsidePercentile

  34. None
  35. delay

  36. None
  37. fallbackSeries

  38. fallbackSeries(foo.requests, constantLine(0))

  39. grep

  40. None
  41. groupByNodes

  42. groupByNodes(app.server*.*.reqs.*, "sumSeries",1,4)

  43. integralByInterval

  44. None
  45. interpolate

  46. sorta behaves like lineMode=connected except it also supports a limit

    arg for how many null values to interpolate over
  47. invert

  48. None
  49. None
  50. isNonNull

  51. None
  52. linearRegression

  53. None
  54. linearRegressionAnalysis

  55. None
  56. mapSeries reduceSeries

  57. map and reduce, nbd (again, rtd)

  58. multiplySeriesWithWildcards

  59. just like the other *SeriesWithWildcards functions but more fun, because

    multiplication
  60. offsetToZero

  61. basically treats the lowest value in a series as the

    floor and subtracts that from all values in the series
  62. None
  63. zomg are we done yet

  64. pow

  65. power(foo.bar, 10) factor

  66. removeBetweenPercentile

  67. only render series that have a value outside the Nth

    percentile of all values within an interval
  68. None
  69. removeEmptySeries

  70. None
  71. sortByTotal

  72. sort series by the sum of their total values

  73. squareRoot

  74. None
  75. timeSlice

  76. used to limit values to a specific set of intervals

    within the larger time range, e.g. when you’re interested in a contiguous span across disparate metrics
  77. None
  78. verticalLine

  79. verticalLine("-1h")

  80. weightedAverage

  81. None
  82. zomg new display formats

  83. pdf

  84. None
  85. width=2000&height=800 format=pdf

  86. None
  87. dygraph

  88. rickshaw

  89. no surprises, work as intended, useful for quick prototyping with

    their respective frameworks
  90. zomg new graph options

  91. hideNullFromLegend

  92. hideXAxis

  93. noNullPoints (format=json)

  94. pieLabels valueLabels valueLabelsColor valueLabelsMin

  95. None
  96. anything else because we still have some time left on

    the clock I think?
  97. live demo

  98. new logo

  99. None
  100. zomg new settings

  101. INTRACLUSTER_HTTPS

  102. MAX_TAG_LENGTH

  103. DATE_FORMAT

  104. WHISPER_FADVISE_RANDOM

  105. MAX_RECEIVER_CONNECTIONS

  106. ok I think that’s all but if we have time

    left I guess I can answer questions or rant about Trump or whatever
  107. thank you