Source code for fabric_colors.monitor.newrelic

import urllib
import urllib2

from fabric.api import task, env, run
from fabric.context_managers import prefix
from fabric.operations import get
from fabric.colors import red, green

from fabric_colors.environment import set_target_env


@task(default=True)
@set_target_env
[docs]def newrelic(): """ Check if newrelic is sending data to rpm.newrelic.com's data collector """ if env.newrelic: print(green("newrelic is expected to be running on this host")) with prefix(env.activate): run("newrelic-admin validate-config {0}/{1}".format(env.path_release_current, env.newrelic['INI_FILE'])) get("/tmp/python-agent-test.log", "{0}_data/{1}/%(path)s".format(env.project_name, env.host, env)) else: print(red("We are not deploying newrelic on this host"))
@task @set_target_env
[docs]def record_deploy(): """ values is a dictionary containing key and value. Equivalent of this example (please use the correct API key of course) curl -H "x-api-key:f55da53a178959f9130381396b2172ac5e26cfa2383503c" \ -d "deployment[application_id]=2142298" \ -d "deployment[host]=localhost" \ -d "deployment[description]=This deployment was sent using curl" \ -d "deployment[revision]=1242" \ -d "deployment[changelog]=many hands make light work" \ -d "deployment[user]=Calvin Cheng" \ https://rpm.newrelic.com/deployments.xml """ if env.newrelic: url = "https://rpm.newrelic.com/deployments.xml" data = urllib.urlencode(env.newrelic['VALUES']) # Send the HTTP Post, with custom header x-api-key req = urllib2.Request(url, data) req.add_header('x-api-key', env.newrelic['API_KEY']) urllib2.urlopen(req) else: print(red("We are not deploying newrelic on this host"))

This Page