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>

CODE

В случае успешного ответа возвращается код 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>
CODE

Код ответа:

200

Ответ:

<?xml version="1.0"?>
<out
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="tracer_declare.xsd">
    <ok/>
</out>
CODE

Повторный запрос возвращает код 200, и ответ:

<?xml version="1.0"?>
<out
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="tracer_declare.xsd">
    <already_defined/>
</out>
CODE

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_show.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>
CODE

tracer_common.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>
CODE

Пример:

Запрос: 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>
CODE

Код ответа:

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" iface="*" addr="240465">
            <writers>
                <writer xs:type="fileTracerType" path="1.txt" write_type="write"/>
            </writers>
            <created second="43" minute="52" hour="7" day="28" month="6" year="2019"/>
        </tracer>
    </tracers>
</out>
CODE

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>

CODE

Пример:

Запрос:

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>
CODE

Код ответа:

204