Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OpenTSDB - Clean install rejects all metrics

Tags:

opentsdb

I have installed an instance of openTSDB 2.0 for testing, but the server is rejecting all attempts to insert metrics.

These two are from the documentation:

$ telnet localhost 8020
Trying ::1...
Connected to localhost.
Escape character is '^]'.
put sys.cpu.nice 1346846400 50 hostname=test1
put: unknown metric: No such name for 'metrics': 'sys.cpu.nice'
put http.hits 1234567890 34877 host=A
put: unknown metric: No such name for 'metrics': 'http.hits'

My hbase server appears to be configured correctly:

hbase(main):012:0> list
TABLE                                                                                                                                                                                    
tsdb                                                                                                                                                                                     
tsdb-meta                                                                                                                                                                                
tsdb-tree                                                                                                                                                                                
tsdb-uid                                                                                                                                                                                 
4 row(s) in 0.0130 seconds

=> ["tsdb", "tsdb-meta", "tsdb-tree", "tsdb-uid"]

I have tried with the server set auto create metrics both ways: tsd.core.auto_create_metrics = true tsd.core.meta.enable_realtime_ts = true tsd.core.meta.enable_realtime_uid = true

Any suggestions about what I have done wrong would be greatly appreciated.

like image 235
Sherman Avatar asked Dec 06 '25 03:12

Sherman


1 Answers

Try rest api, it takes json as input on port 4242:

curl -i  -H "Content-Type: application/json" -X POST -d '{"metric": "sys.cpu.nice", "timestamp": 1346846400,"value": 18, "tags": { "host": "web01"}}' http://localhost:4242/api/put/?details

If you want to do it with code:

import requests
import json

def SendTSDBMetrics(metrics):
    response = requests.post(url=tsdburi, data=metrics,headers=headers)
    print response.text # print what was inserted

metric = 'sys.cpu.nice'
metrics = []

metrics.append({'metric':metric, 'timestamp':time.now(), 'value':18, 'tags':{"device_id":"1"}})
metrics.append({'metric':metric, 'timestamp':time.now(), 'value':100, 'tags':{"device_id":"1"}})

SendTSDBMetrics(json.dumps(metrics))
like image 77
venuktan Avatar answered Dec 09 '25 20:12

venuktan