mesos-dns icon indicating copy to clipboard operation
mesos-dns copied to clipboard

Expose metrics for monitoring

Open sargun opened this issue 10 years ago • 5 comments

We need to expose metrics for monitoring. A service without metrics may as well not be running if it isn't monitored is the common mantra these days amongst SREs. The other aspect of this is that users must monitor the usage of a given mesos-dns instance in order to properly capacity plane.

Fortunately, Go has a standard package, expvar for exporting variables, and data via HTTP. Though, this package doesn't have great components to help users keep track of metrics. There are a few libraries to handle the collection of statistics:

  • Go-metrics: https://github.com/rcrowley/go-metrics
  • Armon's Go-metrics: https://github.com/armon/go-metrics
  • Go-Kit's metrics package: https://github.com/go-kit/kit/tree/master/metrics

RCrowley's package seems the most popular one of the three that's used in many open source projects. On the other hand, Armon's library is used in anger at Hashicorp.

The go-kit library appeals to me the most, because it has integration with statsd, and expvar, allowing us to export metrics to DCOS via statsd, and other users via expvar.

The metrics I'm interested in capturing are as follows:

  • Histograms:
    • Request latency
    • Upstream resolution latency
    • Requests
  • Counts
    • Records

Other:

  • Memory usage

sargun avatar Nov 14 '15 04:11 sargun

FWIW kubernetes uses prometheus for exporting metrics.

https://github.com/prometheus/client_golang

If anyone is working on DCOS metrics it might be nice to pick a lib that will integrate well with that.

On Fri, Nov 13, 2015 at 11:57 PM, Sargun Dhillon [email protected] wrote:

We need to expose metrics for monitoring. A service without metrics may as well not be running if it isn't monitored is the common mantra these days amongst SREs. The other aspect of this is that users must monitor the usage of a given mesos-dns instance in order to properly capacity plane.

Fortunately, Go has a standard package, expvar https://golang.org/pkg/expvar/ for exporting variables, and data via HTTP. Though, this package doesn't have great components to help users keep track of metrics. There are a few libraries to handle the collection of statistics:

  • Go-metrics: https://github.com/rcrowley/go-metrics
  • Armon's Go-metrics: https://github.com/armon/go-metrics
  • Go-Kit's metrics package: https://github.com/go-kit/kit/tree/master/metrics

RCrowley's package seems the most popular one of the three that's used in many open source projects. On the other hand, Armon's library is used in anger at Hashicorp.

The go-kit library appeals to me the most, because it has integration with statsd, and expvar, allowing us to export metrics to DCOS via statsd, and other users via expvar.

The metrics I'm interested in capturing are as follows:

Histograms:

  • Request latency

    • Upstream resolution latency

    - Requests

    Counts

  • Records

Other:

  • Memory usage

— Reply to this email directly or view it on GitHub https://github.com/mesosphere/mesos-dns/issues/349.

jdef avatar Nov 14 '15 06:11 jdef

Paging @nickbp, who is working on DCOS metrics.

sargun avatar Nov 14 '15 22:11 sargun

@jdef It appears like go-kit's metrics support prometheus.

sargun avatar Nov 14 '15 22:11 sargun

@sargun Hi, any update on that? We recently experience high latency for resolve dc/os services. Can you pls tell update when you think this feature will be released?

Thanks

panda87 avatar Jan 15 '17 07:01 panda87

AFAIK we've discussed statsd support for services running on DCOS. for core services within dcos, I don't think we've settled on a standard OSS API yet.

On Sun, Jan 15, 2017 at 2:14 AM, panda87 [email protected] wrote:

@sargun https://github.com/sargun Hi, any update on that? We recently experience high latency for resolve dc/os services. Can you pls tell update when you think this feature will be released?

Thanks

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mesosphere/mesos-dns/issues/349#issuecomment-272678576, or mute the thread https://github.com/notifications/unsubscribe-auth/ACPVLEjuLgLXPztkR9l8k_5Zemq8jOHbks5rScdKgaJpZM4GiSnq .

jdef avatar Jan 31 '17 15:01 jdef