nrql simple是一个小型的python库,它提供了一种与new relic insights查询api交互的便捷方式。可以通过编程方式或通过命令行与此库交互。

nrql-simple的Python项目详细描述


Build Statuscodecov

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建议您使用多个查询键来增强数据 安全。

创建新的查询键:

  1. 转到insights.newrelic.com>; 管理数据>;API密钥。
  2. 选择查询键标题旁边的加号图标。
  3. 输入密钥的简短说明。
  4. 选择“保存笔记”。

你还需要记下你的新遗物帐户ID。 新文物帐户的帐户ID:

  1. 登录到rpm.newrelic.com
  2. 在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}]}

默认情况下,输出将不包括performanceStatsmetadata来自响应的对象。输出整个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_KEYNR_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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Maven的其他模块中看不到依赖模块中的java更改   http使用Java提交HTML表单数据,以检索从jsp应用程序下载的内容   因此,java JPA直接获取一个映射,而不是对象列表   java Dagger2:如何在多态性期间注入成员变量?   java如何在playFramework中重用控制器类的功能   java JavaMail到minecraft   java如何在RecyclerView滚动上下载更多Firebase对象?   PDFBOX org出现java Proc Groovy错误。阿帕奇。pdfbox。余弦。COSDocument finalize警告:警告:您没有关闭PDF文档   用java将英语翻译成本地语言   javascript不使用servlet将JSON对象传递给Java类   数据结构二进制搜索树泛型Java   如何在cmd中使用jar编译和执行java?   java如何用JPA连接表列?   java 2D Arraylist预测代码的输出   Java:“历史”对于cli命令,如何使输出“可编辑”?