newrelic.newrelic_java_agent
Zawiadomienie o archiwizacji
❗ Zawiadomienie: Ten projekt został zarchiwizowany w takiej formie i nie jest już aktywnie utrzymywany.
Rola Ansible do New Relic Java została zarchiwizowana z powodu niskiego użycia. Nadal jest dostępna do użycia w swojej obecnej postaci.
Rola Ansible: Agenta Java New Relic
Ta rola instaluje i konfiguruje agenta Java New Relic. Powinna działać z minimalną konfiguracją dla aplikacji działających na Tomcat, Jetty lub Wildfly. Naszym celem jest wspieranie najpopularniejszych serwerów WWW Java na przestrzeni czasu.
- Wymagania
- Instalacja
- Konfiguracja
- Przykład użycia
- Społeczność
- Zgłaszanie problemów / Prośby o ulepszenia
- Licencja
Wymagania
Polecenie unzip
musi być dostępne na docelowych hostach.
Instalacja
Zalecanym sposobem instalacji roli jest użycie Ansible Galaxy:
$ ansible-galaxy install newrelic.new_relic_java_agent
Jeśli chcesz przyczynić się do rozwoju roli, możesz sklonować to repozytorium, wprowadzić zmiany, a następnie zainstalować lokalnie, uruchamiając:
sh examples/install_role.sh
W zależności od tego, jak Ansible jest zainstalowany w Twoim systemie, może być konieczne poprzedzenie powyższego polecenia sudo
.
Konfiguracja
Ta rola używa zmiennych do dwóch celów: konfiguracji roli i konfiguracji agenta.
Zmiennie konfiguracyjne roli opisują, jak są skonfigurowane Twoje hosty, aby rola mogła zainstalować pliki agenta we właściwej lokalizacji oraz ustawić środowisko Java do uruchomienia agenta.
Zmiennie konfiguracyjne agenta mogą być ustawione globalnie w Twoim playbooku lub indywidualnie dla hostów lub grup w pliku inwentarza. Służą do tworzenia pliku newrelic.yml
, który agent Java używa do określenia swojej konfiguracji.
Zmienne konfiguracyjne roli
server_type
Wymagane
Serwer WWW używany przez Twoją aplikację. Możliwe wartości to: tomcat
, jetty
i wildfly
(tylko tryb standalone).
server_root
Wymagane Lokalizacja serwera WWW na hoście. Pliki JAR agenta, konfiguracji i logów będą znajdowały się w podkatalogu tej lokalizacji.
jvm_conf_file
Wymagane
Ścieżka do pliku konfiguracyjnego serwera WWW, aby odwołać się do agenta Java New Relic. Na przykład dla Tomcat jest to setenv.sh
. Jeżeli plik nie istnieje, zostanie utworzony.
server_user
/ server_group
Wymagane
Użytkownik i grupa, pod którymi działa serwer WWW. Używane do ustawienia właściciela plików newrelic.jar
i newrelic.yml
.
restart_web_server
Opcjonalne - Domyślnie: true
Jeżeli ustawione na false, rola nie restartuje serwera WWW po zainstalowaniu agenta.
Należy pamiętać, że agent nie jest aktywowany, dopóki serwer WWW nie zostanie zrestartowany.
service_name
Wymagane (chyba że restart_web_server
jest ustawione na false
)
Nazwa usługi, pod którą działa serwer WWW. Używane przez Ansible do restartu serwera WWW po zainstalowaniu agenta.
custom_instrumentation_files
Opcjonalne Lista plików XML do włączenia niestandardowej instrumentacji przez agenta Java. Zobacz sekcję Niestandardowa instrumentacja po więcej szczegółów.
Zmienne konfiguracyjne agenta
Konfiguracja agenta znajduje się w słowniku nr_java_agent_config
i jest dodawana do pliku konfiguracyjnego agenta Java - newrelic.yml
. Najczęściej używane ustawienia mogą być określone przez tę rolę. Przykłady można znaleźć w examples/agent_install.yml.
Aby określić ustawienia dla konkretnych hostów w swoim inwentarzu, użyj słownika nr_java_agent_host_config
. Przykłady można znaleźć w examples/inventory.yml. Wartości dla hostów mają pierwszeństwo przed wartościami w nr_java_agent_config
.
Jeśli potrzebujesz skonfigurować ustawienia, które nie są wymienione poniżej, musisz dostarczyć własny, wstępnie skonfigurowany plik newrelic.yml
(zobacz sekcję Użycie własnego pliku konfiguracyjnego agenta).
license_key
Wymagane Twój klucz licencyjny New Relic.
app_name
Wymagane Nazwa aplikacji, która jest instrumentowana. Więcej szczegółów można znaleźć w dokumentacji New Relic dotyczącej nazewnictwa aplikacji.
proxy_host
/ proxy_port
/ proxy_user
/ proxy_password
, / proxy_scheme
Opcjonalne Jeśli łączysz się z collector New Relic przez proxy, możesz skonfigurować ustawienia proxy za pomocą tych wartości. Więcej szczegółów znajdziesz w dokumentacji New Relic dotyczącej konfiguracji agenta Java.
labels
Opcjonalne
Dostosowywalne etykiety dla agenta. Etykiety to pary nazwa-wartość. Nazwy i wartości są ograniczone do 255 znaków i nie mogą zawierać dwukropków (:
) ani średników (;
). Wartość powinna być listą par klucz-wartość oddzielonych średnikami. Na przykład:
nr_java_agent_config:
...
labels: Server:One;Data Center:Primary
collector_host
Opcjonalne
Jeśli musisz określić host kolektora, możesz użyć zmiennej collector_host
. Więcej informacji znajdziesz w dokumentacji New Relic dotyczącej punktów końcowych kolektora.
Inna konfiguracja specyficzna dla agenta
Oprócz wymienionych powyżej, możesz skonfigurować następujące ustawienia za pośrednictwem tej roli 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
Więcej informacji na temat tych ustawień i innych można znaleźć w dokumentacji dotyczącej konfiguracji agenta Java. Jeśli musisz skonfigurować inne ustawienia, będziesz musiał dostarczyć w pełni określony plik newrelic.yml
. Więcej szczegółów można znaleźć w sekcji Użycie własnego pliku konfiguracyjnego agenta.
Użycie własnego pliku konfiguracyjnego agenta
Jeśli potrzebujesz określić ustawienia konfiguracyjne agenta poza tymi wymienionymi powyżej, musisz dostarczyć własny plik newrelic.yml
. Jakiekolwiek ustawienia w słowniku nr_java_agent_config
zostaną wtedy zignorowane. Ustaw zmienną nr_java_agent_config_file
na ścieżkę do swojego pliku, na przykład:
nr_java_agent_config_file: /path/to/your/newrelic.yml
Jeśli ten plik znajduje się na docelowych hostach zamiast w systemie uruchamiającym Ansible, ustaw nr_java_agent_config_file_is_remote
na true:
nr_java_agent_config_file_is_remote: true
Przykład użycia
Pliki examples/agent_install.yml i examples/inventory.yml dostarczają przykład, jak używać tej roli.
Po skonfigurowaniu zmiennych w examples/agent_install.yml
i inwentarza w examples/inventory.yml
, możesz przetestować rolę, uruchamiając Ansible:
ansible-playbook -i examples/inventory.yml examples/agent_install.yml
Niestandardowa instrumentacja
Jeśli chcesz włączyć niestandardową instrumentację przy użyciu XML, możesz podać listę plików XML w zmiennej custom_instrumentation_files
. Pliki te zostaną skopiowane na każdy host, na którym jest instalowany agent Java, jeśli określisz zmienną w swoim playbooku. Możesz także instalować różne pliki na różnych hostach, określając zmienną na poziomie hosta w swoim inwentarzu, lub różne pliki dla różnych grup hostów, określając zmienną na poziomie grupy, zarówno w inwentarzu, jak i w plikach znajdujących się w katalogu group_vars
.
Zobacz dokumentację Ansible na temat inwentarzy i zmiennych po więcej szczegółów na temat zarządzania zmiennymi dla hostów i grup. Możesz zobaczyć kilka przykładów w tym repozytorium, jak określić niestandardową instrumentację w plikach custom_instrumentation_playbook.yml oraz custom_instrumentation_inventory.yml.
Rozwój
Testowanie
Ta rola korzysta z molecule do testowania. Będziesz potrzebować Docker oraz Python w wersji 3.6 lub wyższej. Zainstaluj molecule z modułem docker, jeśli jeszcze tego nie zrobiłeś:
$ pip install molecule[docker]
To również zainstaluje ansible, jeśli zajdzie taka potrzeba. Aby uruchomić testy, wywołaj molecule test
z katalogu głównego.
$ git clone https://github.com/newrelic/newrelic-java-agent-ansible-role
$ cd newrelic-java-agent-ansible-role
$ molecule test
--> Macierz testowa
└── default
├── zależność
├── lint
├── czyszczenie
...
Społeczność
New Relic prowadzi i moderuje forum internetowe, na którym klienci mogą wchodzić w interakcje z pracownikami New Relic oraz innymi klientami, aby uzyskać pomoc i dzielić się najlepszymi praktykami. Jak we wszystkich oficjalnych projektach open source New Relic, istnieje powiązany temat społeczności w Nowym Relic Explorers Hub. Temat projektu można znaleźć tutaj:
https://discuss.newrelic.com/t/ansible-role-for-new-relic-java-agent/99654
Problemy / Prośby o ulepszenia
Problemy i prośby o ulepszenia można zgłaszać w zakładce Issues tego repozytorium. Przed zgłoszeniem nowego problemu przeszukaj i przejrzyj istniejące otwarte problemy.
Licencja
Projekt jest udostępniany na licencji wersji 2.0 Apache.
ansible-galaxy install newrelic.newrelic_java_agent