Hc_tracer_declare
Команда позволяет создать трейсер вызова в системе.
Аналог команды в CoCon:
cluster/core/<CORE>/tracer/declare
domain/<DOMAIN>/tracer/declare
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/tracer_declare
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
trace_common.xsd
Hc_tracer_show
tracer_declare.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="tracer_common.xsd"/> <!-- in--> <xs:element name="in"> <xs:complexType> <xs:sequence> <xs:element name="request"> <xs:complexType> <xs:sequence> <xs:element name="tracer" type="tracerType"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <!-- out--> <xs:element name="out"> <xs:complexType> <xs:choice> <xs:element name="ok"> <xs:complexType/> </xs:element> <xs:element name="already_defined"> <xs:complexType/> </xs:element> <xs:element name="bad_domain"> <xs:complexType/> </xs:element> <xs:element name="bad_tracer"> <xs:complexType/> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
В случае успешного ответа возвращается код 200 и ответ </ok>.
Если трейсер с таким именем уже объявлен - возвращается код 200 и ответ </already_defined>.
Если во время создания трейса произошла ошибка - возвращается код 200 и ответ </bad_tracer>.
Пример:
Запрос:
<?xml version="1.0" encoding="UTF-8"?> <in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="tracer_declare.xsd"> <request> <tracer addr="240465" domain="biysk.local" node="core1@ecss1" name="tr1" lifetime="1" iface="*" > <writers> <writer xsi:type="fileTracerType" path="1.txt" write_type="write"/> </writers> </tracer> </request> </in>
Код ответа:
200
Ответ:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="tracer_declare.xsd"> <ok/> </out>
Повторный запрос возвращает код 200, и ответ:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="tracer_declare.xsd"> <already_defined/> </out>
Hc_tracer_show
Команда позволяет посмотреть список tracer-ов, активных в системе.
Аналог команды в CoCon:
cluster/core/<CORE>/tracer/show
domain/<DOMAIN>/tracer/show
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/tracer_show
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
trace_common.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- writeTypeType --> <xs:simpleType name="writeTypeType"> <xs:restriction base="xs:string"> <xs:enumeration value="append"/> <xs:enumeration value="write"/> </xs:restriction> </xs:simpleType> <!-- baseTracerType--> <xs:complexType name="baseTracerType" abstract="true"/> <!-- udpTracerType--> <xs:complexType name="udpTracerType"> <xs:complexContent> <xs:extension base="baseTracerType"> <xs:attribute name="host" type="xs:string" use="required"/> <xs:attribute name="port" type="xs:integer" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- fileTracerType--> <xs:complexType name="fileTracerType"> <xs:complexContent> <xs:extension base="baseTracerType"> <xs:attribute name="path" type="xs:string" use="required"/> <xs:attribute name="write_type" type="writeTypeType" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- mysqlTracerType--> <xs:complexType name="mysqlTracerType"> <xs:complexContent> <xs:extension base="baseTracerType"> <xs:attribute name="db" type="xs:string" use="required"/> <xs:attribute name="user" type="xs:string" use="required"/> <xs:attribute name="passwd" type="xs:string" use="required"/> <xs:attribute name="host" type="xs:string" use="required"/> <xs:attribute name="port" type="xs:integer" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- tracerType--> <xs:complexType name="tracerType"> <xs:sequence> <xs:element name="writers"> <xs:complexType> <xs:sequence> <xs:element name="writer" type="baseTracerType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="created" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:attribute name="second" type="xs:integer" use="required"/> <xs:attribute name="minute" type="xs:integer" use="required"/> <xs:attribute name="hour" type="xs:integer" use="required"/> <xs:attribute name="day" type="xs:integer" use="required"/> <xs:attribute name="month" type="xs:integer" use="required"/> <xs:attribute name="year" type="xs:integer" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="domain" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="node" type="xs:string" use="required"/> <xs:attribute name="iface" type="xs:string" use="optional"/> <xs:attribute name="addr" type="xs:string" use="optional"/> <xs:attribute name="lifetime" type="xs:integer" use="optional"/> </xs:complexType> </xs:schema>
tracer_show.xsd
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="tracer_common.xsd"/> <!-- in--> <xs:element name="in"> <xs:complexType> <xs:sequence> <xs:element name="request"> <xs:complexType> <xs:attribute name="domain" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <!-- out--> <xs:element name="out"> <xs:complexType> <xs:sequence> <xs:element name="tracers"> <xs:complexType> <xs:sequence> <xs:element name="tracer" type="tracerType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/tracer_show
<?xml version="1.0" encoding="UTF-8"?> <in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="tracer_show.xsd"> <request domain="biysk.local"/> </in>
Код ответа:
200
Ответ:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="tracer_show.xsd"> <tracers> <tracer name="tr1" domain="biysk.local" node="core1@ecss1" lifetime="1" addr="240465"> <writers> <writer xs:type="fileTracerType" path="1.txt" write_type="write"/> </writers> <created second="46" minute="33" hour="8" day="24" month="1" year="2018"/> </tracer> </tracers> </out>
Hc_tracer_remove
Команда позволяет удалить из системы tracer по имени.
Аналог команды в CoCon:
cluster/core/<CORE>/tracer/remove
domain/<DOMAIN>/tracer/remove
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/tracer_remove
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 204 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="tracer_common.xsd"/> <!-- in--> <xs:element name="in"> <xs:complexType> <xs:sequence> <xs:element name="request"> <xs:complexType> <xs:attribute name="domain" type="xs:string" use="required"/> <xs:attribute name="tracer" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Пример:
Запрос:
http://192.168.1.21:9999/commands/tracer_remove
<?xml version="1.0" encoding="UTF-8"?> <in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="tracer_remove.xsd"> <request domain="biysk.local" tracer="tr1"/> </in>
Код ответа:
204