从 JSON 输出中获取性能值
主页 / 知识库 / 从 JSON 输出中获取性能值

如何从 JSON 输出中提取性能值?

Q:我在“脚本或程序”监视器中执行的程序返回了 JSON 输出。 从中提取特定性能值的最简单方法是什么?

答:可以使用“one-liner”Python 脚本(由捆绑的 Python 解释器运行)来提取所需的值。 下面是两个例子。

示例 JSON 输出

假设您运行的程序将以下 JSON 值打印到标准输出:

[
       {
              "key": "Value1",
              "value": 13
       },
       {
              "key": "Value2",
              "value": 165
       }
]

并且您需要通过上述定义数组的第二条记录中的键“值”监视字段引用(这将提供 165 的性能值)。

要提取这些,请将以下代码片段添加到监视器定义(最有可能添加到“Arguments”字段)以通过以下方式传输程序输出:

| "C:\Program Files (x86)\IPHost Network Monitor\Python-3.6.4\python.exe" -c "import sys, json; print(json.load(sys.stdin)[1]['value'])"

注意该行的粗体部分:它从 JSON 输出中提取提到的元素。 上面显示的整行应在没有换行符的情况下输入。

提取 AWS S3 存储桶中对象的文件长度

让我们尝试更多现实生活中的例子。 假设我们有一个 S3 AWS 存储桶(存储单元),我们想监控其中某个对象(文件)的大小。 为此,请按照以下步骤操作:

1. 安装 AWS 命令行实用程序并确保它在系统 PATH 中。

2. 在IAM中创建合适的用户账户,并获取其access key和secret key来与AWS S3进行交互。 为了这个例子,我们假设访问密钥字符串是“AAAAA”,秘密密钥字符串是“SSSSSSSSS”(在你的情况下使用实际密钥)。

在 IPHost GUI 客户端中,进入“Settings > User Credentials”,添加新的 Windows 凭据,命名为“AWS S3 access”(您可以使用任何名称),并填写如下:

  • 域名: .
  • 用户:AAAAA
  • 密码:SSSSSSSS

再次使用您的真实凭证而不是上述占位符。 保存新创建的凭据。

3.创建文件C:\Scripts\aws-s3-get-metadata。命令”,内容如下:

@echo off
set AWS_ACCESS_KEY_ID=%1
set AWS_SECRET_ACCESS_KEY=%2
"C:\Program Files\Amazon\AWSCLI\bin\aws.exe" s3api head-object --bucket "%3" --key "%4" | "C:\Program Files (x86)\IPHost Network Monitor\Python-3.6.4\python.exe" -c "import sys, json; print(json.load(sys.stdin)['ContentLength'])"

使用任何其他脚本文件名/路径,前提是运行IPHost监控服务的帐户可读(默认为SYSTEM)。

4. 在任意主机上创建“脚本或程序”监视器(例如,在“localhost”上),并填写如下参数:

监视器名称:任何唯一的名称

模式:运行程序

路径:C:\Windows\System32\cmd.exe

参数:/c C:\Scripts\aws-s3-get-metadata.cmd $WindowsUser $WindowsPassword bucket-name path-to-object

凭据:在第 2 步创建的凭据(“AWS S3 访问”)。

“bucket-name”应该是 S3 URL 存储桶名称,“path-to-object”应该是没有前导斜杠的路径。

例如,如果对象的 URL 是 s3://example-bucket/location/of/my/file,则替换

  • “bucket-name” with “example-bucket”
  • “path-to-object” with “location/of/my/file”
京公网安备 11010802041237号    |    备案号:京ICP备09015132号-1011