Skip to content
This repository has been archived by the owner on Aug 23, 2023. It is now read-only.

mission: "no longer require graphite-web" #1227

Closed
Dieterbe opened this issue Mar 2, 2019 · 5 comments
Closed

mission: "no longer require graphite-web" #1227

Dieterbe opened this issue Mar 2, 2019 · 5 comments
Assignees
Labels
Milestone

Comments

@Dieterbe
Copy link
Contributor

Dieterbe commented Mar 2, 2019

We've made good strides towards a more complete render api, and even when an instance only uses functions that MT has, and doesn't require any graphite proxying, we still pay some subtle costs.

Here's all the downsides to our current approach:

  • resources needed (reserved) for graphite pods (which need to be reserved in case we need graphite api processing) (for most of our instances: graphite consumes 4~12% the memory the mt-read cluster does but note we currently have temporarily disabled built-in processing for most instances, we should re-enable that first)
  • infrastructure/deployment complexity
  • slower performance
  • Graphite-web tends to return 5xx responses sometimes and it's harder / more time consuming to troubleshoot and fix than in the case where we only have MT and not graphite-web.
  • means some features we want to push into MT, also need to be synchronized with a corresponding change in the graphite project, they are generally open to improvements, and having @DanCech as a co-maintainer helps, but it's still extra work
    (examples: jaeger tracing, indication of returned data is rollup data #1091, support for multiple rollups, meta tags)
  • we have tech debt in the graphite-mt image and its deployment (e.g. we have no server-status monitoring, we may be affected by https://bz.apache.org/bugzilla/show_bug.cgi?id=53555 but not sure, graphite doesn't emit jaeger spans, ...)

I would like to transition from:

  • "MT+graphite proxy enabled to cover for the lag between functions coming into graphite vs when they're introduced into MT"
    to
  • "become 100% in-sync with where graphite is now, or was not too long ago, so we can get rid of graphite-web, and just work on keeping the lag of functions being introduced between graphite MT reasonable"

I suppose a downside of this approach is that it removes some of the incentive to contribute useful fixes and features to graphite upstream, but we don't really have much time for that currently (until we hire more) anyway.

@Dieterbe
Copy link
Contributor Author

Dieterbe commented May 6, 2019

hitlist of next set of functions to implement:

aggregate
groupByNode
groupByNodes
aliasByMetric
aliasByTags
aliasQuery # this is probably a hard one. can leave for later
group
maximumAbove
removeEmptySeries
sumSeriesWithWildcards
minimumBelow
maximumBelow
smartSummarize
linearRegression
averageSeriesWithWildcards
averageAbove
percentileOfSeries
nPercentile
applyByNode
cumulative
integral
interpolate
absolute
currentAbove
fallbackSeries
mapSeries
reduceSeries

PS: timeShift(), offset() and moving* can't be done yet until #926 is fixed, i plan to fix that issue in the next couple of weeks

@Dieterbe Dieterbe changed the title mission: "get rid of graphite-web" mission: "no longer require graphite-web" May 6, 2019
@shalstea
Copy link

As part of this effort maybe you can fix #1135

@robert-milan robert-milan mentioned this issue May 21, 2019
27 tasks
@stale
Copy link

stale bot commented Apr 4, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Apr 4, 2020
@stale stale bot closed this as completed Apr 11, 2020
@robert-milan robert-milan added this to the sprint-14 milestone Jun 24, 2020
@robert-milan robert-milan self-assigned this Jun 24, 2020
@robert-milan
Copy link
Contributor

re-opening issue

@robert-milan robert-milan reopened this Jun 24, 2020
@stale stale bot removed the stale label Jun 24, 2020
@Dieterbe Dieterbe added the Epic label Aug 3, 2020
@Dieterbe Dieterbe modified the milestones: sprint-14, sprint-15 Aug 3, 2020
@Dieterbe Dieterbe modified the milestones: sprint-15, sprint-16 Aug 24, 2020
@Dieterbe Dieterbe modified the milestones: sprint-16, sprint-17 Sep 21, 2020
@Dieterbe Dieterbe modified the milestones: sprint-17, sprint-18 Oct 28, 2020
@robert-milan
Copy link
Contributor

Will reevaluate in a few months.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants