diff --git a/go_exporter/Dockerfile b/go_exporter/Dockerfile new file mode 100644 index 0000000..20eb4bc --- /dev/null +++ b/go_exporter/Dockerfile @@ -0,0 +1,17 @@ +FROM golang:1.25-alpine AS builder + +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download + +COPY . . +RUN CGO_ENABLED=0 GOOS=linux go build -o exporter . + +FROM alpine:latest +RUN apk --no-cache add ca-certificates +WORKDIR /root/ + +COPY --from=builder /app/exporter . +EXPOSE 9040 + +CMD [ "./exporter" ] \ No newline at end of file diff --git a/go_exporter/deploy.yaml b/go_exporter/deploy.yaml new file mode 100644 index 0000000..8b7d487 --- /dev/null +++ b/go_exporter/deploy.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: Pod +metadata: + name: export + namespace: rook-ceph + labels: + app: export + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9040" + prometheus.io/path: "/metrics" +spec: + containers: + - name: export + image: serviceplant/goexp:0.0.5 + ports: + - containerPort: 9040 + name: metrics +--- +apiVersion: v1 +kind: Service +metadata: + name: export-service + namespace: rook-ceph + labels: + svc_app: export + rook_cluster: rook-ceph +spec: + selector: + app: export + ports: + - name: metrics + port: 9040 + targetPort: 9040 + protocol: TCP + type: ClusterIP diff --git a/go_exporter/service_monitor.yaml b/go_exporter/service_monitor.yaml new file mode 100644 index 0000000..5380083 --- /dev/null +++ b/go_exporter/service_monitor.yaml @@ -0,0 +1,20 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: export-monitor + namespace: rook-ceph + labels: + team: rook +spec: + namespaceSelector: + matchNames: + - rook-ceph + selector: + matchLabels: + svc_app: export + rook_cluster: rook-ceph + endpoints: + - port: metrics + interval: 30s + path: /metrics + honorLabels: true