newrelic.newrelic_java_agent

存档通知

❗通知:该项目已被存档,并且不再积极维护。

New Relic Java Ansible 角色由于使用率低而被存档。它在当前状态下仍然可以使用。

Ansible 角色:New Relic Java 代理

Molecule 测试

此角色安装和配置 New Relic Java 代理。它应该可以在 Tomcat、Jetty 或 Wildfly 下的应用程序中使用,且需要的配置最少。我们计划随着时间的推移支持最受欢迎的 Java Web 服务器。

要求

目标主机上必须可以使用 unzip 命令。

安装

推荐的安装方式是使用 Ansible Galaxy:

$ ansible-galaxy install newrelic.new_relic_java_agent

如果您想为该角色贡献代码,可以克隆此仓库并进行更改,然后通过运行以下命令将其本地安装:

sh examples/install_role.sh

根据您系统上 Ansible 的安装方式,您可能需要在上述命令前加上 sudo

配置

此角色使用变量有两个目的:角色配置和代理配置。

角色配置变量 描述了主机的设置,以便角色可以将代理文件安装到正确的位置,并设置您的 Java 环境以运行代理。

代理配置变量 可以在您的剧本中全局设置,也可以在您的清单文件中按主机或组进行设置。它们用于创建 Java 代理使用的 newrelic.yml 文件,以确定其配置。

角色配置变量

server_type

必填 您的应用程序使用的 Web 服务器。可能的值有:tomcatjettywildfly(仅限独立模式)。

server_root

必填 主机上 Web 服务器的位置。代理的 JAR 文件、配置文件和日志文件将存放在此目录的子目录中。

jvm_conf_file

必填 用于引用 New Relic Java 代理的 Web 服务器配置文件的路径。例如,对于 Tomcat,它是 setenv.sh。如果不存在,将创建该文件。

server_user / server_group

必填 Web 服务器运行的用户和组。用于设置 newrelic.jarnewrelic.yml 文件的所有权。

restart_web_server

可选 - 默认值: true 如果设置为 false,则角色在安装代理后 不会 重启 Web 服务器。

注意,代理在 Web 服务器重启之前不会激活。

service_name

必填(除非 restart_web_server 被设置为 false) Web 服务器运行的服务名称。用于 Ansible 在安装代理后重启 Web 服务器。

custom_instrumentation_files

可选 XML 文件列表,以通过 Java 代理启用自定义仪器。有关更多详细信息,请参见 自定义仪器部分

代理配置变量

代理配置放在 nr_java_agent_config 字典中,并被添加到 Java 代理的配置文件 newrelic.yml 中。可以通过此角色指定最常见的设置。示例可以在 examples/agent_install.yml 中找到。

要在清单中为 特定主机指定设置,请使用 nr_java_agent_host_config 字典。有关示例,请参见 examples/inventory.yml。主机值会覆盖 nr_java_agent_config 中的值。

如果您需要配置未在下方列出的设置,您必须提供自己的预配置 newrelic.yml 文件(请参见 使用您自己的代理配置文件)。

license_key

必填 您的 New Relic 许可证密钥

app_name

必填 被仪器化的应用程序名称。有关更多详细信息,请参见 New Relic 应用程序命名文档

proxy_host / proxy_port / proxy_user / proxy_password / proxy_scheme

可选 如果您通过代理连接到 New Relic 收集器,可以使用这些值配置您的代理设置。有关更多详细信息,请参见 New Relic 配置 Java 代理文档

labels

可选 用户可配置的代理自定义标签。标签是名称-值对。名称和值限制为 255 个字符,并且不能包含冒号(:)或分号(;)。值应该是以分号分隔的键值对列表。例如:

nr_java_agent_config:
  ...
  labels: Server:One;Data Center:Primary

collector_host

可选 如果您需要指定收集器主机,可以使用 collector_host 变量。有关更多详细信息,请参见 New Relic 收集器端点文档

其他代理特有的配置

除了上述列出的设置,您还可以通过此 Ansible 角色配置以下设置:

  • agent_enabled
  • high_security
  • enable_auto_app_naming
  • log_level
  • audit_mode
  • log_file_count
  • log_limit_in_kbytes
  • log_daily
  • log_file_name
  • log_file_path
  • max_stack_trace_lines
  • attributes: enabled, include, exclude
  • transaction_tracer: enabled, transaction_threshold, record_sql, log_sql, stack_trace_threshold, explain_enabled, explain_threshold, top_n
  • error_collector: enabled, ignore_errors, ignore_status_codes
  • transaction_events: enabled, max_samples_stored
  • distributed_tracing: enabled
  • cross_application_tracer: enabled
  • thread_profiler: enabled
  • browser_monitoring: auto_instrument
  • labels

有关这些设置和其他设置的更多详细信息,请参见 Java 代理配置文档。如果您需要配置其他设置,您需要提供一个完全指定的 newrelic.yml 文件。有关详细信息,请参见 使用您自己的代理配置文件 部分。

使用您自己的代理配置文件

如果您需要指定代理配置设置以外的设置,您需要提供自己的 newrelic.yml 文件。然后,nr_java_agent_config 字典中的任何设置将被忽略。将变量 nr_java_agent_config_file 设置为您的文件路径,例如:

nr_java_agent_config_file: /path/to/your/newrelic.yml

如果该文件位于目标主机上而不是运行 Ansible 的系统上,请将 nr_java_agent_config_file_is_remote 设置为 true:

nr_java_agent_config_file_is_remote: true

示例使用

examples/agent_install.ymlexamples/inventory.yml 文件提供了如何使用该角色的示例。

examples/agent_install.yml 中设置变量,并在 examples/inventory.yml 中设置您的清单后,您可以通过运行 Ansible 测试该角色:

ansible-playbook -i examples/inventory.yml examples/agent_install.yml

自定义仪器

如果您想启用 XML 自定义仪器,可以在 custom_instrumentation_files 变量中提供 XML 文件列表。如果您在剧本中指定该变量,这些文件将会被复制到安装 Java 代理的每个主机。您也可以通过在清单中按主机级别指定变量,或者通过在 group_vars 目录中的文件按组级别指定变量,来为不同的主机安装不同的文件。

有关管理主机和组变量的更多详细信息,请参见 Ansible 文档关于清单和变量。您可以查看此仓库中有关如何在 custom_instrumentation_playbook.ymlcustom_instrumentation_inventory.yml 文件中指定自定义仪器的示例。

开发

测试

此角色使用 molecule 进行测试。您需要 DockerPython 3.6 或更高版本。如果尚未安装 molecule,请安装它及其 Docker 模块:

$ pip install molecule[docker]

这也会在必要时安装 ansible。要运行测试,请从顶层目录调用 molecule test

$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> 测试矩阵

└── default
    ├── 依赖
    ├── 文法检查
    ├── 清理
...

社区

New Relic 主办并主持一个在线论坛,客户可以在此与 New Relic 员工以及其他客户互动以获得帮助和分享最佳实践。与所有官方的 New Relic 开源项目一样,该项目在 New Relic Explorers Hub 中有一个相关的社区主题。您可以在这里找到该项目的主题/讨论:

https://discuss.newrelic.com/t/ansible-role-for-new-relic-java-agent/99654

问题 / 增强请求

问题和增强请求可以在 此仓库的 Issues 标签中提交。请在提交新问题之前,搜索并查看现有的开放问题。

许可证

该项目以 Apache 许可证 版本 2.0 发布。

关于项目

Role to install New Relic APM Java agent

安装
ansible-galaxy install newrelic.newrelic_java_agent
许可证
apache-2.0
下载
12k
拥有者