2016-08-24 5 views
1

は、私は私のMobileFirst 7.1クライアントアプリからいくつかのイベントログ(iOS用ハイブリッド)解析のAPIを使用して撮影してきました。エクスポートMobileFirst Analyticsのデータ

次は、Analytics APIを使用してログを取得します。以下は、作業URL形式です:

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の結果をフィルタリングすることができますか?たとえば、 "Module": "Account"という値を持つすべてのアクティビティのログを取得したいとします。
  2. たとえば、タイムスタンプ値に基づいてJSON結果をソートするにはどうすればよいですか?
  3. 私は、URLの中に(例えば、「フィルタ」)私自身のパラメータを追加しようとしたとき、それはというエラーを返します:

    {「誤る」:「認識できないフィールド\」フィルタ\」(クラス「レベル」、「validationCode」、「serverIpAddress」、「mfpAppVersion」などの既知のプロパティ29個のプロパティとしてマークされていない)デバッグ\ "、\"オフセット\ "、\" mfpAppName \ "、\"イベント\ "、\" deviceOSversion \ "、\"時間\ "、\"領域\ "、\" [ソース:java.io.StringRead[email protected];行:1、列:33](参照チェーン:com.ibm.mobile.analytics)で\ n "endestateKey \"、\ "endDate \" [truncated]]) server.rest.params.ExportParameters [\ "search \"]) "}

    「29の既知のプロパティ」がどこにあるのかを知ることができますか?

私はMFP AnalyticsはそのエンジンとしてElasticSearchを使用していることを学んだと私は無駄にこれについての情報を見つけることを試みました。

答えて

4

目的を達成するには、Elasticsearch RESTエンドポイントを有効にする必要があります。あなたがLibertyサーバー上にいる場合、これは非常に簡単です。下のJNDIプロパティを使用してください。

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

Elasticsearch RESTエンドポイントを有効にすると、バックエンドに対してカスタムクエリを作成できます。あなたが役に立つかもしれません

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

一部Elasticsearch参照:

あなたは次のようなPOSTリクエストを書くことができます 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

+2

こんにちはシボレー、ElasticSearch RESTエンドポイントを使用しての先端に感謝。私は私のローカル開発マシンでそれをテストし、それは動作します。しかし、リモート開発サーバー(AWSでホストされている)で同じことをしようとしたとき、「何も応答できませんでした」というエラーが返されました。参考までに、私たちのリモート開発サーバーもLibertyサーバー上で動作しています。 AWS管理でポート9500を開き、server.xmlファイルの更新後にMFPインスタンスを再起動しました。私はここで何が欠けていますか?ありがとう! –

+2

worklight.propertiesファイル(http://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm)のMobileFirstサーバーで設定できるプロパティーと構成を説明するリンクが見つかりました。 worklight.monitor.doc/monitor/c_op_analytics_properties.htmlを参照してください。ただし、.propertiesファイルはXML 形式を使用しません。上記のJNDIプロパティを次のように変更すると正しいですか:wl.analytics.httpport = 9500 | wl.analytics.http.enabled = true? –

+2

1週間の試行錯誤の末、Analytics Serverで使用されるもう1つのserver.xmlファイルがあり、そこにJNDIプロパティが挿入されていることがわかりました。今はAWSサーバーから適切に動作しています。 –

関連する問題