Advertisement
Guest User

Untitled

a guest
Apr 7th, 2017
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. import pandas as pd
  2. import requests
  3. username = 'STORM-UI-USERNAME'
  4. password = 'STORM-UI-PASSWORD'
  5. base_url = 'STORM-UI-URL'
  6. cluster_summary = '/api/v1/cluster/summary'
  7. topology_summary = '/api/v1/topology/summary'
  8. topology_detail = '/api/v1/topology/{topology}'
  9. component = '/api/v1/topology/{topology}/component/{component}'
  10.  
  11. def get_data(base, endpoint, username, password):
  12. return requests.request("GET", base + endpoint, auth=(username, password)).json()
  13.  
  14.  
  15. if __name__ == '__main__':
  16. topology_ids = map(lambda x: x['id'], get_data(base_url, topology_summary, username, password)['topologies'])
  17. worker_stats = []
  18.  
  19. for topology in topology_ids:
  20. topology_detail_json = get_data(base_url, topology_detail.format(topology=topology), username, password)
  21. spouts = map(lambda x: x['spoutId'], topology_detail_json['spouts'])
  22. bolts = map(lambda x: x['boltId'], topology_detail_json['bolts'])
  23. for comp in spouts + bolts:
  24. comp_detail = get_data(base_url, component.format(topology=topology, component = comp), username, password)
  25. worker_stats += [(worker['host'], worker['id'], worker['uptime']) for worker in comp_detail['executorStats']]
  26.  
  27.  
  28. print pd.DataFrame(sorted(list(set(worker_stats)))).to_string(header=False, index=False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement