memo-supervisor: added a memo for supervisor
[src/app-framework-binder.git] / memo-supervisor.txt
1
2 Run the supervisor on the target for the public IP:
3 ---------------------------------------------------
4
5         # ip address show
6
7         1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
8             link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
9             inet 127.0.0.1/8 scope host lo
10                valid_lft forever preferred_lft forever
11         2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
12             link/ether ee:85:bb:23:a2:26 brd ff:ff:ff:ff:ff:ff
13             inet 192.168.0.34/24 brd 192.168.0.255 scope global eth0
14                valid_lft forever preferred_lft forever
15
16         # afs-supervisor 192.168.0.34:5555/supervisor
17
18 Run the direct client
19 ---------------------
20
21         # afb-client-demo -H -d 192.168.0.34:5555/
22
23 It is an issue that supervisor provides a direct client.
24 This may change in some future to include HTTP websocket negociation and token exchange.
25
26 Commands that can be run:
27 -------------------------
28
29         - discover
30
31                 send SIGHUP to daemons not recorded to make them connected
32
33         - list
34
35                 list the connected daemons
36
37         - config        {"pid":X}
38
39                 get the configuration of the daemon of pid X
40
41         - sessions      {"pid":X}
42
43                 get the active sessions and token of the daemon of pid X
44
45         - session-close {"pid":X, "uuid":UUID}
46
47                 closes the sessions of uuid UUID for the daemon of pid X
48
49         - exit          {"pid":X,"code":Y}
50
51                 exit the daemon of pid X with optional code Y (default 0)
52
53         - debug-wait    {"pid":X}
54
55                 make the daemon of pid X wait for a signal SIGINT
56
57         - debug-break   {"pid":X}
58
59                 make the daemon of pid X self killing with SIGINT
60
61         - do            {"pid":X,"api":A,"verb":V,"args":A}
62
63                 execute the API/VERB(ARGS) for the daemon of pid X
64
65                 usefull for (s/g)etting monitor info. ex: monitor/get({"apis":true})
66
67                 bound to the current client session (to be checked: usurpation of session?)
68
69         - trace         {"pid":X, ...}
70
71                 like monitor/trace but not bound to session (in the future monitor/trace 
72                 will be bound to sessions)
73
74                 allows to trace specific session or any session
75
76                 actually events generated by tracing are named with the prefix 
77                 "$/" (that is the internal prefix of supervision in binders)
78                 could change in future
79
80                 the pid isn't returned in the event (not sure to want it but open...)
81
82                 use "name" and "tag" feature of "trace" to discrimate events on the client side.
83
84 Examples of dialog:
85 -------------------
86
87 discover
88 ON-REPLY-SUCCESS 1:discover: 
89 null
90
91
92 list
93 ON-REPLY-SUCCESS 2:list: 
94 {
95   "4123":{
96     "pid":4123,
97     "uid":0,
98     "gid":0,
99     "id":"nfc-binding",
100     "label":"User::App::nfc-binding",
101     "user":"0"
102   },
103   "4120":{
104     "pid":4120,
105     "uid":0,
106     "gid":0,
107     "id":"homescreen-service-2017",
108     "label":"User::App::homescreen-service-2017",
109     "user":"0"
110   },
111   "4119":{
112     "pid":4119,
113     "uid":0,
114     "gid":0,
115     "id":"homescreen-2017",
116     "label":"User::App::homescreen-2017",
117     "user":"0"
118   },
119   "4118":{
120     "pid":4118,
121     "uid":0,
122     "gid":0,
123     "id":"agl-service-wifi",
124     "label":"User::App::agl-service-wifi",
125     "user":"0"
126   },
127   "4117":{
128     "pid":4117,
129     "uid":0,
130     "gid":0,
131     "id":"windowmanager-service-2017",
132     "label":"User::App::windowmanager-service-2017",
133     "user":"0"
134   },
135   "4116":{
136     "pid":4116,
137     "uid":0,
138     "gid":0,
139     "id":"agl-service-geoclue",
140     "label":"User::App::agl-service-geoclue",
141     "user":"0"
142   },
143   "4115":{
144     "pid":4115,
145     "uid":0,
146     "gid":0,
147     "id":"persistence-binding",
148     "label":"User::App::persistence-binding",
149     "user":"0"
150   },
151   "4113":{
152     "pid":4113,
153     "uid":0,
154     "gid":0,
155     "id":"agl-service-bluetooth",
156     "label":"User::App::agl-service-bluetooth",
157     "user":"0"
158   },
159   "4114":{
160     "pid":4114,
161     "uid":0,
162     "gid":0,
163     "id":"agl-identity-service",
164     "label":"User::App::agl-identity-service",
165     "user":"0"
166   },
167   "4112":{
168     "pid":4112,
169     "uid":0,
170     "gid":0,
171     "id":"agl-service-unicens",
172     "label":"User::App::agl-service-unicens",
173     "user":"0"
174   },
175   "3734":{
176     "pid":3734,
177     "uid":0,
178     "gid":0,
179     "id":"System",
180     "label":"System",
181     "user":"0"
182   }
183 }
184
185
186 config {"pid":4117}
187 ON-REPLY-SUCCESS 4:config: 
188 {
189   "console":".\/AFB-console.out",
190   "rootdir":"\/var\/local\/lib\/afm\/applications\/windowmanager-service-2017\/0.1",
191   "roothttp":".",
192   "rootbase":"\/opa",
193   "rootapi":"\/api",
194   "workdir":"\/home\/0\/app-data\/windowmanager-service-2017",
195   "uploaddir":".",
196   "token":"HELLO",
197   "name":"afbd-windowmanager-service-2017@0.1",
198   "aliases":[
199     "\/monitoring"
200   ],
201   "dbus_clients":[
202   ],
203   "dbus_servers":[
204   ],
205   "ws_clients":[
206   ],
207   "ws_servers":[
208     "sd:windowmanager"
209   ],
210   "so_bindings":[
211     "\/var\/local\/lib\/afm\/applications\/windowmanager-service-2017\/0.1\/lib\/windowmanager-service.so"
212   ],
213   "ldpaths":[
214     "\/usr\/lib\/afb"
215   ],
216   "weak_ldpaths":[
217   ],
218   "calls":[
219   ],
220   "exec":[
221   ],
222   "httpdPort":1039,
223   "cacheTimeout":100000,
224   "apiTimeout":20,
225   "cntxTimeout":32000000,
226   "nbSessionMax":10,
227   "mode":"local",
228   "tracereq":"no",
229   "traceditf":"no",
230   "tracesvc":"no",
231   "traceevt":"no",
232   "no_ldpaths":false,
233   "noHttpd":false,
234   "background":false,
235   "monitoring":true,
236   "random_token":false
237 }
238
239
240 sessions {"pid":4117}
241 ON-REPLY-SUCCESS 5:sessions: 
242 {
243   "afb-client-demo":{
244     "token":"HELLO"
245   },
246   "fa050ca1-80b4-41af-bf72-4a1a8e7ee5b6":{
247     "token":"HELLO"
248   }
249 }
250
251
252 do {"pid":4117,"api":"monitor","verb":"get","args":{"apis":true}}
253 ON-REPLY-SUCCESS 6:do: 
254 {
255   "apis":{
256     "monitor":{
257       "openapi":"3.0.0",
258       "info":{
259         "description":"monitoring of bindings and internals",
260         "title":"monitor",
261         "version":"1.0",
262         "x-binding-c-generator":{
263           "api":"monitor",
264           "version":2,
265           "prefix":"f_",
266           "postfix":"",
267           "preinit":null,
268           "init":null,
269           "onevent":null,
270           "scope":"static",
271           "private":true
272         }
273       },
274       "servers":[
275         {
276           "url":"ws:\/\/{host}:{port}\/api\/monitor",
277           "description":"The API server.",
278           "variables":{
279             "host":{
280               "default":"localhost"
281             },
282             "port":{
283               "default":"1234"
284             }
285           },
286           "x-afb-events":[
287             {
288               "$ref":"#\/components\/schemas\/afb-event"
289             }
290           ]
291         }
292       ],
293       "components":{
294         "schemas":{
295           "afb-reply":{
296             "$ref":"#\/components\/schemas\/afb-reply-v1"
297           },
298           "afb-event":{
299             "$ref":"#\/components\/schemas\/afb-event-v1"
300           },
301           "afb-reply-v1":{
302             "title":"Generic response.",
303             "type":"object",
304             "required":[
305               "jtype",
306               "request"
307             ],
308             "properties":{
309               "jtype":{
310                 "type":"string",
311                 "const":"afb-reply"
312               },
313               "request":{
314                 "type":"object",
315                 "required":[
316                   "status"
317                 ],
318                 "properties":{
319                   "status":{
320                     "type":"string"
321                   },
322                   "info":{
323                     "type":"string"
324                   },
325                   "token":{
326                     "type":"string"
327                   },
328                   "uuid":{
329                     "type":"string"
330                   },
331                   "reqid":{
332                     "type":"string"
333                   }
334                 }
335               },
336               "response":{
337                 "type":"object"
338               }
339             }
340           },
341           "afb-event-v1":{
342             "type":"object",
343             "required":[
344               "jtype",
345               "event"
346             ],
347             "properties":{
348               "jtype":{
349                 "type":"string",
350                 "const":"afb-event"
351               },
352               "event":{
353                 "type":"string"
354               },
355               "data":{
356                 "type":"object"
357               }
358             }
359           },
360           "set-verbosity":{
361             "anyOf":[
362               {
363                 "$ref":"#\/components\/schemas\/verbosity-map"
364               },
365               {
366                 "$ref":"#\/components\/schemas\/verbosity-level"
367               }
368             ]
369           },
370           "get-request":{
371             "type":"object",
372             "properties":{
373               "verbosity":{
374                 "$ref":"#\/components\/schemas\/get-verbosity"
375               },
376               "apis":{
377                 "$ref":"#\/components\/schemas\/get-apis"
378               }
379             }
380           },
381           "get-response":{
382             "type":"object",
383             "properties":{
384               "verbosity":{
385                 "$ref":"#\/components\/schemas\/verbosity-map"
386               },
387               "apis":{
388                 "type":"object"
389               }
390             }
391           },
392           "get-verbosity":{
393             "anyOf":[
394               {
395                 "type":"boolean"
396               },
397               {
398                 "type":"array",
399                 "items":{
400                   "type":"string"
401                 }
402               },
403               {
404                 "type":"object"
405               }
406             ]
407           },
408           "get-apis":{
409             "anyOf":[
410               {
411                 "type":"boolean"
412               },
413               {
414                 "type":"array",
415                 "items":{
416                   "type":"string"
417                 }
418               },
419               {
420                 "type":"object"
421               }
422             ]
423           },
424           "verbosity-map":{
425             "type":"object",
426             "patternProperties":{
427               "^.*$":{
428                 "$ref":"#\/components\/schemas\/verbosity-level"
429               }
430             }
431           },
432           "verbosity-level":{
433             "enum":[
434               "debug",
435               3,
436               "info",
437               2,
438               "notice",
439               "warning",
440               1,
441               "error",
442               0
443             ]
444           },
445           "trace-add":{
446             "anyOf":[
447               {
448                 "type":"array",
449                 "items":{
450                   "$ref":"#\/components\/schemas\/trace-add-object"
451                 }
452               },
453               {
454                 "$ref":"#\/components\/schemas\/trace-add-any"
455               }
456             ]
457           },
458           "trace-add-any":{
459             "anyOf":[
460               {
461                 "$ref":"#\/components\/schemas\/trace-add-request"
462               },
463               {
464                 "$ref":"#\/components\/schemas\/trace-add-object"
465               }
466             ]
467           },
468           "trace-add-object":{
469             "type":"object",
470             "properties":{
471               "name":{
472                 "type":"string",
473                 "description":"name of the generated event",
474                 "default":"trace"
475               },
476               "tag":{
477                 "type":"string",
478                 "description":"tag for grouping traces",
479                 "default":"trace"
480               },
481               "api":{
482                 "type":"string",
483                 "description":"api for requests, daemons and services"
484               },
485               "verb":{
486                 "type":"string",
487                 "description":"verb for requests"
488               },
489               "uuid":{
490                 "type":"string",
491                 "description":"uuid of session for requests"
492               },
493               "pattern":{
494                 "type":"string",
495                 "description":"pattern for events"
496               },
497               "request":{
498                 "$ref":"#\/components\/schemas\/trace-add-request"
499               },
500               "daemon":{
501                 "$ref":"#\/components\/schemas\/trace-add-daemon"
502               },
503               "service":{
504                 "$ref":"#\/components\/schemas\/trace-add-service"
505               },
506               "event":{
507                 "$ref":"#\/components\/schemas\/trace-add-event"
508               },
509               "session":{
510                 "$ref":"#\/components\/schemas\/trace-add-session"
511               },
512               "for":{
513                 "$ref":"#\/components\/schemas\/trace-add"
514               }
515             },
516             "examples":[
517               {
518                 "tag":"1",
519                 "for":[
520                   "common",
521                   {
522                     "api":"xxx",
523                     "request":"*",
524                     "daemon":"*",
525                     "service":"*"
526                   }
527                 ]
528               }
529             ]
530           },
531           "trace-add-request":{
532             "anyOf":[
533               {
534                 "type":"array",
535                 "items":{
536                   "$ref":"#\/components\/schemas\/trace-request-names"
537                 }
538               },
539               {
540                 "$ref":"#\/components\/schemas\/trace-request-names"
541               }
542             ]
543           },
544           "trace-request-names":{
545             "title":"name of traceable items of requests",
546             "enum":[
547               "*",
548               "addref",
549               "all",
550               "args",
551               "begin",
552               "common",
553               "context",
554               "context_get",
555               "context_set",
556               "end",
557               "event",
558               "extra",
559               "fail",
560               "get",
561               "json",
562               "life",
563               "ref",
564               "result",
565               "session",
566               "session_close",
567               "session_set_LOA",
568               "simple",
569               "store",
570               "stores",
571               "subcall",
572               "subcall_result",
573               "subcalls",
574               "subcallsync",
575               "subcallsync_result",
576               "subscribe",
577               "success",
578               "unref",
579               "unstore",
580               "unsubscribe",
581               "vverbose"
582             ]
583           },
584           "trace-add-daemon":{
585             "anyOf":[
586               {
587                 "type":"array",
588                 "items":{
589                   "$ref":"#\/components\/schemas\/trace-daemon-names"
590                 }
591               },
592               {
593                 "$ref":"#\/components\/schemas\/trace-daemon-names"
594               }
595             ]
596           },
597           "trace-daemon-names":{
598             "title":"name of traceable items of daemons",
599             "enum":[
600               "*",
601               "all",
602               "common",
603               "event_broadcast_after",
604               "event_broadcast_before",
605               "event_make",
606               "extra",
607               "get_event_loop",
608               "get_system_bus",
609               "get_user_bus",
610               "queue_job",
611               "require_api",
612               "require_api_result",
613               "rootdir_get_fd",
614               "rootdir_open_locale",
615               "unstore_req",
616               "vverbose"
617             ]
618           },
619           "trace-add-service":{
620             "anyOf":[
621               {
622                 "type":"array",
623                 "items":{
624                   "$ref":"#\/components\/schemas\/trace-service-names"
625                 }
626               },
627               {
628                 "$ref":"#\/components\/schemas\/trace-service-names"
629               }
630             ]
631           },
632           "trace-service-names":{
633             "title":"name of traceable items of services",
634             "enum":[
635               "*",
636               "all",
637               "call",
638               "call_result",
639               "callsync",
640               "callsync_result",
641               "on_event_after",
642               "on_event_before",
643               "start_after",
644               "start_before"
645             ]
646           },
647           "trace-add-event":{
648             "anyOf":[
649               {
650                 "type":"array",
651                 "items":{
652                   "$ref":"#\/components\/schemas\/trace-event-names"
653                 }
654               },
655               {
656                 "$ref":"#\/components\/schemas\/trace-event-names"
657               }
658             ]
659           },
660           "trace-event-names":{
661             "title":"name of traceable items of events",
662             "enum":[
663               "*",
664               "all",
665               "broadcast_after",
666               "broadcast_before",
667               "common",
668               "create",
669               "drop",
670               "extra",
671               "name",
672               "push_after",
673               "push_before"
674             ]
675           },
676           "trace-add-session":{
677             "anyOf":[
678               {
679                 "type":"array",
680                 "items":{
681                   "$ref":"#\/components\/schemas\/trace-session-names"
682                 }
683               },
684               {
685                 "$ref":"#\/components\/schemas\/trace-session-names"
686               }
687             ]
688           },
689           "trace-session-names":{
690             "title":"name of traceable items for sessions",
691             "enum":[
692               "*",
693               "addref",
694               "all",
695               "close",
696               "common",
697               "create",
698               "destroy",
699               "renew",
700               "unref"
701             ]
702           },
703           "trace-drop":{
704             "anyOf":[
705               {
706                 "type":"boolean"
707               },
708               {
709                 "type":"object",
710                 "properties":{
711                   "event":{
712                     "anyOf":[
713                       {
714                         "type":"string"
715                       },
716                       {
717                         "type":"array",
718                         "items":"string"
719                       }
720                     ]
721                   },
722                   "tag":{
723                     "anyOf":[
724                       {
725                         "type":"string"
726                       },
727                       {
728                         "type":"array",
729                         "items":"string"
730                       }
731                     ]
732                   },
733                   "uuid":{
734                     "anyOf":[
735                       {
736                         "type":"string"
737                       },
738                       {
739                         "type":"array",
740                         "items":"string"
741                       }
742                     ]
743                   }
744                 }
745               }
746             ]
747           }
748         }
749       },
750       "paths":{
751         "\/get":{
752           "description":"Get monitoring data.",
753           "get":{
754             "x-permissions":{
755               "session":"check"
756             },
757             "parameters":[
758               {
759                 "in":"query",
760                 "name":"verbosity",
761                 "required":false,
762                 "schema":{
763                   "$ref":"#\/components\/schemas\/get-verbosity"
764                 }
765               },
766               {
767                 "in":"query",
768                 "name":"apis",
769                 "required":false,
770                 "schema":{
771                   "$ref":"#\/components\/schemas\/get-apis"
772                 }
773               }
774             ],
775             "responses":{
776               "200":{
777                 "description":"A complex object array response",
778                 "content":{
779                   "application\/json":{
780                     "schema":{
781                       "$ref":"#\/components\/schemas\/afb-reply"
782                     }
783                   }
784                 }
785               }
786             }
787           }
788         },
789         "\/set":{
790           "description":"Set monitoring actions.",
791           "get":{
792             "x-permissions":{
793               "session":"check"
794             },
795             "parameters":[
796               {
797                 "in":"query",
798                 "name":"verbosity",
799                 "required":false,
800                 "schema":{
801                   "$ref":"#\/components\/schemas\/set-verbosity"
802                 }
803               }
804             ],
805             "responses":{
806               "200":{
807                 "description":"A complex object array response",
808                 "content":{
809                   "application\/json":{
810                     "schema":{
811                       "$ref":"#\/components\/schemas\/afb-reply"
812                     }
813                   }
814                 }
815               }
816             }
817           }
818         },
819         "\/trace":{
820           "description":"Set monitoring actions.",
821           "get":{
822             "x-permissions":{
823               "session":"check"
824             },
825             "parameters":[
826               {
827                 "in":"query",
828                 "name":"add",
829                 "required":false,
830                 "schema":{
831                   "$ref":"#\/components\/schemas\/trace-add"
832                 }
833               },
834               {
835                 "in":"query",
836                 "name":"drop",
837                 "required":false,
838                 "schema":{
839                   "$ref":"#\/components\/schemas\/trace-drop"
840                 }
841               }
842             ],
843             "responses":{
844               "200":{
845                 "description":"A complex object array response",
846                 "content":{
847                   "application\/json":{
848                     "schema":{
849                       "$ref":"#\/components\/schemas\/afb-reply"
850                     }
851                   }
852                 }
853               }
854             }
855           }
856         },
857         "\/session":{
858           "description":"describes the session.",
859           "get":{
860             "x-permissions":{
861               "session":"check"
862             },
863             "parameters":[
864               {
865                 "in":"query",
866                 "name":"refresh-token",
867                 "required":false,
868                 "schema":{
869                   "type":"boolean"
870                 }
871               }
872             ],
873             "responses":{
874               "200":{
875                 "description":"A complex object array response",
876                 "content":{
877                   "application\/json":{
878                     "schema":{
879                       "$ref":"#\/components\/schemas\/afb-reply"
880                     }
881                   }
882                 }
883               }
884             }
885           }
886         }
887       }
888     },
889     "windowmanager":{
890       "openapi":"3.0.0",
891       "info":{
892         "title":"windowmanager",
893         "version":"0.0.0",
894         "description":"windowmanager"
895       },
896       "paths":{
897         "\/requestsurface":{
898           "get":{
899             "responses":{
900               "200":{
901                 "description":"requestsurface"
902               }
903             }
904           }
905         },
906         "\/requestsurfacexdg":{
907           "get":{
908             "responses":{
909               "200":{
910                 "description":"requestsurfacexdg"
911               }
912             }
913           }
914         },
915         "\/activatesurface":{
916           "get":{
917             "responses":{
918               "200":{
919                 "description":"activatesurface"
920               }
921             }
922           }
923         },
924         "\/deactivatesurface":{
925           "get":{
926             "responses":{
927               "200":{
928                 "description":"deactivatesurface"
929               }
930             }
931           }
932         },
933         "\/enddraw":{
934           "get":{
935             "responses":{
936               "200":{
937                 "description":"enddraw"
938               }
939             }
940           }
941         },
942         "\/getdisplayinfo":{
943           "get":{
944             "responses":{
945               "200":{
946                 "description":"getdisplayinfo"
947               }
948             }
949           }
950         },
951         "\/getareainfo":{
952           "get":{
953             "responses":{
954               "200":{
955                 "description":"getareainfo"
956               }
957             }
958           }
959         },
960         "\/wm_subscribe":{
961           "get":{
962             "responses":{
963               "200":{
964                 "description":"wm_subscribe"
965               }
966             }
967           }
968         },
969         "\/list_drawing_names":{
970           "get":{
971             "responses":{
972               "200":{
973                 "description":"list_drawing_names"
974               }
975             }
976           }
977         },
978         "\/ping":{
979           "get":{
980             "responses":{
981               "200":{
982                 "description":"ping"
983               }
984             }
985           }
986         },
987         "\/debug_status":{
988           "get":{
989             "responses":{
990               "200":{
991                 "description":"debug_status"
992               }
993             }
994           }
995         },
996         "\/debug_layers":{
997           "get":{
998             "responses":{
999               "200":{
1000                 "description":"debug_layers"
1001               }
1002             }
1003           }
1004         },
1005         "\/debug_surfaces":{
1006           "get":{
1007             "responses":{
1008               "200":{
1009                 "description":"debug_surfaces"
1010               }
1011             }
1012           }
1013         },
1014         "\/debug_terminate":{
1015           "get":{
1016             "responses":{
1017               "200":{
1018                 "description":"debug_terminate"
1019               }
1020             }
1021           }
1022         }
1023       }
1024     }
1025   }
1026 }
1027
1028
1029 trace { "pid": 4117, "add": { "request": "common" } }
1030 ON-EVENT-CREATE: [4:$/trace]
1031 ON-EVENT-SUBSCRIBE 15:trace: [4:$/trace]
1032 ON-REPLY-SUCCESS 15:trace: 
1033 null
1034
1035
1036 ON-EVENT-PUSH: [4:$/trace]
1037 {
1038   "time":"30862.255651",
1039   "tag":"trace",
1040   "type":"request",
1041   "id":51,
1042   "request":{
1043     "index":5,
1044     "api":"hello",
1045     "verb":"ping",
1046     "action":"begin",
1047     "session":"fa050ca1-80b4-41af-bf72-4a1a8e7ee5b6"
1048   }
1049 }
1050 ON-EVENT-PUSH: [4:$/trace]
1051 {
1052   "time":"30862.255788",
1053   "tag":"trace",
1054   "type":"request",
1055   "id":52,
1056   "request":{
1057     "index":5,
1058     "api":"hello",
1059     "verb":"ping",
1060     "action":"json",
1061     "session":"fa050ca1-80b4-41af-bf72-4a1a8e7ee5b6"
1062   },
1063   "data":{
1064     "result":{
1065       "toto":"1"
1066     }
1067   }
1068 }
1069 ON-EVENT-PUSH: [4:$/trace]
1070 {
1071   "time":"30862.255871",
1072   "tag":"trace",
1073   "type":"request",
1074   "id":53,
1075   "request":{
1076     "index":5,
1077     "api":"hello",
1078     "verb":"ping",
1079     "action":"success",
1080     "session":"fa050ca1-80b4-41af-bf72-4a1a8e7ee5b6"
1081   },
1082   "data":{
1083     "result":"Some String",
1084     "info":"Ping Binder Daemon tag=pingSample count=1 query={ \"toto\": \"1\" }"
1085   }
1086 }
1087 ON-EVENT-PUSH: [4:$/trace]
1088 {
1089   "time":"30862.255980",
1090   "tag":"trace",
1091   "type":"request",
1092   "id":54,
1093   "request":{
1094     "index":5,
1095     "api":"hello",
1096     "verb":"ping",
1097     "action":"end",
1098     "session":"fa050ca1-80b4-41af-bf72-4a1a8e7ee5b6"
1099   }
1100 }
1101
1102