Willkommen bei der Einführung in den Service Analytics. Diese Seite ist der Ausgangspunkt der Informationen zum Service Analytics. Dieser Abschnitt beschäftigt sich mit folgenden Themen:
Die Serviceanwendung Analytics wurde erstellt, um die Verwendung von dojox.analytics und zugehöriger Plug-ins aus Dojo Toolkit for JavaScript zu ergänzen. Analytics ermöglicht, Ereignisse (Dojo, Mausklicks usw.) zu verfolgen und Protokollinformationen aus dem clientseitigen Code zu generieren. Die Analyseinformationen werden häufig im Client verwaltet und unter Umständen an mehrere verschiedene Analyseserver gesendet. Die kann aufwendig sein und setzt häufig die Kommunikation mit Domänen außerhalb des Servers voraus, der die Anwendung bereitstellt. Der Service Analytics bietet eine Möglichkeit, das Multiplexen der Analyse und die Protokollierung auf der Serverseite zu verarbeiten. Der vorhandene dojox.analytics-Code im Client sendet die Ereignisse an denselben Server, der auch die Anwendung bereitstellt, wodurch alle domänenübergreifenden Probleme verhindert werden.
Auf der Serverseite stellt die Serviceanwendung Analytics eine serverseitige JAX-RS-Ressource bereit, die die vom clientseitigen dojox.analytics-Code gesendeten Anforderungen akzeptiert. Es können Servletinitialisierungsparameter in der Serviceanwendung Analytics definiert werden, um festzulegen, wie die Analyseereignisse verarbeitet werden. Standardmäßig werden alle Ereignisse an eine einzige Protokolldatei, analytics_default.log, gesendet.
Vorausgesetztes Produkt | Version |
---|---|
Java Technology Edition | 5.0 und höher |
Java-EE-Anwendungsserver (Java Platform, Enterprise Edition) der Version 5 und höher | WebSphere Application Server Version 8.5 |
Web-Browser | Jeder moderne Web-Browser wie Internet Explorer 7 und höher, Mozilla Firefox 3.x und höher, Google Chrome, Safari, Opera |
Der Service Analytics ist nur hilfreich, wenn der clientseitige JavaScript-Code dojox.analytics nutzt. Für den Zugriff auf die Tools in dojox.analytics muss der clientseitige JavaScript-Code nur die richtige Anweisung "dojo.require" enthalten. Wenn diese Abhängigkeit integriert wird, werden mehrere Optionen für die Generierung von Ereignissen bereitgestellt. Sehen Sie sich folgende Beispiele an:
Möglichkeit zum Generieren von Ereignissen aktivieren.
dojo.require("dojox.analytics.plugins.dojo");
dojox.analytics-Ereignis mit beliebigem Text generieren.
console.rlog("Beliebige Zeichenfolge");
Protokollierung einer Zeitmarke mit hoher Genauigkeit.
dojox.analytics.addData("timestamp", [new Date().getTime(), "on-load executed"]);
Neben der Auswahl der von dojox.analytics zu verfolgenden Ereignisse muss die Identifizierung des relativen oder absoluten URL des Analyseservice konfiguriert werden. Sie können auch die folgenden Parameter verwenden:
Parameter djConfig | Bedeutung und gültige Werte | Erforderlich? |
---|---|---|
analyticsUrl: | URL des Analyseservice, entweder vollständig qualifiziert oder relativ zur aktuellen Ressource | Ja |
sendMethod | 'script' oder 'xhrPost' (Standardwert) | sendMethod: 'script' ist erforderlich, wenn sich der Analyseservice in einer anderen Domäne als die Verweisseite befindet. |
sendInterval | Anzahl der Millisekunden für die Ansammlung von Ereignissen, bevor diese an den Analyseservice gesendet werden | Nein, Standardwert sind 5000 Millisekunden |
Die Standardkonfiguration sendet alle Ereignisse an eine einzige Protokolldatei, analytics_default.log, die sich in dem Verzeichnis befindet, das mit der Systemeigenschaft "java.io.tmpdir" für den Server in der Server-JVM definiert wurde. Der Name und der Pfad dieser Ausgabeprotokolldatei kann über Eigenschafteneinstellungen in der Datei "web.xml" angepasst werden. Dazu müssen Sie den vollständigen Pfad der Datei, in der Sie die Ereignisse protokollieren möchten, mit dem Parameterwert für den Parameternamen com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger angeben. Außerdem müssen Sie den Wert '1.0' angeben, um die vom Service zu verwendende Syntaxversion anzugeben. Dies ist erforderlich, um eine künftige Versionssteuerung zu ermöglichen.
Der folgende Teil der Datei "web.xml" veranschaulicht die Verwendung:
... <init-param> <param-name>com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger</param-name> <param-value>1.0,/tmp/events.log</param-value> </init-param> ...
Außerdem können Sie das Format des Protokolls anpassen, indem Sie angeben, welche weiteren Informationen in jedem Protokolleintrag aufgezeichnet werden. Hierfür können Sie Eigenschafteneinstellungen in der Datei "web.xml" verwenden. Geben Sie einfach eine oder mehrere vordefinierte Schlüsselwörter im Parameterwert für den Parameternamen com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger.LogFormat an.
Der folgende Teil der Datei "web.xml" veranschaulicht die Verwendung:
... <init-param> <param-name>com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger.LogFormat</param-name> <param-value>CLIENT_IP,CLIENT_SESSION,HTTP_REFERER</param-value> </init-param> ...
Sie können zwischen den folgenden vordefinierten Schlüsselwörtern wählen:
Protokollformateintrag | Protokollierte Informationen |
---|---|
CLIENT_SESSION | Protokolliert HttpServletRequest#getRequestedSessionId(), die vom Client angegebene Sitzungs-ID der Anforderung. |
CLIENT_SESSION_FORCED | Protokolliert HttpServletRequest#getSession(true).getId() und erzwingt dabei die Erstellung einer HTTP-Sitzung, wenn diese nicht vorhanden ist, und die Protokollierung der ID dieser Sitzung. |
CLIENT_IP | Protokolliert HttpServletRequest#getRemoteAddr(), die IP-Adresse (Internet Protocol) des Clients. |
HTTP_REFERER | Protokolliert HttpServletRequest#getHeader(), den Anforderungsheader. |
Der nächste Schritt ist die Verwendung des Service Analytics für das Starten der Anwendung und deren Konfiguration. Zum Starten des Service müssen Sie nur die EAR-Datei installieren und implementieren.
Wenn ein Client dojox.analytics verwendet, führen die generierten Ereignisse dazu, dass HTTP-Anforderungen an den Analyseserver gesendet werden. Der Service Analytics verarbeitet diese Anforderungen über eine REST-Schnittstelle (Representation State Transfer). Sehen Sie sich die folgende Tabelle an, in der die verfügbaren Operationen beschrieben werden.
Der Service Analytics verarbeitet die Anforderungen, die an "http://<Server>:<Port>/<Kontextstammverzeichnis>/<URL-Muster>/analytics/logger" gesendet werden. Das Kontextstammverzeichnis wird von der Datei "application.xml" definiert, wenn Ihre Webarchivdatei (.war) in eine Unternehmensarchivdatei (.ear) gepackt ist. Wenn die WAR-Datei eigenständig installiert wird, wird das Kontextstammverzeichnis vom Benutzer während der Installation definiert. Die URI-Zuordnung wird in der Datei "WEB-INF/web.xml" in der WAR-Datei definiert.
In der bereitgestellten Datei "appsvcs-analytics.ear" ist in der Datei "application.xml" das Kontextstammverzeichnis "/appsvcs-analytics" und in der Datei "web.xml" das URL-Muster "/rest/*" definiert.
Operationsbeschreibung | Methode | URI | Parameter |
---|---|---|---|
Meldet eine Liste mit Ereignissen. | GET | /appsvcs-analytics/rest/analytics/logger | Es gibt zwei erforderliche Abfrageparameter (id und data) und einen optionalen Parameter (callback). |
Meldet eine Liste mit Ereignissen. | POST | /appsvcs-analytics/rest/analytics/logger | Die POST-Anforderung verwendet dieselben Parameter, aber sie sind nicht Teil der URI-Abfrage, sondern Teil der HTTP-Anforderung. Beispiele finden Sie im Folgenden. |
Die folgende Tabelle enthält eine Beschreibung für jeden der Parameter.
Abfrageparameter | Beschreibung |
---|---|
id | Eindeutige Ereignis-ID |
data | Array von Ereignissen im JSON-Format |
callback | Name der JavaScript-Methode, die in die Antwort eingeschlossen werden soll. Sehen Sie sich die folgenden Informationen zum Format der Antwort an. |
Antworten auf die POST- und GET-Anforderungen sind nicht anders. Das Format der Antwort weicht jedoch geringfügig ab, wenn der optionale Parameter "callback" in der Anforderung enthalten ist. Das Format wird in den folgenden Beispielen beschrieben.
Beschreibung | Beispielanforderung | Beispielantwort |
---|---|---|
GET mit callback | GET /appsvcs-analytics/rest/analytics/logger?id=1&callback=method &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] | method({"eventsReceived":1,"id":"1"}) |
GET ohne callback | GET /appsvcs-analytics/rest/analytics/logger?id=1 &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] | {"eventsReceived":1,"id":"1"} |
POST mit callback | POST /appsvcs-analytics/rest/analytics/logger, HTTP body: id=1&callback=method &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] | method({"eventsReceived":1,"id":"1"}) |
POST ohne callback | POST /appsvcs-analytics/rest/analytics/logger, HTTP body: id=1 &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] | {"eventsReceived":1,"id":"1"} |
Jede Anforderung, die an den REST-Service gesendet wird, führt zu einer HTTP-Antwort, die einen Statuscode enthält, der den Erfolgs- oder Fehlertyp angibt. Diese Ergebnisse lassen sich problemlos gängigen HTTP-Statuscodes zuordnen.
Statuscode | Beschreibung |
---|---|
200 | Die angeforderte Operation war erfolgreich. |
400 | Die Anforderung enthält ungültige Werte in den Parametern oder im Anforderungshauptteil. |
405 | Die REST-Anforderung enthält einen nicht unterstützten URI. |
406 | Der Client unterstützt das erforderliche JSON-Format, das in den Anforderungsheadern angegeben ist, nicht. |
415 | Die Clientanforderung enthält einen nicht unterstützten Inhaltstyp. |
500 | Es ist ein unerwarteter Fehler im Server aufgetreten. |
In diesem Abschnitt wird beschrieben, wie Sie den Service Analytics in Version 8.5 von IBM WebSphere Application Server installieren. Es wird vorausgesetzt, dass Sie sich mit der Installation und Verwaltung von Anwendungen im Anwendungsserver auskennen.
Suchen Sie die EAR-Datei des Service Analytics, die mit Ihrer Produktinstallation bereitgestellt wird. Sie finden die EAR-Datei in Ihrer Installationsverzeichnisstruktur, in der Sie IBM WebSphere Application Server Web 2.0 and Mobile Toolkit installiert haben. Angenommen, Sie haben das Toolkit im folgenden Verzeichnis installiert:
Plattform | Position |
---|---|
Linux und UNIX: | /opt/WebSphere/Web20Mobile |
Windows: | c:\WebSphere\Web20Mobile |
In diesem Fall finden Sie die EAR-Datei im folgenden Verzeichnis:
Plattform | Position |
---|---|
Linux und UNIX: | /opt/WebSphere/Web20Mobile/installableApps/application_services/analytics/appsvcs-analytics.ear |
Windows: | c:\WebSphere\Web20Mobile\installableApps\application_services\analytics\appsvcs-analytics.ear |
Installieren Sie das Präsentationsbeispiel für den Demo-Client, und rufen Sie dann in Ihrem Web-Browser die Installation Ihres Anwendungsservers auf: http://<Hostname des Anwendungsservers>:<port>/appsvcs-analytics/.
Der Hostname des Anwendungsservers und der Port sind Angaben, die für Ihre Anwendungsserverinstallation spezifisch sind. Ein Web-Container-Port für die Standardinstallation eines Anwendungsservers ist 9080. Wenn Sie Ihren Web-Browser auf derselben Workstation wie Ihre Anwendungsserverinstallation ausführen und alle Standardwerte übernommen haben, verwenden Sie den folgenden URL: http://localhost:9080/appsvcs-analytics/.