cloudprober

package module
v0.0.0-...-eff70b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2018 License: Apache-2.0 Imports: 20 Imported by: 0

README

Build Status Build status

Cloudprober

cloudprober.github.io

Cloudprober is a monitoring software that makes it super-easy to monitor availability and performance of various components of your system. Cloudprober employs the "active" monitoring model. It runs probes against (or on) your components to verify that they are working as expected. For example, it can run a probe to verify that your frontends can reach your backends. Similarly it can run a probe to verify that your in-Cloud VMs can actually reach your on-premise systems. This kind of monitoring makes it possible to monitor your systems' interfaces regardless of the implementation and helps you quickly pin down what's broken in your system.

Cloudprober Use Case

Features

  • Automated target discovery for Cloud targets. GCP is supported out-of-the-box; other Cloud providers can be added easily.
  • Integration with StackDriver. If configured, Cloudprober exports probe results to StackDriver as custom metrics.
  • Integration with open source monitoring stack of Prometheus and Grafana. Cloudprober exports probe results as counter based metrics that work well with Prometheus and Grafana.
  • Built-in implementations for the most common probe types: PING, HTTP, UDP, DNS.
  • Arbitrary, complex probes can be run through the external probe type. For example, you could write a simple script to insert and delete a row in your database, and execute this script through the 'EXTERNAL' probe type.
  • Fast and efficient ping prober implementation that allows probing thousands of hosts with minimal resources.
  • Strong focus on ease of deployment. Cloudprober is written entirely in Go and compiles into a static binary. It can be easily deployed through docker containers. Thanks to the automated target discovery, there is usually no need to re-deploy or re-configure cloudprober in response to the most of the changes.
  • Go templates based config file with substitutions for standard variables like project, zone, instance names etc allows for using same config file across the fleet.
  • Low footprint. Cloudprober docker image is small, containing just the statically compiled binary and it takes very little CPU and RAM to run even a large number of probes.
  • Extensible architecture. Cloudprober can be easily extended along most of the dimensions. Adding support for other Cloud targets, monitoring systems (e.g. Graphite, Amazon Cloudwatch) and even a new probe type, is straight-forward and fairly easy.

Visit Cloudprober's website at cloudprober.org to get started with Cloudprober.

Join Cloudprober Group for discussion and release announcements.

Documentation

Overview

Package cloudprober provides a prober for running a set of probes.

Cloudprober takes in a config proto which dictates what probes should be created with what configuration, and manages the asynchronous fan-in/fan-out of the metrics data from these probes.

Index

Constants

View Source
const (
	DefaultServerPort = 9313
	ServerPortEnvVar  = "CLOUDPROBER_PORT"
)

Constants defining the default server port.

Variables

This section is empty.

Functions

func GetConfig

func GetConfig() string

GetConfig returns the prober config.

func InitFromConfig

func InitFromConfig(configFile string) error

InitFromConfig initializes Cloudprober using the provided config.

func Start

func Start(ctx context.Context)

Start starts a previously initialized Cloudprober.

Types

type Prober

type Prober struct {
	Probes  map[string]probes.Probe
	Servers []servers.Server
	// contains filtered or unexported fields
}

Prober represents a collection of probes where each probe implements the Probe interface.

Directories

Path Synopsis
Binary cloudprober is a tool for running a set of probes and metric surfacers on a GCE VM.
Binary cloudprober is a tool for running a set of probes and metric surfacers on a GCE VM.
Package config provides parser for cloudprober configs.
Package config provides parser for cloudprober configs.
examples
external
Binary redis_probe_once implements an example cloudprober external probe that puts a key-value in a redis server, retrieves it and reports time taken for both operations.
Binary redis_probe_once implements an example cloudprober external probe that puts a key-value in a redis server, retrieves it and reports time taken for both operations.
Package logger provides a logger that logs to Google Cloud Logging.
Package logger provides a logger that logs to Google Cloud Logging.
Package message implements wrappers for sending and receiving messages with sequence numbers and timestamps.
Package message implements wrappers for sending and receiving messages with sequence numbers and timestamps.
Package metrics is a generated protocol buffer package.
Package metrics is a generated protocol buffer package.
Package probes is a generated protocol buffer package.
Package probes is a generated protocol buffer package.
dns
Package dns is a generated protocol buffer package.
Package dns is a generated protocol buffer package.
dns/cmd
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package.
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package.
external
Package external is a generated protocol buffer package.
Package external is a generated protocol buffer package.
external/cmd
This program implements a stand-alone external prober binary using the cloudprober/probes/external package.
This program implements a stand-alone external prober binary using the cloudprober/probes/external package.
external/serverutils
Package serverutils is a generated protocol buffer package.
Package serverutils is a generated protocol buffer package.
http
Package http is a generated protocol buffer package.
Package http is a generated protocol buffer package.
http/cmd
This program implements a stand-alone http prober binary using the cloudprober/http package.
This program implements a stand-alone http prober binary using the cloudprober/http package.
options
Package options provides a shared interface to common probe options.
Package options provides a shared interface to common probe options.
ping
Package ping is a generated protocol buffer package.
Package ping is a generated protocol buffer package.
ping/cmd
This program implements a stand-alone ping prober binary using the cloudprober/ping package.
This program implements a stand-alone ping prober binary using the cloudprober/ping package.
udp
Package udp is a generated protocol buffer package.
Package udp is a generated protocol buffer package.
udp/cmd
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package.
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package.
udplistener
Package udplistener is a generated protocol buffer package.
Package udplistener is a generated protocol buffer package.
Package servers is a generated protocol buffer package.
Package servers is a generated protocol buffer package.
http
Package http is a generated protocol buffer package.
Package http is a generated protocol buffer package.
udp
Package udp is a generated protocol buffer package.
Package udp is a generated protocol buffer package.
udp/cmd
This binary implements a stand-alone UDP server using the cloudprober/servers/udp/udp package.
This binary implements a stand-alone UDP server using the cloudprober/servers/udp/udp package.
Package surfacers is a generated protocol buffer package.
Package surfacers is a generated protocol buffer package.
file
Package file is a generated protocol buffer package.
Package file is a generated protocol buffer package.
prometheus
Package prometheus is a generated protocol buffer package.
Package prometheus is a generated protocol buffer package.
stackdriver
Package stackdriver is a generated protocol buffer package.
Package stackdriver is a generated protocol buffer package.
Package sysvars implements a system variables exporter.
Package sysvars implements a system variables exporter.
Package targets provides the means to list and resolve targets for probers in the cloudprober framework.
Package targets provides the means to list and resolve targets for probers in the cloudprober framework.
gce
Package gce is a generated protocol buffer package.
Package gce is a generated protocol buffer package.
lameduck
Package lameduck is a generated protocol buffer package.
Package lameduck is a generated protocol buffer package.
resolver
Package resolver provides a caching, non-blocking DNS resolver.
Package resolver provides a caching, non-blocking DNS resolver.
rtc
Package rtc is a generated protocol buffer package.
Package rtc is a generated protocol buffer package.
rtc/rtcreporter
Package rtcreporter implements a reporting mechanism for RTC targets.
Package rtcreporter implements a reporting mechanism for RTC targets.
rtc/rtcservice
Package rtcservice provides utility functions for the cloudprober project used when dealing with the Runtime Configurator API.
Package rtcservice provides utility functions for the cloudprober project used when dealing with the Runtime Configurator API.
Package web provides web interface for cloudprober.
Package web provides web interface for cloudprober.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL