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

Molecule Test

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

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.

O projekcie

Role to install New Relic APM Java agent

Zainstaluj
ansible-galaxy install newrelic.newrelic_java_agent
Licencja
apache-2.0
Pobrania
12k
Właściciel