分析服务入门

欢迎阅读分析服务入门。本页面是您了解分析服务的起始点。包括下列主题:

概述

分析服务应用程序的创建目的是对 Dojo Toolkit for JavaScript 中 dojox.analytics 和相关插件的使用进行补充。分析提供了跟踪事件(Dojo、鼠标单击等)和从客户机端代码生成日志记录的一种方式。通常会在客户机上管理分析信息,并可能将这些信息发送至多个不同的分析服务器。此过程可能比较麻烦,并通常需要与提供该应用程序的服务器以外的域进行通信。分析服务提供了在服务器端对分析和日志记录的多路复用进行处理的一种方式。客户机上的现有 dojox.analytics 代码将事件发送至提供该应用程序的服务器,这样就可以消除所有跨域问题。

在服务器上,分析服务应用程序包括服务器端 JAX-RS 资源,它接受从客户机的 dojox.analytics 代码发送的请求。可以在分析服务应用程序中设置 servlet 初始化参数,以对该应用程序处理分析事件的方式进行配置。缺省情况下,会将所有事件发送至单个日志文件 analytics_default.log。

先决条件

产品先决条件 版本
Java Technology Edition 5.0 及更高版本
Java Platform, Enterprise Edition 5 (Java EE) 应用程序服务器及更高版本

WebSphere Application Server V8.5

Web 浏览器 任何现代 Web 浏览器,如 Internet Explorer 7 及更高版本、Mozilla Firefox 3.x 及更高版本、Google Chrome、Safari 和 Opera

使用分析服务

仅当客户机端 JavaScript 正在使用 dojox.analytics 时,分析服务才有用。要从 dojox.analytics 访问工具,客户机端 JavaScript 仅需要包括正确的 dojo.require 语句。引入该依赖关系后,就可以使用多个选项来生成事件。 请参阅下列示例:

启用生成事件的功能。

dojo.require("dojox.analytics.plugins.dojo");

生成包含任意文本的 dojox.analytics 事件。

console.rlog("Any quoted string goes here.");

使用高精度的时间戳记记录某些对象。

dojox.analytics.addData("timestamp", [new Date().getTime(), "on-load executed"]);

除选择 dojox.analytics 将跟踪的事件以外,还需要用于确定分析服务的相对或绝对 URL 的配置。您也可以使用以下参数:

djConfig 参数 含义和可能的值 是否必需
analyticsUrl: 分析服务的 URL,它是标准 URL 或当前资源的相对 URL
sendMethod “script”或“xhrPost”(缺省值) sendMethod:如果分析服务与引用页位于不同的域中,那么需要使用“script”。
sendInterval 在将事件发送至分析服务之前对事件进行累加的毫秒数 否,缺省为 5000 毫秒

缺省配置会将所有事件发送至单个日志文件 analytics_default.log,该文件位于服务器 JVM 中服务器 java.io.tmpdir 系统属性定义的目录中。可以通过 web.xml 文件中的属性设置来定制此输出日志文件名称和路径。要进行此定制,您将需要在 param-name com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger 的 param-value 中指定要将事件记录至的文件的完整路径。您还需要指定值“1.0”,以确定该服务要使用的语法版本。必须进行此操作,并且其目的只是为了可在将来进行版本控制。

web.xml 文件的以下部分说明了此参数的使用:

...
<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>
...

通过指定将哪些其他信息记录为每个日志条目的一部分,您还可以对日志的格式进行进一步定制。可以通过 web.xml 文件中的属性设置来执行此操作。要执行此操作,只需在 param-name com.ibm.ws.mobile.appsvcs.analytics.logger.LocalFileLogger.LogFormat 的 param-value 中指定一个或多个预定义关键字。

web.xml 文件的以下部分说明了此参数的使用:

...
<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>
...

可以从以下任何预定义关键字中进行选择:

日志格式条目 记录的内容
CLIENT_SESSION 将记录 HttpServletRequest#getRequestedSessionId(),即客户机指定的请求会话标识
CLIENT_SESSION_FORCED 记录 HttpServletRequest#getSession(true).getId(),即如果 HTTP 会话不存在,那么将强制创建该会话,并记录其会话标识
CLIENT_IP 记录 HttpServletRequest#getRemoteAddr(),即客户机的因特网协议 (IP) 地址
HTTP_REFERER 记录 HttpServletRequest#getHeader(),即请求头

使用分析服务的下一步是启动该应用程序并对其进行配置。启动它仅需要安装和部署 .ear 文件。

分析服务的 REST 接口

当客户机使用 dojox.analytics 时,它生成的事件会导致将 HTTP 请求发送至分析服务器。分析服务通过显示具象状态传输 (REST) 接口来处理这些请求。请参阅下表,其中描述了可用的操作。

分析服务将处理以 http://<server>:<port>/<context-root>/<url-pattern>/analytics/logger 作为目标的请求。如果 Web 归档 (.war) 文件打包在企业归档 (.ear) 文件中,那么上下文根将由 application.xml 文件定义。如果 .war 单独安装,那么上下文根将由用户在安装时定义。URI 映射在 .war 文件中的 WEB-INF/web.xml 中定义。

在所提供的 appsvcs-analytics.ear 中,application.xml 文件指定上下文根“/appsvcs-analytics”,而 web.xml 文件指定 URL 模式“/rest/*”。

操作描述 方法 URI 参数
报告一列事件 GET /appsvcs-analytics/rest/analytics/logger 有两个必需的查询参数(id 和 data)以及一个可选的查询参数 (callback)。
报告一列事件 POST /appsvcs-analytics/rest/analytics/logger POST 请求使用相同的参数,但这些参数不是 URI 查询的一部分。相反,它们位于 HTTP 请求的主体中。下文提供了示例。

下表提供了每个参数的描述。

查询参数 描述
id 唯一的事件标识
data JSON 格式的事件数组
callback 应包括在响应中的 JavaScript 方法的名称。请参阅有关响应格式的以下信息。

对 POST 请求和 GET 请求的响应没有什么不同。但是,如果请求中包括可选的 callback 参数,那么响应的格式略有不同。以下示例对格式进行了概述。

描述 样本请求 样本响应
带有 callback 的 GET GET /appsvcs-analytics/rest/analytics/logger?id=1&callback=method &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] method({"eventsReceived":1,"id":"1"})
不带 callback 的 GET GET /appsvcs-analytics/rest/analytics/logger?id=1 &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] {"eventsReceived":1,"id":"1"}
带有 callback 的 POST POST /appsvcs-analytics/rest/analytics/logger, HTTP body: id=1&callback=method &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] method({"eventsReceived":1,"id":"1"})
不带 callback 的 POST POST /appsvcs-analytics/rest/analytics/logger, HTTP body: id=1 &data=[{"plugin":"dojo","data":{"locale":"en-us"}}] {"eventsReceived":1,"id":"1"}

发送至 REST 服务的每个请求都会导致一个 HTTP 响应,该响应包括用于指示成功或失败类型的状态码。这些结果与公共 HTTP 状态码间存在良好的映射。

状态码 描述
200 请求的操作已成功。
400 请求的参数或请求主体中包括不正确的值。
405 REST 请求中存在不受支持的 URI。
406 根据请求头,客户机不支持必需的 JSON 格式。
415 客户机请求包括不受支持的内容类型。
500 服务器中发生意外错误。

安装分析服务

WebSphere Application Server 安装指示信息

本节描述在 IBM WebSphere Application Server V8.5 上安装分析服务的过程。假定您熟悉应用程序服务器的应用程序安装和管理工作。

在您开始之前

找到产品安装随附提供的分析服务企业归档 (EAR) 文件。可以在已安装 IBM WebSphere Application Server Web 2.0 and Mobile Toolkit 的安装树中找到该 EAR 文件。例如,如果已将 Toolkit 安装在以下位置中:

平台 位置
Linux 和 UNIX: /opt/WebSphere/Web20Mobile
Windows: c:\WebSphere\Web20Mobile

那么可以在以下位置找到该 EAR 文件:

平台 位置
Linux 和 UNIX: /opt/WebSphere/Web20Mobile/installableApps/application_services/analytics/appsvcs-analytics.ear
Windows: c:\WebSphere\Web20Mobile\installableApps\application_services\analytics\appsvcs-analytics.ear

使用管理控制台安装分析服务

  1. 登录到应用程序服务器的管理控制台。
  2. 浏览至应用程序 > 新建应用程序。(注:在 WebSphere Application Server V6.1 中,选择安装新的应用程序
  3. 选择新建企业应用程序。(注:在 WebSphere Application Server V6.1 中,跳过此步骤)
  4. 浏览文件系统,并选择您先前找到的 appsvcs-graphics.ear 文件。单击下一步
  5. 单击下一步以准备安装应用程序。(注:在 WebSphere Application Server V6.1 中,跳过此步骤)
  6. 单击下一步以接受缺省安装选项。
  7. 单击下一步以接受有关将模块映射至服务器的缺省选项。
  8. 单击下一步以接受有关模块元数据的缺省选项。(注:在 WebSphere Application Server V6.1 和 V7 中,跳过此步骤)
  9. 单击下一步以接受有关映射 Web 模块的虚拟主机的缺省选项。
  10. 查看安装选项摘要。
  11. 单击完成
  12. 单击保存到主配置
  13. 浏览至应用程序 > 应用程序类型 > WebSphere 企业应用程序。(注:在 WebSphere Application Server V6.1 中,浏览至应用程序 > 企业应用程序
  14. 选择 IBM WebSphere Application Server - 分析服务,然后单击启动

访问已安装的应用程序演示客户机

安装演示客户机的展示样本,并将 Web 浏览器指向您的应用程序服务器安装:http://<application server hostname>:<port>/appsvcs-analytics/

应用程序服务器主机名和端口号随应用程序服务器安装的不同而有所变化。应用程序服务器缺省安装的 Web 容器端口为 9080。如果您在安装了应用程序服务器的工作站上运行 Web 浏览器,并且已接受所有缺省值,请使用以下 URL:http://localhost:9080/appsvcs-analytics/


使用条款 | 反馈