Commit 33c6aeccff507d01cae858b6c5d132c37f1cfe33

Authored by Dima Landiak
Committed by Andrew Shvayka
1 parent 72d7c0bb

additional improvements to the docs of the event controller (event filters)

@@ -130,17 +130,47 @@ public class ControllerConstants { @@ -130,17 +130,47 @@ public class ControllerConstants {
130 130
131 protected static final String MARKDOWN_CODE_BLOCK_START = "```json\n"; 131 protected static final String MARKDOWN_CODE_BLOCK_START = "```json\n";
132 protected static final String MARKDOWN_CODE_BLOCK_END = "\n```"; 132 protected static final String MARKDOWN_CODE_BLOCK_END = "\n```";
133 - protected static final String EVENT_ERROR_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"ERROR\", \"server\": \"ip-172-31-24-152\", " +  
134 - "\"method\": \"onClusterEventMsg\", \"error\": \"Error Message\" }" + MARKDOWN_CODE_BLOCK_END;  
135 - protected static final String EVENT_LC_EVENT_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"LC_EVENT\", \"server\": \"ip-172-31-24-152\", \"event\":" +  
136 - " \"STARTED\", \"status\": \"Success\", \"error\": \"Error Message\" }" + MARKDOWN_CODE_BLOCK_END;  
137 - protected static final String EVENT_STATS_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"STATS\", \"server\": \"ip-172-31-24-152\", \"messagesProcessed\": 10, \"errorsOccurred\": 5 }" + MARKDOWN_CODE_BLOCK_END;  
138 - protected static final String DEBUG_FILTER_OBJ = "\"msgDirectionType\": \"IN\", \"server\": \"ip-172-31-24-152\", \"dataSearch\": \"humidity\", " +  
139 - "\"metadataSearch\": \"deviceName\", \"entityName\": \"DEVICE\", \"relationType\": \"Success\"," +  
140 - " \"entityId\": \"de9d54a0-2b7a-11ec-a3cc-23386423d98f\", \"msgType\": \"POST_TELEMETRY_REQUEST\"," +  
141 - " \"isError\": \"false\", \"error\": \"Error Message\" }";  
142 - protected static final String EVENT_DEBUG_RULE_NODE_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"DEBUG_RULE_NODE\"," + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END;  
143 - protected static final String EVENT_DEBUG_RULE_CHAIN_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"DEBUG_RULE_CHAIN\"," + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END; 133 + protected static final String EVENT_ERROR_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START +
  134 + "{\n" +
  135 + " \"eventType\":\"ERROR\",\n" +
  136 + " \"server\":\"ip-172-31-24-152\",\n" +
  137 + " \"method\":\"onClusterEventMsg\",\n" +
  138 + " \"errorStr\":\"Error Message\"\n" +
  139 + "}" +
  140 + MARKDOWN_CODE_BLOCK_END;
  141 + protected static final String EVENT_LC_EVENT_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START +
  142 + "{\n" +
  143 + " \"eventType\":\"LC_EVENT\",\n" +
  144 + " \"server\":\"ip-172-31-24-152\",\n" +
  145 + " \"event\":\"STARTED\",\n" +
  146 + " \"status\":\"Success\",\n" +
  147 + " \"errorStr\":\"Error Message\"\n" +
  148 + "}" +
  149 + MARKDOWN_CODE_BLOCK_END;
  150 + protected static final String EVENT_STATS_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START +
  151 + "{\n" +
  152 + " \"eventType\":\"STATS\",\n" +
  153 + " \"server\":\"ip-172-31-24-152\",\n" +
  154 + " \"messagesProcessed\":10,\n" +
  155 + " \"errorsOccurred\":5\n" +
  156 + "}" +
  157 + MARKDOWN_CODE_BLOCK_END;
  158 + protected static final String DEBUG_FILTER_OBJ =
  159 + " \"msgDirectionType\":\"IN\",\n" +
  160 + " \"server\":\"ip-172-31-24-152\",\n" +
  161 + " \"dataSearch\":\"humidity\",\n" +
  162 + " \"metadataSearch\":\"deviceName\",\n" +
  163 + " \"entityName\":\"DEVICE\",\n" +
  164 + " \"relationType\":\"Success\",\n" +
  165 + " \"entityId\":\"de9d54a0-2b7a-11ec-a3cc-23386423d98f\",\n" +
  166 + " \"msgType\":\"POST_TELEMETRY_REQUEST\",\n" +
  167 + " \"isError\":\"false\",\n" +
  168 + " \"errorStr\":\"Error Message\"\n" +
  169 + "}";
  170 + protected static final String EVENT_DEBUG_RULE_NODE_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{\n" +
  171 + " \"eventType\":\"DEBUG_RULE_NODE\",\n" + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END;
  172 + protected static final String EVENT_DEBUG_RULE_CHAIN_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{\n" +
  173 + " \"eventType\":\"DEBUG_RULE_CHAIN\",\n" + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END;
144 174
145 protected static final String FILTER_VALUE_TYPE = NEW_LINE + "## Value Type and Operations" + NEW_LINE + 175 protected static final String FILTER_VALUE_TYPE = NEW_LINE + "## Value Type and Operations" + NEW_LINE +
146 "Provides a hint about the data type of the entity field that is defined in the filter key. " + 176 "Provides a hint about the data type of the entity field that is defined in the filter key. " +
@@ -68,6 +68,37 @@ import static org.thingsboard.server.controller.ControllerConstants.TENANT_ID_PA @@ -68,6 +68,37 @@ import static org.thingsboard.server.controller.ControllerConstants.TENANT_ID_PA
68 @RequestMapping("/api") 68 @RequestMapping("/api")
69 public class EventController extends BaseController { 69 public class EventController extends BaseController {
70 70
  71 + private static final String EVENT_FILTER_DEFINITION = "# Event Filter Definition" + NEW_LINE +
  72 + "5 different eventFilter objects could be set for different event types. " +
  73 + "The eventType field is required. Others are optional. If some of them are set, the filtering will be applied according to them. " +
  74 + "See the examples below for all the fields used for each event type filtering. " + NEW_LINE +
  75 + "Note," + NEW_LINE +
  76 + " * 'server' - string value representing the server name, identifier or ip address where the platform is running;\n" +
  77 + " * 'errorStr' - the case insensitive 'contains' filter based on error message." + NEW_LINE +
  78 + "## Error Event Filter" + NEW_LINE +
  79 + EVENT_ERROR_FILTER_OBJ + NEW_LINE +
  80 + " * 'method' - string value representing the method name when the error happened." + NEW_LINE +
  81 + "## Lifecycle Event Filter" + NEW_LINE +
  82 + EVENT_LC_EVENT_FILTER_OBJ + NEW_LINE +
  83 + " * 'event' - string value representing the lifecycle event type;\n" +
  84 + " * 'status' - string value representing status of the lifecycle event." + NEW_LINE +
  85 + "## Statistics Event Filter" + NEW_LINE +
  86 + EVENT_STATS_FILTER_OBJ + NEW_LINE +
  87 + " * 'messagesProcessed' - the minimum number of successfully processed messages;\n" +
  88 + " * 'errorsOccurred' - the minimum number of errors occurred during messages processing." + NEW_LINE +
  89 + "## Debug Rule Node Event Filter" + NEW_LINE +
  90 + EVENT_DEBUG_RULE_NODE_FILTER_OBJ + NEW_LINE +
  91 + "## Debug Rule Chain Event Filter" + NEW_LINE +
  92 + EVENT_DEBUG_RULE_CHAIN_FILTER_OBJ + NEW_LINE +
  93 + " * 'msgDirectionType' - string value representing msg direction type (incoming to entity or outcoming from entity);\n" +
  94 + " * 'dataSearch' - the case insensitive 'contains' filter based on data (key and value) for the message;\n" +
  95 + " * 'metadataSearch' - the case insensitive 'contains' filter based on metadata (key and value) for the message;\n" +
  96 + " * 'entityName' - string value representing the entity type;\n" +
  97 + " * 'relationType' - string value representing the type of message routing;\n" +
  98 + " * 'entityId' - string value representing the entity id in the event body (originator of the message);\n" +
  99 + " * 'msgType' - string value representing the message type;\n" +
  100 + " * 'isError' - boolean value to filter the errors." + NEW_LINE;
  101 +
71 @Autowired 102 @Autowired
72 private EventService eventService; 103 private EventService eventService;
73 104
@@ -159,14 +190,8 @@ public class EventController extends BaseController { @@ -159,14 +190,8 @@ public class EventController extends BaseController {
159 190
160 @ApiOperation(value = "Get Events by event filter (getEvents)", 191 @ApiOperation(value = "Get Events by event filter (getEvents)",
161 notes = "Returns a page of events for the chosen entity by specifying the event filter. " + 192 notes = "Returns a page of events for the chosen entity by specifying the event filter. " +
162 - PAGE_DATA_PARAMETERS + NEW_LINE + "5 different eventFilter objects could be set for different event types. " +  
163 - "The eventType field is required. Others are optional. If some of them are set, the filtering will be applied according to them. " +  
164 - "See the examples below for all the fields used for each event type filtering. " + NEW_LINE +  
165 - EVENT_ERROR_FILTER_OBJ + NEW_LINE +  
166 - EVENT_LC_EVENT_FILTER_OBJ + NEW_LINE +  
167 - EVENT_STATS_FILTER_OBJ + NEW_LINE +  
168 - EVENT_DEBUG_RULE_NODE_FILTER_OBJ + NEW_LINE +  
169 - EVENT_DEBUG_RULE_CHAIN_FILTER_OBJ + NEW_LINE, 193 + PAGE_DATA_PARAMETERS + NEW_LINE +
  194 + EVENT_FILTER_DEFINITION,
170 produces = MediaType.APPLICATION_JSON_VALUE) 195 produces = MediaType.APPLICATION_JSON_VALUE)
171 @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") 196 @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')")
172 @RequestMapping(value = "/events/{entityType}/{entityId}", method = RequestMethod.POST) 197 @RequestMapping(value = "/events/{entityType}/{entityId}", method = RequestMethod.POST)