create_device_logs_view.sql 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. CREATE OR REPLACE VIEW vw_device_logs AS
  2. SELECT
  3. NULL as id,
  4. cc.clientid,
  5. CASE
  6. WHEN cc.event = 'client.connected' THEN 'connect'
  7. WHEN cc.event = 'client.disconnected' THEN 'disconnect'
  8. ELSE 'unknown'
  9. END as event_type,
  10. cc.timestamp as event_time,
  11. NULL as topic,
  12. NULL as payload,
  13. NULL as qos,
  14. cc.username,
  15. cc.peername,
  16. cc.proto_ver,
  17. cc.node,
  18. cc.reason as details,
  19. cc.timestamp as created_at
  20. FROM vw_client_connections cc
  21. WHERE cc.event IN ('client.connected', 'client.disconnected')
  22. UNION ALL
  23. SELECT
  24. mm.id,
  25. mm.clientid,
  26. CASE
  27. WHEN mm.message_type = 'publish' THEN 'publish'
  28. WHEN mm.message_type = 'subscribe' THEN 'subscribe'
  29. WHEN mm.message_type = 'unsubscribe' THEN 'unsubscribe'
  30. ELSE mm.message_type
  31. END as event_type,
  32. mm.message_time as event_time,
  33. mm.topic,
  34. mm.payload,
  35. mm.qos,
  36. mm.username,
  37. NULL as peername,
  38. mm.proto_ver,
  39. mm.node,
  40. NULL as details,
  41. mm.created_at
  42. FROM mqtt_messages mm
  43. WHERE mm.message_type IN ('publish', 'subscribe', 'unsubscribe')
  44. ORDER BY event_time DESC;