GithubHelp home page GithubHelp logo

nvmlabs / carbon-influxdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from velvia/carbon-influxdb

0.0 9.0 0.0 203 KB

A small Graphite Carbon to InfluxDB bridge

License: Apache License 2.0

Shell 3.11% Rust 37.48% Scala 59.41%

carbon-influxdb's Introduction

carbon-influxdb is a Graphite Carbon to InfluxDB bridge daemon.

Why do I need this?

Great question, especially as InfluxDB already has a graphite/carbon plugin. Perhaps...

  • You want a easy transition or just want to test out Influx, and don't want to have to change the configuration for all your services, then change it back if Influx doesn't work out. carbon-influxdb is a drop-in replacement for the carbon-cache daemon (you need an InfluxDB instance running, of course)
    • This allows you to test out Influx at scale!
  • You want to write to different InfluxDB databases, perhaps one database per environment. This is not supported by InfluxDB at the moment. Centralizing multiple Graphite servers to one InfluxDB cluster is a great idea!
  • You want a tiered architecture, instead of overwhelming a single Influx cluster with connections from all your services from multiple environments
  • You want to record the source hostname so you can filter or group a metric by host
  • You want to test out Hosted Influx easily and don't want to have to go through Influx support to enable or configure the Carbon bridge.
  • You want to tee the existing Carbon stream to your old Graphite server in addition to Influx, just as a backup

I started writing this due to some of the reasons above, but honestly just wanted to play with Rust.

Rust or Scala?

The Scala implementation is complete and production ready. It includes:

  • retries
  • basic auth, so your password isn't sent in plaintext

The Rust one was what I started out with, and it technically works, but is missing retries, and settable username/password.

Deployment

  1. cd into scala subdir, then run sbt assembly
  2. Using src/main/resources/reference.conf as a template, create a config file, filling in the details for database, hostname, password, etc.
  3. Copy the target/scala-2.10/carbon-influxdb-* executable plus the config file to your Graphite box.

At this point you can start carbon-influxdb and replace the graphite carbon-cache daemon. You can enable carbon-tee to tee traffic to both InfluxDB as well as the old carbon-cache daemon/Graphite for comparison purposes.

Note that default configuration already does log file rotation! You can supply your own logback.xml or change JVM parameters by setting JVM_OPTS before calling carbon-influxdb.

Notes on gradual Graphite to InfluxDB transition

carbon-influxdb's People

Contributors

velvia avatar

Watchers

 avatar James Cloos avatar Rui Marques avatar James Cotterell avatar Matt Davey avatar Randy Coburn avatar geekyEd avatar John G Ratcliffe avatar Matthew Churcher avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.