导出MobileFirst Analytics数据

时间:2016-08-24 06:47:13

标签: json ibm-mobilefirst analytics

我使用Analytics API从我的MobileFirst 7.1客户端应用程序(适用于iOS的混合)中捕获了一些事件日志:

WL.Analytics.log({'Module': 'Account', 'Activity': 'Update account'}, 'Message Title');

我可以毫无问题地从Analytics控制台检索日志。

接下来,我将使用Analytics API检索日志。以下是工作网址格式:

http://localhost:10080/analytics-service/data/administration/apps/worklight/export?query={"event":"CustomData","format":"json","limit":10,"offset":0,"startDate":"2016-08-24","endDate":"*"}

返回以下JSON数据:

[
  {
    "mfpAppName": "myApp",
    "deviceOS": "ios",
    "appID": "worklight",
    "mfpAppVersion": "1.0",
    "deviceOSversion": "7",
    "deviceModel": "xxx",
    "deviceID": "xxx",
    "timestamp": "1472038253030",
    "Module": "Account",
    "Activity": "Update account"
  }
]

我的问题:

  1. 如何根据自定义数据过滤我的JSON结果?例如,我想检索具有以下值的所有活动的日志:"模块":"帐户"仅
  2. 如何根据时间戳值对JSON结果进行排序?
  3. 当我尝试将自己的参数(例如" filter")添加到网址中时,会返回错误信息:

    {" err":"无法识别的字段\" filter \" (类com.ibm.mobile.analytics.server.rest.params.ExportParameters),未标记为可忽略(29个已知属性:,\" level \",\" validationCode \&# 34;,\" serverIpAddress \",\" mfpAppVersion \",\" hours \",\" realm \" ,\" adapter \",\" debug \",\" offset \",\" mfpAppName \",\ " event \",\" deviceOSversion \",\" timestampKey \",\" endDate \" [truncated]] )\ n at [来源:java.io.StringReader@4c3deb33; line:1,column:33](通过参考链:com.ibm.mobile.analytics.server.rest.params.ExportParameters [\" search \"])"}

    我可以知道在哪里可以找到所有" 29已知属性"正如它提到的那样?

  4. 我了解到MFP Analytics正在使用ElasticSearch作为其引擎,我试图找到有关此内容的任何信息,但无济于事。

1 个答案:

答案 0 :(得分:4)

要实现您的目标,您必须启用Elasticsearch REST端点。如果您在Liberty服务器上,这非常简单,请使用下面的JNDI属性。

<jndiEntry jndiName="analytics/http.enabled" value="true"/>
<jndiEntry jndiName="analytics/httpport" value="9500"/>

启用Elasticsearch REST端点后,您可以针对后端编写自定义查询。

您可以编写类似于以下内容的POST请求:

curl 'http://localhost:9500/worklight/_search?sort=timestamp:asc' -d '{"query" : {"wildcard":{"worklight_data.Module": {"value": "Account"}}}}'

您可能会发现一些有用的Elasticsearch参考: https://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-uri-request.html https://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-body.html