1

I've recently reconfigured my graphite setup from a single carbon-cache instance to several carbon-cache instances. As I needed to cook this up on a new host without bringing down the old graphite server while setting up, I now have a whisper directory with the historic metrics from the old server that I need to make available through the webapp on the new host.

I copied the dir to the new host and added an entry in the webapp local_settings.py: DATA_DIRS = ['/carbon1/whisper','/carbon2/whisper','/carbon3/whisper','/carbon4/whisper','/whisper-archive']

whisper-archive is the dir I'm talking about. Unfortunately, the data is not showing up. Am I doing something wrong or is there a better way to do this?

running graphite 0.10.0 source install on freebsd 10.0-RELEASE-p12

HopelessN00b
  • 53,795
  • 33
  • 135
  • 209

2 Answers2

0

I think it's just going to look in these places and use the data from the first one it finds. If you want to have the old data in the same graphs as the new one, then I think you're going to have to use whisper-dump to dump the data out of both the old and new metrics and whisper-merge to combine them.

Steve Wills
  • 685
  • 3
  • 6
0

In the end Steve was mostly right.

The problem was I had the archive folder first in the list of data dirs. When a query came through with a timespan that bridged the changeover the webapp got a response from the archive folder and stopped looking further.

The fix, however, was not like Steve explains. Instead I had to whisper-merge the old data into the new whisper files. Since I have 4 carbon cache stores and a replication of 2, this was trickier then usual.

I ended up whipping up a quick bash script to recursively merge the data into it's matching, newer, counterparts. Here's a snippet in case it can help someone:

for l in $(find /whisper-archive -type f -name '*.wsp'); do

  for c in {1..4}; do
    echo -n "carbon$c: Checking whisper file: $l..."; #debug output

    # I made a tmp file with the list of whisper files in each carbon instance
    # for quick searching and handy list for validation 

    grep $l ./carbon$c.files.txt >/dev/null \
         && sudo /usr/local/bin/whisper-merge.py \
                 /whisper-archive/$l /carbon$c/whisper/$l; 

    echo 'done'; # debug output
  done;
done;