主要内容

RESTful API的发现和诊断

MATLAB®生产服务器™RESTful API的发现和诊断包括以下API:

  • 发现服务,提供信息关于MATLAB函数部署在服务器上

  • 健康检查的API,可以让你知道如果服务器是用于处理请求

  • 服务器指标服务返回的信息客户端请求,服务器的时间和内存需要执行这些请求,和可选的自定义指标

健康检查和发现服务以JSON格式返回响应。普罗米修斯指标的度量服务返回的数据格式。

RESTful API的特点

MATLAB生产服务器RESTful API的发现和诊断为沟通使用HTTP请求-响应模式MATLAB生产服务器。这个模型包括请求方法,响应代码,消息头和消息体。RESTful API的发现和诊断具有以下特点:

  • HTTP GET方法形成了客户端和服务器之间的通信的主要方式。

  • 独特的统一资源标识符(uri)识别服务器创建的资源。

  • 由于请求到服务器使用GET方法,请求没有消息体和你没有设置内容类型头在请求。

  • 响应的消息体包含特定于请求的信息,如信息功能部署到服务器上,服务器健康状况或服务器指标。

发现服务

使用发现服务学习MATLAB函数部署到服务器。发现服务返回的信息部署MATLAB函数作为一个JSON对象。对象是一个多级嵌套结构和高水平显示发现模式版本和一个部署档案列表。每个档案包含的信息部署MATLAB函数和函数签名。

使用发现服务,您必须启用发现服务在服务器上通过设置——enable-discovery财产的main_config服务器配置文件。

得到有用的信息使用发现服务时,你必须包括一个JSON文件包含函数的MATLAB函数签名你想部署创建可部署归档文件时。有关如何创建一个可部署归档文件的信息,明白了为MATLAB生产服务器创建可部署归档文件。为创建JSON文件包含函数签名信息,明白了在JSON MATLAB函数签名

发现服务使用发现信息

服务器的响应是一个JSON对象。

会发现信息请求的响应

JSON响应对象

JSON响应对象包含版本号的发现模式和部署档案的列表。响应对象包含以下字段:

关键 价值
discoverySchemaVersion

JSON字符串包含版本号的发现模式格式<主要# >。<小# >。<补丁# >,每个号码是一个非负整数

示例值:1.0.0

档案

JSON对象包含所有部署的列表档案

档案JSON对象

档案对象包含所有部署的列表档案。这个列表中的每个对象都是一个JSON对象的键是部署归档文件的名称,例如,<周大福档案名称>,其值是一个JSON对象有以下字段:

关键 价值
archiveSchemaVersion

JSON字符串代表归档模式的版本号

例子:1.1.0

archiveUuid JSON字符串代表存档的惟一标识符
matlabRuntimeVersion

JSON字符串代表MATLAB运行时版本

例子:9.9.0

功能

JSON对象包含在部署归档文件的列表功能

typedef JSON对象包含一个列表的单元格数组或结构作为输入或输出参数部署功能

功能JSON对象

功能对象包含嵌套的JSON对象的列表,每个嵌套对象对应于一个MATLAB函数部署归档文件。

每个函数对象部署函数作为其键的名称,例如,< MATLAB_function_name1 >,一个JSON对象作为它的价值。包含一个JSON对象签名键的值是一个JSON对象数组,包含关于MATLAB函数签名的信息。

中的每个对象签名数组包含以下字段:

关键 价值
帮助

输入参数的名称

例子:“名称”:“input1”

输入

JSON对象的数组包含输入参数信息

输出

JSON对象的数组包含信息输出参数

中的每个对象输入数组包含以下字段:

关键 价值
的名字

输入参数的名称

例子:“名称”:“input1”

mwtype

MATLAB数据类型

例子:“mwtype”:“替身”

mwsize

大小的数据

例子:“mwsize”: (“2、3”)

帮助

描述输入参数

例子:“帮助”:“input1描述”

中的每个对象输出对象包含以下字段:

关键 价值
的名字

输出参数的名称

例子:“名称”:“output1”

mwtype

MATLAB数据类型

例子:“mwtype”:“替身”

mwsize

大小的数据

例子:“mwsize”: (“2、3”)

帮助

描述输出参数

例子:“帮助”:“output1描述”

typedef JSON对象

响应包含了typedef对象只有在部署功能包含细胞数组或结构作为输入或输出参数。

如果部署功能包含细胞数组作为输入或输出参数typedef对象包含嵌套对象的键是单元阵列的名称,例如,< homogeneous_cell_name >和相应的值包含一个对象的信息单元阵列。

中的每个对象< cell_array_name >对象包含以下字段:

关键 价值
帮助

JSON字符串包含单元阵列的描述

例子:“帮助”:“细胞帮助”

类型 细胞
元素

JSON数组对象的描述细胞数组的每个元素

每个对象在元素包含以下字段:

关键 价值
的名字

细胞元素的名字

例子:“名称”:“一”

类型

数据类型的元素

例子:“类型”:“双”

大小

数组的大小

例子:“大小”:(“2、3”)

帮助

描述细胞的元素

例子:“帮助”:“操作”

如果部署功能包含结构数组作为输入或输出参数typedef对象包含嵌套对象的名字是谁的关键结构,例如,< struct_name >和相应的值包含一个对象的信息结构。

中的每个对象< struct_name >对象包含以下字段:

关键 价值
帮助

包含描述结构的JSON字符串

例子:“帮助”:“结构帮助”

类型 结构体
字段

JSON数组对象的描述每个元素的结构

每个对象在字段包含以下字段:

的名字 描述
的名字

的名字结构体

例子:“名称”:“my_field_name”

类型

数据类型的字段值

例子:“类型”:“字符”

大小

的大小结构体

例子:“大小”:(“2、3”)

帮助

描述结构体元素

例子:“帮助”:“my_field_name描述”

健康检查

使用健康检查API来确定服务器有一个有效的许可证,能够处理HTTP请求。健康还是不健康的服务器健康检查分类取决于服务器有一个有效的许可证,可以与网络许可管理器通信。检查服务器的健康,使用获取服务器的健康

服务器健康时在以下国家:

  • 服务器操作和一个有效的许可证。服务器与网络通信许可管理器,检查和所需数量的许可证密钥。

  • 服务器已经失去了通信与网络许可管理器,但服务器仍全面运作,将继续作战直到最后宽限期的规定license-grace-period财产。

如果健康检查成功,服务器的响应200好了HTTP状态代码和一个JSON对象表明服务器是健康的。

{“状态”:“ok”}

当服务器不可用处理HTTP请求时,健康检查API返回503健康检查失败HTTP响应代码和一个空的身体反应。健康检查失败当服务器已经失去了与网络许可管理器通信一段时间超过宽限期。当服务器处于这种状态时,它积极尝试重建沟通与许可证管理器。请求处理简历如果服务器能够重建沟通与许可证管理器。

健康检查失败并没有提供额外的信息关于失败的原因在身体的反应。服务器管理员可以使用mps-status服务器状态的详细信息。终端必须在同一个系统上运行服务器mps-status

有关许可证的更多信息,请参阅MATLAB生产管理许可证服务器

标准服务

使用度量服务来检索服务器指标在普罗米修斯®标准格式。度量服务返回的信息请求,客户端应用程序发送到服务器,服务器的时间和内存需要执行请求。您可以使用指标监控服务器在处理Kubernetes时®和microservices。调用标准服务使用得到指标

使用标准服务,您必须启用度量服务在服务器上通过设置——enable-metrics财产的main_config服务器配置文件。

一个成功的响应从服务器由几种服务器普罗米修斯计数器度量和评估指标类型。普罗米修斯标准格式的更多信息,请参阅普罗米修斯指标类型

#类型matlabprodserver_up_time_seconds计数器matlabprodserver_up_time_seconds matlabprodserver_queue_time_seconds 0 # 68140.5 #类型matlabprodserver_queue_time_seconds指标类型matlabprodserver_cpu_time_seconds计数器matlabprodserver_cpu_time_seconds 18.2188 #式matlabprodserver_memory_working_set_bytes计matlabprodserver_memory_working_set_bytes 1.57426 e + 08 #类型matlabprodserver_requests_accepted_total计数器matlabprodserver_requests_accepted_total 0 #式matlabprodserver_requests_in_queue计matlabprodserver_requests_in_queue 0 #式matlabprodserver_requests_processing计matlabprodserver_requests_processing 0 #类型matlabprodserver_requests_succeeded_total计数器matlabprodserver_requests_succeeded_total 0 #类型matlabprodserver_requests_failed_total计数器matlabprodserver_requests_failed_total matlabprodserver_requests_canceled_total计数器matlabprodserver_requests_canceled_total 0 0 #类型

一个错误的反应403个指标禁用表明该指标服务没有在服务器上启用。

自定义指标

可以通过添加自定义部署工具MATLAB代码度量特定于您的应用程序或请求处理。在已部署的MATLAB代码,您可以创建定制的普罗米修斯用功能指标prodserver.metrics.incrementCounter(MATLAB编译器SDK)prodserver.metrics.setGauge(MATLAB编译器SDK)。普罗米修斯计数器的功能创建指标和衡量指标类型,分别。

服务器收集部署自定义指标,当一个客户端调用MATLAB函数。除了默认的服务器指标,指标的输出服务包括自定义指标和可部署归档文件的名称创建了度量。

例如,包括以下功能的MATLAB函数部署到服务器创建自定义指标test_function_execution_counttest_timer_seconds

prodserver.metrics.incrementCounter (“test_function_execution_count”1);prodserver.metrics.setGauge (“test_timer_seconds”,0.421147);

当你查询标准API客户端调用部署函数后,您将看到以下输出:

#类型matlabprodserver_up_time_seconds计数器matlabprodserver_up_time_seconds matlabprodserver_queue_time_seconds 0 # 16705.3 #类型matlabprodserver_queue_time_seconds指标类型matlabprodserver_cpu_time_seconds计数器matlabprodserver_cpu_time_seconds 29.1406 #式matlabprodserver_memory_working_set_bytes计matlabprodserver_memory_working_set_bytes 5.17153 e + 08 #类型matlabprodserver_requests_accepted_total计数器matlabprodserver_requests_accepted_total 7 #式matlabprodserver_requests_in_queue计matlabprodserver_requests_in_queue 0 #式matlabprodserver_requests_processing计matlabprodserver_requests_processing 0 #类型matlabprodserver_requests_succeeded_total计数器matlabprodserver_requests_succeeded_total 7 #类型matlabprodserver_requests_failed_total计数器matlabprodserver_requests_failed_total 0 #类型matlabprodserver_requests_canceled_total计数器matlabprodserver_requests_canceled_total 0 #类型test_function_execution_count计数器test_function_execution_count{存档=“test_metrics_2”} 1 #式test_timer_seconds计test_timer_seconds 0.421147{存档=“test_metrics”}
输出包含test_function_execution_counttest_timer_seconds自定义指标和可部署归档文件的名称,test_metrics,产生的度量。

一个详细的例子,看到创建自定义普罗米修斯指标

另请参阅

||(MATLAB编译器SDK)|(MATLAB编译器SDK)

相关的话题