我正在使用 MiniKube 1.31,我决定按照 OpenTelemetry Collector Operator 上的缩写步骤应用建议的 CMD (kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/ latest/download/opentelemetry-operator.yaml)并部署此 YAML:
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
name: simplest
spec:
config:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
memory_limiter:
check_interval: 1s
limit_percentage: 75
spike_limit_percentage: 15
batch:
send_batch_size: 10000
timeout: 10s
exporters:
debug: {}
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch]
exporters: [debug]
在 Default 命名空间上执行,一切顺利,并自动为我提供了一个名为 ClusterIP 类型的 simplest-collector 的服务。
然后我通过以下脚本(省略 PVC)将 Grafana 部署在不同的命名空间中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- containerPort: 3000
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
volumes:
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-pvc
并提供服务:
apiVersion: v1
kind: Service
metadata:
name: grafana-service
namespace: monitoring
spec:
type: NodePort
ports:
- port: 3000
targetPort: 3000
selector:
app: grafana
问题开始于尝试在 Grafana 中设置 Prometheus 数据源,即使我正在暴露/隧道化最简单的收集器服务,即 ClusterIP,通过:
minikube service simplest-collector
我无法通过 Grafana 使用以下端点来触摸它:http://simplest-collector.default.svc.cluster.local:4317
返回错误:
发帖 “http://simplest-collector.default.svc.cluster.local:4317/api/v1/query”: net/http:HTTP/1.x 传输连接中断:HTTP 格式错误 响应“\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x05\x00\x00@\x00” - 查询 Prometheus API 时返回错误。
我没有使用https,只使用http,我尝试过使用NodePort,但也没有成功。
4317 是典型的默认 GRPC。听起来你正在与 http/protobuf 交互,所以尝试端口 4318