Jaeger Operator 发布的指标是否也包括来自收集器和查询服务的指标?
Do metrics published by the Jaeger Operator include those from the Collector and Query services too?
我正在使用 Jaeger Operator and it seems to be working fine. However, now I am trying to set up Prometheus metrics scraping (using the Prometheus Operator) but I am not seeing a Service
in my cluster that exposes the metrics ports for the Jaeger Collector (port 14269) or Query services (port 16687) (port number reference from the Jeager Monitoring documentation).
部署 Jaeger
我看到的唯一相关 Service
是 jaeger-operator-metrics
:
$ kubectl get svc -A
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
simple-prod-collector ClusterIP 10.43.20.131 <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP
simple-prod-query ClusterIP 10.43.141.211 <none> 16686/TCP
simple-prod-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP
jaeger-operator-metrics ClusterIP 10.43.90.169 <none> 8383/TCP,8686/TCP
我可以设置 Prometheus ServiceMonitor
来从该服务中抓取指标,但我不确定这是否包括通常由收集器和查询微服务收集的指标...我我猜不会,因为这似乎违反了微服务的前提。
我错过了 Jaeger Operator 规范中的某些设置以在其他组件中公开这些指标端点吗?
我想通了...Jaeger Operator 不会创建 Service
公开指标端点。这些端点仅通过收集器和查询组件的 pods 公开。
Collector pod 规范中的示例:
ports:
- containerPort: 9411
name: zipkin
protocol: TCP
- containerPort: 14267
name: c-tchan-trft
protocol: TCP
- containerPort: 14268
name: c-binary-trft
protocol: TCP
- containerPort: 14269
name: admin-http
protocol: TCP
- containerPort: 14250
name: grpc
protocol: TCP
注意那里的 admin-http
端口。
因此,为了让 Prometheus Operator 抓取这些指标,我创建了一个 PodMonitor
,它涵盖了 Collector 和 Query 组件,因为它们都有 labels/app: jaeger
和 admin-http
端口定义:
cat <<EOF | kubectl apply -f -
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: jaeger-components
namespace: monitoring
labels:
release: prometheus
spec:
podMetricsEndpoints:
- path: /metrics
port: admin-http
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
app: jaeger
EOF
我正在使用 Jaeger Operator and it seems to be working fine. However, now I am trying to set up Prometheus metrics scraping (using the Prometheus Operator) but I am not seeing a Service
in my cluster that exposes the metrics ports for the Jaeger Collector (port 14269) or Query services (port 16687) (port number reference from the Jeager Monitoring documentation).
我看到的唯一相关 Service
是 jaeger-operator-metrics
:
$ kubectl get svc -A
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
simple-prod-collector ClusterIP 10.43.20.131 <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP
simple-prod-query ClusterIP 10.43.141.211 <none> 16686/TCP
simple-prod-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP
jaeger-operator-metrics ClusterIP 10.43.90.169 <none> 8383/TCP,8686/TCP
我可以设置 Prometheus ServiceMonitor
来从该服务中抓取指标,但我不确定这是否包括通常由收集器和查询微服务收集的指标...我我猜不会,因为这似乎违反了微服务的前提。
我错过了 Jaeger Operator 规范中的某些设置以在其他组件中公开这些指标端点吗?
我想通了...Jaeger Operator 不会创建 Service
公开指标端点。这些端点仅通过收集器和查询组件的 pods 公开。
Collector pod 规范中的示例:
ports:
- containerPort: 9411
name: zipkin
protocol: TCP
- containerPort: 14267
name: c-tchan-trft
protocol: TCP
- containerPort: 14268
name: c-binary-trft
protocol: TCP
- containerPort: 14269
name: admin-http
protocol: TCP
- containerPort: 14250
name: grpc
protocol: TCP
注意那里的 admin-http
端口。
因此,为了让 Prometheus Operator 抓取这些指标,我创建了一个 PodMonitor
,它涵盖了 Collector 和 Query 组件,因为它们都有 labels/app: jaeger
和 admin-http
端口定义:
cat <<EOF | kubectl apply -f -
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: jaeger-components
namespace: monitoring
labels:
release: prometheus
spec:
podMetricsEndpoints:
- path: /metrics
port: admin-http
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
app: jaeger
EOF