Automatyczna instrumentacja serwisu WWW
Automatyczna instrumentacja serwisu WWW Instana umożliwia szybkie i łatwe monitorowanie serwisu WWW przez automatyczne wstrzyknięcie agentaJavaScript do serwisu WWW z minimalnymi krokami konfiguracji i bez zmian kodu serwisu WWW.
Ta funkcja jest dostępna tylko dla serwera Apache HTTP Server od czujnika HTTPd 1.2.12.
Uwagi: Monitorowanie użytkownika końcowego (EUM) i śledzenie HTTPd można włączać i wyłączać osobno, nawet jeśli mogą one współużytkować wewnątrzprocesowy plik binarny dla monitorowanej technologii. Jeśli jednak opcja EUM jest włączona, włącz również śledzenie, aby archiwizować monitorowanie na całej trasie.
- Włączanie automatycznej instrumentacji serwisu WWW
- Wyłączanie automatycznej instrumentacji serwisu WWW
- Przykłady wyrażeń zgodności
Włączanie automatycznej instrumentacji serwisu WWW
Aby włączyć automatyczną instrumentację serwisu WWW, wykonaj następujące kroki:
Krok 1: Tworzenie serwisów WWW
Aby utworzyć serwisy WWW, które mają być monitorowane, wykonaj następujące kroki:
W interfejsie użytkownika Instana przejdź do opcji Serwisy WWW i aplikacje mobilne i kliknij opcję Dodaj serwis WWW.
Wprowadź nazwę serwisu WWW, a następnie kliknij opcję Dodaj serwis WWW.

Od Wszystko jest gotowe! zapisz wartości parametrów
reportingUrl,keyijsAgentUrl. Należy podać te wartości w pliku konfiguracyjnym<instana-agent-dir>/etc/instana/configuration.yamlagenta Instana w kroku 2.
Krok 2: Modyfikowanie pliku konfiguracyjnego agenta
Należy zmodyfikować plik <instana-agent-dir>/etc/instana/configuration.yaml agenta Instana, w którym znajduje się serwer Apache HTTP Server . Następujące ustawienia konfiguracyjne dla automatycznej instrumentacji serwisu WWW są dostępne w pliku configuration.yaml agenta Instana:
#EUM
#com.instana.plugin.eum:
# instrumentation:
# #contentTypes: # List of the 'Content-Type' values for matching requests that need to be instrumented,
# # default values in the list are 'text/html' and 'application/xhtml+xml'.
# # - 'text/html'
# # - 'application/xhtml+xml'
# #aggressive: false # Indicates whether to instrument with the EUM JavaScript agent if Instana cannot determine
# # the 'Content-Type' of the request, default is false.
# #######################################################################################################
# # Following parameters are used as common EUM monitoring configuration.
# # They can be overwritten by specifying them in the website configuration.
# #######################################################################################################
# jsAgentUrl: 'https://eum.instana.io/eum.min.js' # EUM JavaScript agent download URL.
# reportingUrl: <reportingUrl> # The URL to which to send website monitoring data to.
# trackSessions: true # Indicates whether to enable session tracking, default is true.
# #######################################################################################################
# # Following parameters are used to configure each monitored website.
# # Optional parameters are commented out by default. Remove the hashtag (#) when needed.
# #######################################################################################################
# websites:
# - name: <WEBSITE_NAME> # Name of the website for the website configuration in Instana.
# key: <WEBSITE_KEY> # Monitoring key for the website configuration in Instana.
# #enabled: true # Indicates whether to enable website monitoring on this website, default is true.
# #reportingUrl: <reportingUrl> # The URL to which to send website monitoring data to. Overwrites upper-level setting.
# #jsAgentUrl: 'https://eum.instana.io/eum.min.js' # JavaScript agent download URL. Overwrites upper-level setting.
# #trackSessions: true # Indicates whether to enable session tracking, default is true. Overwrites upper-level setting.
# #mode: 'regular' # Mode for monitoring data transmission, default is 'regular'.
# # Available mode is 'regular'.
# selector: # List of match expressions to filter requests.
# matchExpressions: # When all match expressions are evaluated to true, the request is monitored.
# # At least one match expression with the key of the 'url' catalog must be defined.
# - key: 'url/hostname' # Key specified in the <catalog>/<resource> format.
# # Available catalogs in the key include 'url' for request filtering plus
# # 'container' and 'k8s' for Web Server infrastructure filtering.
# # Available keys:
# # 'url/hostname', 'url/path', and 'url/filename'
# # 'container/name' and 'container/imagename'
# # 'k8s/namespace', 'k8s/podname', and 'k8s/containername'
# operator: 'Equals' # Match expression operators: 'Contains', 'ContainsIgnoreCase', 'Equals',
# # 'EqualsIgnoreCase', 'StartWith', and 'StartWithIgnoreCase'.
# values: # List of match expression values.
# - 'example.com'
Postępuj zgodnie z komentarzami w każdej linii, aby skonfigurować automatyczną instrumentację strony internetowej EUM. Patrz następujący przykład:
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: demo
key: YOURWEBSITEKEYHERE
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'example.com'
W tym przykładzie konfiguracja umożliwia monitorowanie serwisów WWW dla wszystkich żądań HTTP kierowanych do hosta o nazwie example.com. Wygenerowane sygnalizatory są wysyłane do serwisu WWW demo z kluczem YOURWEBSITEKEYHERE w adresie URL raportowania https://eum.example.com.
Po zapisaniu zmodyfikowanego pliku configuration.yaml automatycznie pobierany i instalowany jest moduł HTTPd EUM. Moduł można zweryfikować, sprawdzając plik instana_tracing.conf w katalogu konfiguracyjnym HTTPd.
Krok 3: Zrestartuj serwer WWW
Jeśli parametr autoRestart jest ustawiony na wartość true w śledzeniu HTTPd, nie trzeba ręcznie restartować serwera HTTP Server Apache .
com.instana.plugin.httpd:
tracing:
autoRestart: true
W przeciwnym razie należy poprawnie zrestartować serwer Apache HTTP Server , aby załadować moduł EUM.
Krok 4: Sprawdzanie poprawności na panelu kontrolnym serwisu WWW
Upewnij się, że obciążenia są obecne w serwisie WWW, a następnie przejdź do panelu kontrolnego serwisu WWW w interfejsie użytkownika Instana, aby sprawdzić, czy dane monitorowania zostały odebrane.
Wyłączanie automatycznej instrumentacji serwisu WWW
Aby wyłączyć automatyczną instrumentację serwisu WWW, należy przekształcić w komentarz lub usunąć wszystkie wiersze pliku com.instana.plugin.eum w pliku configuration.yaml .
Przykłady wyrażeń zgodności
Przykłady filtrowania żądań na wielu hostach wirtualnych
W poniższych przykładach przedstawiono sposób definiowania wyrażeń zgodności w celu zapewnienia automatycznego instrumentowania serwisów WWW w przypadku wielu hostów VirtualHost w konfiguracji HTTPd serwera Apache .
Na przykład patrz następująca definicja VirtualHost :
Listen 80
<VirtualHost *:80>
DocumentRoot "/www/example1"
ServerName www.example.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/example2"
ServerName www.example.org
# Other directives here
</VirtualHost>
Przykład 1
Można użyć klucza url/hostname , aby dopasować ServerName , jak pokazano w następującej konfiguracji:
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: 'website1'
key: 'WEBSITEKEY1'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.com'
- name: 'website2'
key: 'WEBSITEKEY2'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.org'
W tej konfiguracji dane EUM dla żądań klienta hosta www.example.com są wyświetlane w panelu kontrolnym dla systemu website1 , a dane EUM dla żądań klienta hosta www.example.org są wyświetlane w panelu kontrolnym dla systemu website2.
Przykład 2
Można również użyć klucza url/filename , aby dopasować DocumentRoot , jak to pokazano w następującej konfiguracji:
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: 'website1'
key: 'WEBSITEKEY1'
selector:
matchExpressions:
- key: 'url/filename'
operator: 'StartWith'
values:
- '/www/example1'
- name: 'website2'
key: 'WEBSITEKEY2'
selector:
matchExpressions:
- key: 'url/filename'
operator: 'StartWith'
values:
- '/www/example2'
W tej konfiguracji dane EUM dla żądań klientów do dokumentów w produkcie /www/example1 są wyświetlane na panelu kontrolnym dla produktu website1 , a dane EUM dla żądań klientów do dokumentów w produkcie /www/example2 są wyświetlane na panelu kontrolnym dla produktu website2.
Przykład 3
Można również użyć klucza url/path do dalszego filtrowania żądań, które mają być monitorowane, jak pokazano w następującej konfiguracji:
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: 'website1'
key: 'WEBSITEKEY1'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.com'
- key: 'url/path'
operator: 'StartWith'
values:
- '/products'
- '/carts'
- name: 'website3'
key: 'WEBSITEKEY3'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.com'
- key: 'url/path'
operator: 'StartWith'
values:
- '/offers'
- '/employees'
- name: 'website2'
key: 'WEBSITEKEY2'
selector:
matchExpressions:
- key: 'url/filename'
operator: 'StartWith'
values:
- '/www/example2'
W tej konfiguracji dane EUM dla żądań klientów hosta www.example.com są dzielone na dwa serwisy WWW: website1 dla żądań, których adres URL zaczyna się od /products lub /carts i website3 dla żądań, których adres URL zaczyna się od /offers lub /employees. Dane EUM dla żądań klientów do dokumentów w programie /www/example2 są wyświetlane na panelu kontrolnym dla produktu website2.
Przykłady filtrowania infrastruktury
W poniższych przykładach przedstawiono sposób definiowania wyrażeń zgodności w celu zapewnienia automatycznego instrumentowania serwisów WWW w konkretnym wdrożeniu infrastruktury.
Uwaga: W przeciwieństwie do filtrowania żądań, filtrowanie infrastruktury jest opcjonalne.
Przykład 1: Konteneryzowany serwis WWW wdrożony na hoście
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: 'containerized website'
key: 'WEBSITEKEY1'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.com'
- key: 'container/name'
operator: 'Equals'
values:
- 'example-app'
W tej konfiguracji dane EUM dla żądań klienta hosta www.example.com są wyświetlane na panelu kontrolnym dla produktu containerized website , jeśli nazwa kontenera wdrażania serwisu WWW jest zgodna z nazwą example-app.
Przykład 2: Konteneryzowany serwis WWW wdrożony w środowisku Kubernetes
com.instana.plugin.eum:
instrumentation:
jsAgentUrl: 'https://eum.instana.io/eum.min.js'
reportingUrl: 'https://eum.example.com'
trackSessions: true
websites:
- name: 'k8s website'
key: 'WEBSITEKEY1'
selector:
matchExpressions:
- key: 'url/hostname'
operator: 'Equals'
values:
- 'www.example.com'
- key: 'k8s/namespace'
operator: 'Equals'
values:
- 'prod-example'
- key: 'k8s/podname'
operator: 'Equals'
values:
- 'example-pod'
- key: 'k8s/containername'
operator: 'Equals'
values:
- 'example-app'
W tej konfiguracji dane EUM dla żądań klienta hosta www.example.com są wyświetlane na panelu kontrolnym dla produktu k8s website , gdy serwis WWW jest wdrożony w kontenerze example-app w zasobniku example-pod przestrzeni nazw prod-example w środowisku Kubernetes .