Git Product home page Git Product logo

Comments (9)

murali-reddy avatar murali-reddy commented on September 23, 2024

@bzub Its fairly easy task. There are plenty of examples out there. Some thing that is close to kube-router:

https://github.com/kobolog/gorb/blob/master/core/prometheus_exporter.go

I will start workign on this as well. We shall coordinate and get this out.

from kube-router.

murali-reddy avatar murali-reddy commented on September 23, 2024

metrics exposed as http://nodeip:8080/metrics

# HELP kube_router_service_backend_active_connections Active conntection to backend of service
# TYPE kube_router_service_backend_active_connections gauge
kube_router_service_backend_active_connections{backend="100.96.1.2",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_active_connections{backend="100.96.1.3",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_active_connections{backend="100.96.1.4",namespace="default",service_name="frontend"} 0
kube_router_service_backend_active_connections{backend="100.96.1.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_active_connections{backend="100.96.2.3",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_active_connections{backend="100.96.2.4",namespace="default",service_name="redis-master"} 1
kube_router_service_backend_active_connections{backend="100.96.2.5",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_active_connections{backend="100.96.2.6",namespace="default",service_name="frontend"} 0
kube_router_service_backend_active_connections{backend="172.20.51.157",namespace="default",service_name="kubernetes"} 1
# HELP kube_router_service_backend_inactive_connections Active conntection to backend of service
# TYPE kube_router_service_backend_inactive_connections gauge
kube_router_service_backend_inactive_connections{backend="100.96.1.2",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_inactive_connections{backend="100.96.1.3",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_inactive_connections{backend="100.96.1.4",namespace="default",service_name="frontend"} 0
kube_router_service_backend_inactive_connections{backend="100.96.1.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_inactive_connections{backend="100.96.2.3",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_inactive_connections{backend="100.96.2.4",namespace="default",service_name="redis-master"} 2
kube_router_service_backend_inactive_connections{backend="100.96.2.5",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_inactive_connections{backend="100.96.2.6",namespace="default",service_name="frontend"} 0
kube_router_service_backend_inactive_connections{backend="172.20.51.157",namespace="default",service_name="kubernetes"} 0

from kube-router.

murali-reddy avatar murali-reddy commented on September 23, 2024

Basic framework is in place. Need to expose metrics further that make sense.

from kube-router.

murali-reddy avatar murali-reddy commented on September 23, 2024

some other possible metrics from ipvs service and endpoint details

PacketsIn
PacketsOut
PPSIn
PPSOut

from kube-router.

murali-reddy avatar murali-reddy commented on September 23, 2024

@bzub any idea how to make prometheus scrap metrics exposed by kube-router, i am using https://github.com/coreos/blog-examples/blob/master/monitoring-kubernetes-with-prometheus/prometheus.yml. Need to test with prometheus , and details into documentaton.

from kube-router.

murali-reddy avatar murali-reddy commented on September 23, 2024

added PPS in and out metrics

# HELP kube_router_service_backend_pps_in Incoming packets per second
# TYPE kube_router_service_backend_pps_in gauge
kube_router_service_backend_pps_in{backend="100.96.1.3",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_pps_in{backend="100.96.1.4",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_pps_in{backend="100.96.1.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_in{backend="100.96.1.6",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_in{backend="100.96.2.2",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_pps_in{backend="100.96.2.3",namespace="default",service_name="redis-master"} 1
kube_router_service_backend_pps_in{backend="100.96.2.4",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_pps_in{backend="100.96.2.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_in{backend="172.20.34.93",namespace="default",service_name="kubernetes"} 2
# HELP kube_router_service_backend_pps_out Outoging packets per second
# TYPE kube_router_service_backend_pps_out gauge
kube_router_service_backend_pps_out{backend="100.96.1.3",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_pps_out{backend="100.96.1.4",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_pps_out{backend="100.96.1.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_out{backend="100.96.1.6",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_out{backend="100.96.2.2",namespace="kube-system",service_name="kube-dns"} 0
kube_router_service_backend_pps_out{backend="100.96.2.3",namespace="default",service_name="redis-master"} 1
kube_router_service_backend_pps_out{backend="100.96.2.4",namespace="default",service_name="redis-slave"} 0
kube_router_service_backend_pps_out{backend="100.96.2.5",namespace="default",service_name="frontend"} 0
kube_router_service_backend_pps_out{backend="172.20.34.93",namespace="default",service_name="kubernetes"} 2

from kube-router.

roffe avatar roffe commented on September 23, 2024

@murali-reddy
in the kube-router deployment we can add the following annotations

      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "8080"

Supported annotations are:

  • prometheus.io/scrape: Only scrape services that have a value of true
  • prometheus.io/scheme: If the metrics endpoint is secured then you will need
    to set this to https & most likely set the tls_config of the scrape config.
  • prometheus.io/path: If the metrics path is not /metrics override this.
  • prometheus.io/port: If the metrics are exposed on a different port to the
    service then set this appropriately.

https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml

If prometheus is setup to use SD for K8S api it will then scrape the metrics from the pods.

Once i verify my changes in #288 works i will add some more docs regarding how to use this function

from kube-router.

roffe avatar roffe commented on September 23, 2024

I have tested #288 in my local cluster and have gotten auto scraping & SD to work on custom ports & paths

Docs for the steps needed is added in PR #289

from kube-router.

roffe avatar roffe commented on September 23, 2024

With #294 we have a framework in place for this and i suggest we close the issue and create a new if we want to extend the current metrics

from kube-router.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.