关于 New Relic CLI
newrelic CLI 用于管理 New Relic 实体和工作负载、标记部署、添加分析配置,以及执行 NerdGraph GraphQL 查询。开发者可以将可观测性操作集成到命令行工作流中。
主要功能
- 01搜索和管理 New Relic 实体与工作负载
- 02记录部署标记和版本信息
- 03执行 NerdGraph GraphQL 查询访问 New Relic 数据
适用场景
- 01在部署流程中自动记录部署标记
- 02从命令行查询和分析可观测性数据
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行newrelic --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
newrelic-cli
New Relic CLI 是 New Relic 官方支持的命令行界面,作为 Developer Toolkit 的一部分发布。
概览
New Relic CLI 项目旨在整合 New Relic 提供的一些资源管理工具。目前,在框架开发期间,功能范围有限,但现有工具确实可以执行一部分任务。
- 实体搜索:搜索所有 New Relic 账户中的实体
- 实体标记:管理所有实体的标签
- 部署标记:轻松记录 APM 应用在 New Relic 中的部署情况。
快速入门
如需快速了解如何开始使用 New Relic CLI,请参阅我们的快速入门页面。
New Relic CLI 文档
最新的 New Relic CLI 文档位于代码库的 docs 目录中。
安装与升级
该工具支持多种平台的安装方式。如果你正在运行较旧版本的 CLI,可以使用这些命令更新到最新版本。
MacOS
自动安装
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash
Homebrew
通过 homebrew 在 MacOS 上安装 New Relic CLI。安装好 homebrew 后,运行:
brew install newrelic-cli
Windows
支持在 64 位 Windows 上安装。
自动安装
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; (New-Object System.Net.WebClient).DownloadFile("https://download.newrelic.com/install/newrelic-cli/scripts/install.ps1", "$env:TEMP\install.ps1"); & $env:TEMP\install.ps1
Scoop
scoop bucket add newrelic-cli https://github.com/newrelic/newrelic-cli.git
scoop install newrelic-cli
Chocolatey
choco install newrelic-cli
独立安装程序
New Relic 下载站点提供独立的 MSI 安装程序。你可以在此处下载最新版本的安装程序。
Powershell
可以通过以下 Powershell 命令静默安装最新版本的 CLI:
(New-Object System.Net.WebClient).DownloadFile("https://github.com/newrelic/newrelic-cli/releases/latest/download/NewRelicCLIInstaller.msi", "$env:TEMP\NewRelicCLIInstaller.msi"); `
msiexec.exe /qn /i "$env:TEMP\NewRelicCLIInstaller.msi" | Out-Null; `
Linux
自动安装
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash
Snapcraft
可以通过 Snapcraft 安装 Linux 二进制文件。安装 snapd 守护进程后,运行:
sudo snap install newrelic-cli
预构建二进制文件
所有上述平台均提供预构建二进制文件。你可以在此处下载最新版本。二进制文件及其校验和均已签名,可使用 Developer Toolkit 团队的公共 PGP 密钥进行验证。
请确认下载的密钥指纹与以下内容匹配:
gpg --fingerprint [email protected]
D3EE EEE8 80A9 1DEE 209A 82CC 4F9A 9B5B 96EC 30B9
验证预构建二进制文件和校验和时,请使用长格式(短格式不安全)。例如:
gpg --keyid-format long --verify checksums.txt.sig checksums.txt
Docker
我们提供官方 docker 镜像,也可以用它来运行命令。
使用示例
查询 APM 应用(使用 Docker 镜像)
# Pull the latest container
$ docker pull newrelic/cli
# Run the container interactively, remove it once the command exists
# Also must pass $NEW_RELIC_API_KEY to the container
$ docker run -it --rm \
-e NEW_RELIC_API_KEY \
newrelic/cli \
apm application get --name WebPortal --accountId 2508259
[
{
"AccountID": 2508259,
"ApplicationID": 204261368,
"Domain": "APM",
"EntityType": "APM_APPLICATION_ENTITY",
"GUID": "MjUwODI1OXxBUE18QVBQTElDQVRJT058MjA0MjYxMzY4",
"Name": "WebPortal",
"Permalink": "https://one.newrelic.com/redirect/entity/MjUwODI1OXxBUE18QVBQTElDQVRJT058MjA0MjYxMzY4",
"Reporting": true,
"Type": "APPLICATION"
}
]
请参阅入门指南,深入了解 New Relic CLI 的功能。
获取帮助
要查看有哪些可用命令,可以使用可靠的 --help
标志获取帮助。也可以只使用 help 子命令。
newrelic --help
newrelic help
嵌套子命令也有相应的帮助。例如,使用以下命令可以查看 apm 子命令的帮助。
newrelic apm --help
newrelic help apm
通过这种方式使用 CLI,用户可以查看可用命令及其用法说明。
命令模式
在帮助内容中,你可能会注意到一些常见模式。describe 用于执行列表或获取操作,而 create 和 delete 分别用于创建或删除项目。
开发
要求
- Go 1.19+
- GNU Make
- git
构建
newrelic 命令将构建到 bin/ARCH/newrelic,其中 ARCH 根据你的构建环境为 linux、darwin 或 windows。你可以直接从该目录运行,也可以将其移至 PATH 中的目录进行安装。
# Default target is 'build'
$ make
# Explicitly run build
$ make build
# Locally test the CI build scripts
# make build-ci
测试
贡献前,必须通过所有 lint 检查和测试。可以直接通过以下命令运行测试:
# Tests and Linting
$ make test
# Only unit tests
$ make test-unit
# Only integration tests
$ make test-integration
使用配方
核心配方库
CLI 中包含一个核心安装配方库,供 install 命令使用。配方文件来自 open-install-library,并在发布时嵌入 CLI 二进制文件中。开发期间如需获取最新配方库,可以使用以下 make 目标:
make recipes
配方文件存储在 internal/install/recipes/files 中。获取文件后,它们会包含在之后构建的 CLI 中。如果需要使用特定版本的配方库,可以通过 RECIPES_ARCHIVE_URL 选项将归档下载 URL 传递给 make 目标:
make recipes RECIPES_ARCHIVE_URL=https://github.com/newrelic/open-install-library/releases/download/v0.50.0/recipes.zip
要清理配方文件,请使用 recipes-clean 目标:
make recipes-clean
自定义配方文件
运行 install 命令时,也可以将路径传递给 --localRecipes 标志。此操作会绕过上述方法,并从指定路径加载文件。
提交消息
使用以下格式编写提交消息,可自动生成 CHANGELOG:
格式:
<type>(<scope>): <subject>
| 类型 | 描述 | 是否记录到变更日志? |
|---|---|---|
chore | 维护类工作 | 否 |
docs | 文档更新 | 是 |
feat | 新功能 | 是 |
fix | 修复错误 | 是 |
refactor | 代码重构 | 否 |
范围
指工作所关注的代码部分。例如:
通用:
build- 与构建系统相关的工作(代码检查、makefile、CI/CD 等)release- 与发布新版本相关的工作
特定软件包:
newrelic- 与 New Relic 软件包相关的工作http- 与internal/http软件包相关的工作alerts- 与pkg/alerts软件包相关的工作
生成 CLI 文档
注意: 要求仓库位于你的 GOPATH 中 (godoc issue)
$ make docs
社区支持
New Relic 托管并管理一个在线论坛,你可以在其中与 New Relic 员工及其他客户交流,获取帮助并分享最佳实践。
- 路线图 - 作为 Developer Toolkit 的一部分,本项目的路线图遵循相同的 RFC 流程
- 问题或功能改进请求 - 可以在此仓库的 Issues 选项卡中提交问题和功能改进请求。提交新问题前,请先搜索并查看现有的未解决问题。
- 贡献者指南 - 欢迎贡献(如果你提交功能改进请求,可能会受邀亲自参与实现 :grin:)。
- 社区讨论区 - 与所有官方 New Relic 开源项目一样,New Relic Explorers Hub 中也设有相关的社区主题。
请勿向 New Relic 全球技术支持报告 CLI 问题。请访问 Explorers Hub 获取故障排查和最佳实践建议。
问题 / 功能改进请求
可以在此仓库的 Issues 选项卡中提交问题和功能改进请求。提交新问题前,请先搜索并查看现有的未解决问题。
贡献
欢迎贡献(如果你提交功能改进请求,可能会受邀亲自参与实现 :grin:)。请查阅我们的贡献者指南。
请注意,提交拉取请求时,你需要通过 CLA-Assistant 点击签署 CLA。如果你想签署我们的企业 CLA,或者有任何疑问,请发送邮件至 [email protected]。
其他资源
还有一些本项目无法替代的实用工具。以下是一些链接,介绍了你目前可能感兴趣的其他工具。
- NR1 CLI: 用于管理 New Relic One 上自定义 Nerdpacks 开发工作流的命令行界面。
- New Relic Lambda CLI:用于安装 New Relic AWS Lambda 集成和层的 CLI。
- New Relic Diagnostics: 一款可自动检测 New Relic Agent 常见问题的实用工具。
开源许可证
本项目根据 Apache 2 许可证进行分发。
