Настройте Prometheus Operator для мониторинга. net основное приложение - PullRequest
0 голосов
/ 20 марта 2020

Я успешно настроил prometheus и grafana на моем кластере разработчиков kubernetes (после этого: https://itnext.io/kubernetes-monitoring-with-prometheus-in-15-minutes-8e54d1de2e13).

Добавил это в Startup.cs для моего образца. net core app:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        var counter = Metrics.CreateCounter("PathCounter", "Counts requests to endpoints", new CounterConfiguration
        {
            LabelNames = new[] { "method", "endpoint" }
        });
        app.Use((context, next) =>
        {
            counter.WithLabels(context.Request.Method, context.Request.Path).Inc();
            return next();
        });
        app.UseMetricServer();

Должен ли я указать что-либо для app.UseMetricServer (ЗДЕСЬ?);

Я применил этот yaml, чтобы добавить мое приложение для удаления:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: buygroup
  labels:
    app: buygroup
    release: prom
spec:
  namespaceSelector:
    any: true
  selector:
    matchLabels:
      app: buygroup
  endpoints:
  - port: web
    interval: 10s

Я не вижу ничего, что собрано в Цели в: http://localhost: 9090 / цели

enter image description here

enter image description here

Установлено. net Приборная панель, но не показывает результатов:

enter image description here

Что мне нужно сделать, чтобы результаты удалялись из моего приложения "buygroup"?

Сервис yaml:

apiVersion: v1
kind: Service
metadata:
  name: buygroup
  labels:
    name: buygroup
spec:
  type: NodePort
  selector:
    app.kubernetes.io/instance: buygroup
    app.kubernetes.io/name: buygroup
  ports:
  - name: http
    port: 80
    nodePort: 30601
    targetPort: http

Сервисный монитор:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: monitoring-buygroup
  namespace: monitoring
  labels:
    app: buygroup
spec:
  selector:
    matchLabels:
      # Target app service
      app: buygroup
  endpoints:
  - interval: 15s
    path: /metrics
    port: http
  namespaceSelector:
    matchNames:
    - buygroup-namespace

1 Ответ

0 голосов
/ 23 марта 2020

Я понял:

ServiceMonitor:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: prometheus-operator-buygroup
  namespace: monitoring
  labels:
    app: prometheus-operator-buygroup
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      # Target app service
      app.kubernetes.io/instance: buygroup
      app.kubernetes.io/name: buygroup
  endpoints:
  - interval: 15s
    path: /metrics
    port: http
  namespaceSelector:
    any: true

Сервис:

apiVersion: v1
kind: Service
metadata:
  name: prometheus-operator-buygroup
  labels:
    app: buygroup
    app.kubernetes.io/instance: buygroup
    app.kubernetes.io/name: buygroup
spec:
  type: ClusterIP
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: http
  selector:
    app: buygroup
    app.kubernetes.io/instance: buygroup
    app.kubernetes.io/name: buygroup
...