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

carbonserver: adds /admin/info endpoint for returning internal info #433

Merged
merged 1 commit into from Oct 6, 2021

Conversation

bom-d-van
Copy link
Member

currently only cache info are returned. it could be used by other programs like buckytool
to check if the operations are hurting go-carbon and causing disruptions of the
service.

this is mostly an early setup. more stat and info could be added and returned in the future.

currently only cache info are returned. it could be used by other programs like buckytool
to check if the operations are hurting go-carbon and causing disruptions of the
service.
@bom-d-van bom-d-van merged commit df2c174 into master Oct 6, 2021
@bom-d-van bom-d-van deleted the carbonserver/api-info branch October 7, 2021 12:00
bom-d-van added a commit to go-graphite/buckytools that referenced this pull request Oct 22, 2021
…trol

The original sync mechanism is a bit too simple, as it is controllyed by only workers.
It is hard to balance both efficiency and reliability. Setting the worker count too low,
rebalancing becomes too slow; setting it too high, buckyd might take away too much
resources.

To meet both criteria, this changes introduced a go-carbon health check and a automatic
sync rate adjustments based on metrics per second per node.

  bucky rebalance -f -offload -ignore404 \
                  -graphite-ip-to-hostname \
                  -graphite-metrics-prefix carbon.minutely.buckytool.rebalance.$cluster.dst.$to_location.src.$from_location \
                  -graphite-endpoint 127.0.0.1:3002 \
                  -go-carbon-health-check=$enable_go_carbon_health_check \
                  -go-carbon-health-check-interval 5 \
                  -go-carbon-port 8080 \
                  -go-carbon-protocol http \
                  -go-carbon-cache-threshold 0.5 \
                  -sync-speed-up-interval $sync_speed_up_interval \
                  -metrics-per-second $sync_metrics_per_second \
                  -h ${seed_node}:4242 \
                  -workers $workers \
                  -timeout $timeout

Using the above example for explanation:
  -go-carbon-health-check=true: asks buckytools to check go-carbon cache usage, which indicates if there is capacity issues.
  -sync-speed-up-interval: means increased sync rate (metrics per second) every specified seconds.
  -metrics-per-second: means the initial sync rate. Should be set to a lower value like 5 - 10 initially while using -sync-speed-up-interval.

Whats more, with go-carbon health check, buckytools also does automatic sync rate easing. Could be disabled by `-no-random-easing=false`.

Full flags could be found with `bucky rebalance -help`.

Besides go-carbon health check, this commits also introduce exporting some internal sync rate metrics to graphite
for monitoring. Could be enabled by -graphite-metrics-prefix.

By default -go-carbon-health-check is disabled, which means buckytools fallback to the original sync behaviour.

Relevant go-carbon PR: go-graphite/go-carbon#433
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant