我使用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"
}
]
我的问题:
当我尝试将自己的参数(例如" 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已知属性"正如它提到的那样?
我了解到MFP Analytics正在使用ElasticSearch作为其引擎,我试图找到有关此内容的任何信息,但无济于事。
答案 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