Package: mackerel.clienthde
mackerel.clienthde is a python library to access Mackerel (https://mackerel.io/).This project is forked fromheavenshell/py-mackerel-client, which is initially ported frommackerel-client-ruby.Install$pipinstallmackerel.clienthdeDependencymackerel.clienthde userequests,simplejsonandclick.UsageGet hostsfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')hosts=client.get_hosts()Get hostfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')host=client.get_host('<hostId>')Update host statusfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')# Poweroff.self.client.update_host_status('<hostId>','poweroff')# Standby.self.client.update_host_status('<hostId>','standby')# Working.self.client.update_host_status('<hostId>','working')# Maintenance.self.client.update_host_status('<hostId>','maintenance')Retire hostfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')self.client.retire_host('<hostId>')Get latest metricsfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')# Get hostId A's and hostId B's loadavg5, memory.free value.metrics=self.client.get_latest_metrics(['<hostId A>','<hostId B>'],['loadavg5','memory.free'])Post metricsfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key>')metrics=[{'hostId':'<hostId>','name':'custom.metrics.loadavg','time':1401537844,'value':1.4},{'hostId':'<hostId>','name':'custom.metrics.uptime','time':1401537844,'value':500}]# Post `custom.metrics.loadavg` and `custom.metrics.uptime` to `hostId`.client.post_metrics(metrics)Post service metricsfrommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key>')metrics=[{'name':'custom.metrics.latency','time':1401537844,'value':0.5},{'name':'custom.metrics.uptime','time':1401537844,'value':500}]# Post 'custom.metrics.latency' and 'custom.metrics.uptime' to `service_name`.self.client.post_service_metrics('service_name',metrics)Get monitors [NEW in this forked version]frommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')monitors=client.get_monitors()# list all Monitors# Specify list of ids to search, return a dict with id as keymonitor_targets=client.get_monitors(ids=['1ABCDabcde1'])Create monitor [NEW in this forked version]frommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')# Create monitor as specified in https://mackerel.io/api-docs/entry/monitors#createparams={'type':'service','name':'ConsumedReadCapacityUnits.table-name','service':'HDE','duration':1,'metric':'ConsumedReadCapacityUnits.table-name','operator':'>','warning':700,'critical':900}# Post params to Mackerel# result['id'] will give Monitor id if create operation succeededresult=client.create_monitor(params)Update monitor [NEW in this forked version]frommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')# Since update Monitor requires all fields to be specified,# it is suggested to retrieve the latest value firstmonitor_id='1ABCDabcde1'monitors=client.get_monitors(ids=[monitor_id])monitor=monitors[monitor_id]# In this example, we assume Monitor is class of MonitorServicemonitor.warning=800monitor.critical=1000# Update params to Mackerelresult=client.update_monitor(monitor_id=monitor_id,monitor_params=monitor._to_post_params_dict())Delete monitor [NEW in this forked version]frommackerel.clienthdeimportClient# Alternatively, you can set MACKEREL_APIKEY as environment variable# And simply call "client = Client()"client=Client(mackerel_api_key='<Put your API key')# Delete Monitorresult=client.delete_monitor(monitor_id='1ABCDabcde1')CLIGet host(s) information from hostname or service, role.$mkr.pyinfo[--namefoo][--serviceservice][--rolerole]Set status of a host.$mkr.pystatus--host-idfoo--statusworkingRetire a host.$mkr.pyretire--host-idfooGet status of a host.$mkr.pystatus--host-idfooAuthentication$exportMACKEREL_APIKEY=foobar