Skip to content

Instantly share code, notes, and snippets.

@anarcher
Created July 27, 2014 11:38
Show Gist options
  • Save anarcher/5dd2a3d4700d2f1f7020 to your computer and use it in GitHub Desktop.
Save anarcher/5dd2a3d4700d2f1f7020 to your computer and use it in GitHub Desktop.
feed graphite pickle fomat
import argparse
import socket
import time
import pickle
import struct
CARBON_SERVER = '0.0.0.0'
CARBON_PORT = 2004
parser = argparse.ArgumentParser()
parser.add_argument('metric_path')
parser.add_argument('value')
args = parser.parse_args()
def get_message(path,value,ts):
listOfMetricTuples = [ (path,(ts,value)),]
payload = pickle.dumps(listOfMetricTuples)
header = struct.pack("!L", len(payload))
message = header + payload
return message
if __name__ == '__main__':
timestamp = int(time.time())
message = '%s %s %d\n' % (args.metric_path, args.value, timestamp)
bin_message = get_message(args.metric_path,args.value,timestamp)
print 'sending message:\n%s' % message
sock = socket.socket()
sock.connect((CARBON_SERVER, CARBON_PORT))
sock.sendall(bin_message)
sock.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment