diff --git a/HelmfileHomework/HelmfileHomework.csproj b/HelmfileHomework/HelmfileHomework.csproj index 7eedfcc..2c9484d 100644 --- a/HelmfileHomework/HelmfileHomework.csproj +++ b/HelmfileHomework/HelmfileHomework.csproj @@ -7,8 +7,9 @@ - - + + + diff --git a/HelmfileHomework/Program.cs b/HelmfileHomework/Program.cs index ebd3fa9..19d9358 100644 --- a/HelmfileHomework/Program.cs +++ b/HelmfileHomework/Program.cs @@ -1,6 +1,7 @@ using HelmfileHomework; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Prometheus; var builder = WebApplication.CreateBuilder(args); @@ -34,4 +35,6 @@ app.UseHttpsRedirection(); +app.UseMetricServer(); + app.Run(); \ No newline at end of file diff --git a/helmfile-homework/templates/service.yaml b/helmfile-homework/templates/service.yaml index 6ba425b..4825e23 100644 --- a/helmfile-homework/templates/service.yaml +++ b/helmfile-homework/templates/service.yaml @@ -3,9 +3,12 @@ kind: Service metadata: name: {{ .Values.app.service }} namespace: {{ .Release.Namespace }} + labels: + app: {{ .Release.Name }} spec: selector: - app: {{ .Release.Namespace }} + app: {{ .Release.Name }} ports: - - port: 8080 + - name: alias8080 + port: 8080 targetPort: 8080 diff --git a/helmfile-homework/templates/servicemonitor.yml b/helmfile-homework/templates/servicemonitor.yml new file mode 100644 index 0000000..413450b --- /dev/null +++ b/helmfile-homework/templates/servicemonitor.yml @@ -0,0 +1,17 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ .Release.Name }}-servicemonitor + labels: + release: monitoring +spec: + selector: + matchLabels: + app: {{ .Release.Name }} + namespaceSelector: + matchNames: + endpoints: + - port: alias8080 + interval: 30s + path: /metrics + scheme: http \ No newline at end of file diff --git a/helmfile.yaml b/helmfile.yaml index bd2973d..d228593 100644 --- a/helmfile.yaml +++ b/helmfile.yaml @@ -1,6 +1,18 @@ +repositories: +- name: prometheus + url: https://prometheus-community.github.io/helm-charts + releases: + - name: monitoring + namespace: monitoring + chart: prometheus/kube-prometheus-stack + disableValidationOnInstall: true + - name: homework namespace: homework chart: ./helmfile-homework values: - ./helmfile-homework/values.yaml + needs: + - monitoring/monitoring + disableValidationOnInstall: true