Example #1
0
func (h *MetricsHooks) OnClose(sess *server.Session) error {
	_, authExtra, err := extractSession(sess)
	if err != nil {
		return err
	}

	err = h.client.AddEvent("CloseSession", &sessionCloseEvent{
		Keen: keen.KeenProperties{
			Timestamp: keen.Timestamp(sess.Start()),
		},
		OS:       authExtra.OS,
		ClientId: sess.Id(),
		User:     authExtra.AuthToken,
		Version:  authExtra.ClientVersion,
		Reason:   "", // XXX
		Duration: time.Since(sess.Start()).Seconds(),
	})

	if err != nil {
		h.Error("Failed to record CloseSession event: %v", err)
	}

	return nil
}