4337 links
  • Arnaud's links
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 2 / 4
Newer►
71 results tagged graphite x
  • The Architecture of Open Source Applications: Graphite
    January 1, 2015 at 2:55:59 PM GMT+1 - permalink - archive.org - http://aosabook.org/en/graphite.html
    architecture graphite
  • Cassandra Summit 2014: Cyanite — Better Graphite Storage with Apache …
    December 31, 2014 at 10:58:16 AM GMT+1 - permalink - archive.org - http://fr.slideshare.net/planetcassandra/cassandra-summit-2014-cyanite-better-graphite-storage-with-apache-cassandra
    cassandra graphite
  • pyr/cyanite
    December 29, 2014 at 11:03:45 AM GMT+1 - permalink - archive.org - https://github.com/pyr/cyanite
    cassandra graphite
  • acquia/graphite-cassandra-plugin

    via skunnyk

    November 20, 2014 at 11:04:33 AM GMT+1 - permalink - archive.org - https://github.com/acquia/graphite-cassandra-plugin
    backend cassandra graphite
  • kairosdb/kairosdb

    Il existe plusieurs alternatives à carbon, la plus connu étant surement influxdb. Celle ci est basée sur cassandra!

    +https://github.com/kairosdb/kairos-carbon

    via arnaudb

    November 14, 2014 at 1:34:07 PM GMT+1 - permalink - archive.org - https://github.com/kairosdb/kairosdb
    graphite
  • Question #170794 : Questions : Graphite

    Encore une discussion intéressante sur les perf de graphite. Ce qu'il faut retenir c'est que le botteneck peut se situer au niveau du CPU ou au niveau du disque (la RAM en général ce n'est pas un probleme, meme si bien sur, il faut la surveiller)

    Pour connaitre l'utilisation du CPU de carbon-cache, une metric est envoyé par le daemon dans carbon.agents.graphite-x.cpuUsage

    Pour connaitre l'utilisation du disk, on se sert de iostat -dmx 1 2 (merci arnaud)

    Si le disque est trop haut (entre 50 et 75), il faut le soulager en baissant dans la conf de carbon le max update par seconde.

    Ce qui aura pour effet d'augmenter la taille du cache et donc de faire plus travailler le CPU..

    Au contraire si le CPU est chargé mais que le disque ne fait rien, il faut augmenter le max update par seconde.

    En trouvant le bon équilibre on peut exploiter au maximum le hardware disponible

    October 24, 2014 at 4:57:04 PM GMT+2 - permalink - archive.org - https://answers.launchpad.net/graphite/+question/170794
    carbon graphite performance
  • Question #178969 : Questions : Graphite
    October 22, 2014 at 10:37:17 PM GMT+2 - permalink - archive.org - https://answers.launchpad.net/graphite/+question/178969
    graphite scale
  • obfuscurity. - Watching the Carbon Feed
    October 20, 2014 at 6:00:29 PM GMT+2 - permalink - archive.org - http://obfuscurity.com/2012/06/Watching-the-Carbon-Feed
    graphite
  • yeah.png (Image PNG, 3840 × 1080 pixels)

    Un screenshot d'un dashboard qu'il est bien

    October 7, 2014 at 2:24:56 PM GMT+2 - permalink - archive.org - https://files.gitter.im/grafana/grafana/trFy/yeah.png
    grafana graphite
  • notes from the fields: Scripting Grafana dashboards

    à lire pour le monitoring applicatif

    October 3, 2014 at 6:17:24 PM GMT+2 - permalink - archive.org - http://anatolijd.blogspot.fr/2014/07/scripting-grafana-dashboards.html
    grafana graphite
  • Pluggable metrics reporting in Cassandra 2.0.2 : DataStax
    September 29, 2014 at 3:49:36 PM GMT+2 - permalink - archive.org - http://www.datastax.com/dev/blog/pluggable-metrics-reporting-in-cassandra-2-0-2
    cassandra graphite
  • cyanite

    front end graphite avec un backend cassandra (carrément)

    via arnaudb

    September 23, 2014 at 4:25:23 PM GMT+2 - permalink - archive.org - http://cyanite.io/
    graphite
  • thumbnail
    Init script for Graphite carbon-cache

    ! /bin/sh

    BEGIN INIT INFO

    Provides: carbon-cache

    Required-Start: $remote_fs $syslog

    Required-Stop: $remote_fs $syslog

    Default-Start: 2 3 4 5

    Default-Stop: 0 1 6

    Short-Description: carbon-cache init script

    Description: An init script for Graphite's carbon-cache daemon.

    END INIT INFO

    Author: Jeremy Chalmer

    #

    This init script was written for Ubuntu 11.10 using start-stop-daemon.

    Note: Make sure you set the USER field in /opt/graphite/conf/carbon.conf to be the same

    user that owns the /opt/graphite/storage/ folder. Carbon-cache will be invoked as that

    username on start.

    #

    Enable with update-rc.d carbon-cache defaults

    Source init-functions:

    #source /lib/lsb/init-functions
    . /lib/lsb/init-functions

    PATH should only include /usr/* if it runs after the mountnfs.sh script

    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    Path to Graphite

    GRAPHITE_HOME=/opt/graphite

    Name of executable daemon

    NAME=carbon-cache
    DESC=carbon-cache

    #Carbon has its own logging facility, by default in /opt/graphite/storage/log/carbon-cache-*

    Path to Executable

    DAEMON=$GRAPHITE_HOME/bin/carbon-cache.py

    NOTE: This is a hard-coded PID file, based on carbon-cache.py. If you have more the one carbon-cache

    instance running on this machine, you'll need to figure out a better way to calculate the PID file.

    PIDFILE=/opt/graphite/storage/carbon-cache-a.pid

    SCRIPTNAME=/etc/init.d/$NAME

    Exit if the package is not installed

    if [ ! -x "$DAEMON" ]; then {
    echo "Couldn't find $DAEMON or not executable"
    exit 99
    }
    fi

    Load the VERBOSE setting and other rcS variables

    [ -f /etc/default/rcS ] && . /etc/default/rcS

    #

    Function that starts the daemon/service

    #
    do_start()
    {

    Return

    #   0 if daemon has been started
    #   1 if daemon was already running
    #   2 if daemon could not be started
    
        # Test to see if the daemon is already running - return 1 if it is. 
    start-stop-daemon --start --pidfile $PIDFILE \
        --exec $DAEMON --test -- start > /dev/null || return 1
    
        # Start the daemon for real, return 2 if failed
    start-stop-daemon --start --pidfile $PIDFILE \
        --exec $DAEMON -- start > /dev/null || return 2

    }

    #

    Function that stops the daemon/service

    #
    do_stop() {

    Return

    #   0 if daemon has been stopped
    #   1 if daemon was already stopped
    #   2 if daemon could not be stopped
    #   other if a failure occurred
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --stop --signal 2 --retry 5 --quiet --pidfile $PIDFILE
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    
        # Delete the exisitng PID file
    if [ -e "$PIDFILE" ]; then {
        rm $PIDFILE
    }
        fi
    
        return "$RETVAL"

    }

    Display / Parse Init Options

    case "$1" in
    start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
    stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
    restart)
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
    0|1)
    do_start
    case "$?" in
    0) log_end_msg 0 ;;
    1) log_end_msg 1 ;; # Old process is still running
    ) log_end_msg 1 ;; # Failed to start
    esac
    ;;
    )

    Failed to stop

    log_end_msg 1
    ;;
    esac
    ;;
    status)
    if [ -s $PIDFILE ]; then
    pid=cat $PIDFILE
    kill -0 $pid >/dev/null 2>&1
    if [ "$?" = "0" ]; then
    echo "$NAME is running: pid $pid."
    RETVAL=0
    else
    echo "Couldn't find pid $pid for $NAME."
    RETVAL=1
    fi
    else
    echo "$NAME is stopped (no pid file)."
    RETVAL=1
    fi
    ;;
    *)
    echo "Usage: $SCRIPTNAME {start
    stop restart status}" >&2
    exit 3
    ;;
    esac
    September 11, 2014 at 4:00:51 PM GMT+2 - permalink - archive.org - https://gist.github.com/chalmerj/1492384
    carbon graphite init
  • Low Level Manager: Monitorama Conference

    à regarder à la rentrée

    via arnaudb

    August 30, 2014 at 6:45:43 PM GMT+2 - permalink - archive.org - http://www.lowlevelmanager.com/2014/07/monitorama-conference.html
    conf graphite
  • Wel4 - Conférence Monitoring applicatif - YouTube

    les slides :
    http://fr.slideshare.net/kennydee/monitoring-applicatif-pourquoi-et-comment

    August 13, 2014 at 5:50:54 PM GMT+2 - permalink - archive.org - https://www.youtube.com/watch?v=VDAiz3d1_Po
    conf graphite
  • Tracking Every Release « Code as Craft

    apply function > Special > draw non zero as infinite

    August 6, 2014 at 2:04:35 PM GMT+2 - permalink - archive.org - http://codeascraft.com/2010/12/08/track-every-release/
    graphite
  • Configuration graphite pour être utilisé avec statsd

    Aide à comprendre pas mal de chose concernant graphite/statsd

    August 1, 2014 at 10:47:44 AM GMT+2 - permalink - archive.org - https://github.com/etsy/statsd/blob/master/docs/graphite.md
    graphite statsd
  • https://github.com/graphite-project/whisper

    Suite d'outils bien pratique pour tester/vérifier/debug ses whisper files, en particulier whisper-dump et whisper-fetch

    August 1, 2014 at 10:35:57 AM GMT+2 - permalink - archive.org - https://github.com/graphite-project/whisper
    carbon graphite statsd
  • whisper calculator

    !/usr/bin/env python

    -- coding: utf-8 --

    def archive_to_bytes(archive):
    def to_seconds(s):
    SECONDS_IN_A = {
    's': 1,
    'm': 1 60,
    'h': 1
    60 60,
    'd': 1
    60 60 24,
    'y': 1 60 60 24 365,
    }

        return int(s[:-1]) * SECONDS_IN_A[s[-1]]
    
    archive = [map(to_seconds, point.split(':'))
               for point in args.archive.split(',')]
    
    SIZE_METADATA = 2 * 4 + 4 + 4  # 16 [!2LfL]
    SIZE_ARCHIVE_INFO = 3 * 4  # 12 [!3L]+
    SIZE_POINT = 4 + 8  # 12 [!Ld]+
    
    size = 0
    for resolution, retention in archive:
        size += SIZE_ARCHIVE_INFO + SIZE_POINT * retention/resolution
    
    if size:
        size += SIZE_METADATA
    
    return size

    if name == 'main':
    import argparse

    parser = argparse.ArgumentParser(
        description="Calculates the size of the whisper storage for the given \
                archive (in resolution:retention format, e.g. 1m:24h,5m:3m)"
    )
    parser.add_argument(
        'archive',
        help="Archive in storage-schemas.conf format (resolution:retention)"
    )
    
    args = parser.parse_args()
    
    print "{} >> {} bytes".format(args.archive, archive_to_bytes(args.archive))
    July 24, 2014 at 10:14:44 AM GMT+2 - permalink - archive.org - https://gist.github.com/jjmaestro/5774063#file-whisper-calculator-py
    calc graphite whisper
  • whisper dump

    !/usr/bin/env python

    import os
    import mmap
    import struct
    import signal
    import optparse

    try:
    import whisper
    except ImportError:
    raise SystemExit('[ERROR] Please make sure whisper is installed properly')

    Ignore SIGPIPE

    signal.signal(signal.SIGPIPE, signal.SIG_DFL)

    option_parser = optparse.OptionParser(usage='''%prog path''')
    (options, args) = option_parser.parse_args()

    if len(args) != 1:
    option_parser.error("require one input file name")
    else:
    path = args[0]

    def mmap_file(filename):
    fd = os.open(filename, os.O_RDONLY)
    map = mmap.mmap(fd, os.fstat(fd).st_size, prot=mmap.PROT_READ)
    os.close(fd)
    return map

    def read_header(map):
    try:
    (aggregationType,maxRetention,xFilesFactor,archiveCount) = struct.unpack(whisper.metadataFormat,map[:whisper.metadataSize])
    except:
    raise CorruptWhisperFile("Unable to unpack header")

    archives = []
    archiveOffset = whisper.metadataSize

    for i in xrange(archiveCount):
    try:
    (offset, secondsPerPoint, points) = struct.unpack(whisper.archiveInfoFormat, map[archiveOffset:archiveOffset+whisper.archiveInfoSize])
    except:
    raise CorruptWhisperFile("Unable to read archive %d metadata" % i)

    archiveInfo = {
      'offset' : offset,
      'secondsPerPoint' : secondsPerPoint,
      'points' : points,
      'retention' : secondsPerPoint * points,
      'size' : points * whisper.pointSize,
    }
    archives.append(archiveInfo)
    archiveOffset += whisper.archiveInfoSize

    header = {
    'aggregationMethod' : whisper.aggregationTypeToMethod.get(aggregationType, 'average'),
    'maxRetention' : maxRetention,
    'xFilesFactor' : xFilesFactor,
    'archives' : archives,
    }
    return header

    def dump_header(header):
    print 'Meta data:'
    print ' aggregation method: %s' % header['aggregationMethod']
    print ' max retention: %d' % header['maxRetention']
    print ' xFilesFactor: %g' % header['xFilesFactor']
    print
    dump_archive_headers(header['archives'])

    def dump_archive_headers(archives):
    for i,archive in enumerate(archives):
    print 'Archive %d info:' % i
    print ' offset: %d' % archive['offset']
    print ' seconds per point: %d' % archive['secondsPerPoint']
    print ' points: %d' % archive['points']
    print ' retention: %d' % archive['retention']
    print ' size: %d' % archive['size']
    print

    def dump_archives(archives):
    for i,archive in enumerate(archives):
    print 'Archive %d data:' %i
    offset = archive['offset']
    for point in xrange(archive['points']):
    (timestamp, value) = struct.unpack(whisper.pointFormat, map[offset:offset+whisper.pointSize])
    print '%d: %d, %10.35g' % (point, timestamp, value)
    offset += whisper.pointSize
    print

    if not os.path.exists(path):
    raise SystemExit('[ERROR] File "%s" does not exist!' % path)

    map = mmap_file(path)
    header = read_header(map)
    dump_header(header)
    dump_archives(header['archives'])

    July 24, 2014 at 10:13:52 AM GMT+2 - permalink - archive.org - http://bazaar.launchpad.net/~amos-shapira/graphite/whisper-dump/revision/733#whisper/bin/whisper-dump.py
    dump graphite whisper
Links per page: 20 50 100
◄Older
page 2 / 4
Newer►
Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation