prometheus-operator: etcd3 metrics missing
I installed all the prometheus-operator examples, quite a lot of metrics…
But missing etcd metrics… Have running
NAME                    ENDPOINTS                                                              AGE
alertmanager-main       10.244.18.7:9093,10.244.46.10:9093,10.244.83.18:9093                   14d
alertmanager-operated   10.244.18.7:9093,10.244.46.10:9093,10.244.83.18:9093 + 3 more...       14d
etcd-k8s                10.142.0.2:2379                                                        1h
grafana                 10.244.46.7:3000                                                       14d
kube-state-metrics      10.244.46.6:8080                                                       14d
node-exporter           172.31.1.143:9100,172.31.10.210:9100,172.31.18.136:9100 + 12 more...   14d
postgres-exporter       172.31.27.181:9187                                                     8d
prometheus-k8s          10.244.18.9:9090,10.244.8.10:9090                                      14d
prometheus-operated     10.244.18.9:9090,10.244.46.12:9090,10.244.8.10:9090                    14d
prometheus-operator     10.244.46.4:8080                                                       14d
redis-exporter          172.31.27.181:9121           
and getting on http://localhost:2379/metrics (kubectl proxy --port 2379) not the expected results of  etcd_server values…
Kubernetes version information:
tom.stark@MBproTStark prometheus-monitoring (aws)  $ kubectl --context=aws version
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.2", GitCommit:"922a86cfcd65915a9b2f69f3f193b8907d741d9c", GitTreeState:"clean", BuildDate:"2017-07-21T19:06:19Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6+coreos.1", GitCommit:"42a5c8b99c994a51d9ceaed5d0254f177e97d419", GitTreeState:"clean", BuildDate:"2017-06-21T01:10:07Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"}
About this issue
- Original URL
 - State: closed
 - Created 7 years ago
 - Comments: 19 (6 by maintainers)
 
The
etcd_helper_*metrics are actually coming from the apiserver, not etcd. You are not successfully discovering etcd yet.The
ServiceMonitoryou referenced needs to be adapted, as it specifically selects only those service/endpoints objects that have thek8s-app: kube-controller-managerlabel. What you need to do is label your service and endpoints object properly and then adapt theServiceMonitormanifest. You should end up with something like this (assuming you are deploying this in the monitoring namespace).I haven’t tried this out, but it should give you guidance. Let me know how it goes 🙂 .
I’m able to curl my etcd endpoint by passing the certificates:
curl -L -v --cacert ./ca.pem --cert ./etcd-client.pem --key ./etcd-client-key.pem https://etcd0.mycompany-internal-domain.local:2379/metricsWhere etcd0.mycompany-internal-domain.local is the full DNS for my first etcd node. I have 3 of them, each with its own DNS (Route53)
I want to alter the ServiceMonitor spec to specify tlsConfig:
where
credentialsis the path to the credential folder on my laptop.The problem I see is that Endpoint takes an IP address:
The certificates are not valid for the IP address. Not a valid name. I tried with curl, it won’t take it. How can I use DNS based service?
Kubernetes has the concept of ExternalName for a service:
How do I link the ServiceMonitor to this ExternalName endpoint?
I installed exactly that https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/README.md setup, but without helm… In my initial description I display the service and endpoints.
But I’m not sure to get the right IP for putting into the setup … What ip address I have to use? Normally I should use a IP of the master nodes?!
https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/etcd/etcd-bootkube-vagrant-multi.yaml