用于处理serverdensity.com api的cli工具

densli的Python项目详细描述


关于densli

densli是用于访问Server DensityAPI的命令行客户机,具有以下功能:

  • Store authentication details in a config file, or pass them as command options
  • Extensive error checking
  • Display metric ranges as a sparklines graph
  • Pretty ^{tt2}$ colours!
  • Outputs JSON in an indented human readable (but still machine readable) format
  • Can accept data to send as JSON via piped ^{tt3}$
  • Suppress none JSON data output via option to pipe data to other processes
  • Flexible ways to define API endpoints and data to send (different API path formats and add data via ^{tt3}$, named options or as extra unnamed arguments)

安装

可以使用pip

从pypi安装应用程序
pip install densli

或者使用gitGithub克隆:

git clone git://github.com/serverdensity/densli.git
cd densli
python setup.py install

用法

densli使用json配置文件存储身份验证信息(account/username/passord)和其他选项。 要创建一个示例配置文件,您可以使用sd详细信息进行编辑,只需运行 densli第一次,它将报告创建配置的位置 文件(对于 操作系统,例如os x下的$HOME/Library/Application Support/Densli

DENSLI U HOME环境变量

可以使用环境变量DENSLI_HOME更改此配置文件的位置,例如:

DENSLI_HOME=~/.densli
export DENSLI_HOME
densli ...

任何或所有身份验证详细信息都可以作为传递给densli的选项覆盖,这对于从不希望将身份验证详细信息存储在文件中的脚本运行非常有用,例如:

densli --username=myusername --password=mypassword --account=myaccount.serverdensity.com ...

–帮助

您可以使用-h--help选项获得所有可用选项的列表/说明。

API端点

您可以使用densli从任何Server Density API端点获取结果,例如访问devices list

densli devices list

上述格式“<;section>;<;method>;”也可以使用“/”或“.”来表示,例如:

  • ^{tt12}$
  • ^{tt13}$

数据

发送到终结点的数据可以定义为使用多个-d--data选项的名称-值对(由等号=分隔),如json中的管道,或作为尾随的名称-值对参数,例如,这些都是相同的:

densli metrics getLatest -d deviceId=4e95d575160ba0212b003356

densli metrics getLatest --data=deviceId=4e95d575160ba0212b003356

densli metrics getLatest deviceId=4e95d575160ba0212b003356

echo '{ "deviceId": "4e95d575160ba0212b003356" }' | densli metrics getLatest

–安静

densli对获取设置和如何处理设置(通过STDOUT)或错误(通过STDERR)很有发言权,如果要将densli的输出传送到另一个进程,则可能不希望将任何内容发送到STDOUT,要使非api输出静音,请使用-q-quiet选项。

–火花

densli命令的默认输出是人类可读的json(缩进4个空格,与sd api返回的格式无关),但是对于metrics getRange端点,您还可以使用-s--spark选项获得输出为迷你条形图(使用unicode字符9601-9608)的结果,例如:

densli metrics getRange -d deviceId=4e95d575160ba0212b003356 -d metric=diskUsage \
-d rangeStart=012-08-25T00:00:00 -d rangeEnd=012-08-30T00:00:00 --spark

将输出如下内容:

>>> /dev Used for 012-08-25T00:00:00 - 012-08-30T00:00:00:
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
>>> /boot Used for 012-08-25T00:00:00 - 012-08-30T00:00:00:
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
>>> / Used for 012-08-25T00:00:00 - 012-08-30T00:00:00:
▇▇▇▇▇▇▇▇▇▇▆▃▁▁▁▁▁▁▁▁
>>> /var/lib/ureadahead/debugfs Used for 012-08-25T00:00:00 - 012-08-30T00:00:00:
▇▇▇▇▇▇▇▇▇▇▆▃▁▁▁▁▁▁▁▁

默认情况下,为了便于显示,迷你图的宽度限制为20个字符,但是您可以通过在config.json文件中将“最大图形宽度”选项设置为您选择的整数来覆盖它。

–以前

metrics.getRange调用定义相对时间偏移量的快捷方式提供了-t--timeago选项。这使您可以方便地查看到目前为止一段时间内的最新度量,并接受各种格式的天、小时、分钟和秒,例如:

densli metrics getRange deviceId=4e95d575160ba0212b003356 metric=diskUsage \
--spark -t 30m # past 30 minutes

densli metrics getRange deviceId=4e95d575160ba0212b003356 metric=diskUsage \
--spark -t 1hour # past hour

densli metrics getRange deviceId=4e95d575160ba0212b003356 metric=diskUsage \
--spark -timeago="1h 15min" # past hour and a quarter

densli metrics getRange deviceId=4e95d575160ba0212b003356 metric=diskUsage \
--spark -timeago="1d 30s" # past day and 30 seconds

–回发

若要使使用管道输入数据向metrics.postback endpoint发送回发更加方便,可以使用-P--postback选项将STDIN数据标记为原始json负载,该负载将按回发端点的预期在payload字段中发送,例如:

echo '{ "agentKey": "blah", "someMetric": [...], "someOtherMetric": 1.0 }' \
| densli metrics postback deviceId=4e95d575160ba0212b003356 --postback

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

推荐PyPI第三方库


热门话题
正则表达式Java使用关键字拆分字符串   Neo4j Java API模式索引范围查找?   java访问JButton[]   java如何混淆tomcat日志文件中的请求属性   apache运行CGI Java程序   java从一个Eclipse插件开始,我如何通过编程使Eclipse编辑某个文件?   从php中的SQL数据库到Java中的多个值作为单独的变量   java如何在多个osgi捆绑包之间共享资源   datetime Java time,无法从历元秒解析年份   java无法在安卓应用程序中使用morpho指纹扫描仪设备捕获指纹   java使用groovy/ratpack发送电子邮件   javascript在jsp页面中添加验证,但在控制台中仍然显示一些错误   java如何修复com。mysql。jdbc。DocsConnectionPropsHelper   java AlertDialog dispatchTouchEvent