通过http(s)与kiali服务器通信的python客户端
kiali-client的Python项目详细描述
简介
此存储库包括必要的python客户端库,用于远程访问kiali
安装
- 若要安装,请运行
python setup.py install(如果从源代码安装),或运行
pip install kiali client(如果使用pip,则运行
pip install kiali client)。
创建客户端连接
- 要启动Kiali客户端,请使用kiali client()方法。它需要
主机
、用户名
和密码
参数
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')
可用于客户端的其他参数
- 主机(默认:
localhost
) - scheme(默认值:
http
,选项:https
和http
- 端口(默认值:
443
) - 身份验证类型(默认:
https用户密码
,选项:no auth
;oauth
) - 用户名(默认值:
admin
) - 密码(默认:
管理员
) - 令牌(当您使用
oauth
令牌时使用。它是帐户的openshift令牌) - verify(默认值:
false
)-用于验证SSL证书 - 虚张声势地址(默认值:虚张声势-虚张声势文件的地址
响应元数据
- json
- 文本
- 状态代码
- 已用时间(请求响应时间)
用法示例:
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)
在Kiali客户端上创建请求
可用方法
根
此方法将返回kiali的状态。
用法示例:
>>>client.request(method_name='Root').json(){'status':{'Kiali console version':'0.12.0-SNAPSHOT.2937-local-261fb4806afc5c853b097e3cd24e750c691ea6da','Kiali core commit hash':'d1efd8cf6b6a2c56301aa2bb14519b3904e258b0','Kiali core version':'v0.12.0-SNAPSHOT','Kiali state':'running'},'externalServices':[{'name':'Prometheus','version':'2.3.1'},{'name':'Kubernetes','version':'v1.11.0+d4cacc0'},{'name':'Jaeger','url':'https://jaeger-query-istio-system.host.com'},{'name':'Grafana','url':'http://grafana-istio-system.host.com'}],'warningMessages':[]}
杰格林夫
- 此方法将返回jaeger url。
用法示例:
>>>client.request(method_name='jaegerInfo').json(){'url':'https://jaeger-query-istio-system.host.com'}
grafanainfo
- 此方法将返回grafana url和其他描述符。
>>>client.request(method_name='grafanaInfo').json(){'url':'http://grafana-istio-system.host.com','serviceDashboardPath':'/d/LJ_uJAvmk/istio-service-dashboard','workloadDashboardPath':'/d/UbsSZTDik/istio-workload-dashboard','varNamespace':'var-namespace','varService':'var-service','varWorkload':'var-workload'}
获取状态
- 此方法将返回kiali、kubernetes和prometheus的版本,还将显示grafana和jaeger的url。
用法示例:
>>>client.request(method_name='getStatus').json(){'status':{'Kiali console version':'0.12.0-SNAPSHOT.2937-local-261fb4806afc5c853b097e3cd24e750c691ea6da','Kiali core commit hash':'d1efd8cf6b6a2c56301aa2bb14519b3904e258b0','Kiali core version':'v0.12.0-SNAPSHOT','Kiali state':'running'},'externalServices':[{'name':'Prometheus','version':'2.3.1'},{'name':'Kubernetes','version':'v1.11.0+d4cacc0'},{'name':'Jaeger','url':'https://jaeger-query-istio-system.host.com'},{'name':'Grafana','url':'http://grafana-istio-system.host.com'}],'warningMessages':[]}
获取配置
- 此方法将返回kiali配置。
用法示例:
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}
gettoken
- 此方法将返回令牌信息和到期日期。
用法示例:
>>>client.request(method_name='GetToken').json(){'token':'<TokenInformation>','expired_at':'2018-12-14 13:44:29.113973696 +0000 UTC m=+107438.008998940'}
名称空间列表
- 此方法将返回可用命名空间的列表。
用法示例:
>>>client.request(method_name='namespaceList').json()[{'name':'bookinfo'},{'name':'bookinfo2'},{'name':'default'},{'name':'istio-examples'},{'name':'istio-system'},{'name':'management-infra'}]
命名空间度量
- 此方法将返回指定命名空间的度量值
- 必需参数(
命名空间
)
用法示例:
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')0
命名空间运行状况
- 此方法将返回命名空间为
health
- 必需参数(
命名空间
)
用法示例:
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')1
命名空间验证
- 此方法将返回指定命名空间的验证
- 必需参数(
命名空间
)
用法示例:
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')2
ISTIOConfiglist
- 此方法将返回指定命名空间的istio配置列表
- 必需参数(
命名空间
)
用法示例:
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')3
istioconfigdetails
- 此方法将返回指定命名空间中指定对象的istio配置。
- 必需参数(
命名空间
,对象类型
,对象
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')4
对象验证
- 此方法将返回指定命名空间中指定对象的验证
- 必需参数(
命名空间
,对象类型
,对象
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')5
服务列表
- 此方法将返回指定命名空间中的服务列表。
- 必需参数(
命名空间
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')6
服务详细信息
- 此方法将返回规范中指定服务的详细信息固定名称空间。
- 必需参数(
命名空间
,服务
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')7
服务指标
- 此方法将返回服务度量的指示。
- 必需参数(
命名空间
,服务
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')8
服务健康
- 此方法将返回带有service
health
- 必需参数(
命名空间
,服务
)
>>>fromkialiimportKialiClient>>>client=KialiClient(host='kiali-url.com')9
服务验证
- 此方法将返回指定命名空间中指定服务的验证
- 必需参数(
命名空间
,服务
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)0
应用列表
- 此方法将返回指定命名空间中的应用程序列表。
- 必需参数(
命名空间
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)1
AppMetrics
- 此方法将返回应用程序度量的指示。
- 必需参数(
命名空间
,应用程序
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)2
应用程序详细信息
- 此方法将返回命名空间中指定应用程序的详细信息。
- 必需参数(
命名空间
,应用程序
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)3
AppHealth
- 此方法将返回一个带有app
health
- 必需参数(
命名空间
,应用程序
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)4
工作负载列表
- 此方法将返回指定命名空间中的工作负载列表。
- 必需参数(
命名空间
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)5
工作负载详细信息
- 此方法将返回命名空间中指定工作负载的详细信息。
- 必需参数(
命名空间
,工作负载
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)6
工作负载运行状况
- 此方法将返回一个带有workload
health
- 必需参数(
命名空间
,工作负载
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)7
工作负载指标
- 此方法将返回工作量指标的指示。
- 必需参数(
命名空间
,工作负载
)
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)8
图形空间
- 此方法将返回一个
图,其中包含一个具有
节点数组和
边数组的字典
- 必需参数(
命名空间
)- 可以包含的其他参数,例如:{params={'graphtype':'app',duration:'60s'}}
- 必需参数(
>>>client.request(method_name='getConfig').json(){'istioNamespace':'istio-system','istioLabels':{'AppLabelName':'app','VersionLabelName':'version'}}>>>client.request(method_name='namespaceList').text'[{"name":"bookinfo"},{"name":"bookinfo2"},{"name":"default"},{"name":"istio-examples"},{"name":"istio-system"},{"name":"management-infra"}]'>>>client.request(method_name='namespaceMetrics',path={'namespace':'istio-system'}).status_code200>>>client.request(method_name='jaegerInfo').url'https://kiali-istio-system.host.com:443/api/jaeger'>>>client.request(method_name='serviceList',path={'namespace':'istio-system'}).elapseddatetime.timedelta(seconds=1,microseconds=859915)9
图形服务
- 此方法将返回一个
图,其中包含一个具有
节点数组和
边数组的字典
- 必需参数(
命名空间
) - 必需参数(
>>>client.request(method_name='Root').json(){'status':{'Kiali console version':'0.12.0-SNAPSHOT.2937-local-261fb4806afc5c853b097e3cd24e750c691ea6da','Kiali core commit hash':'d1efd8cf6b6a2c56301aa2bb14519b3904e258b0','Kiali core version':'v0.12.0-SNAPSHOT','Kiali state':'running'},'externalServices':[{'name':'Prometheus','version':'2.3.1'},{'name':'Kubernetes','version':'v1.11.0+d4cacc0'},{'name':'Jaeger','url':'https://jaeger-query-istio-system.host.com'},{'name':'Grafana','url':'http://grafana-istio-system.host.com'}],'warningMessages':[]}0
图形工作负载
- 此方法将返回一个
图,其中包含一个具有
节点数组和
边数组的字典
- 必需参数(
命名空间
) - 必需参数(
>>>client.request(method_name='Root').json(){'status':{'Kiali console version':'0.12.0-SNAPSHOT.2937-local-261fb4806afc5c853b097e3cd24e750c691ea6da','Kiali core commit hash':'d1efd8cf6b6a2c56301aa2bb14519b3904e258b0','Kiali core version':'v0.12.0-SNAPSHOT','Kiali state':'running'},'externalServices':[{'name':'Prometheus','version':'2.3.1'},{'name':'Kubernetes','version':'v1.11.0+d4cacc0'},{'name':'Jaeger','url':'https://jaeger-query-istio-system.host.com'},{'name':'Grafana','url':'http://grafana-istio-system.host.com'}],'warningMessages':[]}1