12.4. 从集群外部访问自定义应用程序的指标
在使用用户定义的项目监控您自己的服务时,您可以从集群外部查询 Prometheus 指标。使用 thanos-querier
路由从集群外部访问这些数据。
此访问仅支持使用 bearer 令牌进行身份验证。
先决条件
- 您已按照用户定义的项目启用监控部署了自己的服务。
-
您可以使用
cluster-monitoring-view
集群角色登录到帐户,它提供访问 Thanos Querier API 的权限。 已登陆到一个有权获取 Thanos Querier API 路由的帐户。
注意如果您的帐户没有权限获取 Thanos Querier API 路由,集群管理员可以提供路由的 URL。
流程
运行以下命令,提取身份验证令牌以连接到 Prometheus:
$ TOKEN=$(oc whoami -t)
运行以下命令,提取
thanos-querier
API 路由 URL:$ HOST=$(oc -n openshift-monitoring get route thanos-querier -ojsonpath={.status.ingress[].host})
使用以下命令,将命名空间设置为运行服务的命名空间:
$ NAMESPACE=ns1
运行以下命令,在命令行中查询您自己的服务的指标:
$ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v1/query?" --data-urlencode "query=up{namespace='$NAMESPACE'}"
输出显示 Prometheus 提取的每个应用程序 pod 的状态:
格式的示例输出
{ "status": "success", "data": { "resultType": "vector", "result": [ { "metric": { "__name__": "up", "endpoint": "web", "instance": "10.129.0.46:8080", "job": "prometheus-example-app", "namespace": "ns1", "pod": "prometheus-example-app-68d47c4fb6-jztp2", "service": "prometheus-example-app" }, "value": [ 1591881154.748, "1" ] } ], } }
注意-
格式的示例输出使用过滤工具(如
jq
)来提供格式化的缩进 JSON。有关使用 jq 的更多信息,请参阅 jq Manual (jq
文档)。 - 命令请求 Thanos Querier 服务的即时查询端点,它会一次评估选择器。
-
格式的示例输出使用过滤工具(如