Hi everyone,
I’m new to Weaviate and need some help.
I want to use grafana and prometheus for monitoring.
I follow up your guide to expose metrics by added settings below to values.yaml:
service:
name: weaviate
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
- name: metrics
protocol: TCP
port: 2112
targetPort: 2112
# Target port is going to be the same for every port
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "2112"
prometheus.io/path: "/metrics"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
type: LoadBalancer
loadBalancerSourceRanges:
- 172.31.0.0/16
.....
# Expose metrics on port 2112 for Prometheus to scrape
PROMETHEUS_MONITORING_ENABLED: true
PROMETHEUS_MONITORING_GROUP: false
PROMETHEUS_MONITORING_PORT: 2112
When I deploy weaviate. Port 2112 can’t expose and alway back to default is 8080.
I don’t know why. Can you support me how to change it?
I checked the endpoint:
kubectl describe endpoints weaviate -n weaviate
Warning: v1 Endpoints is deprecated in v1.33+; use discovery.k8s.io/v1 EndpointSlice
Name: weaviate
Namespace: weaviate
Labels: app=weaviate
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=weaviate
endpoints.kubernetes.io/managed-by=endpoint-controller
Annotations: <none>
Subsets:
Addresses: 172.31.104.217,172.31.142.98,172.31.52.40
NotReadyAddresses: <none>
Ports:
Name Port Protocol
---- ---- --------
metrics 8080 TCP
http 8080 TCP
Events: <none>
Check weaviate service:
kubectl get svc weaviate -n weaviate -o yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"prometheus.io/path":"/metrics","prometheus.io/port":"2112","prometheus.io/scrape":"true","service.beta.kubernetes.io/aws-load-balancer-internal":"true"},"labels":{"app":"weaviate"},"name":"weaviate","namespace":"weaviate"},"spec":{"ports":[{"name":"http","port":80,"protocol":"TCP","targetPort":8080},{"name":"metrics","port":2112,"protocol":"TCP","targetPort":2112}],"selector":{"app.kubernetes.io/name":"weaviate"}}}
meta.helm.sh/release-name: weaviate
meta.helm.sh/release-namespace: weaviate
prometheus.io/path: /metrics
prometheus.io/port: "2112"
prometheus.io/scrape: "true"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
creationTimestamp: "2026-02-22T05:52:54Z"
finalizers:
- service.kubernetes.io/load-balancer-cleanup
labels:
app: weaviate
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: weaviate
name: weaviate
namespace: weaviate
resourceVersion: "56720"
uid: 5fbb9800-28c1-d307eee0c747
spec:
allocateLoadBalancerNodePorts: true
clusterIP: 10.100.154.100
clusterIPs:
- 10.100.154.100
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
loadBalancerSourceRanges:
- 172.31.0.0/16
ports:
- name: http
nodePort: 32424
port: 80
protocol: TCP
targetPort: 8080
- name: metrics
nodePort: 31569
port: 2112
protocol: TCP
targetPort: 8080
selector:
app: weaviate
app.kubernetes.io/name: weaviate
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- hostname: internal-5b21dd307eee0c74-1545928450.eu-west-1.elb.amazonaws.com