Skip to content

product-os/node-monitoring

Repository files navigation

node-monitoring

Self-serve monitoring

diagram of self-serve monitoring

Basic usage

diagram of node-monitoring usage

Metrics

Metrics are defined by the monitoringConfig.metrics.{counter,gauge,histogram,summary} objects, for example:

{
    metrics: {
	counter: [
	    {
	    name: "builder_build_complete_total",
	    help: "number of build requests completed"
	    }
	],
	histogram: [
	    {
	    name: "builder_build_image_size_bytes",
	    help: "bytes per image built",
	    buckets: imageSizeBuckets
	    }
	]
    }
}

The schema for each object is that schema expected as argument by the constructors for prometheus.Counter, prometheus.Histogram, etc. in the prom-client nodejs prometheus client library.

Once the code using this module has constructed a Monitoring object as in the diagram above, metrics objects (of the types from prom-client) can be accessed on the monitoring.metrics object (as also shown in the diagram).

Alerting-rules / Recording-rules

The schema for defining alerting rules and recording rules on the alerting_rules and recording_rules keys of the monitoringConfig object is the JSON equivalent of the YAML schema defined by the Prometheus documentation (alerting rules, recording rules).

Discovery

  • Any .json files representing grafana dashboards in /etc/monitoring/dashboards/ will be discoverable on :9393/dashboards.

  • Prometheus metrics will be discoverable on :9090/metrics.

  • Alerting rules and recording rules will be discoverable on :9393/alerting-rules, :9393/recording-rules.

About

standardizing patterns for node-based services

Resources

Stars

Watchers

Forks

Packages

No packages published