9.3.6. Implementing onEvent()
onEvent()
は、バックエンドに渡されたイベントを Telemetry システムに送信します。サンプルアプリケーションでは、HTTP POST ペイロードを Telemetry サーバーに送信します。サンプル Telemetry サーバーアプリケーションは、http://little-telemetry-back-end-che.apps-crc.testing
の URL で OpenShift にデプロイされます。
例9.7 AnalyticsManager.java
@Override public void onEvent(AnalyticsEvent event, String ownerId, String ip, String userAgent, String resolution, Map<String, Object> properties) { HttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://little-telemetry-backend-che.apps-crc.testing/event"); HashMap<String, Object> eventPayload = new HashMap<String, Object>(properties); eventPayload.put("event", event); StringEntity requestEntity = new StringEntity(new JsonObject(eventPayload).toString(), ContentType.APPLICATION_JSON); httpPost.setEntity(requestEntity); try { HttpResponse response = httpClient.execute(httpPost); } catch (IOException e) { e.printStackTrace(); } }
これにより、HTTP 要求が Telemetry サーバーに送信され、短期間同じイベントが自動的に遅延します。デフォルトの期間は 1500 ミリ秒です。サブクラスを設定して期間を変更できます。