nrql simple是一个小型的python库,它提供了一种与new relic insights查询api交互的便捷方式。可以通过编程方式或通过命令行与此库交互。
nrql-simple的Python项目详细描述
nrql simple是一个小的python库,它提供了一种方便的方法来 与New Relic Insights query API交互。 您可以通过编程方式或通过命令与此库交互 行。
安装
nrql simple在Python Package Index (PyPI)上可用。你可以安装 nrql使用pip很简单。
virtualenv env source env/bin/activate pip install nrql-simple
要安装开发版本,请运行:
pip install https://github.com/AnthonyBloomer/nrql-simple/archive/master.zip
关于
new relic insights查询api是用于查询insights的rest api 事件数据。通过https请求提供标准nrql查询之后, 查询api返回用于解析的json响应。
要使用api,需要一个查询键。可以有多个查询键, 任何查询键都可以用来启动任何insights api查询。如果你 有多个系统查询洞察或不同的数据目的地, new relic建议您使用多个查询键来增强数据 安全。
创建新的查询键:
- 转到insights.newrelic.com>; 管理数据>;API密钥。
- 选择查询键标题旁边的加号图标。
- 输入密钥的简短说明。
- 选择“保存笔记”。
你还需要记下你的新遗物帐户ID。 新文物帐户的帐户ID:
- 登录到rpm.newrelic.com。
- 在url栏中,复制 网址:https://rpm.newrelic.com/accounts/ACCOUNT_ID/
用法
第一步是初始化nrql对象并设置api密钥和 帐户ID.
fromnrql.apiimportNRQLnrql=NRQL()nrql.api_key='YOUR_API_KEY'nrql.account_id='YOUR_ACCOUNT_ID'
或者,可以将api密钥和帐户id导出为环境 变量。
$ export NR_API_KEY='YOUR_API_KEY' $ export NR_ACCOUNT_ID='YOUR_ACCOUNT_ID'
然后简单地将nrql语句传递到query函数中。NRQL公司 是一种类似于sql的查询语言,用于对其进行调用 新遗迹洞察事件数据库。参考NRQL documentation 示例和用法信息。
考虑以下示例,该示例获取容器的唯一数量 本季度以来每个应用程序的ID。
req=nrql.query("select uniqueCount(containerId) from NrDailyUsage facet apmAppName since this quarter")forkinreq['facets']:print("%s : %s"%(k['name'],k['results'][0]['uniqueCount']))
命令行用法
usage: nrql [-h] [--region REGION] [--env ENV] [--filename FILENAME] [--csv] [--verbose] stmt positional arguments: stmt The NRQL statement. optional arguments: -h, --help show this help message and exit --region REGION, --r REGION Pass this flag to set your region (EU or US) By default the region is set to US. --env ENV, --e ENV Environment handler. --filename FILENAME, --f FILENAME The output CSV filename. Default is events.csv --csv, --c Pass this flag to output the Event data to CSV. --verbose, --v Pass this flag if you want the whole response.
要使用cli,必须首先将api密钥和帐户id导出为 环境变量。
$ export NR_API_KEY='YOUR_API_KEY' $ export NR_ACCOUNT_ID='YOUR_ACCOUNT_ID'
然后,用nrql语句调用nrql命令作为 争论。
nrql "select uniqueCount(containerId) from nrdailyusage where apmAppName = 'SinatraApp' since this quarter"
上面的命令将输出如下格式的json:
{"results":[{"uniqueCount":175}]}
默认情况下,输出将不包括performanceStats或 metadata来自响应的对象。输出整个json 响应,传递--verbose标志。
nrql "select uniqueCount(containerId) from NrDailyUsage facet apmAppName since this quarter" --verbose
管理多个帐户
如果您希望在帐户之间轻松切换,可以使用 environment类方法。如果使用命令行工具,请使用 env命令行参数。例如:
fromnrql.apiimportNRQLnrql=NRQL()nrql.environment="PROD"
或通过命令行:
nrql "select uniqueCount(containerId) from NrDailyUsage facet apmAppName since this quarter" --env='PROD'
默认情况下,程序查找环境变量 NR_API_KEY和NR_ACCOUNT_KEY。
如果env参数不是none,则程序将附加 环境字符串到NR_API_KEY。例如:
NR_API_KEY_PROD
命名环境变量时,请确保遵循以下命名 惯例。
输出为csv
要通过cli将事件数据导出到csv文件,请传递--csv 参数,例如:
nrql "select * from Transaction where appName = 'RabbitMQ' since this quarter" --csv
这将把csv文件(events.csv)导出到当前工作 目录。
要更改输出文件,请传递--filename参数:
nrql "select * from Transaction where appName = 'RabbitMQ' since this quarter" --csv --filename='rabbit.csv'
您还可以通过编程方式导出事件数据:
nrql=NRQL()nrql.csv=Truenrql.filename='events.csv'nrql.query("select * from Transaction where appName = 'RabbitMQ' since this quarter")
这将把events.csv输出到当前工作目录。
测试
pythonunittest模块包含自己的测试发现函数, 您可以从命令行运行它:
python -m unittest discover tests/
贡献
- 派生项目并在本地克隆。
- 为你要做的事情创建一个新的分支。
- 推送到原始存储库。
- 在githu中创建新的拉取请求b.